Skip to content
GetProfit

Ecommerce Attribution: Google Ads vs GA4 vs Your Shop

Find out which sales number to use for bidding, channel budgets and profit, and why Google Ads dates a sale by the click and your shop by the order.

Google Ads, GA4 and your shop report different sales because each of them counts something different. Your shop records every order once, on the order date, and Google Ads counts only orders that followed its own ads, on the click date. GA4 counts purchases from every channel on the day they happened and splits the credit by your attribution settings. All three can be right at once: use the shop for revenue and profit, Google Ads for bidding, and GA4 for comparing channels.

Attribution only splits what your tags have already counted. If an order is counted twice or arrives with the wrong amount, every model passes the error on. Check conversion tracking for your store before you compare reports.

Why do Google Ads, GA4 and your shop count different sales?

Each system answers its own question.

  • Your shop answers “what did I sell?”. It sees every order, with its real amount, whatever channel the customer came from.
  • Google Ads answers “what did my ads earn?”. It gives credit only to interactions with Google ads. The attribution model of each conversion action decides which ad interaction gets the credit.
  • GA4 answers “how did visits from all channels turn into purchases?”. It sees purchases from every channel and splits the credit for each key event, such as a purchase. The split follows the settings of your property, the GA4 setup for your site.

The same order passes through all three, and each records it under its own rules.

Your shopGoogle AdsGA4
What it countsevery order placedconversions after an interaction with your Google adskey events your site sends
Who can get creditno channel, unless you record a sourceGoogle Ads onlypaid and organic channels, or Google paid channels only, depending on the model
How credit is split—data-driven or last click, set per conversion actiondata-driven, paid and organic last click, or Google paid channels last click
Which day the sale lands onorder datedate of the clickdate of the purchase
Time zoneyour shop’sthe Google Ads account’sthe GA4 property’s
How long after the click it still counts—the conversion window, set per conversion actionthe purchase always counts; touchpoints get credit within the lookback window of 30, 60 or 90 days
Returns and cancellationsyes, if you record themonly if you send adjustmentsonly if your site sends refund events
Best forrevenue, margin, profitbidding and budgets inside Google Adscomparing channels, behaviour on the site

The date and credit rows follow Google’s documentation. According to the Google Ads API documentation (Manage offline conversions), Google Ads reports imported conversions on the date of the original click, not the date of the conversion. The Google Ads columns marked “(by conv. time)” give the other view, by the day the conversion happened (Conversion reporting).

GA4 puts an event on the day it happened (API dimensions and metrics). According to the GA4 documentation (AttributionSettings), a separate setting decides which channels can receive credit for conversions sent to Google Ads. The options are Google paid channels only, or paid and organic channels. In the second case, only the share credited to Google Ads appears in Google Ads.

What is an attribution model, and which ones are left?

An attribution model is a rule or an algorithm that shares credit for a sale between the ads, clicks and channels on the customer’s path. Older guides to marketing attribution still describe first click, linear, time decay and position-based models. In Google’s tools they are gone.

According to the Google Ads Developer Blog (First click, linear, time decay, and position-based attribution models are going away, April 2023), Google Ads now offers two attribution models of its own: last click and data-driven. Google said it would switch conversion actions still on one of the old models to data-driven, starting in September 2023. GA4 has three models, according to its documentation (AttributionSettings), and the old rule-based models are not among them.

ModelWhere you can choose itHow the credit is shared
Last clickGoogle Adsall of it goes to the last clicked ad
Data-drivenGoogle Ads and GA4split between the touchpoints on the path
Paid and organic last clickGA4100% goes to the last channel the customer clicked through; direct traffic is ignored
Google paid channels last clickGA4100% goes to the last Google paid channel the customer clicked through

Data-driven attribution bases each touchpoint’s share of the credit on your own conversion data instead of a fixed rule. In Google Ads, it uses machine learning to split the credit between the clicks on the path. In GA4, each data-driven model is specific to one advertiser and one key event.

