Skip to main content

Why Your Paid Ad Traffic Shows as Referral in Google Analytics (And How to Fix It)

· 6 min read
Aleksandar Vucenovic
Chief Growth Officer

featured image

You're running paid ads on Facebook, TikTok, or LinkedIn. You check Google Analytics expecting to see your campaigns driving traffic. Instead, you find m.facebook.com / referral or l.instagram.com / referral cluttering your reports.

Sound familiar? You're not alone — and the fix is simpler than you might think.

TL;DR

  • Google Ads auto-tags for GA4. Most other platforms (Meta, TikTok, LinkedIn, Pinterest) do not.
  • Without UTM parameters, GA4 sees your paid traffic as generic referral traffic.
  • Add UTM parameters to every ad — copy-paste templates below.
  • Each platform uses different macro syntax — don't mix them up.

🔴 The Problem: Paid Traffic Showing as Referral

When someone clicks your Facebook ad and lands on your site, two things happen:

  1. Facebook adds fbclid — a click ID that Facebook uses for its own attribution in Ads Manager.
  2. Google Analytics sees... nothing useful. It just knows the visitor came from m.facebook.com.

The result? Your GA4 reports show:

What you expectWhat you get
facebook / cpcm.facebook.com / referral
instagram / cpcl.instagram.com / referral
tiktok / cpctiktok.com / referral
linkedin / cpclinkedin.com / referral

Your paid campaigns look like organic social traffic, making it impossible to measure ROI properly.

💬 Real-World Example

Here's an actual support conversation we had recently:

Customer: My problem is that in Google Analytics all my Meta traffic shows as referral m.facebook.com instead of paid Facebook and Instagram.

Support: If your Facebook/Instagram ads do not use UTM parameters, GA4 has to guess the source/medium from the referrer. That often leads to m.facebook.com / referral instead of something clean like facebook / cpc.

Customer: My Facebook ad link did not have any UTMs, could that be the reason?

Support: Yes, that alone can absolutely be the reason.

Customer: I don't recall adding them before.

Support: That explains a lot. Without UTMs, GA4 never had a clear signal that this traffic was paid.

The customer had been running ads for months without UTMs. All that paid traffic was being misattributed as referral traffic in their analytics.

🟢 The Solution: UTM Parameters

UTM parameters are tags you add to your ad URLs that tell Google Analytics exactly where the traffic came from:

https://yourstore.com/product?utm_source=facebook&utm_medium=cpc&utm_campaign=summer-sale

When GA4 sees these parameters, it correctly attributes the session:

  • Source: facebook
  • Medium: cpc
  • Campaign: summer-sale

⚙️ Which Platforms Auto-Tag vs Require Manual UTMs

Not all ad platforms are created equal when it comes to Google Analytics attribution:

PlatformAuto-tags for GA4?What you need to do
Google Ads✅ Yes (gclid)Nothing — auto-tagging works out of the box
Microsoft Ads✅ Yes (msclkid)Use auto-tagging (recommended over manual UTMs)
Meta (Facebook/Instagram)❌ NoAdd UTM parameters manually
TikTok❌ NoAdd UTM parameters manually
LinkedIn❌ NoAdd UTM parameters manually
Pinterest❌ NoAdd UTM parameters manually
Google Ads & Microsoft Ads

These platforms have auto-tagging enabled by default. Their click IDs (gclid and msclkid) automatically populate source/medium in GA4 when your accounts are linked. Stick with auto-tagging — it's more reliable than manual UTMs for these platforms.

Google Merchant Center / Shopping Feeds

Do NOT add UTM parameters to your Google Shopping product feed URLs. Google internally tags all Merchant Center traffic. Adding UTMs to feed URLs can cause duplicate or conflicting attribution data in GA4, making your reports less accurate rather than more.

📋 Copy-Paste UTM Templates

Here are ready-to-use templates with dynamic macros that automatically insert campaign, ad set, and ad names:

Meta (Facebook / Instagram)

utm_source=facebook&utm_medium=cpc&utm_campaign={{campaign.name}}&utm_content={{adset.name}}&utm_term={{ad.name}}

