Forum Discussion
How to build a Usage Metrics Dashboard for Power BI Embedded customers?
- 8 months ago
Hi Baqa ,
You can get user and report level usage, but not page-level usage for embedded reports. Power BI REST APIs and the Microsoft 365 / Power BI Activity Log reliably capture governance-level events, such as report viewed, dataset refreshed, export actions, sharing and access events. These logs work for embedded scenarios as well, but they do not expose page navigation or in-report interactions. They are not real-time and have limited retention.
In embedded setups, activity may appear under a service principal or app identity, depending on the authentication model. So, APIs and audit logs are suitable for answering “who accessed which report and when”, but not “which pages were used or how users interacted with the report.”
For embedded analytics, the supported approach is to use the Power BI Embedded JavaScript SDK provided by Microsoft. The SDK exposes client-side events such as report loaded, page changed, errors during rendering or querying. These events are not stored by the Power BI service, but they are intentionally exposed so the hosting application can capture them.
In practice, this means:
Instrumenting the hosting application with the Embedded JS SDK
Logging page-level and session-level events
Correlating those events with Power BI artifacts (workspace, report, tenant)
This is the only supported way to achieve page-level usage insights for embedded reports today.Power BI Activity Logs that is accessible via REST API or PowerShell are the supported mechanism for governance-level usage such as report views, exports, and refreshes, but they do not capture page-level interactions. For embedded scenarios, page navigation and client-side errors are intentionally exposed via the Power BI Embedded JavaScript SDK, which is the supported way to capture interaction level telemetry in the hosting application. Azure Monitor and Log Analytics are the supported tools for monitoring Power BI Embedded capacity health, throttling, performance, and failures. Microsoft guidance is to combine these components such as: Activity Logs for audit, Embedded SDK events for interaction telemetry, and Azure Monitor for capacity and reliability using consistent tenant, report, and session identifiers, and to export native logs to customer-owned Azure storage for extended retention and analysis.
Hope this helps,
Chaithra E.
Hi Baqa ,
You can get user and report level usage, but not page-level usage for embedded reports. Power BI REST APIs and the Microsoft 365 / Power BI Activity Log reliably capture governance-level events, such as report viewed, dataset refreshed, export actions, sharing and access events. These logs work for embedded scenarios as well, but they do not expose page navigation or in-report interactions. They are not real-time and have limited retention.
In embedded setups, activity may appear under a service principal or app identity, depending on the authentication model. So, APIs and audit logs are suitable for answering “who accessed which report and when”, but not “which pages were used or how users interacted with the report.”
For embedded analytics, the supported approach is to use the Power BI Embedded JavaScript SDK provided by Microsoft. The SDK exposes client-side events such as report loaded, page changed, errors during rendering or querying. These events are not stored by the Power BI service, but they are intentionally exposed so the hosting application can capture them.
In practice, this means:
Instrumenting the hosting application with the Embedded JS SDK
Logging page-level and session-level events
Correlating those events with Power BI artifacts (workspace, report, tenant)
This is the only supported way to achieve page-level usage insights for embedded reports today.
Power BI Activity Logs that is accessible via REST API or PowerShell are the supported mechanism for governance-level usage such as report views, exports, and refreshes, but they do not capture page-level interactions. For embedded scenarios, page navigation and client-side errors are intentionally exposed via the Power BI Embedded JavaScript SDK, which is the supported way to capture interaction level telemetry in the hosting application. Azure Monitor and Log Analytics are the supported tools for monitoring Power BI Embedded capacity health, throttling, performance, and failures. Microsoft guidance is to combine these components such as: Activity Logs for audit, Embedded SDK events for interaction telemetry, and Azure Monitor for capacity and reliability using consistent tenant, report, and session identifiers, and to export native logs to customer-owned Azure storage for extended retention and analysis.
Hope this helps,
Chaithra E.
Hi v-echaithra Thank you for the detailed response. It has clarified many of my questions.
- v-echaithra8 months ago
Community Support
Hi Baqa ,
I just wanted to check if the issue has been resolved on your end, or if you require any further assistance. Please feel free to let us know, we’re happy to help!
Thank you
Chaithra E.