Update (6 January 2020): Check out the full walkthrough to develop your own Power BI Pixel here.
BI is all about measuring your business success. But what about BI on BI? Wouldn’t it be crucial for your organization and business to measure the success of your BI? While the current out-of-the-box solution that is provided by Microsoft to track usage is easy to deploy, it is currently missing the ability to monitor user selection and cannot track usage across multiple tenants (e.g. an ISV providing template apps for clients may want to track the usage of their users for reports across multiple tenants).
To achieve the two missing elements, I developed a simple technique that I call the Power BI Pixel. Inspired by a simplified version of Facebook Pixel, I created a 1×1 pixel image and hid it in a report. Then, using Microsoft Flow backend and a relatively simple DAX measure I was able to implement a mechanism to track the logged-in users and the selection they made on the report. The solution doesn’t include any Custom Visual and can be implemented with no code (except simple DAX).
Do you want to try it? You can install this template App to see how I track your email address and the selection you make in the report.
After you click the link, click Install. (Make sure you have the permissions by your tenant admin to install Template Apps on Power BI).
Update: This dialog box above was replaced by the following one to reflect the potential risks of installing untrusted apps.
After a short load of the template app, you will see the following App installed on your Power BI Apps page.
Open the App and read the introduction. When you are ready, click the arrow button. Note, once you click the arrow button, I will get to see your email address. Your email address will not be used in any way beyond the purpose of demonstrating the Power BI Pixel.
On the next page, you can see a map and a bar chart. You can slice and dice the different cities. Each time you load this page or slice it, you will receive an email from me at firstname.lastname@example.org. Can you find the hidden Power BI pixel?
Here is a screenshot of the email you will receive. Remember, each time you click on a city in the map or bar chart, or load the report page, you will receive another email with the selected cities and their corresponding amounts. If you don’t want to get these emails, delete the report, or find the hidden pixel and remove it.
On the backend, I created a Microsoft Flow that collects your email address and the selections you had made and mails you back the information. In a real-life scenario, I would implement a different flow that stores the data as a staging stone for BI on BI (Sending the email back to you was my way to prove you that this technique works).
Isn’t it mind-blowing? Whether you are looking for usage tracking or not, there are three very interesting implications to the Power BI Pixel technique.
First, your data may not be protected if you load reports from untrusted sources. The Power BI Pixel can be used to harvest confidential business data. If you are in the business of governing self-service analytics, this is the time to check if you have the controls in place to prevent Power BI Pixels that are provided by unapproved sources.
Second, the Power BI Pixel can be used to track user-triggered filters. It cannot tell which visuals were clicked, but it can report back the selected values. This method can be effective not only for usage reports. You can also automate regression tests that can detect when data changes or when it wasn’t filtered correctly. For example – you can test row-level security by extracting the logged-in email and the filtered values, and notify if users access data that they should not have access to.
Third, if you are in the business of developing Template Apps, Power BI Pixels can be used to track report usage by your users and even be used to implement custom-built licensing or paid subscription mechanism for your template apps (And here I would like to make three side comments:
1- Currently, Microsoft will probably reject your AppSource submission, if you use Power BI Pixels or other methods to track usage or report’s data, unless you notify the users accordingly.
2- None of my published AppSource templates or reports contain Power BI Pixels. If I include Power BI Pixels in the future, I will warn you 🙂
If you are looking for new ways to track usage in Power BI for your colleagues or clients, or just want to learn how to control unwanted use of Power BI Pixels, you can order my Power BI Pixel PBIX and Flow here, or purchase a one-hour live session to go through the solution here.
I will be glad to hear your thoughts in the comments below. Can you find the hidden Power BI Pixel in the report? Install the Template App and find the hidden pixel.
Does the world need more tracking?
I hope Microsoft blocks templates that contain “Power BI pixels” for the same reason certified custom visuals are not allowed to transmit your data to third parties.