How To Track Tableau Dashboard Usage With Google Analytics, Piano Analytics or Adobe Analytics

Nicolas Hinternesch
5 min readNov 8, 2021
Tableau Tracking With Digital Analytics Platforms like Google Analytics, Piano Analytics, or Adobe Analytics

Tableau is a neat data-driven visualization tool. But what if your Tableau workbook becomes the very object that you are looking to analyze? When a Tableau dashboard is part of your B2B service offering or your in-house deliverables, understanding its consumption is crucial:

  • What are the most viewed workbooks, tabs, and sheets?
  • How many users access my dashboard? How active are my users? What does user retention and frequency look like?
  • Which widgets and data points are being interacted with the most?

Understanding how stakeholders use a Tableau dashboard is the very first step towards optimizing its design and content. Sending this data to a digital analytics platform like Google Analytics, Piano Analytics or Adobe Analytics has multiple benefits:

  • Leveraging built-in analytics metrics (such as user deduplication or time spent) as well as standard properties and dimensions (such as geolocation or device information)
  • Using the full functionality of the analytics tool: Data mining, reporting, dashboarding, export, integration into custom data pipelines etc.
  • Connecting the Tableau usage data with the performance data of your other content offering and user-activity on-site or in-app

This tutorial contains a hands-on guide for tracking Tableau users, views, and events via web page objects and URL actions and sending this data to a digital analytics platform.

1. Writing the structure of the request URL
The basic idea is to send an analytics request to the data collection API of your vendor for every event you want to track. I will be using Piano Analytics and the corresponding collection API. Here is the basic URL structure of an example hit:[{“name”:”eventName”,”data”:{“page”:”pageName”,“workbook”:”workbookName”}}]

Use the measurement protocol for GA or the data insertion API for Adobe — the URL structure will be similar.

2. Tracking dashboard tab views using a web page object

Tableau Tracking

Drag a floating web page object onto the canvas. This will serve as a web frame which sends the tracking request. It is rendered every time the tab is loaded and therefore tracks every view within the workbook. The object can be placed outside the visible canvas. Since we are only requesting a measurement pixel, it will not render any visible content anyway. Then enter the request URL from step 1 into the URL field. The parameters (arrow on the right next to the input field) allow you to make the request dynamic and add contextual information that is different on every tab. That way, you don’t have to hardcode the sheet name or the workbook name on every tab. You can use <Sheet Name> to add the current sheet, <Workbook Name> to add the current workbook or <User Name> to send a user identifier to replicate a cookie- or login-ID for user deduplication.
Careful here: <User Name> returns the email address of the signed-in Tableau user. Only use this as an identifier if you are working with privacy compliant vendors that guarantee full data ownership, always hash this identifier during processing, and never expose the un-hashed version in the analytics interfaces.

This is what the URL in the web page object for tracking a basic tab view could look like:<User Name>&events=[{“name”:”tab.display”,”data”:{“page”:”<Sheet Name>”,“workbook”:”<Workbook Name>”}}]

And here is the corresponding hit firing on every load:

Tableau Tracking

3. Tracking widget interactions using a web page object and URL actions

Tableau Tracking

Tracking interactions with data points within the visualizations works in a very similar fashion. But rather than requesting the same URL from the web page object on every page load, we want to dynamically call a different tracking URL upon interaction. With URL actions, Tableau allows you to request a URL within a web page object when data points on selected views have been hovered over, selected, or right-clicked on.
First, drag another floating web page object on the canvas, but leave the Edit URL field blank for now. Then, go to Dashboard Actions. Click Add Action and select Go to URL. In the next dialog, you can select which interactions you want to measure for which widget (hover, select, menu). For the URL Target, select Web Page Object and choose the empty web page object from the dropdown. Then enter the tracking URL in the input field. This will be passed to the empty web page object, whenever the chosen interaction occurs. Note that you can use the parameters to make this one dynamic as well, e.g. “which data point has been clicked” etc. The hit URL for these interactions should fire a different event than the tab view from step 1 and could contain additional data points. Of course, you will have to tweak the measurement requests and the parameters you want to track, in order to capture all the necessary information for the interaction.

And that will do it. You can now track your Tableau Dashboards using your favorite digital analytics vendor, merge the data with your other cross-platform data streams, and start using all the built-in functionalities and metrics that your analytics suite offers.

Tableau Tracking Analysis With Piano Analytics

Side note: If your Tableau visualizations are built with the JavaScript API, you also have the option of using event listeners to trigger the tracking requests.

— If you have questions, clever suggestions, or if you’re simply up for talking analytics: Feel free to reach out.