TRACKING SPECIALIST — BARIS ASA · LONDON
Synctag
Start the check → TRACKING SPECIALIST — BARIS ASA · LONDON

READING ROOM › SYMPTOM FILES › SYM-013

SYMPTOM FILE SYM-013 FILED 04 NOV 2026 · REVISED 04 NOV 2026

Google Ads conversion value doesn't match actual revenue: reconcile it step by step.

ALSO FILED AS
  • “reconcile Google Ads conversion value with Shopify sales”
  • “Google Ads original conversion value vs revenue”
  • “Google Ads Conv. value vs Conv. value by conv. time”
  • “Google Ads conversion value includes tax and shipping”
  • “Google Ads ROAS higher than real ROAS”
  • “Google Ads conversion value includes refunds”

Baris Asa, tracking consultant, London · Last checked: November 2026

Google Ads conversion value below your store’s revenue is normal: Ads counts only sales that followed its own ads. Above it usually means one of six things: another action (a lead form, a call) counted with a value; settings that raise the reported value on purpose so bidding favours some buyers (value rules, new-customer value); refunds never uploaded; a tag value that includes tax, shipping or the wrong currency; a purchase counted twice; or a fixed value on every order.

To check, line up the same action, the same dates and the same definition on both sides, then name every gap that’s left. The steps are below. The tag fault in that list is on record as F-302 : one order, a different value in each platform.

ROAS is conversion value divided by cost, so it carries every gap here. If the conversion count is off too, start with GA4 and Google Ads numbers don’t match. If it’s GA4 against Shopify, see GA4 revenue higher than Shopify.

A two-minute check first

In Google Ads, open Goals, Conversions, Summary. Count the actions set as primary that carry a value. Then open the Goals setting of your biggest campaigns: a campaign with its own conversion goals counts its own set of actions, whatever the account default says. A lead form or a phone call with a value in either place is the first gap to rule out, and the quickest.

How do I compare Google Ads value with revenue fairly?

  1. One action. Segment by conversion action and read the purchase action only.
  2. A closed month, read late. The default Conv. value column dates each sale to the ad click, and conversions can be reported up to 90 days after the click, so last week’s figure keeps moving. Conv. value (by conv. time) dates it to the sale, but Google’s column list has no by-conv.-time version of the Original conv. value column in step 3. So reconcile a whole month that closed a few weeks ago: late conversions have landed, and click date against sale date only shifts the days at each end. Google also mentions a 15 to 48 hour reporting delay, especially under attribution models other than last click.
  3. Before adjustments. Original conversion value is the value Google Ads received before value rules or new-customer (lifecycle goal) adjustments. Conv. value is the figure after them. Add the Original conv. value column. To see the adjustment rule by rule, segment by Conversions, then Value rule adjustment, in the Campaigns view.
  4. The matching store figure. Same month, same currency as the Ads account, same definition as the tag. On Shopify, net sales are after discounts and sales reversals (returns and other negative adjustments), without tax or shipping. Total sales add tax, shipping, duties and fees back.

Three more differences come with the design. Under data-driven attribution one order’s value is split across the Google Ads clicks that led to it, so a campaign’s value can be fractional while the account total is whole. View-through conversions (after an ad was seen, not clicked) sit outside the Conversions column by default. A sale after the action’s conversion window has closed isn’t counted.

With those lined up, Ads should come in below the store’s whole month. How far below depends on how much of the month came from other channels. To close the last gap, use the orders Ads claimed: if GA4 is linked, list the month’s purchases from Google Ads traffic by Transaction ID and add up the same orders in the shop.

StepChange (£)Running total (£)
Conv. value, all primary actions21,300
Lead form set as primary, fixed value−1,20020,100
Value rules and new-customer value (original value instead)−2,75017,350
Tag sent VAT and shipping, shop reports net−2,89014,460
Refunds never uploaded−75013,710
Euro orders at Google’s daily rate−2013,690
Store net sales, same orders13,690
RECONCILIATION · one closed month, Google Ads value to store value · worked example, illustrative, not a client account

