Combine GA4 and GSC Data in Looker Studio

This post will be helpful if you’re looking to:

  • Create a content performance report – Identify winning content and opportunities for improvement for Google search.
  • Merge Google Analytics 4 and Google Search Console Data
  • Create a looker studio report with combined metrics from GA4 and GSC.
  • Separate your blog performance from the rest of your website landing pages.
  • Identify engagement on your pages that are ranking well/poor on organic search.

I created this detailed guide to combine GA4 and GSC data because I had to report on a few metrics to stakeholders on new blog pages that I recently published. The idea was to see if our topic selection, content quality, and intent were right for our target audience.

With hours of research on how to do this, the closest I could find was Looker studio templates that were paid. But even that wasn’t promising in terms of what I was looking for.

So here it goes:

Introduction

The guide is structured to have four sections:

  1. Basics on what we’re trying to do here along with the ‘why’ and benefits. This would help you sell the importance of this report to your stakeholders.
  2. Instructions on how to blend Google Analytics [GA4] and Google Search Console [GSC] data in Looker Studio.
  3. Some tips on how to use the template, analyze the data, derive insights, and build action items based on your findings.
  4. Learnings, noted issues, etc.

For this activity, you need access to a Google Analytics property and Google search console access of the same domain.

Content Performance on Organic Search: Why does it matter?

After publishing new website pages – you’d want to understand how they’re performing.

You can easily use metrics from the Google search console such as impressions and clicks and compare it with the previous period.

But if you’re looking to really audit and optimize the page, those metrics might not be enough. Wouldn’t you wonder if people are spending enough time on that page?

Metrics such as clicks are second-order metrics- they tell you that you’ve got people coming to your page.

But you do not get if people are interacting with your page at all (if it was your goal) or you do not know if they have all completed a key conversion? (leads/registration etc).

You then turn to Google Analytics or a session recording app for help. From Google Analytics, you learn to see landing pages or pages and screen reports and get user engagement metrics from there.

But then:

How do you see this information together?

If you’re selecting the best performance pages from GSC and analyzing their GA4 metrics, aren’t you missing out on pages that have more meaningful visitor impact but they’re not ranking as high?

You need to:

  • Have a zoomed-out view of all of your pages and analyze how they are doing SEO-wise and engagement-wise – together!
  • Track user engagement along with ranking data to derive insights for page optimizations.

What you can expect to find?

You might find some pages that have a high engagement rate for people reading the article, but you don’t have enough keyword positions on Google search for it to rank organically.

You can then create a plan for promoting that high-engagement piece across Google search and other channels.

Out of 100s of website pages, you can get insights like the above from the report like the one we’re going to create below.

Enters Looker studio

Looker Studio helps you visualize your marketing data and create dashboards. You can connect your Google Analytics property and Search console property as a data source in Looker Data Studio to create reports that matter.

With this, you can merge two data sets (GA4 and GSC) which is called blending in Data Studio.

With blended data GA4 and GSC data, you can create a simple table that shows you Google search performance metrics along with user engagement metrics from GA4.

According to your use case, you can also add other metrics from GA4 such as e-commerce add to cart or purchases from a page, number of events (if you’re tracking different events for a similar set of pages), DAU/WAU/MAU if you’re tracking app pages, Publisher Ad clicks/impressions if you’ve connected Adsense/ Admob account to your GA4 account.

There are two alternatives to this approach:

  • You can do manual reporting in Excel sheets. I have done that and honestly hated it for every week I had to put in the numbers manually. Manual data entry work for that report increased with each new page added or updated.
  • You can create exploration reports in GA4 with a connected Google search console property. I like this option until I have to share this report with the stakeholders. You do not want to ask them to look at the nth report and figure out if they have access and the steps to access that particular report inside GA4. Though you have better quality data, there are fewer customization options in the exploration section of GA4 as compared to Looker Studio.

How to Combine GA4 and GSC Data

