Tracking Parameters for Google Ads and Meta Ads: What You Really Need to Configure (and Why Nothing Is Automatic)

Most marketers assume Google Ads and Meta Ads automatically attach UTM parameters to their URLs.
They don’t.
Not by mistake, but by design.

Both platforms prefer to keep analysis inside their own ecosystem. UTMs are “data escape hatches”: as soon as they exist, any external tool (GA4, Matomo, Amplitude, Looker Studio, Snowflake, your BI stack, etc.) can rebuild your full acquisition performance.

This article clarifies:

  • what Google Ads actually generates by default,
  • how Meta Ads handles UTMs,
  • how dynamic parameters work on both platforms,
  • what changes when you move to server-side tracking,
  • and what the best practices are in 2025.

Let’s get into it.

1. Google Ads: no UTM parameters unless you explicitly create them

By default, Google Ads does not add any UTM parameter.
If you publish a campaign without configuring anything, your URLs look like this:

https://www.mystore.com/product/123

Nothing more.
No utm_source, no utm_campaign, no dynamic value.

1.1 The only automatic parameter: gclid

Google pushes its own auto-tagging system.
When enabled, Google Ads adds this parameter:

?gclid=XXXXXX

This is not a UTM.
It is an internal click identifier that allows Google Analytics to “match” your traffic with Google Ads data.

1.2 What Analytics can reconstruct using gclid (without UTMs)

When Google Ads is linked to GA4 and auto-tagging is enabled, GA4 automatically restores:

  • campaign name
  • ad group name
  • keyword
  • match type
  • device
  • network
  • creative
  • click costs
  • impressions
  • Google Ads conversions
  • revenue (if imported)

This works only inside the Google ecosystem.

If you want to analyze your traffic in another tool, UTMs are necessary.

2. Google Ads Tracking Templates: dynamic parameters for automated UTMs

The proper way to implement UTMs in Google Ads is through a tracking template.

This template allows you to mix:

  • static values (utm_source=google)
  • dynamic ValueTrack parameters provided by Google

2.1 Key Google dynamic parameters (ValueTrack)

Some of the most useful are:

  • {campaignid}
  • {campaignname}
  • {adgroupid}
  • {adgroupname}
  • {creative}
  • {keyword}
  • {matchtype}
  • {device}
  • {placement}
  • {network}

2.2 Example of a solid 2025 tracking template

?utm_source=google
&utm_medium=cpc
&utm_campaign={campaignname}
&utm_content={adgroupname}-{creative}
&utm_term={keyword}
&device={device}
&network={network}

This gives you fully dynamic, structured attribution without relying exclusively on Google’s closed-loop system.

3. Meta Ads: UTMs must be configured manually

Meta has a similar philosophy: no UTMs unless you configure them.

UTMs are added at the ad level, in the “Tracking” section, under “URL Parameters”.

3.1 Meta dynamic macros (equivalent to ValueTrack)

Meta provides its own dynamic variables:

  • {{campaign.name}}
  • {{adset.name}}
  • {{ad.name}}
  • {{placement}}
  • {{site_source_name}}

3.2 Recommended UTM structure for Meta Ads

utm_source=meta
&utm_medium=paid-social
&utm_campaign={{campaign.name}}
&utm_content={{adset.name}}
&utm_term={{ad.name}}
&utm_placement={{placement}}

Just like Google, Meta does not pre-fill anything.
If you don’t configure these parameters, no UTM appears in your URLs.

4. Why neither Google nor Meta generates UTMs by default

The reason is simple and strategic:

  • UTMs enable cross-platform attribution.
  • Cross-platform attribution weakens the value of platform-native analytics.
  • Both companies want advertisers to stay inside their measurement ecosystem.

Google wants you in Google Ads + GA4.
Meta wants you in Meta Ads Manager + Meta Attribution.

UTMs make it easy to:

  • track ads in GA4 even without linking accounts,
  • compare Google Ads vs Meta Ads performance in one dashboard,
  • migrate analytics tools (GA4 → Matomo → Amplitude),
  • build independent attribution models.