📖 Meta Dynamic Parameters Documentation


TikTok

utm_source=tiktok&utm_medium=cpc&utm_campaign=__CAMPAIGN_NAME__&utm_content=__AID_NAME__&utm_term=__CID_NAME__

📖 TikTok UTM Parameters Documentation

TikTok Auto-UTM Feature

TikTok offers an option to automatically add utm_source and utm_medium to your ad URLs. Enable this in TikTok Ads Manager for a quick baseline, then add the campaign/ad group macros manually for full tracking granularity. Learn more


LinkedIn

utm_source=linkedin&utm_medium=cpc&utm_campaign={{CAMPAIGN_NAME}}&utm_content={{AD_NAME}}

📖 LinkedIn URL Tracking Parameters Documentation

LinkedIn Hierarchy Update (October 2025)

LinkedIn updated its entity naming in October 2025 — "campaigns" are now "ad sets" in some accounts. If you're using the new hierarchy, use {{AD_SET_NAME}} and {{AD_NAME}} instead of {{CAMPAIGN_NAME}} and {{CREATIVE_NAME}}. Check which version your Campaign Manager account uses.


Pinterest

utm_source=pinterest&utm_medium=cpc&utm_campaign={campaign_name}&utm_content={adgroup_name}

📖 Pinterest Dynamic Tracking Documentation


⚠️ Important: Macro Syntax Differs by Platform

Each platform uses different delimiters for dynamic macros. You cannot mix and match:

PlatformSyntax StyleExample
Meta{{lowercase}}{{campaign.name}}
TikTok__UPPER_UNDERSCORE____CAMPAIGN_NAME__
LinkedIn{{UPPER_CASE}}{{CAMPAIGN_NAME}}
Pinterest{single_curly}{campaign_name}

Use the exact syntax specified by each platform. A TikTok macro won't work in Facebook, and vice versa.

📍 Where to Add UTM Parameters

In Meta Ads Manager, you add UTM parameters at the ad level:

  1. Edit your ad
  2. Scroll to the Tracking section
  3. Find URL Parameters
  4. Paste your UTM string

Screenshot: Meta Ads Manager URL Parameters field

Add to Every Ad

UTM parameters are not inherited from the campaign or ad set level. You must add them to each individual ad. If you duplicate an ad, the UTMs carry over — but new ads start blank.

🔧 Troubleshooting: UTMs Added But Still Seeing Referral?

If you've added UTM parameters but still see referral traffic in GA4, check these common issues:

✅ Checklist

  • Redirects stripping parameters — If your site redirects from http to https or www to non-www, ensure the redirect preserves query parameters. Test by clicking your ad and checking the final URL in your browser's address bar.

  • Caching or optimization plugins — Some aggressive caching or JavaScript optimization plugins can delay or strip URL parameters. Temporarily disable "delay JS" or "combine JS" features and test again.

  • Payment gateway returns — If customers go to an external payment page (PayPal, Klarna, etc.) and return, GA4 may start a new session attributed to the payment provider. Add payment domains to GA4's referral exclusion list.

  • Multiple tracking implementations — If you have Google Analytics installed via multiple methods (Pixel Manager + another plugin, or hard-coded), they may conflict. Ensure GA4 is implemented only once.

  • Consent not given — If you use Explicit Consent Mode, tracking only starts after the visitor accepts cookies. Traffic from visitors who don't consent will appear with limited attribution.

📈 What to Expect After Adding UTMs

Once you've added UTM parameters to your ads:

BeforeAfter
m.facebook.com / referralfacebook / cpc
l.instagram.com / referralfacebook / cpc
tiktok.com / referraltiktok / cpc
linkedin.com / referrallinkedin / cpc

Important: This only affects new traffic. Historical data cannot be retroactively fixed — sessions already recorded as referral will stay that way. But going forward, your reports will finally show accurate paid attribution.


This article will be updated as we confirm UTM templates for additional platforms.

Interested to get updates?

Sign up to our monthly newsletter today.