Building a Google Analytics 4 Dashboard in Data Studio

Building a Google Analytics 4 Dashboard in Data Studio

After you have started tracking your website or apps in Google Analytics 4, you will likely want to create custom reports and dashboards using your GA4 data. These reports can serve as a comparison between GA4 and Universal Analytics while running in parallel and eventually become your source of truth once you have fully migrated to GA4.

In Google Data Studio, you will notice that connecting to GA4 looks a bit different than connecting to UA. Using the built-in Google Analytics connector, you will connect to GA4 at the property-level as there are no views in GA4. You will then see a data schema that may look unfamiliar to you, especially if you’ve become comfortable using UA data in Data Studio. GA4 uses an event-based data model distinct from that of UA, and as a result the available dimensions and metrics are also different.

To compare between UA and GA4 and eventually migrate, you will need to understand how to translate between these two different data models. And that’s what we’re here for! In the rest of this post, we’ll walk-through how to replicate some of the most common metrics and dimensions from UA into GA4.

How to Report on GA4 in Data Studio


Let’s begin with the most commonly-used set of GA metrics: the Audience Overview. We don’t recommend using these metrics as your key measures of success, but they can provide a high-level picture of activity on your site.

The first six metrics are straightforward, and are either available by default or through a simple calculation:

Universal Analytics Google Analytics 4
Users Total users
New Users New users
Sessions Sessions
Number of Sessions per User Sessions per user
Pageviews Views
Pages / Session Calculate as: Views / Sessions

The last two, Avg. Session Duration and Bounce Rate, don’t map directly to GA4. Yes, that’s right, there’s no bounce rate in GA4! Instead, GA4 automatically tracks a measure of engagement, which is far more sophisticated than bounce rate ever was. This leads to measures of Engaged Sessions, Engagement rate, and Engagement time.

Universal Analytics Google Analytics 4
Avg. Session Duration Calculate Avg. Engagement Time as: User engagement / Sessions
Bounce Rate Engagement rate


The standard traffic source dimensions are available in GA4 as follows:

Universal Analytics Google Analytics 4
Default Channel Grouping Session default channel grouping
Campaign Session campaign
Medium Session medium
Source Session source


Since GA4 is designed to enable measurement across websites and mobile apps, it is now easier to report on web pages and app screens together. In contrast, pages and pageviews are a distinct concept from screens and screenviews in the UA data model.

Universal Analytics Google Analytics 4
Page Title
Screen Name
Page title and screen name
Event Category
Event Action
Event Label
Event name
Custom dimensions
Total Events Event count

Note that in addition to the combined Page title and screen name dimension, there are still separate web-specific dimensions for Hostname, Page path, and Page title.


The concept of goals from UA has been replaced by conversions in GA4. A conversion is just a specific event that has been enabled with a “conversion” flag in your GA4 property. To report on conversions in Data Studio, use the Event name dimension along with the Conversions metric. To view just a specific conversion event (e.g. in a scorecard), apply a filter to your chart using the event name.

Universal Analytics Google Analytics 4
Goal XX Completions Conversions filtered by Event name
Goal XX Conversion Rate Use data blending to calculate: Conversions filtered by Event name / Sessions

We hope this gives you a head start on creating a dashboard in Data Studio for your GA4 property. Are there any GA4 dimensions or metrics that you would like to see in Data Studio? Let us know in the comments!

Complete list of posts in our 2020 Data Studio series:

1. Visualizing the COVID-19 Pandemic in Google Data Studio
2. Creating a Google Analytics Dashboard in One Click
3. Using Google Maps in Data Studio
4. Visualizing BigQuery Public Datasets in Data Studio
5. Measuring Web Vitals – Part 2: Monitoring in Data Studio
6. Using Parameters in Data Studio
7. How to Style Links in Data Studio
8. Using Filter Controls in Data Studio
9. Extracting a Theme from an Image in Data Studio
10. Building a Google Analytics 4 Dashboard in Data Studio (this post)
11. How to Convert Text to Dates in Google Data Studio
12. 12 Tips for Enhancing Your Tables in Data Studio

By |2021-03-10T16:01:56-05:00December 14th, 2020|7 Comments
Categories: Data Studio


  1. John Roger January 12, 2021 at 3:38 am - Reply


    Thanks for very clear explanations. Now, i am able to understood it clearly.

    Can you please tell me what is meant by ‘Active users’ in Google Analytics4


    • Marc Soares January 12, 2021 at 12:31 pm - Reply

      Hi John,

      Glad you found the article helpful. The “Active Users” metric for GA4 counts engaged users on your site or app. GA4 automatically tracks engagement time when the user has the website in focus in their browser or the app in the foreground. So, “Active Users” are users that spent some amount of time engaged with your site or app. In contrast, Total users counts all users that visited your site or app as long as they triggered an event.

      Hope that helps!

  2. PatB March 17, 2021 at 2:49 am - Reply

    Hi Marc – really helpful article thanks. I’m having an issue where my Data Studio filters for my app’s GA4 property have recently stopped working properly.
    If I create a filter using OR or ‘starts with’ for screen name, it aggregates the total users across each instance of those conditions rather than showing unique total users that match any part of the logic.
    e.g. for a filter based on ‘starts with’ app/screenname it is aggregating users for app/screenname1 + app/screenname2 + app/screenname3 etc. It should be showing the total number of users who view any of those screens – not adding them together. The filters aren’t behaving this way for universal analytics, and don’t behave that way in GA segments, and they didn’t used to behave like this for my GA4 connector.
    The outcome is that when I use some of my filters, it is showing I have more users matching those conditions than use my app as a whole – rendering starts with and or pretty meaningless for reporting Total Users.

    • Marc Soares March 24, 2021 at 2:39 pm - Reply

      Hi Pat,

      Glad you found the post helpful.

      It’s possible that there have been updates to the GA4 connector recently that changed this behaviour. It sounds like Data Studio is processing the filter within DS instead of pushing it down to GA, which would explain why it cannot correctly calculate the unique user count.

      I suggest posting the issue on the Data Studio help form or issue tracker. You can find the links here:

      One alternative you could try is creating an audience in GA4 with your filter conditions. Then, in Data Studio you can filter for the audience instead of filtering on the screen name.


      • PatB March 29, 2021 at 6:13 pm - Reply

        Thanks Marc – good advice, and much appreciated.

  3. Ryan March 26, 2021 at 7:14 pm - Reply

    How do you display multiple conversions (filtered event counts) in one table? Say I wanted to list all of the session sources as the main dimension and then list multiple conversion types for each source.

    • Nicole Harris April 5, 2021 at 3:21 pm - Reply

      Hi Ryan, thank you for your question! If I understand correctly, you are looking to show Source with Conversion events in a table. Our suggestion is to create a table with Source, Event Name and Event Count. Then create a filter on the table using the conditions “Is Conversion Event” dimension = true. This will only populate the table with events that you have marked as a conversion in the GA4 interface. You can also include a control such as a drop down list with the Source field to allow you to filter one source at a time for all conversion events. Let us know whether this solves your issue!

Leave A Comment