Why it happens
View-through and engage-through credit
View-through and engage-through credit
Meta credits people who saw or engaged with an ad within a day and converted without clicking. PostHog has no record of an ad view, so those conversions show as direct or organic.
In-app browsers
A tap in Instagram opens your site inside the app. If the person signs up later in Safari or on desktop, PostHog sees a new anonymous user with no UTMs, while Meta still matches them.
Inconsistent or missing UTMs
Ads with no URL parameters, or values like facebook, fb and meta used side by side, scatter Meta signups across rows. See PostHog UTM tracking and fbclid.
Different events
Meta often optimizes for a Lead or a pixel event that fires before the account exists. PostHog counts the signup your app records.
How to line them up, step by step
Pull Meta on click only
In Ads Manager open Columns, Compare attribution settings and add 7-day click. That is the closest Meta number to what PostHog can trace.
Break PostHog signups down by UTM
In PostHog create a Trends insight on your signup event, break it down by Initial UTM source, then by Initial UTM campaign. Group the Meta spellings together.
Standardize URL parameters
In each Meta ad, under Destination, set URL parameters to one consistent utm_source and utm_medium, with the campaign name in utm_campaign.
Compare the same dates
Use a full 30 days and compare PostHog signups with the 7-day click column, not the default Meta total.
Steps checked against Meta Business Help Center: About attribution settings; Meta Business Help Center: Compare attribution settings; PostHog docs: Capturing UTM and campaign data.
Sprites diagnoses this
Sprites diagnoses it
Sprites lines up your PostHog and Meta numbers and shows where they split.
What Sprites does
- Pulls Meta conversions per campaign and day on the basis you see in Ads Manager.
- Breaks PostHog signups down by utm_source and utm_campaign, and shows the share that arrived with no UTM.
- Runs a PostHog funnel from landing to signup to activation per source, so you see whether Meta signups activate.
What it doesn't do
- It does not send PostHog events to Meta or set up the Conversions API.
- It does not change your Meta attribution settings.
Questions
Why does Meta report more conversions than PostHog?
Meta counts view and engagement credit, conversions on other devices and modeled conversions. PostHog only counts events it captured with the UTMs it saw.
Does PostHog capture fbclid?
Yes, when fbclid is on the landing URL PostHog stores it as a campaign property. It is often stripped by redirects or privacy features before it arrives.
Should I install the Meta pixel through PostHog?
You can forward events with PostHog destinations, but the gap above stays, because it comes from how each tool attributes, not from the transport.
Which number should decide my Meta budget?
Activated users by source in PostHog over a few weeks, checked against Meta 7-day click. If both trend the same way, the budget move is safe.
- PostHog vs Google Ads: why your signups don't match
- PostHog UTM tracking
- Meta ads attribution settings
- What is fbclid?
- GA4 vs Google Ads conversions: why the numbers don't match
- GA4 vs Meta Ads conversions: why Meta reports more
- GA4 vs LinkedIn Ads conversions: why they never match
- PostHog shows fewer LinkedIn signups than Campaign Manager
- HubSpot vs Google Ads: why your lead counts differ
- HubSpot vs Meta Ads: why the leads don't add up
- HubSpot vs LinkedIn Ads: why the leads don't match
- Google Ads and Meta both claim the same sale
See where it breaks
Connect your accounts. Sprites reads them side by side and shows you exactly where the numbers split.