For a store, the two Google Ads models can give similar numbers, and there is a structural reason. If every Google ad a customer clicked belonged to the same Performance Max campaign, both models give that campaign all the credit that goes to Google Ads. Data-driven vs last click explains when the choice still changes your numbers.

The two tools also treat a change of model differently:

What you changeGoogle AdsGA4
The attribution model“current model” columns show how past conversions would look under the model you selectedapplies to historical and future data in reports
Where it is setper conversion action, in its settingsfor the whole property, in the attribution settings in Admin
What else it movesthe “Conversions” column, which conversion-based bid strategies such as Target ROAS and Target CPA optimise forGA4 reports; the setting for channels that can receive credit also changes what reaches Google Ads

The last row is why the Google Ads model matters more than the GA4 one. According to the Google Ads API documentation (metrics), conversion-based bid strategies optimise for the conversions in that column, so the model decides what Target ROAS learns on.

Why don’t Google Ads and GA4 show the same purchases?

Google Ads and GA4 disagree even when both are set up correctly. Google Ads vs GA4 conversions covers each cause in detail. Here they are in short.

CauseGoogle AdsGA4What it does to the gap
SourcesGoogle Ads onlyall channelsGA4 can give an order to email or organic search; Google Ads keeps it
Last-click rulethe last clicked Google adthe last clicked channel, except directa path “paid search, then email” is Google’s in one report and email’s in the other
Datethe day of the clickthe day of the purchasea click on the 31st and a purchase on the 1st land in different months
Time zoneaccount time zoneproperty time zoneorders near midnight move between days
Windowthe conversion window you setthe purchase always counts; the lookback window limits which touchpoints get credita purchase long after the click stays in GA4 and drops out of Google Ads
Countingone or every conversion per click, as you set itevery purchase event your site sendsrepeat purchases after one click split the reports
Credit sharessplit between Google ad interactionssplit between channels; decimals appear in reportsper-campaign totals stop being whole numbers

Apply the GA4 definitions to a path of Display, Social, Paid Search and Email. Paid and organic last click gives 100% of the credit to the last channel the customer clicked through, here Email. Google paid channels last click gives it to the last Google paid channel on the path, here Paid Search.

GA4 calls its conversion window the lookback window. For purchases it is 90 days by default, and you can shorten it to 60 or 30 days.

The column you pick for the comparison can create a gap too. According to the Google Ads API documentation (Conversion goals), the “Conversions” column in Google Ads counts only primary conversion actions. “All conversions” also includes secondary ones.

To compare with GA4, use the columns marked “(by conv. time)”, such as “All conv. (by conv. time)”. They date each conversion by the day it happened, as GA4 does.

Finally, your site can send the same purchase twice: through the Google Ads tag and as a GA4 key event imported into Google Ads. If both are primary, one order becomes two conversions. GA4 import vs Google Ads tag explains which of the two should drive bidding.

Why does your shop disagree with both reports?

Your back office sees orders that no tag recorded, and tags record orders your back office never kept. The gap can go either way.

The shop has more orders than the reports when:

  • a visitor declined cookies and your tags were blocked or ran without cookies;
  • the purchase event doesn’t fire for some payment methods or thank-you pages; GA4 purchase event problems shows how to find which;
  • the order came by phone, from a marketplace or from a customer who typed your site’s address into the browser.

The reports have more orders than the shop when:

  • two primary goals count the same purchase, which is how one order gets counted twice;
  • a test order, a wholesale order or a checkout glitch arrived with an amount far above your usual order value;
  • an order was cancelled or returned, and nobody told Google. The Google Ads API documentation (Import conversion adjustments) describes how to retract a conversion or restate its value, identified by its order ID. Retracting returned orders gives the steps for a store.

The amounts differ too. Your conversion value is whatever your tag sends: with or without tax, shipping and discounts. If the tag sends one fixed number for every order, revenue in the report is the number of orders multiplied by that number.