Know how to combine Google Analytics and Google Search Console data in Looker Studio.

The secret here is understanding that you need to have a base (a key) to merge these datasets. Looker Studio uses data from database tables that have a field name (key) and a field ID (Key ID). You need to make both of these uniforms to be able to merge the two using a common Key.

Connect GA4 and GSC as data sources in Looker studio

If you haven’t already, connect your Looker studio to your Google Analytics property and Google Search Console property.

Connect Google search console to Looker studio

To connect GSC data to Looker Studio, go to the “Data sources” tab. Select “Connect new data source” and then, select Search Console from the list of Google connectors.

Connect data source in Looker studio
Connect data source in Looker studio

You’ll see your search console property in the right sidebar. Now select that property and you’ll see two options – “Site impressions” and “Url impressions”.

While adding the Search console property, select “Url impressions” as the dataset. This dataset is most useful since it contains all the URLs and Query dimensions along with metrics such as clicks, impressions, position, etc.

I've named my Url impressions dataset as GSC
I’ve named my Url impressions dataset as GSC

The “Site impressions” dataset doesn’t have queries attached to the URLs. You need queries with URLs set to drill down and identify queries ranking for that page.

Connect Google Analytics to Looker Studio

To connect GA4 data to Looker Studio, go to the “data sources” tab. Since you’ve already added GSC data there, you won’t see the “Connect new data source” option.

Add data source from create button in Looker studio
Add data source from the create button in Looker studio

Instead, select “Create” and select “Data source” there and then, select Google Analytics from the list of Google connectors.

Connect your GA4 and GSC data using data connectors in Looker studio
Select Google Analytics as the data source in Looker Studio

After you’ve selected Google Analytics, you’ll see the same GA4 property that you have access to. If you have a GA3 property attached, you’ll see that as well. Select the relevant GA4 property and click on “Connect”.

Select GA4 property from Google Analytics connector
Select GA4 property from the Google Analytics connector

Understanding GA4 and GSC data in Looker studio

Now that we have connected our data sources, we need to blend these two data sources. To do it, you need to understand how data sources work.

Each data source has a field and type of data in it. These fields are further divided into dimensions and metrics. For example, dimensions can be landing page (text type data), and metrics can be landing page clicks – URL impressions (Number type data).

Dimensions and metrics in GSC looker studio data
Dimensions and metrics in GSC Looker Studio data

If you explore the GSC data table in Looker Studio, you’ll find that the landing page dimension has full URLs. Example: https://www.example.com/url-slug. See example below:

Landing page dimension in GSC has full URL
The landing page dimension in GSC has a full URL

If you explore the GA4 data table in Looker Studio, you’ll find that the landing page dimension or page path dimension only has the page path i.e.. the /url-slug instead of the full URL with https, domains, or subdomains.

Landing page dimension in GA4 has only the page path and not the full URL
The landing page dimension in GA4 has only the page path and not the full URL

Now this is a problem since if you want to merge the two data, you need a common dimension (or field) for them to be matched.

Ie. It should either be only /url-slug in both GSC and GA4 data or it should only be https://www.example.com/url-slug in both.

There is a solution to this – Custom fields in data. Fortunately, Looker Studio allows us to use formulas to create custom fields. We’ll create our dimension in each of the tables (GA4 and GSC) to regularise it.

From GSC, rather than having the full URL we’ll extract the URL slug from every URL in the GSC dataset and use it as the common dimension.

Note: As pointed out by Jannette in comments, make the GSC landing page match the GA4 landing page format (no domain, no trailing slash) and then your session-scoped metrics will work.

For GA4, since we already have page paths there as a dimension, we don’t alter a lot there. But we’ll still create a new field in our GA4 dataset. Because along with the field, there is a field ID (Key ID). We need to create the same field IDs in both the GA4 and GSC datasets to make it work.

Create custom-calculated fields in Looker Studio

Create a custom field in your GSC dataset

