hello@newnorth.nl+31 (0) 85 401 31 62
/Journal

Meta Ads against Google Analytics: where the differences come from

GuideAttributie2022.11.14
Freek Kampen
Freek KampenCo-founder, New North Digital

Facebook and Instagram traffic rarely shows up properly in Analytics. What causes it, and which fixes actually narrow the gap.

Why the numbers don't match

Every reporting tool is built differently and reports differently. Differences between sources come with the territory. But an ad platform reports on its own performance, which is not a neutral position.

Analytics usually is neutral, provided the origin information is passed correctly. With Meta, a lot goes wrong on that path. Treat around 10% difference as normal; beyond that there is something to fix.

How Analytics recognises your Meta traffic

Through the fbclid parameter Meta appends to your landing page URL, or through manual UTMs you add yourself.

Note that Meta reports two kinds of clicks: clicks and outbound clicks. Only the latter lead to a visit. Compare against the wrong number and the gap looks bigger than it is.

Differences between sessions and clicks

  • Clicks are not sessions. Two clicks inside the same 30 minute session is one session in Analytics and two clicks at Meta.
  • Sampling. On large datasets Analytics estimates, so you see fewer sessions than occurred.
  • Redirects strip your tagging. HTTP to HTTPS, or any other hop, can drop the parameter and the session never gets credited to Meta.
  • Ad blockers and disabled JavaScript. Analytics doesn't fire, Meta has already counted the click.
  • The tracking code doesn't load on the landing page. No code, no session.
  • The visitor leaves before the tag loads. The fbclid never reaches Analytics and the click disappears.
  • Bookmarks carrying the fbclid. Analytics reads every later visit as Meta traffic while Meta registers no click.

Differences in conversions

  • Different attribution. Meta reports a conversion regardless of which interaction it could be credited to. Analytics uses last non-direct click.
  • Click time against conversion time. Meta books on the click date, Analytics on the purchase date. A click on the 22nd and a purchase on the 25th land in different places.
  • A different lookback window. Analytics looks back up to 30 days by default; Meta uses a shorter default for clicks and views. That alone produces a gap.
  • View-based conversions. Meta counts conversions after an impression alone. Analytics has no such thing.
  • Cross-device. Meta measures across devices as long as people are logged into the platform. Analytics does not show that by default.

How to compare fairly

  • Wait at least one conversion window, usually two weeks.
  • Use a generous period for meaningful numbers.
  • Set the same lookback window on both sources.
  • Use both clicks and sessions, and take Meta's outbound clicks.
  • Use the same attribution model on both sides.
  • Put both accounts in the same timezone, or everything shifts by a day.

What actually narrows the gap

  • Deploy the Meta pixel and events through Google Tag Manager. One place to manage and verify it.
  • Go server-side with sGTM and the Conversions API. The biggest intervention: it limits the effect of ad blockers and of browsers that block cookies, such as Safari and iOS.
  • Always add UTM parameters to your Meta ads so you don't depend on fbclid alone.
  • Switch Meta's reporting to click-based attribution when you want to compare with Analytics.
  • Check the tag fires on every page.
  • Keep redirects down and the site fast.

The takeaway

There are many causes and most of them are not your fault. Around 10% difference is normal and the truth sits somewhere in between.

Use this as a checklist to find where your own gap comes from. If it stays large and you run a lot of mobile traffic, look at Meta's in-app browser as well: that is a separate mechanism which can account for most of the difference.

Want to talk about this?

Let's talk data.

Tell us about your stack, your goals, the data you wish you had.

Takes 1 minute