5分で読了チュートリアル

UTM Parameters for Google and Meta Ads

Google Ads and Meta need opposite UTM setups: auto-tagging on Google, manual UTMs with macros on Meta. How to tag each so GA4 and your CRM stay accurate.

Ana Kowalska
Marketing solutions engineering
UTM parameters for Google and Meta ads: Google auto-tags clicks with gclid so no manual UTMs are needed, while Meta requires manual UTMs with dynamic macros

Google Ads and Meta ads need opposite UTM setups, and getting them backwards is the most common paid-tracking mistake. Google auto-tags every click with a gclid, so you should not add manual UTMs, doing so actually breaks your cost data. Meta does not auto-tag at all, so you must add manual UTMs or the traffic shows up as direct. This post covers how to tag each one correctly.

If you are new to the tags themselves, UTM parameters explained is the primer and the free UTM builder generates the tagged URLs. This piece is specifically about the two big ad platforms, where the rules diverge.

Google Ads has its own click identifier, and it is better than a UTM for Google's own data.

With auto-tagging enabled, Google appends a gclid parameter to every ad click. GA4 reads that gclid to set the source to google and the medium to cpc, and crucially to pull in the cost, keyword, and campaign data that only Google has. If you add manual utm_source and utm_medium on top, they override the gclid attribution and GA4 loses the cost data. So the rule for Google Ads is simple: leave auto-tagging on, and do not add manual UTMs to the final URL.

Google Ads auto-tagging a click with gclid so no manual UTMs are needed, next to Meta ads which do not auto-tag and require manual UTM parameters with dynamic macros

The one exception is when you need Google Ads campaign data somewhere GA4 is not, like a CRM that cannot read gclid. Then you add UTMs as well, accepting that GA4 will lean on them. For most teams, that exception does not apply, and the cleanest Google setup is gclid alone.

Meta Ads: Manual UTMs with Macros

Meta is the mirror image. There is no auto-tagging, so a Meta click with no UTMs lands in GA4 as direct or unassigned traffic, and the campaign is invisible.

The fix is the URL parameters field in Ads Manager, set at the ad-set or ad level, filled with UTMs that use Meta's dynamic macros so the values populate themselves:

utm_source=facebook&utm_medium=paid_social&utm_campaign={{campaign.name}}&utm_content={{ad.name}}&utm_id={{campaign.id}}

The macros in double braces are replaced by Meta at delivery time, so utm_campaign fills with the real campaign name without you typing it per ad. Set the source to facebook or instagram, keep the medium consistent (paid_social is common), and let the macros handle the rest. Enforce lowercase and a fixed vocabulary, because a mix of Facebook and facebook splits the reports.

The iOS Privacy Angle

Here is a reason to keep UTMs even where a platform tags for you.

Apple's Link Tracking Protection strips known click identifiers, gclid and fbclid among them, from URLs in some contexts like Mail and private browsing. It does not strip standard utm_ parameters. So on traffic where Apple has removed the platform identifier, a UTM you added still carries the attribution through. For campaigns aimed at iOS-heavy audiences, that resilience is worth the extra tag, and it is why the two systems are complementary rather than competing.

iOS Link Tracking Protection stripping the gclid and fbclid click identifiers from a URL while leaving the standard utm_source, utm_medium, and utm_campaign parameters intact

If you want the tagged links to also be short, branded, and clickable in an ad or a bio, Elido's campaigns group tagged links and shorten them, and you can start on the free plan.

Common Mistakes That Break Ad Tracking

Three errors account for most broken paid-ads reporting.

The first is adding manual UTMs to Google Ads on top of auto-tagging, which overrides the gclid and wipes out cost data in GA4. Pick one, and for Google pick gclid. The second is forgetting UTMs on Meta entirely, which drops the traffic into the direct or unassigned bucket where it is invisible. Meta needs them every time. The third is inconsistent values across platforms and campaigns: facebook here, Facebook there, paid_social in one place and paid-social in another. UTM values are case-sensitive and literal, so each variant becomes its own row and the report fragments. Lock a lowercase taxonomy, write it down, and reuse it, because the tool cannot fix naming drift and a report built on top of it cannot either.

