> ## Documentation Index
> Fetch the complete documentation index at: https://docs.adriel.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Revenue: GA4 vs Google Ads

> GA4 and Google Ads attribute and time revenue differently — even when both are tracking the same purchase. Here's why the numbers don't match, and how to read them on a dashboard.

GA4 and Google Ads almost always disagree on revenue, even for the same business. The reason isn't a bug — the two platforms collect, attribute, and time revenue differently by design.

## The short version

|                          | GA4                                                     | Google Ads                                      |
| ------------------------ | ------------------------------------------------------- | ----------------------------------------------- |
| Where revenue comes from | Website events (`purchase`, `ecommerce_purchase`)       | Google Ads conversion tags, or imports from GA4 |
| Attribution model        | Data-driven or last-click across all marketing channels | Last Google Ads click (default)                 |
| Traffic covered          | Every channel: paid, organic, direct, email             | Google Ads-attributed traffic only              |
| Conversion window        | 30 days by default, configurable                        | Up to 90 days, configurable                     |
| Revenue date             | Date of the purchase                                    | Date of the ad click that led to the purchase   |

These differences mean the two numbers will rarely match, even for the same store on the same day.

## Why the numbers diverge

<AccordionGroup>
  <Accordion title="Different attribution models">
    GA4 by default distributes credit across multiple touchpoints (data-driven attribution) or assigns it to the last interaction across all channels (last-click). Google Ads attributes only to the last Google Ads click.

    A customer who clicked a Meta ad, then a Google ad, then bought, will show up differently in each platform.
  </Accordion>

  <Accordion title="Different traffic scopes">
    GA4 sees revenue from every channel — paid ads, organic search, direct visits, email. Google Ads only sees revenue tied to Google Ads campaigns. GA4 totals will almost always be higher.
  </Accordion>

  <Accordion title="Different conversion windows">
    A purchase 45 days after the click counts in Google Ads (with a 90-day window) but may have fallen outside the GA4 window. A purchase made the same day counts in both. Longer sales cycles widen the gap.
  </Accordion>

  <Accordion title="Different timing">
    GA4 records revenue on the day the purchase occurred. Google Ads records revenue against the day the ad was clicked. For the same purchase, the two platforms can attribute revenue to different days.
  </Accordion>

  <Accordion title="Tracking gaps in GA4">
    GA4 may undercount when:

    * Users block cookies or use privacy-focused browsers.
    * Purchase events aren't firing correctly on the site.
    * Consent banners block GA4 until the user opts in.
  </Accordion>

  <Accordion title="Double-counting in Google Ads">
    When the same conversion is tracked by both a Google Ads conversion tag and a GA4 import, Google Ads can count it twice. To check: in Google Ads → **Tools** → **Conversions**, look for duplicate conversion actions feeding the same event. Either deactivate the GA4 import or set the Google Ads tag to "secondary".
  </Accordion>

  <Accordion title="Different revenue values for the same conversion">
    Even for a single purchase tracked by both GA4 and Google Ads, the recorded revenue can differ — taxes, shipping, discounts, and currency handling may be included in one platform and not the other. Confirm both tags receive the same `value` parameter.
  </Accordion>
</AccordionGroup>

## How this looks on a dashboard

When both GA4 and Google Ads are connected as data sources, dashboards show revenue from each platform as separate metrics:

* **GA4 revenue** comes from the GA4 connector's revenue metric.
* **Google Ads revenue** comes from the Google Ads connector's **Revenue** or **Conversion value** metric (`metrics.conversionsValue`).

If the ad account's currency differs from the workspace currency, conversion values are converted at the current day's exchange rate. See [Multi-currency reporting](/dashboards/building/multi-currency-reporting).

For per-connector metric definitions:

* [Google Analytics 4 metrics and breakdowns](/data-sources/g-n/google-analytics-4/data-reference)
* [Google Ads metrics and breakdowns](/data-sources/g-n/google-ads/data-reference)

## How to reconcile

The two numbers won't match, but they should be in the same ballpark for high-converting accounts.

1. Confirm both data sources are connected and the date ranges align.
2. Check the conversion-window setting on each platform.
3. Confirm there's no double-counting on the Google Ads side (GA4 import + native Google Ads tag firing the same event).
4. Use GA4 as the source of truth for total revenue, and Google Ads as the source of truth for the revenue attributable to Google Ads campaigns.

## Still stuck?

<Card title="Contact support" icon="life-ring" href="mailto:support@adriel.com">
  Email `support@adriel.com` with the dashboard URL, the GA4 property ID, the Google Ads account ID, the date range, and screenshots of the conflicting numbers if possible.
</Card>