Returns are invisible in our own data as well. In the Google Ads data we analyse, revenue is what customers ordered, not what they kept. Reconciling Google Ads with shop orders gives a step-by-step check: a 30-minute comparison that shows which side is off and in which direction.

What happens when Meta and Google claim the same order?

Both platforms count it. Each ad platform sees only its own ads and credits the orders they touched, by its own rules. Add up the purchases from Google Ads, Meta and your email tool, and the total can be larger than the number of orders your shop received. Each report is still right about its own ads.

Two views avoid the double count. GA4 applies one rule to all channels, so it shares out each purchase only once.

MER, all your shop’s revenue divided by all your marketing spend, skips attribution altogether. You lose the view by channel and get a number that no platform can inflate. Meta and Google double counting shows how to split the credit between platforms.

Which number should you use for which decision?

Each report is right about its own question. The mistake is to carry a number built for one decision into another.

DecisionNumber to readWhy this one
Setting a Target ROAS, judging Smart BiddingGoogle Ads: Conv. value / cost of the primary purchase actionthis is the data the bidding learns on
Splitting budget between Google, Meta and emailGA4 channel report, checked against MERone rule for all channels; each platform counts its own touches
Whether advertising pays offshop revenue, margin and costsonly the shop sees returns, cost of goods and delivery
Which products to push or cutGoogle Ads product data, with GA4 item reports for what happens on the pageGoogle Ads sees spend per product; GA4 sees views, carts and drop-offs
Whether the ads add sales at alla holdout or geo testattribution shares credit; it doesn’t measure what would happen without the ads
Monthly health checkeach number against its own historya gap that suddenly changes points to tracking before performance

ROAS in Google Ads is a bidding number: conversion value divided by cost, under Google’s attribution rules. Whether that ROAS earns money depends on your margin, which is the subject of ecommerce unit economics. For products, read GA4 item reports next to Google Ads. Together they show which products get clicks but no sales, and whether the product page or the offer is the weak part.

In our data, Performance Max holds almost all of the budget

Performance Max runs in 141 of 146 stores in our data and takes a median 95.7% of their ad budget (GetProfit data, June 2025 – June 2026). Its median ROAS is 476%, across the 138 of these stores included in the ROAS calculation. We count shares inside each store, so different currencies don’t mix.

This changes what attribution means for a typical store. When almost all the money runs through one campaign type, the question “which campaign gets the credit” mostly falls away. Another one takes its place: how much of the revenue Performance Max reports would have come anyway? One example is sales to people who were already searching for your brand. Performance Max attribution shows how to check that for your store.

Read our numbers as observations, not an experiment. The 476% is revenue that Google Ads attributed to Performance Max, divided by its cost. It counts ordered revenue, not profit. It also says nothing about incrementality, the sales that would not have happened without the ads.

Can you trust the conversions before you split the credit?

Attribution decides who gets credit for an order. It assumes the order is real and counted once, and that assumption is worth checking first.

The portal’s conversion check looks at four things in each campaign:

  1. Event. Do the ads learn on a purchase, or on a page view or an add to cart?
  2. Value. Does the real order amount arrive with the order, or does every order carry the same number?
  3. Duplicate goals. Do two primary goals count the same purchase?
  4. Amounts. Are there orders many times larger than your usual order? The portal treats a conversion worth more than 30 times the median order value as an outlier. It lists such conversions separately, with the date, campaign and product.

The portal then weights conversion trust by spend: a campaign counts as much as the money that runs through it.

Trust also breaks in layers. If the event is wrong, almost every number built on it is wrong too. If only the value is wrong, the number of orders still holds.

When only the value is wrong, the portal hides ROAS and greys out revenue with a “not trusted” mark. It counts by the number of orders and the cost of one order instead.

The check has a clear limit. Your attribution model, conversion windows and counting method are outside it. You check those yourself, in each conversion action’s settings in Google Ads.

Do your ads add sales, or only take credit for them?