Five adjustments take £21,300 to the shop’s own figure for the orders Ads claimed, with nothing unnamed. In this example the store’s whole month, across every channel, is £96,400, so Ads sits below it, as it should. Four steps are settings or design. One is a fault, on record as F-302 : the tag sent the order total with VAT and shipping while the shop reports net.

Why is Google Ads value lower than revenue?

This direction is normal. Google Ads reports only conversions that follow an interaction with its own ads, so sales from email, organic search and direct visits aren’t in it. Buyers who decline consent are modelled back in part when consent mode is set up, so part of the value is an estimate. A buyer who clicks on a phone and buys on a laptop is counted only when Google can link the two. Buyers whose browser blocks the tag are missing. Low by a steady share, week after week, is the design working.

A drop on a date you can name is different. If the purchase action is a GA4 import, check the link first: F-403 .

Why is Google Ads value higher than revenue?

Higher than the store always has a cause. Settings first, then the tag. Quickest to check comes first.

CauseFingerprintWhere to look
Extra primary action with a value (setting)Gap the size of leads × valueGoals, Conversions, Summary
Value rules, new-customer value (setting)Conv. value above original valueValue rule adjustment
Refunds never uploaded (setting)Gap the size of refundsUploads
Tax, shipping or currency in value, F-302 Off by exactly tax, shipping, ×100Tag Assistant, one order
Purchase counted twice, F-104 or F-101 Conversions above ordersPrimary actions, tag
Same value on every order (setting or tag)One repeated figureAction value setting

Is anything other than the purchase primary, with a value?

The Conv. value column adds up every primary action. Google’s guidance is that non-purchase actions such as add to cart shouldn’t be primary with a value. If they are, the same buyer is valued twice. A lead form or a phone call with a fixed value, set as primary, adds to your “revenue” in the same way.

Are value rules or new-customer value switched on?

Both change the reported figure on purpose. A value rule raises or lowers reported value by audience, location or device, so Smart Bidding leans towards those buyers. Google’s own example, in dollars, doubles conversions from one location, so $5 is reported as $10.

The new customer acquisition goal, when it values new customers more, adds the extra value you set to a new customer’s first purchase (Google suggests a fraction of your average order value). The New customer lifetime value column shows that extra value. Original conv. value (step 3) takes both back out. Both settings make Conv. value a bidding figure.

Are refunds coming off?

Only if someone uploads them. Google Ads keeps a purchase at the value it arrived with. A conversion adjustment takes it off: a retraction removes the conversion, a restatement changes its value.

Two catches. On a purchase action from the Google Ads website tag, the order ID is the only key: if the tag never sent the order number as transaction_id, those past purchases can’t be adjusted, so send it from today. And adjustments only work on website-tag, click-upload and Salesforce actions. Google’s adjustment API accepts only those three types, so a purchase imported from GA4 can’t be retracted or restated, and its refunds stay in Conv. value at full price.

For whoever runs the uploads: wait at least 24 hours after the conversion, upload within 7 days if bidding should see it, 54 days at most. The click ID plus conversion time is a fallback Google doesn’t recommend, and it fails on website-tag purchases that need an order ID.

Does the tag value include tax, shipping or a different currency?

This is F-302 , and it is the first thing I look for in the tag. Each tag builds value from whatever field it reads. One sends the item subtotal, one the order total with VAT and shipping, one the price before discount. The fingerprint is an original per-order value off by exactly the tax, exactly the shipping, or 100 times when the amount went out in pence.

Currency is the other half. Google reports conversion value in the account’s billing currency and converts other currencies at the average daily exchange rate. If the tag sends no currency code, or not a three-letter code like GBP or EUR, Google ignores it and uses the default currency of that conversion action. A euro order sent with no code, into an action set to pounds, is reported as that many pounds.

Is a purchase counted twice?

Then value doubles with the count. Google documents dedup by transaction ID within one conversion action. The Google Ads tag and a GA4 import, both primary for the same purchase, are two actions, so both count even with the same ID: F-104 . Within one action, a repeat that gets through is usually missing the ID: two senders on the thank-you page, one without a transaction_id, which is F-101 .

