AboutAll ServicesFree EmailOur WorkGuidesFAQContact
ServicesSEO ServicesEcommerce RankingSpeed OptimizationWebsite AuditGoogle Ads ManagementMeta Ads ManagementSocial Media ManagementAnalytics & TrackingShopify Catalogue SEO
Build & SolutionsWordPress DevelopmentEcommerce DevelopmentCustom EcommerceFlying CartFlying AdsFlying Blog
Free ToolsAll free tools →
Shopify toolsShopify Store Launch ChecklistShopify Product CSV CheckerShopify Variant GeneratorShopify Bulk Price EditorShopify SEO Bulk EditorShopify Redirect CSV GeneratorShopify Profit Margin and Fees CalculatorShopify Theme and App DetectorShopify App Weight CheckShopify Tracking CheckShopify Store Name GeneratorMerchant Center Readiness CheckProduct Title BuilderBarcode Generator and GTIN CheckerVolumetric Weight CalculatorDiscount Code GeneratorSpeed Report
Domain and securityEmail Deliverability CheckWebsite Security GradeDNS CheckerWhois LookupDomain Expiry Checker
SEO and crawlingAI Crawler CheckerRedirect CheckerRobots.txt GeneratorSitemap CheckerSchema Markup GeneratorWord Counter and Writing AnalyzerJSON Formatter and ViewerFavicon GeneratorCharacter CounterSERP and Social PreviewSlug GeneratorTitle Case Converter
Ads and trackingShopify Tracking CheckUTM BuilderBreak-even ROAS CalculatorAd Metrics CalculatorLTV and CAC CalculatorROI and Break-even Calculator
Store and speedSpeed ReportShopify App Weight CheckMerchant Center Readiness CheckShopify Profit Margin and Fees CalculatorShopify Theme and App DetectorShopify Redirect CSV GeneratorBarcode Generator and GTIN CheckerImage to WebP ConverterGST Invoice GeneratorE-way Bill Validity CalculatorShopify Product CSV CheckerImage ResizerImage CompressorReduce Image Size in KBPNG to JPG ConverterImage CropperPassport Size Photo MakerJPG to PDF ConverterShopify Variant GeneratorShopify Bulk Price EditorShopify SEO Bulk EditorShopify Store Name GeneratorShopify Store Launch ChecklistProduct Title BuilderVolumetric Weight CalculatorDiscount Code Generator
Profiles and messagingWhatsApp Link & QR GeneratorGoogle Review KitLinkedIn Headline GeneratorUPI QR Code GeneratorEmail Signature GeneratorvCard QR Code GeneratorQR Code GeneratorQR Code Scanner
Dedicated SitesServices ↗Care ↗Firstlight ↗Truefeed ↗Woo2Shopify ↗Shopify ↗Realty Leads ↗AnkShakti ↗

Guide

Why GA4 and Google Ads never show the same numbers

Why don't GA4 and Google Ads conversions match?

5 min read

Short answer

Because they count differently by design. Google Ads credits a conversion to the ad click and to the day of that click, and can include cross-device conversions. GA4 credits by its own attribution model on the day the conversion happened, and loses visitors who refuse consent or block scripts. A steady gap is normal. A growing or sudden gap is a tracking problem.

The differences that are supposed to be there

Which day. Google Ads reports a conversion against the date of the ad click. GA4 reports it on the date it happened. A shopper who clicks on Monday and buys on Thursday lands on different days in each tool.

Who gets credit. Google Ads only reports conversions its ads touched. GA4 splits credit across every channel in the journey. The same order can be fully Google's in one and partly Meta's or organic in the other.

Who is visible. GA4 depends on a script running in the visitor's browser. Ad blockers and consent refusals remove visitors that Google Ads can still count from its own click data.

Timing. Google Ads keeps restating recent days as attribution settles. We have seen a single day's figure move by more than 40% over 36 hours with nothing changed. Compare closed days, read at least a day later.

The differences that are faults

A second GA4 property. More common than it should be. We regularly find two GA4 properties collecting on one store, each partial, and reports being read from whichever someone opened first.

Server-side purchases that skip GA4. On one store with server-side tracking, purchases were being sent to Google Ads from the server but never to GA4, because the GA4 tag only fired for browser traffic. Google Ads was right and GA4 kept undercounting every order that came through the third-party checkout.

A third-party checkout. If the checkout completes the order off your theme, GA4's purchase event never fires in the browser. GA4 will show sessions and add to carts and almost no purchases.

Duplicate purchase events. A theme tag plus an app plus Tag Manager all firing purchase. GA4 then reports more revenue than Shopify.

Try it now: UTM Builder → · Shopify Tracking Check →

What size of gap is normal

There is no universal figure, which is why the useful test is stability, not size. Put a few weeks side by side. A gap that holds roughly steady is the design differences above. A gap that jumps after a theme change, an app install or a checkout switch is a fault, and the date it started tells you where to look.

Which number to trust for what

Use the store's own orders as the truth for revenue. Use Google Ads for decisions inside Google Ads, because that is what its bidding learns from. Use GA4 for journeys, landing pages and cross-channel comparison.

What you should never do is judge a channel by GA4 purchases on a store whose checkout GA4 cannot see. Fix the collection first, then compare.

Quick checks

In GA4, Admin, Data streams: is there exactly one web stream, and is it the one your site tag uses?

In Tag Assistant, place a test order and count how many purchase events fire. The answer should be one.

Set GA4 data retention to 14 months. It defaults to 2, and the history you lose cannot be recovered.

How we can help

Want this done for you?

These are the services that fix what this guide describes. Prices are starting prices.

Not sure which you need? Book a free 30-minute call and bring this result, or send us a message. No obligation, no pitch deck.

GA4 & GTM setup →Server-side tracking →Analytics & tracking →

Want free stats on your site first?

Send us the URL. We pull the numbers from your own accounts and tell you what is wrong before there is any quote, and before there is any contract.

No pitch deck, no obligation. Bring your URL and we will look at it together.