Why Do Performance Max Ads Show 223 Sessions in Google Ads but Only 11 in GA4?

Question from user:

Hi everyone!

I’m trying to understand the performance of my Performance Max ads. I have used UTMs in all asset groups and have turned off the setting that allows Google Ads to use a different link.

But on Google Ads, for the last 7 days, Cross-Network data (Session Primary Channel Group) says there’s been 223 sessions but if I count the sessions (Session Source Medium) on the UTM links, it’s only 11 sessions.

Am I missing something?

Answer from Nabil:

The short answer is:

Why is there a discrepancy in session counts between Performance Max ads in Google Ads and GA4?

You are experiencing a significant data mismatch between Google Ads and Google Analytics (GA4) for your Performance Max (PMax) campaigns because PMax, by design, often overrides or ignores manually set final URL suffixes and UTMs when distributing ads across various Google networks, and it heavily relies on auto-tagging (gclid) for attribution.

While you’ve turned off the setting that allows a different link, PMax can still use a different tracking template or dynamic final URL for specific inventory.

The majority of your 223 sessions are likely being captured correctly via auto-tagging and attributed to the Cross-Network channel grouping, which is the default for PMax, but your manual UTMs are only capturing the small subset of traffic where they were actually used.

The long answer is:

The discrepancy you are seeing- 223 sessions in Google Ads versus 11 sessions captured by your UTMs- is a very common issue with Performance Max campaigns.

The core problem lies in how PMax operates across the Google ecosystem.

PMax is an “all-in-one” campaign type that generates ads for Search, Display, Discovery, YouTube, and Gmail.

While you have set UTMs in your asset groups and disabled the “Use a different link” setting, this primarily controls the Final URL.

However, PMax often uses a system where the Tracking Template in Google Ads is what is actually applied to the URLs before auto-tagging is added.

More critically, PMax has a high degree of automation and can dynamically generate URLs and landing pages, especially for inventory like Shopping or when using an optimized feed.

Even if you manually apply UTMs, PMax’s internal tracking mechanisms- including the auto-tagging parameter gclid– are the primary and most reliable method for attributing clicks back to Google Ads, and these clicks are aggregated into the Cross-Network channel grouping in GA4.

The 11 sessions you are seeing are likely from a specific, smaller inventory type where your UTMs were successfully appended, while the other 212 are using the default auto-tagging.

The solution to gain granular visibility, without relying on error-prone client-side UTMs, is to implement a robust, server-side data integration system.

Using the Google Ads API allows you to pull highly granular data about the 223 clicks, including the specific Campaign ID, Ad Group ID, and gclid.

Simultaneously, the Google Analytics Data API (or, even better, a server-side tagging solution like Google Tag Manager paired with Stape or Google Cloud Platform) can be used to capture the gclid associated with the user’s session and the resulting conversions like the purchase standard event.

By combining the data from the two APIs- matching the gclid in the advertising data with the gclid in the conversion data- you create a single, unified, and accurate data set.

You can then use the Looker Studio API to visualize this combined data, creating a custom report that joins the click data from Google Ads with the session and conversion data from GA4.

This setup bypasses the client-side issues with UTMs and gives you a single source of truth for PMax performance, accurately linking all 223 sessions to their specific campaign details, rather than relying on the inconsistent 11 UTM-tracked sessions.

About The Author