To create a custom field in your GSC dataset, go to data sources. From data sources, double-click on your GSC data source. You will see the fields available in your dataset along with the field type.

From your dataset, to go “Add a field” and then select “Add calculated field”

Add a field in GSC table
Add a field in the GSC table
Add calculated field in GSC looker studio table
Add calculated field in GSC looker studio table

After hitting add calculated field, you’ll see that you can give a field name, field ID, and the formula to define your field.

Name This field as “Landing page path” and set the field ID as “path”

Setting field name and field ID
Setting field name and field ID

We know that we want to use this as a dimension, where we want to use “Landing page” as the existing dimension from this dataset and replace it with the URL slug from it.

For this purpose, we’ll use the “Regex_replace()” formula to use the landing page as the input and replace it with the page path from that landing page.

REGEXP_REPLACE(Landing Page, "https?://[^/]+", "")

Your field details should look like this:

use the formula to regularlise landing page dimension in the field
use the formula to regularize landing page dimensions in the field

After you’re done, hit on save.

Create a custom field in your GA4 dataset

For creating a custom field in your GA4 dataset in Looker Studio, do similar steps.

Go to “add a field”, go to “Add calculated field” and name your field name as “Landing page path” and field ID “path”

Remember to use the same field name and same field ID in both of your custom fields (GA4 and GSC)

For the formula here, since we already have a page path dimension, we can just use that here.

use page path in GA4 new calculated field
use page path in GA4 new calculated field

Hit save and now you’re ready to merge GA4 and GSC data!

Creating Looker Studio report with Merged GA4 & GSC data

Blending GA4 and GSC data in Looker Studio

Create a blank report in Looker Studio and use your existing data sources (GA4 and GSC).

Create blank report and add GA4 and GSC data source
Create a blank report and add GA4 and GSC data source

After you’ve added both GA4 and GSC as data sources in your report, you’ll see the calculated field (Landing page path) that you created earlier in both sources.

find newly created field in both data sources
find newly created field in both data sources

To blend the data, insert a table in your report. In the right sidebar, you’ll be able to see the data sources. From there, select “Blend data”.

Inserting a table in Looker studio page
Insert table in new looker studio report
Click blend data and find the existing table
Click blend data and find the existing table

Now after you’ve hit “Blend data”, you’ll see an existing table on the left. You’ll see an option to join another table on the right. Select “Join another table” and from the list that appears, select the data sources which is not on the left table. (GSC data in my case here).

Join another table (GSC data)
Join another table (GSC data)

Now that you’ve both of your tables containing your GA4 and GSC datasets, it should look like this:

Configure join
Configure join

But before configuring join, we also need to select the metrics and dimensions that we’ll need for this dataset.

Looker Studio doesn’t take the whole dataset by default. It will only use the metrics and dimensions that we select in each of our tables.

Now for this, we know that we want to analyze content performance. For analyzing content performance, you’ll need these metrics and dimensions:

GA4:

  • Dimension – Landing page path
  • Dimension – Session source
  • Dimension – First user source/medium
  • Dimension – Device category
  • Metric – Total users
  • Metric – Bounce rate
  • Metric – Events per session
  • Metric – Average session duration

GSC:

  • Dimension – Landing page path
  • Dimension – Query
  • Metrics – Url Clicks
  • Metric – Impressions
  • Metric- Url CTR
  • Metric – Avg Position

After selecting your dimensions and metrics, you can verify these fields on the right-hand side of the screen.

Add dimensions and metrics for content performance analysis
Add dimensions and metrics for content performance analysis in blended data table

we need to configure the join conditions to match the custom calculated fields that we created earlier.

For it, select Configure Join.

After you select configure join, you’ll see a few options for the join operator. These are pretty self-explanatory. To examine all our pages be it in GSC or from GA4, I’ll suggest that you use the “Full outer” Join.