Every attribution model shares out orders that already happened. Whether an order would have happened without the ad is a separate question, and it needs a separate tool. That applies to data-driven attribution too: it shares credit only between the touchpoints it can see.

To measure what the ads add, you need a test or a model built for that question:

  • A holdout or geo test. You switch the ads off for part of the audience or part of the country and compare sales. Incrementality testing explains which test a small store can run.
  • Marketing mix modelling. A statistical model reads months of spend and sales by channel. Google’s Meridian is an open-source example, and its documentation describes calibrating it with experiment results. Marketing mix modelling for online stores looks at whether a store with one or two years of data gets anything from it.

Which signals get lost before attribution even starts?

Attribution splits only the orders your tags saw. Three things decide how many that is.

Consent. According to Google’s developer documentation (Consent mode overview), basic mode blocks Google tags until the visitor answers the consent banner. Advanced mode loads the tags straight away and, when consent is denied, sends measurements without cookies. Google may then fill part of the gap with modeled conversions, and modelling works only once your tags pass a minimum data threshold. Consent Mode v2 for online stores shows what each mode does to your numbers and how to check your setup.

Click IDs. According to the Google Ads API documentation (Manage offline conversions), Google captures the click ID, the GCLID, from the page URL when someone clicks your ad and lands on your website. If your site uses redirects, they have to pass that parameter on, as Google’s guide Set up consent mode on websites also asks. A click ID lost on the way leaves the purchase without a link to the click. GCLID and auto-tagging explains how a lost click ID shows up in GA4 and how to fix it.

Events and tags. GA4 reports only what your site sends. Google’s guide (Measure ecommerce) describes a purchase event with items and a refund event, both with a transaction ID. GA4 ecommerce events lists what a store needs to send and what it can skip.

Where the tags load matters too. According to Google’s developer documentation, Google tag gateway serves Google tags from your own domain, while server-side tagging processes the data on a tagging server you control. Google tag gateway or server-side tagging explains what each of them recovers and what neither fixes.

Example: one month, six different answers

Example store, not client data.

A tableware shop with an average order value of 600 spends 40,000 a month on Google Ads and 20,000 on Meta. For the same month, its reports say this:

SourceOrdersRevenueWhat it counts
Shop back office1,000600,000every order placed, from every channel
GA4, all channels900540,000purchases the site sent to GA4; 100 never reached it
GA4, Google Ads channel240144,000purchases GA4 credits to Google Ads under its own model
GA4, Meta channel15090,000purchases GA4 credits to Meta
Google Ads300180,000conversions credited to Google ads, on the day of the click
Meta Ads200120,000orders Meta credits to its own ads

What follows from these numbers:

  • Google Ads shows a ROAS of 4.5 (180,000 ÷ 40,000). GA4’s view of the same campaigns gives 3.6 (144,000 ÷ 40,000).
  • Google Ads and Meta together claim 500 orders. GA4 credits 390 to the two of them, because it gives part of the credit to email, organic search and other channels.
  • MER is 10 (600,000 ÷ 60,000). It includes organic search, email and returning customers, so it is higher than any platform’s ROAS, but no platform can inflate it.

Each of these numbers answers its own question. The shop bases its Target ROAS on the 4.5, because that is what the bidding learns on. It splits budget between Google and Meta using GA4. It works out profit from the 600,000 and its margin.

What to do this week

  1. Write down your settings. In Google Ads, open the settings of each primary purchase action and note its attribution model and conversion window. In GA4, open the attribution settings in Admin and note the attribution model, the channels that can receive credit and the lookback window.
  2. Make sure each order is counted once. Keep one primary purchase action. If a GA4 import and the Google Ads tag both count purchases, make only one of them primary.
  3. Pick a month that closed at least a week ago. Late purchases keep arriving, and Google Ads adds each of them to the day of the click.
  4. Put the numbers side by side. Start with shop orders and revenue after cancellations. Add GA4 purchases, in total and for the Google Ads channel. Then add Google Ads conversions and conversion value, and what each other platform claims.
  5. Read the direction of each gap. Google Ads above the shop points to duplicates, outliers or returns. The shop far above GA4 points to lost events or declined consent.
  6. Assign a number to each decision. Google Ads for bidding, GA4 for splitting budget between channels, the shop for profit. Agree on this with whoever manages your ads, so nobody compares a bidding number with a profit number.
  7. Repeat it monthly. A stable gap is normal. A gap that suddenly widens while spend stays the same is a reason to check tracking before you touch bids.