This is not in the interest of the ad platforms.

So they don’t enable UTMs by default.

5. Server-side tracking: nothing is automatic anymore

This is the part that surprises many teams.

When you move to server-side tracking (Google Analytics 4 server-side, Meta CAPI, TikTok Events API, Pinterest API, etc.):

  • UTMs are not transmitted automatically
  • click IDs (gclid, fbclid) are not transmitted automatically
  • campaign metadata must be manually attached
  • parameters must be captured client-side and forwarded

5.1 Required workflow in server-side setups

  1. Capture
    Client → collect utm_*, gclid, fbclid, referrer, landing page.
  2. Store / Persist
    • first-party cookies
    • local storage
    • session storage
    • server session
    • BigQuery / internal DB
  3. Forward
    Include these parameters in server-to-server payloads:
    • Meta CAPI events
    • GA4/collect server endpoint
    • Google Ads enhanced conversions
    • TikTok Events API requests
    • Pinterest Conversion API events
  4. Reconcile
    Join click IDs with event IDs for attribution, deduplication, and debugging.

No platform reconstructs anything for you when you operate server-to-server.
It is a full BYOT workflow: Bring Your Own Tracking.

6. Best practices in 2025

6.1 Google Ads

  • Always enable auto-tagging
  • Always configure a tracking template
  • Use dynamic ValueTrack parameters
  • Standardize campaign names
  • Never rely exclusively on gclid if you report outside GA

6.2 Meta Ads

  • Always fill the URL Parameters field
  • Always use dynamic macros
  • Include placement or device when you need breakdowns
  • Ensure naming conventions are stable and structured

6.3 Cross-platform UTM strategy

Use a consistent UTM structure for all ad platforms:

  • utm_source: name of the ad platform
  • utm_medium: cpc, paid-social, display, paid-search
  • utm_campaign: human-readable campaign name
  • utm_content: ad group / adset
  • utm_term: keyword or creative
  • optional extensions: device, placement, network

6.4 Server-side

  • Systematically capture UTMs client-side
  • Persist click IDs in first-party storage
  • Inject all parameters into S2S payloads
  • Keep raw logs for debugging
  • Use event_id correlation for deduplication

7. Summary

Google Ads and Meta Ads do not provide UTM parameters by default — intentionally.
Google only adds gclid, and only for use inside its own ecosystem.

If you want clean attribution, analysis across tools, or robust server-side tracking, you must:

  • build a proper UTM framework,
  • use dynamic parameters,
  • structure naming conventions,
  • and manually pass identifiers when using server-side setups.

Good tracking is not automatic.
It’s engineered.

Laurent Fidahoussen
Laurent Fidahoussen

Ads & Tracking & Analytics & Dataviz for better Data Marketing and boost digital performance

25 years in IT, 10+ in digital data projects — I connect the dots between tech, analytics, reporting & media (not a pure Ads expert—but I’ll make your campaigns work for you)
- Finding it hard to launch, track, or measure your digital campaigns?
- Not sure if your marketing budget is working—or how your audiences behave?
- Messy tracking makes reporting a nightmare, and fast decisions impossible?
- Still wrestling with Excel to build dashboards, without real actionable insights?

I can help you:
- Launch and manage ad campaigns (Google, Meta, LinkedIn…)
- Set up robust, clean tracking—so you know what every euro gives you back
- Build and optimize events: visits, product views, carts, checkout, purchases, abandons
- Create dashboards and analytics tools that turn your data into real growth drivers
- Streamline reporting and visualization for simple, fast decisions

Curious? Let’s connect—my promise: clear, no jargon, just better results.

Stack:
Ads (Google Ads, Meta Ads, LinkedIn Ads) | Analytics (Adobe Analytics, GA4, GTM client & server-side) | Dataviz (Looker Studio, Power BI, Python/Jupyter)

Articles: 28