In the Join conditions, you need to tell Looker Studio how these two tables are connected. We know that in both of these tables (GA4 and GSC), we have a common field with a common field ID (Landing page path with field ID as ‘path’).

We can let Looker Studio know that it can use those fields to join the two tables so all other data related to these tables are also joined.

use full outer join and select a common field name and field id from both tables
use full outer join and select a common field name and field ID from both tables

After you have configured your table joins, click on save and you’ll be taken back to your report. Now you’ll see your blended data in the data source under the setup tab.

Congratulations on reaching here. You’ll successfully blend GA4 and GSC data in Looker Studio. Now you only need to set up the table and possibly create a dashboard to analyse content performance.

Select the dimension as the Landing page path in your table and select the metrics that you need to analyze content performance.

Create a table with content performance metrics. You've merged GSC and GA4 data in Looker studio
Create a table with content performance metrics. You’ve merged GSC and GA4 data in Looker studio

Analyse data, Derive insights and Improve your content performance

Stay tuned for this section.

I’ll show how to create a dashboard that will help you analyze this merged data to analyze content performance and derive insights.

Connect with me on Linkedin to get this template sooner rather than later! (and for free, of course!)

Noted issues

  • The landing page is not a reliable dimension. There are not set values or “Null” values.
  • The list will depend on your join condition. Full join would mean you might have pages that only have GSC data and no GA4 data. You would also have pages that would only have GA4 data but not GSC data. This ensures you’re not missing out on pages that might be important for your business.
  • The Regex Formula used to standardize page paths doesn’t make normalized URLs that have subdirectories in them. for example: https://www.domain.com/blog/url-slug will change to blog/url-slug in the search console dataset which will not match with the page path of url-slug in Google Analytics.

Learnings

  • If you’ve already connected your Google search console to your Google Analytics 4 account, you’d think that your GA4 dataset should already have those Google search metrics. I’ve tried to use dimensions from GA4 (Landing pages) and metrics such as Organic Google Search impressions and organic Google Search clicks together. But sadly it doesn’t work in Looker Studio.
looker studio ga4 dimension gsc metrics
GA4 search metrics don’t work in Looker studio
  • You need to know the difference between a metric and dimensions. If you put, for example, Device (which is a dimension) as a metric, you’ll see numbers when you put device as a control and filter your results. This is true for other dimensions such as landing pages, page paths, etc.

Inquisitive?

Read this Medium article to learn how to blend GA4 and Universal anlytics data.

Siddharth
Siddharth

Siddharth is an SEO. He started his journey in digital marketing with a small blog which served as a playground for him to learn. The blogs allowed him to strategize and see the results to fruition. He has completed projects as an SEO consultant for several startups. He has an MBA from Delhi School of Business (Marketing & Finance). In his free time, he likes to meet his friends ‘Offline’.

Articles: 11

5 Comments

  1. How does this work without requiring the Date dimension? What if I want various date ranges?
    Also, I tried your example, but aggregated metrics, like average session duration, give impossibly large values, did you change those metrics to be aggregated by “Average”? (even when I do that, the still seem high for most of my pages). Also, I can’t seem to get this to work with basic metrics such as sessions and keyevents:conversionname, and I can use session source or session medium, but not session source / medium. Can you explain what types of dimensions and metrics won’t work in blended data sets?
    Thanks!

  2. I figured out how to get sessions to work. I had to make the GSC landing page match the GA4 landing page format (no domain, no trailing slash), then the session-scoped metrics worked. But my question about the date still remains. Thanks!

    • Hi Jannette – That’s right – we have to match the GSC landing pages (I’ll highlight this in the article to help others fastrack their reports).
      Your question about dates: Since the date dimension is already passed from GA4 and GSC (from the source), you do not need to worry about it. If you want more control over your data to see changes wrt to dates, you can add it as a control function in your report and your data will be sliced according to your selection there. Hope this helps – Cheers!

Leave a Reply

Your email address will not be published. Required fields are marked *