Skip to content
accs-net.com

Press Esc to close

Power BI

Power BI is Microsoft’s business intelligence platform for building reports and dashboards from many data sources, including Google Analytics 4.

You can connect GA4 to Power BI in two main ways: the built-in Google Analytics connector or the GA4 export to BigQuery.

The connector takes minutes and needs no code, while BigQuery takes longer but gives you raw, unaggregated events.

Below you’ll find both methods step by step, the limits of each, and how to pick the right one.

What Is Power BI?

Power BI is a family of three products that share one data model and one formula language called DAX:

  • Power BI Desktop is a free Windows app where you connect data, model it and design report pages.
  • Power BI service is the cloud part, where reports are published, shared and refreshed on a schedule.
  • Power BI Mobile shows the same reports on iOS and Android phones.

Desktop is a free download, but sharing reports usually needs a paid license for everyone who builds or views them.

Microsoft’s pricing page lists Power BI Pro at $14 per user per month and Premium Per User at $24, both paid yearly.

For GA4 teams, Power BI usually competes with Looker Studio, Google’s free dashboard tool.

Ways to Connect GA4 to Power BI

Each route reads different data and stops at a different ceiling, so the choice matters before you build anything.

Three routes to connect GA4 to Power BI: the native Google Analytics connector, a direct Data API call, and the BigQuery export
The connector and a hand-built API call read the same aggregate tables. Only the BigQuery export changes what the data is.
Route Setup time What you get Main limit
Google Analytics connector Minutes Aggregated GA4 report data Wide date ranges return a subset of values
BigQuery export A day, plus SQL work One row per event, no aggregation 1 million events per day on standard properties
Third-party connector Short, no code Aggregated data, managed for you A monthly subscription

Method 1: Connect GA4 With the Built-In Google Analytics Connector

Power BI ships a Google Analytics connector in general availability. Its Implementation 2.0 setting reads GA4 through Google’s Data API.

Before you start, you need a Google account with access to the GA4 property.

You also need Power BI Desktop from June 2021 or later, because older builds can’t complete the Google sign-in.

  1. In Power BI Desktop, select Get Data on the Home ribbon.
  2. Choose Online Services, select Google Analytics, then click Connect.
  3. If a third-party notice appears, click Continue.
  4. Select Implementation 2.0. The dialog may still label it Beta. Implementation 1.0 points to the retired Universal Analytics API.
  5. Click Sign in, enter your Google account and password, and allow Power BI to access the account.
  6. Click Connect.
  7. In the navigator, open your account and GA4 property, then tick the dimensions and metrics you need.
  8. Click Load to import the table, or Transform Data to filter it in Power Query first.

To keep the report fresh, publish it to the Power BI service.

Then open the semantic model settings, sign in again under data source credentials, and turn on scheduled refresh.

Microsoft’s connector documentation shows every dialog from these steps with screenshots, if you get stuck.

Limits of the Google Analytics connector

  • Silent trimming. Microsoft warns that very large date ranges return only a subset of values. Pull data in smaller periods and append them.
  • Import only. The connector supports Import mode, so data is as fresh as your last refresh.
  • Personal sign-in. Refresh runs under the Google account that signed in. If that person loses access, refresh stops.
  • GA4 quotas. A standard property gets 200,000 core Data API tokens per day, shared with every tool that queries it.
  • Aggregated data. High-cardinality dimensions can fold into an (other) row, exactly as they do in GA4 reports.

Power BI itself is allowed 1,500,000 Google Analytics queries per day, so the GA4 property quota is the one you’ll meet first.

Method 2: Connect GA4 to Power BI Through BigQuery

The BigQuery export writes every GA4 event as a row, before any aggregation happens.

Power BI then connects to BigQuery instead of GA4, which removes the (other) row and the API token quotas.

  1. In GA4, open Admin, find Product links and click BigQuery links.
  2. Click Link, choose your BigQuery project and confirm.
  3. Pick a data location, then choose the data streams and any events to exclude.
  4. Select Daily export, Streaming, or both, then review and submit.

You need the Editor role on the property and Owner access to the BigQuery project.

Google says data should start arriving within 24 hours, as one events_YYYYMMDD table per day.

Step 2: Build a flat view for Power BI

GA4 tables store event parameters as nested records. Power BI loads nested fields as JSON text, which is slow to work with.

A flat SQL view solves this. It also creates a session key, because ga_session_id alone isn’t unique across users:

CREATE OR REPLACE VIEW `my_project.reporting.fact_events` AS
SELECT
  PARSE_DATE('%Y%m%d', event_date) AS event_date,
  event_name,
  user_pseudo_id,
  CONCAT(user_pseudo_id, '-', CAST((SELECT value.int_value FROM UNNEST(event_params)
    WHERE key = 'ga_session_id') AS STRING)) AS session_key,
  (SELECT value.string_value FROM UNNEST(event_params)
    WHERE key = 'page_location') AS page_location,
  ecommerce.purchase_revenue AS purchase_revenue
FROM `my_project.analytics_123456789.events_*`
WHERE _TABLE_SUFFIX >= FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 90 DAY));

The date filter keeps every refresh from scanning your whole export history.