How to Check It's Working

Do not assume the tags fired; verify them.

Click your own live ad, or a preview, and read the URL that lands in the address bar. For Google, you should see a gclid appended and no stray UTMs. For Meta, you should see your utm_ values with the macros filled in, not the literal double-brace text. Then open GA4's Traffic Acquisition report a day later and confirm the source and medium read the way you intended: google / cpc for Google, facebook / paid_social for Meta, since GA4 maps the values into its campaign reports. If a campaign is landing in direct or unassigned, a tag is missing or malformed, and this five-minute check catches it before a whole flight reports wrong.

A Quick Reference

The whole thing fits in one table.

PlatformTaggingWhat to do
Google AdsAuto-tag (gclid)Leave auto-tagging on; do not add manual UTMs
Meta AdsNoneAdd manual UTMs with dynamic macros in URL params
LinkedInNoneAdd manual UTMs manually
Email, etc.NoneAdd manual UTMs; shorten the result

Get those two big ones right and the rest follows the same manual pattern: any channel that does not auto-tag gets manual UTMs, and every long tagged URL gets shortened so it stays usable in a post, a bio, or on print. For the naming discipline that keeps all of it clean, UTM naming conventions is the companion, and track UTM campaigns end-to-end shows where the data lands.

よくある質問

Should I add UTM parameters to Google Ads?

Usually no, not manually. Google Ads auto-tagging appends a gclid that GA4 reads to set the source and medium and pull in cost data. Adding manual UTMs on top overrides that and you lose the Google Ads cost figures in GA4. Leave auto-tagging on. Add manual UTMs only when you need the campaign data in a tool that cannot read gclid, like some CRMs.

Do I need UTM parameters for Meta ads?

Yes. Meta does not auto-tag, so without manual UTMs your Meta traffic shows up as direct or unattributed. Add UTMs in the URL parameters field at the ad-set or ad level, using Meta's dynamic macros so the campaign and ad names fill in automatically. This is the opposite of Google Ads, where manual UTMs cause problems.

What is the difference between gclid and UTM parameters?

A gclid is Google's own click identifier, added automatically by auto-tagging, and it carries Google Ads cost and campaign data into GA4. UTM parameters are open, manual tags that any analytics tool can read. gclid is richer but Google-only and Google-readable; UTMs are simpler but universal. Serious paid-search setups run gclid auto-tagging and add UTMs only where a non-Google tool needs them.

Do UTM parameters survive iOS Link Tracking Protection?

Yes. Apple's Link Tracking Protection strips known click identifiers like gclid and fbclid from URLs in some contexts, but it leaves standard utm_ parameters intact. That is one practical reason to keep UTMs on campaigns even where a platform auto-tags: the UTM survives where the platform identifier may not.

What UTM values should I use for Facebook and Instagram ads?

A common convention is utm_source=facebook (or instagram), utm_medium=paid_social, and utm_campaign, utm_content, and utm_id filled from Meta's dynamic macros like {{campaign.name}} and {{ad.name}}. Keep everything lowercase and consistent. The exact source values are your choice; consistency across every campaign matters more than the specific words.

Elidoを試す

URLを貼り付けて短縮リンクを取得

登録不要。リンクは30日間有効。永久に保存するには登録してください。

Free、登録不要 · 1日あたり2件

Elidoを試す

EUホスティングのURL短縮サービス。カスタムドメイン、詳細な分析、オープンAPI付き。無料プラン - クレジットカード不要。

タグ
utm parameters google ads
utm parameters meta ads
utm for paid ads
auto-tagging gclid
facebook ads utm
campaign tracking ads

続きを読む