Sprites LogoSprites.ai
CustomersPricing
Sign in
Get a demo
Start 7-day trial→→
Start 7-day trial→→
Sprites LogoSprites.ai
  • Run adsMeta AdsFacebook and Instagram, scaledGoogle AdsSearch, PMax and ShoppingLinkedIn AdsB2B targeting and ABMTikTok AdsShort-form video that convertsReddit AdsReach communities by intentGoal OptimizationHit your ROAS or CPL target
    Create & researchAd GeneratorOn-brand ads for any channelCreative AnalyticsThe hooks and angles that winCompetitor IntelligenceRivals' ads, SEO and AI reachMarket ResearchAudience insight, with sources
    SEO & AI visibilityAI SEO ContentArticles written and publishedAI VisibilityGet cited in AI answersSEO Site AuditPrioritized fixes, site-wideKeyword & Traffic ResearchWhere the searches and gaps are
    Meet SpritesYour AI ads team, on every channelResearches, builds and launches campaigns, then optimizes them daily. You approve every change.Scale the winner +$600/dayApprovePaused 14 wasted keywords+ SEO & AI searchStart 7-day trial
  • By teamStartups & SMBsSenior marketing, no headcountMarketing teamsMore campaigns, same teamAgenciesEvery client, one workspaceEnterpriseApprovals, governance, scale
    By businessB2B & ABMPipeline from target accountsEcommerce & D2CProfitable ROAS at scalePLG SaaSSignups and trials, not clicksMobile appsInstalls that become usersFintechCompliant growth for financeHealthtechCareful, compliant growth
    Helghardt Avenant68% lower CPL in 6 weeksCustomer storyHow Rehive took its ABM playbook back from two agenciesHelghardt Avenant · Founder & CEO, RehiveRead the story
  • Ads LibraryReal ads from Meta, Google, LinkedIn, TikTok, Reddit and moreBlogIdeas and playbooks for modern marketingPrompt GalleryReady-to-run prompts for your next campaign
    Free toolsGlossaryReviewsCompare Sprites
  • Customers
  • Pricing
Sign in
Get a demo
Start 7-day trial→→
  1. Home/
  2. Attribution/
  3. posthog google ads conversion tracking

Attribution · Sprites diagnoses this

PostHog vs Google Ads: why your signups don't match

Google Ads counts conversions from its own tag, on the click date, across devices and with modeled conversions for opted-out users. PostHog counts the events it captures and credits them to the UTMs it stored on the person or session. Ad blockers, lost UTMs and a different definition of a signup make up most of the gap.

Start 7-day trial →Do it by hand

$1 today. Cancel anytime before day 7.

What Sprites checks

4 checks
  • ✓Signup event in PostHoguser_signed_up, fired 30 days
  • !Paid signups by utm_source41% with no UTM at all
  • ?Google Ads conversion actionCounts form submit, not signup
  • ✓Internal users filteredFilter on
Illustration of a typical broken account. Your own readout comes from your account.

Why it happens

Two different events

  1. Two different events

    The Google Ads tag usually fires on a form submit or thank-you page. PostHog counts the signup event your app sends once the account exists. Abandoned or failed signups count on one side only.

  2. UTMs lost before PostHog sees them

    A redirect, a separate app domain or an auth flow that drops the query string leaves the person without utm_source. PostHog then files them as direct. See PostHog UTM tracking.

  3. Ad blockers

    Many blockers stop analytics scripts that load from a third-party host. Without a reverse proxy, PostHog misses a slice of visitors that Google Ads still counts.

  4. Dates and modeling

    Google Ads reports on the click date and adds modeled conversions for users who declined cookies. PostHog reports on the event date and models nothing.

How to line them up, step by step

  1. Agree on one event

    In Google Ads open Goals, Conversions, Summary and check which page or event the primary action fires on. Compare it with the PostHog event you treat as a signup.

  2. Break PostHog signups down by source

    In PostHog create a Trends insight on the signup event and break it down by the person property Initial UTM source, then by Initial UTM campaign.

  3. Check the share with no UTM

    If a large share of signups shows no initial UTM source, the parameters are getting lost between the ad and the app. Test the ad URL end to end in a private window.

  4. Compare on conversion time

    In Google Ads add Conv. (by conv. time) and compare the same 30 days with the PostHog trend.

Steps checked against PostHog docs: Capturing UTM and campaign data; PostHog docs: Deploying a reverse proxy; Google Ads Help: About the Conversions (by conv. time) column.

Sprites diagnoses this

Sprites diagnoses it

Sprites lines up your PostHog signups and Google Ads conversions and shows where they split.

What Sprites does

  • Reads what your PostHog project actually tracks, so it compares the real signup event, not a guessed name.
  • Breaks PostHog signups down by utm_source, utm_medium and utm_campaign, including the share with no UTM at all.
  • Pulls Google Ads conversions per campaign and per conversion action for the same dates.

What it doesn't do

  • It does not send PostHog events back to Google Ads as conversions.
  • It does not edit your PostHog setup or your site.
Start 7-day trial →

Questions

Can PostHog send conversions to Google Ads?

Not natively as an offline import. Teams usually send the signup to Google Ads with the gclid through a server-side upload or a CDP. Sprites does not do that upload.

Why does PostHog show fewer paid signups than Google Ads?

Usually lost UTMs, ad blockers and a different event definition. Google Ads also models conversions PostHog never captured.

Which number should I trust?

PostHog for what users did after signup and for activation by source. Google Ads for bidding, because that is the number Smart Bidding learns from.

Does PostHog read the gclid?

PostHog stores the gclid as a campaign property when it is in the landing URL, so you can break signups down by it. See the gclid page for why it goes missing.

More: Tool vs ad platform

  • PostHog UTM tracking
  • PostHog vs Google Analytics for paid ads
  • What is gclid?
  • PostHog vs Meta Ads: why Meta claims more conversions
  • 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

Hubs

  • Why your tools disagree on conversions
  • Fix your ad account
  • Fix Google Ads problems
  • Fix your Meta ads
  • Fix your LinkedIn ads
  • Fix your Reddit ads
  • Fix Microsoft Ads problems

Reference

  • Attribution, defined
  • PostHog MCP server
  • Google Analytics MCP server
  • Google Ads MCP server
  • Incrementality
  • Marketing mix modeling
  • Ad specs

See where it breaks

Connect your accounts. Sprites reads them side by side and shows you exactly where the numbers split.

Start 7-day trial →Get a demo

Get the free AI-First Marketing Playbook

Packed with proven tactics, creative inspo, and automation tips to help you grow faster with less guesswork.

By clicking send you agree to the Terms and Conditions

Pillars

AI Marketing AgentVibe MarketingAI VisibilityAI Marketing AutomationAI for Meta AdsAI for Google AdsAI for LinkedIn AdsAI SEOAds LibraryChatGPT AdsAI AdsMCP Server

For Teams

For AgenciesFor EcommerceFor FintechFor HealthtechFor EnterpriseFor FreelancersFor Marketing Teams

Prompts Gallery

Marketing Campaign BuilderGoogle Ads Search Campaign BuilderCompetitor Meta Ads AnalyzerSEO Audit + Plan GeneratorGoogle Ads Campaign OptimizerGoogle Ads: PMax Campaign Builder

About

CustomersReviewsBlogTerms of ServicePrivacy PolicyDPACareersSitemap
Sprites TextWizard