Step 3: Connect Power BI Desktop to BigQuery

  1. Select Get Data, then Google BigQuery.
  2. Click Sign in with a Google account, or choose Service Account Login and paste the service account key.
  3. Click Connect.
  4. In the navigator, open the project and dataset, then select your fact_events view.
  5. Click Load, and choose Import or DirectQuery mode.

Publish the report, add the BigQuery credentials in the service, and schedule refresh the same way as with the connector.

A service account is the better choice for shared reports, because refresh no longer depends on one person’s login.

Limits of the BigQuery route

  • Export cap. Standard properties can export 1 million events per day with daily export.
  • Streaming cost. Google charges $0.05 per gigabyte, roughly 600,000 events, on top of BigQuery storage and queries.
  • SQL work. You rebuild sessions, attribution and metrics yourself, and mistakes here are easy to miss.
  • Billing project errors. An Access Denied message usually means you need to set a billing project ID in the connector options.
  • Different numbers. Raw events won’t match GA4 reports exactly, because reports apply modeling and estimation.

Third-Party Connectors

Services such as Supermetrics, Funnel, Coupler.io and Windsor.ai sell managed GA4 pipelines into Power BI.

They handle quotas, schema changes and backfills for you, in exchange for a monthly fee per data source or account.

They still read GA4’s aggregated data through the API, so they don’t remove the (other) row or thresholds.

Which GA4 to Power BI Method Should You Use?

Situation Best route Why
A marketing dashboard with a few dimensions Google Analytics connector Fastest to build, and quotas rarely bite at this size
Numbers must match the GA4 interface Google Analytics connector It reads the same aggregate tables as GA4 reports
Page paths, product SKUs or other long lists BigQuery export No (other) row on raw events
GA4 joined with CRM or order data BigQuery export Joins on transaction_id work in SQL
Many client properties, no engineers Third-party connector Someone else maintains the pipeline

If your Power BI totals disagree with GA4, read our guide on why Power BI and GA4 numbers don’t match.

Power BI vs Looker Studio for GA4

Both tools build GA4 dashboards, but they fit different teams, budgets and data stacks:

Criterion Power BI Looker Studio
Price to share reports Pro license per user Free
GA4 connection Google Analytics connector or BigQuery Google’s own GA4 connector
Formula language DAX and Power Query M Calculated fields
Best fit Microsoft 365 companies mixing GA4 with other business data Marketing teams that report mostly from Google tools

Pick Power BI when GA4 data has to sit next to CRM, ERP or finance tables. Pick Looker Studio for quick GA4-only dashboards.

DAX Basics for GA4 Metrics

DAX is the formula language that turns rows into metrics. Two measures cover most GA4 dashboards built on the view above:

Sessions = DISTINCTCOUNT(fact_events[session_key])

Purchase Session Rate =
DIVIDE(
    CALCULATE(DISTINCTCOUNT(fact_events[session_key]), fact_events[event_name] = "purchase"),
    [Sessions]
)

Use DIVIDE() instead of the slash operator, because it returns a blank instead of an error when sessions are zero.

Build a separate date table and mark it as the date table, or time intelligence functions can return wrong results.

Refresh Limits in Power BI

  • Pro. Models on shared capacity get eight scheduled refreshes per day, and each refresh must finish within two hours.
  • Premium Per User and Fabric. You can schedule up to 48 refreshes per day.
  • Manual refresh. Clicking Refresh now doesn’t count toward the eight scheduled slots.

GA4 data keeps processing for up to 48 hours, so refresh yesterday’s numbers again the next day before you trust them.

Frequently Asked Questions

Does Power BI have a GA4 connector?

Yes. The Google Analytics connector in Power BI supports GA4 through the Data API when you select Implementation 2.0 in the connection dialog.

How do I connect GA4 to Power BI?

In Power BI Desktop, select Get Data, Online Services, Google Analytics. Choose Implementation 2.0, sign in with Google, then pick your property and fields.

Is it free to connect GA4 to Power BI?

Desktop and the connector are free. Sharing reports needs Power BI Pro at $14 per user per month, and BigQuery adds its own usage costs.

Should I use the connector or BigQuery?

Use the connector for standard marketing reports. Use BigQuery when you need event-level detail, long lists of pages or products, or joins with CRM data.

How often can Power BI refresh GA4 data?

Up to eight scheduled refreshes per day on Pro, and up to 48 on Premium Per User or Fabric capacity.

Why don’t my Power BI numbers match GA4?

Usual causes are trimmed date ranges, (other) rows, thresholds, time zones and summed user counts. Compare one finished day first.

  • Looker Studio: Google’s free alternative for GA4 dashboards
  • BigQuery: the warehouse behind the raw-event route
  • Property: the GA4 container you connect to
  • Data Stream: how GA4 collects the events you report on
  • Attribution: how revenue is assigned to channels in GA4
  • UTM Parameters: the campaign tags behind channel reports

Tom Martin
Written by

Tom Martin

Web analytics specialist with deep expertise in Google Analytics, Tag Manager, and e-commerce tracking. Helping businesses understand their data without the noise — practical guides, honest reviews, and real-world implementation experience.