GA4: Understanding Session Attribution and Troubleshooting Inaccurate Data in Google Ads Report
If you have linked Google Ads to your GA4 property and enabled automatic tagging, you will be able to see the data for your Google Ads campaigns in standard and custom reports within GA4, allowing you to analyze their performance, sessions, and attributed conversions.
The standard Google Ads report within GA4 is a bit hidden among the various report sections, and you need to follow a few steps to access it.
Here's what you can do:
At this point, you can analyze your report similarly to how it was done in the dedicated Google Ads tab of Universal Analytics:
Tip: if you want to have your report at your fingertips, just like in Universal Analytics, you could save this report as a "new detail report" and include it in a collection dedicated to Google Ads.
Before delving into the analysis of the Google Ads report, I'd like to take a moment to explain how session attribution works in GA4 since this Google Ads report refers to session-related dimensions. Let's see how source/medium attribution works at the session level in GA4, as it differs from how it was done in the old Universal Analytics.
The "source" and "medium" parameters found in the first events after the session has started (i.e., after the session_start event) determine the source and medium of that session. Typically, they are always present as parameters in the first page_view of the session.
To give an example, if I start a session by clicking on an organic search result from Google, I will have the source/medium parameters "google/organic" in the first page_view. This will determine the assignment of that session to Google's organic search results.
Even if I come back to the site via a different UTM or referrer, as long as the session remains active (i.e., until a new session_start event is generated for that user), the source/medium of that session will always be tied to the first parameters, i.e., "google/organic" (unlike Universal Analytics, where a new session was generated).
Let's look at another practical example of how session attribution works in GA4:
I land on the site via Google Organic Search (google/organic), and a session_start event is generated, marking the start of the session, and a page_view event. In the first page_view event, there will be source values of "google" and medium values of "organic."
If I leave the site for a moment and click on a link from a newsletter to resume browsing, and my previous session is not yet finished (usually a session ends after 30 minutes of inactivity), then I will have a new page_view event with the UTM values of the newsletter link (if I have inserted them), for example, source "email" and medium "newsletter" at the event page_view level.
In this scenario, in Google Analytics 4, if I analyze the classic standard report Traffic Acquisition (session), in the analysis of traffic sources, the session will always be one and, above all, it will always be associated with google/organic, never email/newsletter! I will never have any trace of email/newsletter in the traffic sources analysis based on sessions in this specific situation (unlike Universal Analytics, which instead created a new session with source and medium equal to email/newsletter).
After understanding how source and medium are attributed to a session, let's return to the main topic, which is the relationship between Google Ads campaigns. While analyzing the report, I immediately noticed some inaccurate data.
During the analysis of GA4 data in BigQuery, my suspicions were raised when I discovered that all first-page views of sessions with the "gclid" parameter had "google" as the source and "organic" as the medium, after analyzing the event-level "source" and "medium" parameters. In theory, if "gclid" is present, i.e., the query parameter used by Google to identify clicks on paid ads, the first page_view event of the session should have "google/cpc" as source/medium, not "google/organic"! After reading some discussions, I discovered that this is a known bug in the GA4 linkage to BigQuery.
But does this inaccuracy also affect the GA4 UI itself? Is there a real problem associating session-based dimensions for Google Ads campaigns with various metrics? Does the standard Google Ads report show accurate data?
From my tests, it seems that sessions and related metrics are not always correctly associated with dimensions dedicated to Google Ads, such as "Google Ads campaign name based on sessions."
领英推荐
Therefore, if I want to analyze the sessions and related metrics (e.g., conversion rate) of a Google Ads campaign, I might be looking at the wrong data. It seems as if GA4 sometimes loses some pieces for no apparent reason.
To thoroughly analyze this dynamic, I followed this procedure:
As you can see from the image, this user, whom we will call Mario for simplicity, executed the page_view after the session_start. Within this event, we find the manual parameter created with the name of the campaign "google_campaign_name." Do you notice something strange? Bigquery reports "google" as the source and "organic" as the medium, which is incorrect and refers to the aforementioned BigQuery bug. Let's see what GA4 UI says about this session made by Mario (which we found thanks to the client_id).
Here is the result:
As you can see, even in GA4, this session was incorrectly associated with Organic Search, and the "Session Google Ads Campaign" dimension, which is GA4's standard dimension and is populated through automatic tagging, shows "not set." So, there is no trace of google/cpc (Paid Search) in BigQuery and GA4. Let's see what Universal Analytics says about this user and session.
Here is the result:
The session of this user in Universal Analytics was correctly attributed to Paid Search and the Google Ads campaign!
If Universal Analytics attributes the user's arrival from a Google Ads advertisement, as confirmed by manual parameters in BigQuery, I can definitely have doubts about the automatic tagging functionality of Google Ads in GA4 UI and the results attributed in the Google Ads report.
4. I also performed tests on the metrics reported by GA4 and those of BigQuery, particularly for the users and sessions of that specific campaign, comparing the same day (May 5th, 2023). Although it is known that results in BigQuery may differ from those reported in the GA4 platform, there is still a significant difference in the count.
Here are the results from BigQuery for May 5th of the campaign with manual parameters:
And here are the same results from the GA4 report:
BigQuery reports 22 users and 23 sessions for that campaign, while GA4 reports only 6 users and 6 sessions.
This is further evidence that something may be missing in GA4, and that the automatic tagging connection between GA4 and Google Ads is not always reliable and perfect!
In conclusion, my advice is always to check the accuracy of data before making analyses on GA4 reports, particularly for evaluating the performance of Google Ads campaigns. Making incorrect analyses due to inaccurate data can be disastrous for our marketing decisions.
So, what are the solutions to this issue?
Definitely, manual tagging in Google Ads can be helpful in this specific situation, even though I personally do not like the idea of mixing automatic and manual tagging. Choose one or the other path, or insert custom parameters that are not UTM to analyze your campaign traffic on a session level. However, the custom parameter path is a bit complicated without the use of BigQuery and with only the use of the GA4 UI.
In any case, do not rely 100% on what GA4 UI tells you about the performance of your Google Ads campaigns if you have automatic tagging active, as there may be missing pieces.
My personal opinion is that it is unthinkable that there are integration errors between two tools that belong to the same "house". The integration between Google's advertising products and GA4 is the strength of this powerful marketing analytics tool and the main reason why it holds the main market share on various analytics platforms. Furthermore, I see no reason why an integration that has always worked perfectly in the past should no longer be secure and reliable now that there is a new, more powerful tool. I hope, of course, that Google can fix this problem as soon as possible, so as to restore meaning to the analysis of Google Ads campaigns in the Google Analytics platform.
Freelance Brand Manager ?
8 个月Hey Marco Ciavarella! I really like this article! Can I reach out to you to provide a quote on the next social media publication we will do in Digital Olympus? We would love to feature you as an expert on the subject! I just sent you a friend request ??
Data Analyst | Growth | BigQuery, GCP. GA4, SQL, Dashboard, Paid Media
11 个月Thank you! Vitor Costa
always strive and prosper
1 年Hey Marco! Thanks for that extensive and helpful analysis. I feel very seen with your article and want to share my concern over the Google Ads or Google Analytics 4 reports. In fact, in my case, GA4 actually shows at least double the amount of purchase conversions for the same campaign than on the actual Google Ads platform. I have data-driven attribution activated on both platforms and currently automatic and manual tagging (with custom UTMs in my tracking template) active. The discrepancy is so significant, that it really shows a completely different picture on GA4 than on Google Ads. This really makes the whole analysis of our campaigns very difficult, especially when we want to decide on how to continue with our current campaign. Google Technical Support doesn't seem to find a good answer for this, so I was wondering. Would you be able to chat over this in private, if you prefer even over a Meets call? I have been looking for people with similar problems and could really need some help here. In any way, thank you for your article, it helps a lot.
Digital Analytics Lead EMEA @ Align Technology
1 年Think I have a similar issue. UTMs work for everything except Google Ads (campaign missing) alongside the problem above. It's kind of a joke that Google Ads would be facing this issue... Would disabling auto tagging resolve the tracking issue on GA4 atleast?
Responsabile reparto Adv presso Netstrategy
1 年ciao ottimo contenuto grazie! posso chiederti una cosa molto più semplice? La differenza di attribuzione tra la sez. report, le esplorazione e il report pubblicità: nei primi 2 se mi costruisco la mia dashboard con le campagne (in questo caso gads) che mi interessano, i risultati coincidono (perlomeno con 2 variabili come revenue e numero conversioni): se provo a fare la stessa cosa con la sez. pubblicità i dati divergono. Utilizzano un modello diverso di attribuzione all'interno di ga4? qua parla di differenza tra report ed esplorazione https://support.google.com/analytics/answer/9371379 eppure in quel caso i miei dati combaciano