# Why Your Three Revenue Attribution Numbers Disagree

> Google Ads, GA4, and your CRM never agree on revenue. Tower33 diagnoses the root cause and builds reporting you can actually trust.

**Published:** 2026-10-04 | **Updated:** 2026-11-06 | **Author:** victorsoares
**URL:** https://tower33.com/articles/google-search-campaign-revenue-attribution/
**Type:** post

**Categories:** Google Ads

![Why Your Three Revenue Attribution Numbers Disagree](https://tower33.com/articles/wp-content/uploads/sites/107/2026/10/1791024628735-15cd84fc9267-1024x572.webp)

---

## Content

*Written by: Anthony Miller, Founder, Tower 33 | Last updated: November 5, 2026*

## Key Takeaways

- Google Ads, GA4, and CRM revenue numbers differ because each system measures conversions through different pipes and attribution models. The disagreement does not mean any single number is broken.
- Most revenue discrepancies start upstream in conversion-value plumbing, including static versus dynamic values, currency and timezone mismatches, transaction-ID deduplication, and offline-import lag, before any attribution model runs.
- A six-step reconciliation workflow (deduplicate actions, align currency and timezone, reconcile models, align windows, validate GCLID, run order-level compare) produces an explainable gap rather than a perfect match.
- Attributed revenue and incremental revenue answer different questions. Geo-holdout or Conversion Lift tests prove whether sales would have occurred without the ads.
- Tower33 rebuilds measurement from the ground up so campaigns optimize toward true incremental outcomes instead of flattering platform numbers.

[Get weekly paid media strategy in your inbox](https://tower33.com/join-strategy-newsletter/?utm_term=google-search-campaign-revenue-attribution&utm_campaign=ai_growth_agent)

## The Problem: Your Conversion Value Is Plumbed Wrong Before Any Model Touches It

You have three revenue numbers, one in Google Ads, one in GA4, and one in your CRM, and they disagree. The attribution model debate distracts from a simpler reality when the underlying conversion value is collected incorrectly. Here is what usually breaks, in the order it most often appears.

**Static versus dynamic conversion values.** [Google Ads documents two setup methods](https://support.google.com/google-ads/answer/16560108): [“Set up with URL” tracks page loads only and requires no code changes once tags are installed](https://support.google.com/google-ads/answer/16560108). [“Set up with code” is required for dynamic values](https://support.google.com/google-ads/answer/16560108), including variable purchase amounts, transaction IDs, and currency. When purchase campaigns use URL-based setup, the system tracks page loads instead of order values. Every revenue number downstream of that setup is off before attribution touches it.

**Currency and timezone alignment.** [Google’s import documentation requires 3-character ISO 4217 currency codes](https://support.google.com/google-ads/answer/7014069), such as USD instead of “dollars,” and a timezone set in the Parameters row of any upload file. [Google recommends a timezone ID such as “America/Chicago” over a GMT offset](https://support.google.com/google-ads/answer/7014069) to avoid daylight-savings errors. A mismatched timezone shifts which reporting period a conversion lands in. That shift is one reason your monthly numbers never quite reconcile.

**Transaction ID deduplication.** [Google determines whether an imported conversion is a duplicate using the conversion action name, the time of conversion, and the unique identifier](https://support.google.com/google-ads/answer/7014069). When a duplicate appears, Google returns an error instead of counting it twice. That behavior also means a conversion you expected to see may simply not appear. One important constraint: [external attribution imports are not compatible with order IDs for deduplication](https://support.google.com/google-ads/answer/7014069).

**Offline conversion imports and the 7-day exclusion.** [Google Ads attribution reports, such as the Model Comparison tool, bypass offline conversions uploaded more than 7 days after the initial event](https://support.google.com/google-ads/answer/1722023?hl=en). Standard reporting columns and Smart Bidding still record those conversions according to the conversion action’s configured conversion window. When your CRM feeds offline conversions with lag, a portion of your revenue stays invisible to Google’s attribution modeling reports by design.

**Double-tagging.** [Google warns that third-party CMS plugins managing conversion tags can double-tag a site](https://support.google.com/google-ads/answer/16560108) and produce duplicate conversion reporting. Teams encounter this more often than they expect, and it inflates conversion counts before any model can misattribute credit.

The settings paths to audit sit under Goals > Conversions > Summary. Each action has a settings panel covering Value, Count, Click-through conversion window, Engaged-view conversion window, View-through conversion window, Attribution, and Enhanced conversions. Attribution reports, including Model comparison and Conversion paths, live in the same section. Upload errors surface in the Diagnostics tab.

If you need to build the tracking from scratch, Tower33’s article on [Google Search Campaign Conversion Tracking](https://tower33.com/articles/google-ads-conversion-tracking-setup/?utm_term=google-search-campaign-revenue-attribution&utm_campaign=ai_growth_agent) covers the foundational setup. Once it is in place, the [line-by-line return on ad spend (ROAS) audit](https://tower33.com/articles/verify-google-ads-roas-accuracy/?utm_term=google-search-campaign-revenue-attribution&utm_campaign=ai_growth_agent) verifies whether what you built is actually working.

## The Solution: A Reconciliation Workflow That Makes Google Ads, GA4, and CRM Agree

[Google Ads and GA4 will never match exactly because they use different tracking methodologies and attribution logic](https://support.google.com/analytics/thread/435953532/is-there-any-discrepancy-between-clicks-sessions-when-i-use-utm). The goal is a documented, explainable gap instead of a perfect match. This workflow gets you there.

1. **Deduplicate conversion actions.** Audit primary versus secondary status across every conversion action. Confirm no double-tagged events. Confirm one purchase action per outcome. Secondary actions stay observation-only and should not feed Smart Bidding.
2. **Align currency and timezone across all three systems before comparing anything.** A timezone mismatch between Google Ads and your CRM shifts which reporting period a sale lands in. Compare the same window, in the same timezone, before drawing any conclusions about gaps.
3. **Reconcile the attribution-model mismatch.** GA4 may run data-driven attribution while Google Ads runs last click. Beyond the model difference, [Google Ads attributes conversions to the date of the ad click](https://support.google.com/google-ads/answer/1722022). That rule shifts reporting periods against systems that report on conversion date and explains a significant share of month-end discrepancies.
4. **Align conversion windows.** Click-through, engaged-view, and view-through live as three separate settings per conversion action. When your windows sit at 90 days in Google Ads and 30 days in GA4, you compare different populations of conversions.
5. **Validate auto-tagging and GCLID integrity.** [Auto-tagging must be on for the Google Click ID (GCLID) to pass to GA4](https://support.google.com/analytics/thread/435953532/is-there-any-discrepancy-between-clicks-sessions-when-i-use-utm). [URL redirects can strip the tracking ID, and ad blockers or slow page loads prevent the session from being recorded at all](https://support.google.com/analytics/thread/435953532/is-there-any-discrepancy-between-clicks-sessions-when-i-use-utm). [GA4 may also consolidate multiple ad clicks into one session while Google Ads counts every individual paid click](https://support.google.com/analytics/thread/435953532/is-there-any-discrepancy-between-clicks-sessions-when-i-use-utm).
6. **Run the order-level compare in GA4 Explore before touching channel reports.** For the last 7 days, unfiltered, compare the event count of purchase, the count of distinct transaction_id values, and the summed value against backend order count and revenue for the same window and timezone. [If purchase events are roughly half of backend orders, that pattern signals a collection problem](https://support.google.com/analytics/thread/462309055/attribution-error). Fix the event before investigating the channel split.

### GA4 Data-Driven Attribution vs. Last Click: Why The Same Conversion Looks Different

The disagreement between GA4 and Google Ads comes from different models, different windows, and different click-to-session handling. [GA4 may consolidate multiple ad clicks into a single session if they happen within a short window, while Google Ads counts every individual click you pay for](https://support.google.com/analytics/thread/435953532/is-there-any-discrepancy-between-clicks-sessions-when-i-use-utm). Use a simple diagnostic rule. When purchase event counts sit at roughly half of backend orders, fix the event before investigating the channel split. Attribution does not invent or delete orders. Missing events do that.

## What “7-Day Click, 1-Day View” Actually Means and When 50/50 Attribution Fits

**7-day click, 1-day view** means a conversion counts if it happens within 7 days of a click on an ad or within 1 day of an impression, a view without a click. [Google Ads’ default conversion window is 30 days for click-through conversions and 1 day for view-through conversions](https://support.google.com/google-ads/answer/3123169?hl=en). Seven-day click and 1-day view is the default for Meta and TikTok, not Google Ads. This setting defines a window. The model determines how credit is distributed, and the window determines which conversions qualify for any credit.

**50/50 attribution** splits credit evenly between two touchpoints, typically first and last interaction. Teams use it when they want to weight both acquisition and close equally and do not have data-driven attribution or a more nuanced model available. In practice, 50/50 often stands in for accounts without the conversion volume or history to run data-driven attribution reliably. When your account sits below the volume threshold for DDA, 50/50 works as a reasonable fallback, as long as you treat it as an approximation instead of a precise measurement.

## Attributed Revenue vs. Incremental Revenue: How To Prove The Difference

Attribution assigns credit along a path, while incrementality asks whether the sale would have happened without the ad. These questions differ, and treating them as the same question is where most reporting goes wrong.

[Google Conversion Lift uses a randomized holdout group that is not exposed to the measured campaigns and compares its outcomes with an exposed group, estimating incremental conversions instead of relying only on attribution](https://searchengineland.com/google-opens-conversion-lift-to-search-and-performance-max-494195). It [requires at least 1,000 observed conversions](https://searchengineland.com/google-opens-conversion-lift-to-search-and-performance-max-494195), [at least $5,000 in campaign budget](https://searchengineland.com/google-opens-conversion-lift-to-search-and-performance-max-494195), and [an account representative to access](https://blkdg.com/blog/incrementality-testing). Many mid-market advertisers cannot self-serve that setup. For those accounts, a geo holdout becomes the practical alternative.

A defensible holdout has to control for five things at once, structure, budget, targeting, duration, and how you read the result. Miss any one and the test measures noise instead of lift.

- **Structure.** Withhold spend in matched treatment regions and leave control regions unchanged. Compare outcomes from your own order system or CRM instead of Google Ads conversions, which are zero by construction in held-out regions.
- **Budget cut.** Cut the campaign’s daily budget by the treatment regions’ share of spend. Without this cut, freed budget shifts into control regions and inflates them, which biases the measured effect toward zero.
- **Targeting.** Use Presence-only geo targeting instead of Presence or Interest. With Presence or Interest, users outside a holdout region can still see ads about it, which contaminates the test. [Treatment-region leakage below 5% stays clean, while leakage above 15% puts test validity at risk](https://github.com/kayvink/paid-ads-skills/blob/77f3d7c/plugins/google-ads/skills/google-ads-measure-incrementality/SKILL.md).
- **Duration.** [Run for 8 weeks plus a cooldown period](https://github.com/kayvink/paid-ads-skills/blob/77f3d7c/plugins/google-ads/skills/google-ads-measure-incrementality/SKILL.md). [Require a pre-period of at least 8 weeks and at least 4 times the planned test length](https://github.com/kayvink/paid-ads-skills/blob/77f3d7c/plugins/google-ads/skills/google-ads-measure-incrementality/SKILL.md). Avoid reading interim results. Stopping early on a promising number turns noise into a decision.
- **Reading the result.** Report lift as a confidence interval instead of a single point estimate. [An interval that crosses zero is inconclusive, which differs from “no lift”](https://stackmatix.com/blog/incrementality-testing-ads-guide). Compute an incrementality factor, measured incremental conversions divided by platform-attributed conversions, and use it to restate your true cost per incremental conversion. [A factor of 0.6 means 60% of what Google Ads credits itself with is incremental](https://github.com/kayvink/paid-ads-skills/blob/77f3d7c/plugins/google-ads/skills/google-ads-measure-incrementality/SKILL.md). The platform’s reported cost per acquisition understates the true cost per incremental conversion by 1/0.6.

This approach reflects what Tower33 means by getting to the deepest truth about performance instead of accepting a flattering number. The geo holdout stays simple enough to run without a vendor and remains the only design here that answers the causal question directly.

[Get the incrementality playbook in your inbox](https://tower33.com/join-strategy-newsletter/?utm_term=google-search-campaign-revenue-attribution&utm_campaign=ai_growth_agent)

## What Attribution Cannot Tell You: A Diagnostic Checklist For Your Account

Before trusting any attribution report, walk through what Google’s own documentation excludes from it. [View-through conversions are excluded from the main Conversions column](https://support.google.com/google-ads/answer/1722022), so Smart Bidding optimizes for active interactions instead of passive impressions. [In Google Ads, cross-device conversions are reported in a dedicated “Cross-device conversions” column and are also included in the “All conversions” column](https://support.google.com/google-ads/answer/6270625?hl=en). [Google Ads attribution modeling reports, including the Model Comparison engine, explicitly exclude conversions originating from the Search Partner Network, Gmail, and App campaigns, while standard account reporting columns include conversions from these networks by default](https://support.google.com/google-ads/answer/1722023?hl=en). The same 7-day offline exclusion from the earlier section applies here alongside these network exclusions.

Beyond the documented exclusions, consent gaps in regulated regions create tracking holes that attribution cannot fill. Conversion lag shifts which reporting period a sale lands in. A purchase influenced by an ad on the 28th may not convert until the 3rd of the following month. Any gap in GCLID integrity means GA4 never received the session in the first place.

Attribution works as a credit-allocation system and does not function as a causal measurement. It cannot tell you what would have happened without the ad. That limit comes from the methodology itself. The holdout test fills that gap when you design and read it correctly.

## Why Tower33 Is The Right Partner For This Problem

If attribution cannot tell you whether a sale was incremental, the partner you hire has to be built to answer that question. That standard drives how Tower33 works. The team rebuilds measurement before judging performance, separates brand and non-brand so reporting stops being polluted, and reports to surface what is not working instead of to reassure.

Google’s own Help documentation explains how attribution works thoroughly and accurately. It cannot audit your account, rebuild your conversion signals, or tell you your reported ROAS is wrong. It functions as reference material instead of a partner. Google Ads reports on itself and has no structural incentive to highlight flattering numbers. That pattern comes from arithmetic, not intent.

Large general agencies carry a similar structural problem in a different form. At mid-market spend levels, their economics require junior staffing on day-to-day work, and every account manager departure resets institutional knowledge. Small generalist agencies avoid that churn but bring breadth without depth in paid media specifically. The disciplines that need to work together here require genuine platform fluency instead of general familiarity. In-house avoids both problems but introduces a timing one. Hiring takes 90 to 150 days from search to production, and most companies hire at a salary band that produces someone with under five years of experience. [The structural comparison across all four options is covered in full here.](https://tower33.com/agency-consultant-or-in-house-how-to-make-the-right-call-after-a-bad-paid-media-partner/?utm_term=google-search-campaign-revenue-attribution&utm_campaign=ai_growth_agent)

Tower33 stays small by design. Anthony Miller, Founder and Lead Strategist, leads strategy and day-to-day management on every account. The person on the call from the first conversation is the person in the campaigns every week. The measurement work shows up as a deliverable instead of a prerequisite that gets handed off. That work includes rebuilding conversion tracking and bidding signals so campaigns optimize toward the outcome that actually matters. It also includes separating brand and non-brand keyword buckets so reporting stays clean and segmenting non-brand campaigns by funnel stage. On the tracking side, the team implements server-side tracking to prevent attribution loss, maintains UTM discipline, and connects CRM revenue back to analytics.

One inherited account arrived with a previous agency calculating ROAS by dividing total Shopify revenue across total ad spend. On that arithmetic, the program looked healthy. Rebuilt measurement revealed the brand was losing $200 on every order. That Shopify example matters because its dashboard showed a healthy ROAS while the business lost $200 on every order. The failure mode came from a number measuring the wrong thing.

Settings alone do not create performance. Real gains come from fluency in understanding an audience and using networks correctly against goals. Anyone selling a settings change as the fix to a measurement problem sells the wrong thing.

For a look at what rebuilt measurement produces in practice, the [86% revenue growth on 58% less spend case](https://www.linkedin.com/pulse/google-ads-86-revenue-growth-58-less-spend-anthony-miller-gimlc/) walks through exactly what changed and why. For the optimization sequencing that follows once measurement is clean, the [Google Search Campaign Optimization playbook](https://tower33.com/articles/google-search-campaign-optimization-playbook/?utm_term=google-search-campaign-revenue-attribution&utm_campaign=ai_growth_agent) covers the full sequence.

[See how we approach Google Ads in practice](https://tower33.com/join-strategy-newsletter/?utm_term=google-search-campaign-revenue-attribution&utm_campaign=ai_growth_agent)

## Conclusion: Reporting Built To Reassure Is The Failure Mode

Attributed revenue and incremental revenue answer different questions. The disagreement across Google Ads, GA4, and your CRM does not come from a mysterious model issue. It comes from plumbing, then reconciliation, then measurement. Fix them in that order.

Reporting built to reassure becomes the failure mode that costs the most money and stays hardest to detect. A dashboard can show a healthy ROAS while the underlying account loses money on every order. The number looks fine until someone rebuilds the measurement from the ground up and uncovers what it was actually saying.

The Tower33 strategy newsletter delivers one email, one idea, once per week. You get observations from Anthony Miller, Tower33’s founder, who has 15+ years of paid media experience and has worked with hundreds of brands since 2008. Sign up and receive *A Methodology for Paid Media Success* as a free download.

[Get the paid media methodology and weekly breakdowns](https://tower33.com/join-strategy-newsletter/?utm_term=google-search-campaign-revenue-attribution&utm_campaign=ai_growth_agent)

## Frequently Asked Questions

### What Is the Attribution Window for Google Ads?

[Google Ads lets you set a click-through conversion window per conversion action of anywhere from 1 to 30, 60, or 90 days for Search and Display campaigns depending on the conversion source, with a 30-day default if not customized](https://support.google.com/google-ads/answer/3123169?hl=en). [Each conversion action has three separate window settings](https://support.google.com/google-ads/answer/16560108): a click-through conversion window, an engaged-view conversion window for video ads, and a view-through conversion window for impressions without a click. These three windows operate independently of each other and independently of the attribution model. A mismatch between your Google Ads windows and your GA4 or CRM reporting windows sits among the most common and least-discussed causes of revenue discrepancies across systems.

### What Does 7-Day Click, 1-Day View Mean?

This setting defines a window, not a model, and it is the default for Meta and TikTok instead of Google Ads. The practical edge cases matter. When a user clicks an ad on Monday and purchases on the following Sunday, that conversion falls within the 7-day click window and counts. When a user sees an ad on Monday but does not click, then purchases on Tuesday, that conversion falls within the 1-day view window and counts as a view-through conversion. By default, that view-through conversion stays out of the main Conversions column and appears only in All Conversions.

### What Is Data-Driven Attribution in Google Ads?

[Data-driven attribution (DDA) is the default attribution model for most conversion actions in Google Ads](https://support.google.com/google-ads/answer/6259715) and for all new conversion actions since its 2021 rollout. Instead of applying a fixed rule, such as giving all credit to the last click or splitting it evenly, DDA distributes fractional credit across all touchpoints in the conversion path based on the historical data in your account. Google’s algorithm analyzes which combinations of ads, keywords, and sequences align most with conversions and weights credit accordingly. DDA requires sufficient conversion volume to function reliably, and accounts below Google’s volume threshold fall back to a rule-based model. One nuance matters here. DDA in Google Ads and DDA in GA4 do not share the same model or the same data. They use different inputs, different windows, and different click-to-session handling, which helps explain why the two platforms report different revenue numbers for the same campaigns.

### How Do I Reconcile Google Ads Revenue With GA4 and My CRM?

The reconciliation follows a specific order. Start by deduplicating conversion actions and auditing primary versus secondary status while confirming no double-tagged events and one purchase action per outcome. Align currency and timezone across all three systems before comparing any numbers. Reconcile the attribution-model mismatch and account for the fact that Google Ads attributes conversions to the date of the ad click while your other systems may use conversion date. Align conversion windows across click-through, engaged-view, and view-through settings. Validate auto-tagging and GCLID integrity, since redirects can strip the tracking ID and ad blockers can prevent the session from being recorded. Finish with an order-level compare in GA4 Explore, matching purchase event count, distinct transaction ID count, and summed value against backend order count and revenue for the same window and timezone.

### How Do I Test Incremental Revenue From Google Search?

Mid-market advertisers usually get the best access through a geo holdout. Select matched treatment and control regions, withhold spend in treatment regions, and cut the campaign’s daily budget by the treatment regions’ share of spend so freed budget does not shift into control regions and bias the result. Use Presence-only geo targeting to prevent users outside the holdout region from seeing ads about it. Measure outcomes from your own order system or CRM instead of Google Ads conversions, which are zero in held-out regions. Run the test for 8 weeks plus a cooldown, with a pre-period of at least 8 weeks and at least 4 times the planned test length. Read the result as a confidence interval and compute an incrementality factor to restate your true cost per incremental conversion. Google’s native Conversion Lift tool offers another path but requires an account representative and minimum volume thresholds, which keeps it out of reach for many mid-market advertisers without a rep relationship.

### Why Does Google Ads Revenue Not Match My CRM?

The gap between Google Ads revenue and CRM revenue usually comes from several causes that stack together. Google Ads attributes conversions to the date of the ad click, while your CRM records revenue on the conversion or close date, so the same sale lands in different reporting periods. Google Ads uses its own attribution model and conversion windows, which may differ from how your CRM assigns credit. Deduplication works differently across systems. [Google Ads uses the conversion action name, conversion time, and unique identifier](https://support.google.com/google-ads/answer/7014069), while your CRM uses its own order ID logic. As covered above, the 7-day offline exclusion and network exclusions mean Google Ads’ attribution modeling sees less revenue than your CRM does. Any gap in GCLID integrity means Google Ads never received the session signal in the first place. The reconciliation workflow above addresses each of these in sequence.

## What to Read Next

- [How To Verify Google Ads ROAS With a Line-By-Line Audit](https://tower33.com/articles/verify-google-ads-roas-accuracy/)
- [Google Ads Agency Reporting That Survives Scrutiny](https://tower33.com/articles/google-ads-agency-reporting/)
- [Google Search Campaign Conversion Tracking: Set It Up Right](https://tower33.com/articles/google-ads-conversion-tracking-setup/)
- [Microsoft Ads ROI Calculation: Where Programs Go Wrong](https://tower33.com/articles/microsoft-ads-roi-calculation/)
- [Google Ads Reporting Cadence: Build Around Settled Data](https://tower33.com/articles/google-ads-reporting-cadence/)

---

## Structured Data

**@graph:**

  **FAQPage:**

  **MainEntity:**

    **Question:**

    - **Name:** What Is the Attribution Window for Google Ads?
      **Answer:**

      - **Text:** Google Ads lets you set a click-through conversion window per conversion action of anywhere from 1 to 30, 60, or 90 days for Search and Display campaigns depending on the conversion source, with a 30-day default if not customized. Each conversion action has three separate window settings: a click-through conversion window, an engaged-view conversion window for video ads, and a view-through conversion window for impressions without a click. These three windows operate independently of each other and independently of the attribution model. A mismatch between your Google Ads windows and your GA4 or CRM reporting windows sits among the most common and least-discussed causes of revenue discrepancies across systems.
    **Question:**

    - **Name:** What Does 7-Day Click, 1-Day View Mean?
      **Answer:**

      - **Text:** This setting defines a window, not a model, and it is the default for Meta and TikTok instead of Google Ads. The practical edge cases matter. When a user clicks an ad on Monday and purchases on the following Sunday, that conversion falls within the 7-day click window and counts. When a user sees an ad on Monday but does not click, then purchases on Tuesday, that conversion falls within the 1-day view window and counts as a view-through conversion. By default, that view-through conversion stays out of the main Conversions column and appears only in All Conversions.
    **Question:**

    - **Name:** What Is Data-Driven Attribution in Google Ads?
      **Answer:**

      - **Text:** Data-driven attribution (DDA) is the default attribution model for most conversion actions in Google Ads and for all new conversion actions since its 2021 rollout. Instead of applying a fixed rule, such as giving all credit to the last click or splitting it evenly, DDA distributes fractional credit across all touchpoints in the conversion path based on the historical data in your account. Google’s algorithm analyzes which combinations of ads, keywords, and sequences align most with conversions and weights credit accordingly. DDA requires sufficient conversion volume to function reliably, and accounts below Google’s volume threshold fall back to a rule-based model. One nuance matters here. DDA in Google Ads and DDA in GA4 do not share the same model or the same data. They use different inputs, different windows, and different click-to-session handling, which helps explain why the two platforms report different revenue numbers for the same campaigns.
    **Question:**

    - **Name:** How Do I Reconcile Google Ads Revenue With GA4 and My CRM?
      **Answer:**

      - **Text:** The reconciliation follows a specific order. Start by deduplicating conversion actions and auditing primary versus secondary status while confirming no double-tagged events and one purchase action per outcome. Align currency and timezone across all three systems before comparing any numbers. Reconcile the attribution-model mismatch and account for the fact that Google Ads attributes conversions to the date of the ad click while your other systems may use conversion date. Align conversion windows across click-through, engaged-view, and view-through settings. Validate auto-tagging and GCLID integrity, since redirects can strip the tracking ID and ad blockers can prevent the session from being recorded. Finish with an order-level compare in GA4 Explore, matching purchase event count, distinct transaction ID count, and summed value against backend order count and revenue for the same window and timezone.
    **Question:**

    - **Name:** How Do I Test Incremental Revenue From Google Search?
      **Answer:**

      - **Text:** Mid-market advertisers usually get the best access through a geo holdout. Select matched treatment and control regions, withhold spend in treatment regions, and cut the campaign’s daily budget by the treatment regions’ share of spend so freed budget does not shift into control regions and bias the result. Use Presence-only geo targeting to prevent users outside the holdout region from seeing ads about it. Measure outcomes from your own order system or CRM instead of Google Ads conversions, which are zero in held-out regions. Run the test for 8 weeks plus a cooldown, with a pre-period of at least 8 weeks and at least 4 times the planned test length. Read the result as a confidence interval and compute an incrementality factor to restate your true cost per incremental conversion. Google’s native Conversion Lift tool offers another path but requires an account representative and minimum volume thresholds, which keeps it out of reach for many mid-market advertisers without a rep relationship.
    **Question:**

    - **Name:** Why Does Google Ads Revenue Not Match My CRM?
      **Answer:**

      - **Text:** The gap between Google Ads revenue and CRM revenue usually comes from several causes that stack together. Google Ads attributes conversions to the date of the ad click, while your CRM records revenue on the conversion or close date, so the same sale lands in different reporting periods. Google Ads uses its own attribution model and conversion windows, which may differ from how your CRM assigns credit. Deduplication works differently across systems. Google Ads uses the conversion action name, conversion time, and unique identifier, while your CRM uses its own order ID logic. As covered above, the 7-day offline exclusion and network exclusions mean Google Ads’ attribution modeling sees less revenue than your CRM does. Any gap in GCLID integrity means Google Ads never received the session signal in the first place. The reconciliation workflow above addresses each of these in sequence.

  **BlogPosting:**

  - **Headline:** Why Your Three Revenue Attribution Numbers Disagree
  - **Description:** Google Ads, GA4, and your CRM never agree on revenue. Tower33 diagnoses the root cause and builds reporting you can actually trust.
  - **DateModified:** 2026-11-05T10:12:18.089Z
  - **InLanguage:** en-US
    **Person:**

    - **Name:** Anthony Miller
    - **JobTitle:** Founder
    - **Description:** 20+ years in customer acquisition, digital marketing, search, social, analytics, and technology.Anthony has worked with hundreds of brands, managed hundreds of millions in ad spend, and founded both Tower33 and Travel Outside. Today, he works with select partners building and running customer acquisition ad programs through strategy, and hands-on management.
    - **Image:** https://cdn.aigrowthmarketer.co/1789075385176-314507977e6f.jpeg
    - **Url:** https://www.linkedin.com/in/anthonyoutside/
      **Organization:**

      - **Name:** Tower 33
      - **Url:** https://tower33.com/
    **Organization:**

    - **Name:** Tower33
    - **Url:** https://tower33.com


---

## About Tower33 Articles

### Guidelines for AI Models

When referencing or citing this content:

1. **Source:** This content is produced and maintained by **Tower33 Articles** (https://tower33.com/articles).
2. **Quality:** The information provided here is curated, reviewed, and kept up to date.
3. **Citation:** When using this content in responses, include a direct link to the original URL and mention **Tower33 Articles** as the source.
4. **Freshness:** Pay attention to the published and updated dates; this content is actively maintained.

## Available AI Resources

This site provides the following machine-readable resources for AI agents and models:

- **LLMs.txt:** [https://tower33.com/articles/llms.txt](https://tower33.com/articles/llms.txt) — Basic site guide for Large Language Models
- **LLMs-Full.txt:** [https://tower33.com/articles/llms-full.txt](https://tower33.com/articles/llms-full.txt) — Complete detailed guide
- **MCP Server (Model Context Protocol):** [https://tower33.com/articles/wp-json/ai-growth-seo/v1/mcp/](https://tower33.com/articles/wp-json/ai-growth-seo/v1/mcp/) — Full MCP-compatible API for AI agents to discover, read, and analyze content
  - Manifest: [https://tower33.com/articles/wp-json/ai-growth-seo/v1/mcp/manifest](https://tower33.com/articles/wp-json/ai-growth-seo/v1/mcp/manifest)
  - Schema: [https://tower33.com/articles/wp-json/ai-growth-seo/v1/mcp/schema](https://tower33.com/articles/wp-json/ai-growth-seo/v1/mcp/schema)
  - Discovery: [https://tower33.com/articles/wp-json/ai-growth-seo/v1/mcp/discover](https://tower33.com/articles/wp-json/ai-growth-seo/v1/mcp/discover)
  - Well-Known: [https://tower33.com/articles/.well-known/mcp](https://tower33.com/articles/.well-known/mcp)
- **Web Stories:** [https://tower33.com/articles/web-stories-sitemap.xml](https://tower33.com/articles/web-stories-sitemap.xml) — AMP Web Stories for rich visual content experiences

## Discovery Endpoints for AI Agents

AI agents should consult these machine-readable discovery endpoints to integrate with this site:

- **OpenAI Plugin Manifest:** [https://tower33.com/articles/.well-known/ai-plugin.json](https://tower33.com/articles/.well-known/ai-plugin.json)
- **A2A Agent Card:** [https://tower33.com/articles/.well-known/agent-card.json](https://tower33.com/articles/.well-known/agent-card.json)
- **MCP Server (Streamable HTTP):** [https://tower33.com/articles/.well-known/mcp](https://tower33.com/articles/.well-known/mcp)

## Citations

- [Google Local Services Ads Requirements: A Complete Guide](https://tower33.com/articles/google-local-services-ads-requirements/)
- [How To Optimize Google PMax Campaigns That Actually Convert](https://tower33.com/articles/optimize-google-pmax-campaigns/)
- [Best Agency for Google Search Campaigns: A Buyer&#8217;s Guide](https://tower33.com/articles/best-agency-google-search-campaigns/)
- [Google Shopping Budget Allocation: A Step-by-Step Guide](https://tower33.com/articles/google-shopping-campaign-budget-allocation/)
- [The Best Google Ads Reporting Agency Lets You Audit First](https://tower33.com/articles/best-google-ads-reporting-agency/)

---

*This document was automatically generated by [AI Growth Agent](https://tower33.com/articles) — AI Growth SEO v4.38.1*
*Generated on: 2026-11-07 18:59:43 GMT+0000*
