I have been working with Piwik PRO data loaded to Power BI Desktop. I used this query in Power BI:
let
Source = PiwikPROAnalytics.Contents("https://xxx.piwik.pro"),
#"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" = Source{[Key="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"]}[Data],
Reports = #"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"{[Key="Reports"]}[Data],
Queries1 = Reports{[Key="Queries"]}[Data],
#"Invoked FunctionQueries1" = Queries1(#date(2025, 4, 21), #date(2025, 4, 27), {"Visitor ID [visitor_id]", "User ID [user_id]", "Cookie ID [cookie_id]", "Returning visitor [visitor_returning]", "Session number [visitor_session_number]", "Days since last session [visitor_days_since_last_session]", "Days since first session [visitor_days_since_first_session]", "Days since last order [visitor_days_since_order]", "Events in session [session_total_events]", "Session time [session_total_time]", "Page views in session [session_total_page_views]", "Outlinks in session [session_total_outlinks]", "Downloads in session [session_total_downloads]", "Site searches in session [session_total_site_searches]", "Custom events in session [session_total_custom_events]", "Content impressions in session [session_total_content_impressions]", "Content interactions in session [session_total_content_interactions]", "Goal conversions in session [session_total_goal_conversions]", "Unique page views in session [session_unique_page_views]", "Unique outlinks in session [session_unique_outlinks]", "Unique downloads in session [session_unique_downloads]", "Unique site searches in session [session_unique_searches]", "Unique custom events in session [session_unique_custom_events]", "Unique content impressions in session [session_unique_content_impressions]", "Unique content interactions in session [session_unique_content_interactions]", "Source [source]", "Medium [medium]", "Source/Medium [source_medium]", "Keyword [keyword]", "Channel [referrer_type]", "Referrer URL [referrer_url]", "Campaign name [campaign_name]", "Campaign ID [campaign_id]", "Campaign content [campaign_content]", "Google Click ID [campaign_gclid]", "Operating system [operating_system]", "Operating system version [operating_system_version]", "Browser engine [browser_engine]", "Browser name [browser_name]", "Browser version [browser_version]", "Browser language [browser_language_iso639]", "Device type [device_type]", "Device brand [device_brand]", "Device model [device_model]", "Resolution [resolution]", "Resolution width [resolution_width]", "Resolution height [resolution_height]", "PDF plugin [plugin_pdf]", "Flash plugin [plugin_flash]", "Java plugin [plugin_java]", "Director plugin [plugin_director]", "QuickTime plugin [plugin_quicktime]", "RealPlayer plugin [plugin_realplayer]", "Windows Media Player plugin [plugin_windowsmedia]", "Gears plugin [plugin_gears]", "Silverlight plugin [plugin_silverlight]", "Cookie support [plugin_cookie]", "Continent [location_continent_iso_code]", "Country [location_country_name]", "Subdivision [location_subdivision_1_name]", "Subdivision 2 [location_subdivision_2_name]", "City [location_city_name]", "Latitude [location_latitude]", "Longitude [location_longitude]", "Provider [location_provider]", "Organization [location_organization]", "Session exit URL [session_exit_url]", "Session exit title [session_exit_title]", "Session entry URL [session_entry_url]", "Session entry title [session_entry_title]", "Session second URL [session_second_url]", "Session second title [session_second_title]", "Session bounce [is_bounce]", "Event type [event_type]", "Page URL [event_url]", "Page title [event_title]", "Outlink URL [outlink_url]", "Download URL [download_url]", "Search keyword [search_keyword]", "Search category [search_category]", "Search results count [search_results_count]", "Custom event category [custom_event_category]", "Custom event action [custom_event_action]", "Custom event name [custom_event_name]", "Custom event value [custom_event_value]", "Content name [content_name]", "Content piece [content_piece]", "Content target [content_target]", "Previous page view URL [previous_event_url]", "Previous page view title [previous_event_title]", "Next page view URL [next_event_url]", "Next page view title [next_event_title]", "Time on page [time_on_page]", "Page generation time [page_generation_time]", "Goal name (uuid) [goal_uuid]", "Goal revenue [goal_revenue]", "Goal revenue (converted) [goal_revenue_app_currency]", "Goal revenue (USD) [goal_revenue_base_currency]", "Time until DOM is ready [timing_dom_interactive]", "Time to interact [timing_event_end]", "Consent form view source [consent_source]", "Consent form interaction type [consent_form_button]", "Consent scope [consent_scope]", "Consent action [consent_action]", "Analytics consent [consent_type_analytics]", "AB testing personalization consent [consent_type_ab_testing_personalization]", "Conversion tracking consent [consent_type_conversion_tracking]", "Marketing automation consent [consent_type_marketing_automation]", "Remarketing consent [consent_type_remarketing]", "User feedback consent [consent_type_user_feedback]", "Custom consent 1 [consent_type_custom_1]", "Content language [event_custom_dimension_1]", "Event custom variable key 1 [event_custom_variable_key_1]", "Event custom variable value 1 [event_custom_variable_value_1]", "Event custom variable key 2 [event_custom_variable_key_2]", "Event custom variable value 2 [event_custom_variable_value_2]", "Event custom variable key 3 [event_custom_variable_key_3]", "Event custom variable value 3 [event_custom_variable_value_3]", "Event custom variable key 4 [event_custom_variable_key_4]", "Event custom variable value 4 [event_custom_variable_value_4]", "Event custom variable key 5 [event_custom_variable_key_5]", "Event custom variable value 5 [event_custom_variable_value_5]", "Event custom variable key 6 [event_custom_variable_key_6]", "Event custom variable value 6 [event_custom_variable_value_6]", "Event custom variable key 7 [event_custom_variable_key_7]", "Event custom variable value 7 [event_custom_variable_value_7]", "Event custom variable key 8 [event_custom_variable_key_8]", "Event custom variable value 8 [event_custom_variable_value_8]", "Event custom variable key 9 [event_custom_variable_key_9]", "Event custom variable value 9 [event_custom_variable_value_9]", "Event custom variable key 10 [event_custom_variable_key_10]", "Event custom variable value 10 [event_custom_variable_value_10]", "Session custom variable key 1 [session_custom_variable_key_1]", "Session custom variable value 1 [session_custom_variable_value_1]", "Session custom variable key 2 [session_custom_variable_key_2]", "Session custom variable value 2 [session_custom_variable_value_2]", "Session custom variable key 3 [session_custom_variable_key_3]", "Session custom variable value 3 [session_custom_variable_value_3]", "Session custom variable key 4 [session_custom_variable_key_4]", "Session custom variable value 4 [session_custom_variable_value_4]", "Session custom variable key 5 [session_custom_variable_key_5]", "Session custom variable value 5 [session_custom_variable_value_5]", "Session custom variable key 6 [session_custom_variable_key_6]", "Session custom variable value 6 [session_custom_variable_value_6]", "Session custom variable key 7 [session_custom_variable_key_7]", "Session custom variable value 7 [session_custom_variable_value_7]", "Session custom variable key 8 [session_custom_variable_key_8]", "Session custom variable value 8 [session_custom_variable_value_8]", "Session custom variable key 9 [session_custom_variable_key_9]", "Session custom variable value 9 [session_custom_variable_value_9]", "Session custom variable key 10 [session_custom_variable_key_10]", "Session custom variable value 10 [session_custom_variable_value_10]", "Timestamp [timestamp]", "Local hour [local_hour]", "Time of redirections [redirections_time]", "Domain Lookup Time [domain_lookup_time]", "Server Connection Time [server_connection_time]", "Server Response Time [server_response_time]", "Page Rendering Time [page_rendering_time]", "IPv4 address [ipv4_address]", "IPv6 address [ipv6_address]", "Website Name [website_name]"}, null, null, null, null, null)
in
#"Invoked FunctionQueries1"
That is all dimensions data from 21st of April 2025 to 27th of April 2025. The query returns a table with 132.615 rows. That sounds pretty correct, but when I looked at it more closely, I found some differences between table in Power BI and reports in Piwik PRO.
I filtered the table in Power BI by Event type column. There is exact matches when comparing Page views, Consent form impressions, Searches and Downloads.
But two event types differs, first Outlinks: in Piwik PRO there is 8.722 events but in Power BI, there is 8.446.
Pretty close though, but when it comes to Custom events, there is huge gap: in Piwik PRO there is 41.082 events and in Power BI there is only 26.664 events!
Does anyone have an idea why there is so big difference between Custom events numbers?