What your ads are really learning on. An order counted twice. An amount substituted for the real one. A payment several times larger than your usual basket. In the report all of these are ordinary conversions — and those are what your ads learn on. The portal checks what stands behind them. The portal changes nothing without your consent.

Check your conversions →

Sources

  • First click, linear, time decay, and position-based attribution models are going away in Google Ads API — Google Ads Developer Blog, 20 April 2023: the four rule-based models removed; data-driven, last click or external attribution remain; conversion actions still on the old models switched to data-driven from September 2023. Checked 2 October 2026.
  • AttributionModel — Google Ads API reference: last click gives all credit to the last click; data-driven uses machine learning to distribute credit among clicks. Checked 2 October 2026.
  • metrics — Google Ads API reference: the Conversions metric includes only conversion actions set to be included in it, and conversion-based bid strategies optimise for these conversions; All conversions includes all actions; “current model” metrics show historic conversions under the selected model; “by conversion date” metrics are dated by the conversion. Checked 2 October 2026.
  • Conversion reporting — Google Ads API: the Google Ads columns “All conv. (by conv. time)”, “Conversions (current model)” and others. Checked 2 October 2026.
  • Conversion goals — Google Ads API: primary actions are used in bidding and in Conversions; secondary actions are not counted in Conversions. Checked 2 October 2026.
  • Manage offline conversions — Google Ads API: imported conversions are reported for the date of the original click, not the date of the conversion; GCLIDs are captured from URL parameters after an ad click. Checked 2 October 2026.
  • ConversionActionCountingType — Google Ads API reference: count one conversion or all conversions per click. Checked 2 October 2026.
  • Import conversion adjustments — Google Ads API: retracting or restating a conversion, matched by order ID. Checked 2 October 2026.
  • AttributionSettings — Google Analytics Admin API: the three GA4 reporting models; paid and organic last click ignores direct traffic; each data-driven model is specific to one advertiser and one key event; lookback window of 30, 60 or 90 days, 90 by default; a change of model applies to historical and future data; the channels that can receive credit for conversions sent to Google Ads. Checked 2 October 2026.
  • REST Resource: properties — Google Analytics Admin API: the property’s reporting time zone is the day boundary for reports. Checked 2 October 2026.
  • API dimensions and metrics — Google Analytics Data API: the date dimension is the date of the event. Checked 2 October 2026.
  • Measure ecommerce — the GA4 purchase and refund events, with the transaction ID required for both. Checked 2 October 2026.
  • Consent mode overview — basic and advanced consent mode, measurements without cookies, modelling to fill gaps, the data threshold for modelling. Checked 2 October 2026.
  • Set up consent mode on websites — redirects on your site should pass gclid and the other click parameters. Checked 2 October 2026.
  • Google tag gateway for advertisers — Google tags served from your own domain. Checked 2 October 2026.
  • An introduction to server-side tagging — data processed on a tagging server you control. Checked 2 October 2026.
  • Meridian — Google’s open-source marketing mix model and its calibration with experiment results. Checked 2 October 2026.
  • GetProfit data: 146 online stores, June 2025 – June 2026 — Performance Max in 141 stores, its median share of ad budget, and its median ROAS across 138 of them; revenue in our data is ordered revenue, without returns.
  • GetProfit portal methodology — the four conversion checks, trust weighted by spend, outliers above 30 times the median order value, ROAS hidden when the value can’t be trusted.