On Shopify, one known cause is named in Google’s own help: conversion tracking set up before installing the Google & YouTube app can count one purchase twice. Open Tag Assistant on a test order and check that the Google Ads purchase hit comes only from the app. Remove the old tag (theme code, checkout scripts or a custom pixel) and switch off only the duplicated conversion action in Google Ads.

Is every order the same value?

Then it’s a fixed figure. The conversion action is set to use the same value for each conversion, or the tag sends a hard-coded number. Set the action to use different values for each conversion and send the order’s own value. A purchase that arrives with no value is a gap in the event itself: F-301 .

How do I check one order?

Google says transaction IDs aren’t reported in Google Ads, so you can’t look an order up there. Check it as it is sent.

  • Google Ads tag. Open Tag Assistant (tagassistant.google.com, Google’s tool that shows what each tag sent), place a test order, and read the value, currency and transaction ID on the Google Ads conversion. In the browser’s network tab the order ID shows as oid. Set them next to the order in the shop admin.
  • GA4 import. If the purchase action is imported from GA4, Ads takes GA4’s value. List last month’s Google Ads purchases in GA4 by Transaction ID, with purchase revenue, and look five of them up in the shop. If they agree and Ads is still higher in total, the gap is in the settings.

If the one order’s value differs from the shop’s before any rule, the tag is wrong.

How do I fix it?

Steps 1, 4 and 5 are account settings. Steps 2 and 3 are measurement work on the tag and data layer.

  1. Primary actions. Agree with whoever runs the account that the purchase is the only primary action with a revenue value, in the account and in campaign goals. The others can sit as secondary and still show under All conv.
  2. One value definition. Write down what value means (for example, item subtotal after discount, before VAT and shipping) and send that one figure, with its currency code and the order number as transaction_id, to every tag from one data layer variable. That is the F-302 fix in full.
  3. Refunds. On a website-tag purchase action with transaction_id, upload adjustments by order ID on a schedule, inside 7 days. On a GA4 import, report refunds as a known, named gap.
  4. Rules on purpose. Keep value rules and new-customer value if bidding should lean on them. Report revenue from original conversion value.
  5. Record the date. Past conversions keep the value they arrived with. Compare from the first full month after the change.

How do I know it’s fixed?

  • A test order shows the same value and currency in Tag Assistant as the shop’s order, on the definition you wrote down.
  • For a closed month, original conversion value for the purchase action sits below the store’s whole month, and matches net sales on the orders Ads claimed apart from refunds and the exchange rate.
  • The gap splits into parts you can name: other channels, refunds, the exchange rate. Nothing left over is a multiple of tax or shipping.

Common questions

Why is Google Ads conversion value higher than my revenue?

Six reasons, in the order I check them. Settings: a non-purchase action set as primary with a value; value rules or new-customer value; refunds never uploaded. Tag faults: a value that includes tax, shipping or the wrong currency; a purchase counted twice. A fixed value on every order can be either.

Does Google Ads remove refunded orders from conversion value?

No. Someone has to upload adjustments. On a purchase action from the Google Ads website tag, the order ID is the only key, so the tag must send transaction_id. Google’s adjustment API doesn’t accept purchase actions imported from GA4.

What is original conversion value in Google Ads?

The value Google Ads received before value rules or new-customer adjustments. Conv. value is the figure after them. Compare the original value with revenue.

Which Shopify figure should I compare with Google Ads conversion value?

The one that matches what your tag sends. Shopify’s net sales are after discounts and sales reversals, without tax or shipping. Total sales add tax, shipping, duties and fees back.

How big a gap between Google Ads value and revenue is normal?

Google publishes no figure for value. Below the store is normal, because Ads claims only its own sales. A gap you can split into named parts is fine. An original per-order value off by exactly the tax, the shipping or 100 times is a fault.

Sources

Read on 4 November 2026:

← back to the reading room