Skip to main content Stan Consulting LLC · Marketing Atlas · Case File · Attribution · The Quarter Google, Meta, and GA4 All Claimed the Same Sale

Stan Consulting · Marketing Atlas · Case File · Attribution Mismatch

The Quarter Google, Meta, and GA4 All Claimed the Same Sale.

case_type: composite
cluster: attribution-mismatch
published: 2026-05-07
01 Section 01 · The setup The setup.

A Shopify Plus DTC subscription brand. Seven-point-two million annualized. One-hundred-eighty-five thousand monthly paid spend. Q3 closes. Google Ads claims two-thousand-eight-hundred-forty conversions. Meta claims two-thousand-two-hundred-ten. GA4 splits a separate three-thousand-one-hundred-fifty across sources. Shopify counts two-thousand-one-hundred-eighty paid-tagged orders. Five numbers. One quarter. Nothing reconciles.

That is the composite. The names change. The shape does not.

The brand had been on Shopify Plus for two years and was on a quarterly subscription cadence with a $79 starter price point and an attached upsell flow. Paid was the dominant acquisition channel. Google Ads and Meta were running roughly fifty-five-forty-five against each other on spend, with the remaining sliver going to a small TikTok test. The marketing director ran the channels in-house with two specialists; the agency relationship had been wound down nine months prior.

The reporting stack had grown organically. Google Ads with auto-tagging on, reading conversions out of an enhanced-conversions setup. Meta with the standard pixel plus a Conversions API feed installed seven months earlier. GA4 with the default property created at migration. Shopify Marketing Reports tab as the operator's daily glance. None of the four had been mapped against each other in a single document.

Q3 closed and the marketing director assembled the deck for the operating review. The aggregate revenue tied to the bank. The aggregate spend tied to the platform invoices. The channel-level conversion counts did not tie to anything. She presented anyway, on the theory that the platforms were close enough.

The CFO read the deck and asked the marketing director to defend Q4 budget. The defense required pointing at one of the channel-level reads as the one against which Q4 was being scoped. The marketing director pointed at the Google Ads number for Google and the Meta number for Meta, on the principle that each platform sees its own attributed conversion best. The CFO asked whether those two numbers, summed, would equal Shopify's paid-tagged order count. They would not. They equalled five-thousand-fifty against Shopify's two-thousand-one-hundred-eighty. The marketing director did not have an answer for the gap.

The audit was scoped at this point. Seventy-two-hour written verdict. The brief was one sentence: tell us which conversion count we run Q4 against, and tell us what the other four counts are for.

Stage
Shopify Plus · DTC subscription
Annualized revenue
$7.2M
Monthly paid spend
$185K (Google plus Meta plus TikTok)
Q3 paid spend
$555K
Channels in conflict
3 platforms producing 5 distinct counts
Counting conventions
4 in active conflict
Source-of-truth decision
Never made
Engagement
Conversion Second Opinion · written verdict
02 Section 02 · The visible problem The visible problem.

Five numbers and a budget question. That is what the marketing director brought to the audit. The five numbers are below. None of them was wrong. None of them was the same.

Google Ads UI

2,840

Conversions claimed Q3 against the Google Ads campaigns

Meta Ads Manager

2,210

Pixel-attributed conversions on a 7-day-click 1-day-view window

GA4 · Paid Search

1,470

Last-non-direct-click attribution to Google over Q3

GA4 · Paid Social

980

Last-non-direct-click attribution to Meta and TikTok over Q3

GA4 · Organic and Direct

700

Organic 410 plus Direct 290; orders the paid platforms also claimed

Shopify orders · paid-tagged

2,180

Order count Q3 with any paid-traffic UTM on the originating session

The math does not reconcile any way you slice it. Google plus Meta in their own UIs sums to five-thousand-fifty against Shopify's two-thousand-one-hundred-eighty paid-tagged orders. GA4's paid-channel numbers sum to two-thousand-four-hundred-fifty against Shopify's two-thousand-one-hundred-eighty. The Google-claimed two-thousand-eight-hundred-forty alone exceeds Shopify's full paid count by thirty percent. None of the reads is internally inconsistent. Every read is in conflict with every other read.

The marketing director defended the Google and Meta numbers on the platform-knows-itself argument. The CFO pushed back on the basis that no two of the platform numbers added up to a Shopify-confirmable total. The argument was the case file's seed.

03 Section 03 · The wrong explanation The wrong explanation.

Four explanations were on the table when the audit started. Each one was almost-right and pointed away from the layer that mattered.

Wrong reason 01

"Each platform sees what it sees; trust the platform on its own channel." The pragmatic-sounding read. The argument is that Google Ads sees the click, Meta sees the impression, GA4 sees the session, and each is closest to its own data. The argument fails because each platform also sees what it does not own and counts itself in. Google Ads counts click-conversions for users Meta drove yesterday and Direct closed today. Meta counts view-through conversions for users Google Search closed an hour later. The platforms each see the full funnel through a window biased toward themselves. Trusting each on its own channel double-counts the overlap.

Wrong reason 02

"GA4 is the neutral arbiter." The technocratic read. The argument is that GA4 sits across platforms and reports against last-non-direct-click, so it produces a defensible cross-channel view. The argument fails because GA4 has its own conventions: a session-stitching model, a bot-filter, an attribution window, a definition of "purchase" tied to the operator's event configuration. GA4 was missing nine-hundred-thirty paid orders in Q3 against Shopify's count, mostly because users had returned to the site through a typed URL or a saved bookmark days after the paid touchpoint and GA4 had routed them to Direct. GA4 is one read among four. Promoting it to arbiter without a written rule is just another arbitrary pick.

Wrong reason 03

"Server-side conversions API will reconcile this." The tracking-engineering read. The argument is that the Meta Conversions API plus enhanced conversions on Google plus a server-side GTM will fix the platform-to-platform disagreement. The argument fails because server-side measurement closes the technical gap and surfaces the conventional gap. After server-side is installed, the platforms still apply different windows, different definitions, different de-dupe rules. The data is now cleaner. The disagreement is now louder. Tracking does not close a counting-conventions argument.

Wrong reason 04

"Average the platforms; the truth is in the middle." The political read. The argument is that the platforms are biased toward themselves, so a weighted average across the platform reads, the GA4 read, and the Shopify read produces a defensible single number. The argument fails because averaging four operationally-coherent reads against four different definitions does not produce a fifth coherent read. It produces an arithmetic mean of incompatible quantities. The CFO cannot defend Q4 budget against an average of contradictory measurements; the average is not a number, it is a compromise on which number nobody pretends is real.

All four explanations let the team defer the decision the audit was scoped to force. The structural defect was upstream of the platforms. None of the explanations went there.

04 Section 04 · The structural cause The structural cause.

No source-of-truth decision, plus four conversion-counting conventions running against each other unmediated. The platforms were doing what they were built to do. The operator had not declared which definition the business runs against.

The Q3 disagreement decomposed into four named conflicts. None of them was the cause on its own; the cause was the absence of a written rule reconciling them.

Conflict one. Click-attribution windows. Google Ads runs a default thirty-day click window with auto-tagging. Meta runs a seven-day-click, one-day-view window. GA4 runs a session-based last-non-direct-click model with no fixed window beyond the session itself. Shopify Marketing reads UTM-driven first-touch on the originating session. Four windows, four definitions of "the user came from this channel." A user who clicks a Google ad on day one, a Meta ad on day five, and converts on day six is counted by Google (within thirty days), counted by Meta (within seven days), routed by GA4 to Meta (last non-direct), and tagged by Shopify to Google (originating session UTM). Four platforms, one user, four channels assigned. None of the platforms is wrong against its own definition. Every platform is in conflict with every other platform.

Conflict two. View-through versus click-through. Meta counts view-through conversions on a one-day-view window. The Q3 Meta-claimed conversion count of two-thousand-two-hundred-ten included roughly six-hundred view-through conversions where the user saw an ad, did nothing, and converted within twenty-four hours through some other surface. Google does not count view-through. GA4 does not count view-through unless explicitly configured. Shopify cannot see view-through. The view-through fraction was the largest single source of the Meta-versus-Shopify gap, and it had never been called out in any board document.

Conflict three. De-dupe rules. When a user arrives via a Google ad and a Meta ad in the same lookback window and converts, Google credits itself, Meta credits itself, GA4 credits the last-non-direct-click, and Shopify credits the originating-session UTM. Each platform de-dupes against its own data only. None of them de-dupes against the others. The operator had no de-dupe rule at the account level. Every shared user was claimed two-to-four times across the platform reads.

Conflict four. Subscription order recognition. The brand was a subscription business. The first-month $79 starter and the recurring monthly orders were both Shopify orders. Google Ads counted the first order against the click and was configured to also count subsequent recurring orders within ninety days as additional conversions because the operator had set up an "all-conversions" goal for LTV optimization. Meta counted the first order only. GA4 counted every order against the user's most-recent non-direct session. Shopify counted every order in its own data. The order definition itself differed across platforms, and the difference compounded the windowing-and-dedupe disagreements above.

Four conventions, one missing rule. Every report was internally honest. The operator had never declared how the four conventions reconcile. The decision was the missing artifact.

05 Section 05 · The decomposition The decomposition.

The decomposition reads in three layers. Tracking integrity, the technical layer; conventions, the definitional layer; judgment, the operator layer. The reads disagreed because the third layer was empty. The first two layers were doing what they were configured to do.

L1 Tracking integrity Technical layer

The data-capture layer was largely intact. Google enhanced conversions were firing. The Meta Conversions API feed was matching server-side events at roughly ninety-three percent against the pixel. GA4 enhanced ecommerce was configured. The technical defects were minor: a duplicate pixel call on the order-confirmation page that double-counted Meta conversions in fewer than one percent of cases, and a GA4 cross-domain hop that lost about two percent of sessions on the subdomain that hosted the upsell flow.

The technical layer was not the problem. The reads disagreed by twenty to seventy-five percent in the relevant comparisons. Two-percent technical defects do not produce that scale of disagreement. Most operators in this configuration assume the disagreement is technical, ship a server-side reinstall, and conclude the disagreement persists because the technical fix was incomplete. It persists because the disagreement is not technical.

  • Google enhanced conversions · firing, validated
  • Meta Conversions API · 93% match against pixel
  • GA4 enhanced ecommerce · configured, mapping intact
  • Duplicate-pixel rate at confirmation · under 1%
  • Cross-domain stitching defect · ~2% of sessions
L2 Counting conventions Definitional layer

The conventional layer is where the four conflicts above lived. Each platform applied a defensible definition of conversion, attribution window, and de-dupe rule. The definitions were defensible and incompatible. The operator had not chosen which to read against. Each vendor and each internal owner read against their preferred definition.

This is where most operators stop, conclude the platforms are broken or the agencies are biased, and start a new measurement vendor search. The conventional layer is not broken. It is unmediated. The fix is not a new vendor; the fix is the rule that picks among existing definitions and demotes the rest to diagnostic.

  • Click-window conventions · 30-day, 7-day, session, originating-session
  • View-through inclusion · on for Meta, off for Google, configurable for GA4
  • De-dupe rules · each platform de-dupes against its own data only
  • Recurring-order recognition · Google all-conversions, Meta first-order, Shopify all-orders
  • Channel-name canonicalization · absent across platforms
L3 Judgment Operator layer

The operator layer was empty. There was no written document on the account that named which platform's conversion count was the business read, which were diagnostic, which window the operator runs against for budget decisions, or how the platforms should report into the boardroom against a single canonical number.

Without the document, every owner picked the read that favored their work. The Google specialist optimized against the Google Ads UI. The Meta specialist optimized against Meta Ads Manager. The marketing director read GA4 because GA4 looked neutral. The CFO read Shopify because Shopify matched the bank. Four owners, four reads, one business, no agreement. The agreement-cost is what the audit measured next.

  • Source-of-truth document · never written
  • Channel-canonicalization rule · absent
  • Recurring-revenue policy · absent
  • Reporting cadence and reconciliation owner · not assigned
  • Variance threshold for "reads disagree" · not set
06 Section 06 · The fix or better move The fix, in install order.

The audit's written verdict named the install order. Order matters. Picking a source of truth before mapping the conventions in conflict is the difference between an arbitrary policy and a decision the team can defend in front of the CFO and the agencies.

The audit drove into the Conversion Second Opinion engagement format and from there into a thirty-day install. The reconciliation framework below is what was installed.

  1. Day one · Declare Shopify the source of truth for revenue and conversion count

    The decision is written and signed. Shopify orders are the financial-attribution and the conversion-count read. Channel attribution against Shopify orders is performed using server-side UTM tagging plus a documented post-purchase routing rule. The platform reads (Google, Meta, GA4) are diagnostic surfaces against this primary read. Vendors are paid against the Shopify read. Internal teams optimize against the Shopify read. The CFO reports against the Shopify read. The decision takes one document and one signature. The document was the missing artifact.

  2. Week one · Standardize attribution windows across platforms

    Google Ads conversion-window aligned to a fourteen-day click window, with the data exporter pulling Google-claimed conversions into a parallel diagnostic table for variance reads against Shopify. Meta moved to seven-day-click, no view-through, with view-through reported as a diagnostic-only metric in a footnote. GA4 attribution model documented as last-non-direct-click on a thirty-day window for analysis purposes only. The platforms keep their internal models for delivery optimization. They stop being read as revenue counts.

  3. Week two · Install de-dupe and channel-canonicalization rules

    One rule, written: when an order's originating session has a paid-traffic UTM, the order is credited to the channel matching that UTM. The platform reads continue to claim what they claim; the operator's read is the Shopify-confirmed UTM. A canonical channel mapping is installed: paid_search, paid_social, paid_other, organic, direct, email, referral. Every platform's reported channel is mapped to the canonical name. Recurring subscription orders are credited to the channel of the originating order, not to whichever platform's window catches the recurring renewal.

  4. Week three · Build the reconciliation chart

    Single weekly chart added to the reporting stack: Shopify-attributed conversion count per channel, Google-claimed conversion count, Meta-claimed conversion count, GA4-claimed conversion count, all on the same time axis with variances expressed against Shopify. Variance from Shopify exceeds ten percent: investigated before the next budget decision. The chart is the operating contract for the account and the artifact the CFO reviews each Monday.

  5. Week four · Renegotiate the budget defense

    The Q4 budget is rebuilt against the Shopify-confirmed paid-tagged order count of two-thousand-one-hundred-eighty as the Q3 baseline. Google Ads and Meta budgets are scoped against their share of the Shopify count, not their share of the platform-claimed counts. The reallocation produces a roughly fourteen-percent shift from Meta toward Google relative to the platform-claimed-share allocation, because Meta's share of the platform-claimed counts was inflated by view-through. The CFO receives a defensible Q4 plan; the marketing director can answer the question that opened the audit.

  6. Month two onward · The board read

    The board pack now leads with one slide: Shopify-confirmed conversions and revenue by channel against Shopify-attributed spend, with the platform reads listed as variances in a footnote. The CFO has the answer to the question she asked at the operating review. The decision is now reproducible, owned, and defensible. The next channel-level decision the team makes is made against the read.

07 Section 07 · The lesson The lesson.

Three platforms can each be honest and produce three different answers to the same question. That is the lesson the marketing director kept turning over for a week after the install. The platforms were not lying. They were each answering a slightly different question with a slightly different definition. Adding them up was the operator error.

The CFO's Q3 question was not really a tracking question. It was a judgment question. Which definition of "conversion" does the business run against. Until the operator answers that question in writing, no amount of pixel installation, conversions API, or server-side measurement closes the disagreement. The disagreement is conventional, not technical. The fix is a sentence the operator signs, not a tag the engineer ships.

The lesson is that any DTC operator running paid spend above one-hundred-thousand monthly across two or more platforms needs the source-of-truth decision before the next budget cycle. Below that threshold the absence costs opportunity cost. Above it the absence costs the operator the ability to defend budget against a CFO who can read a Shopify report. The default Shopify-plus-Google-plus-Meta configuration does not include the decision. The default is the failure mode.

Five Cents · Stan's note

Five Cents

The part of this case file that I keep coming back to is the moment the marketing director realized that none of the platforms were broken. She had been working the problem as if it were a tracking failure for the better part of a quarter. She had read forum threads, watched setup videos, opened a support ticket with Meta, scoped a server-side conversions project. Every move she made was downstream of a quiet assumption that the right tracking would produce the right number. The right tracking was already in place. It produced four right numbers. That was the problem.

What I want operators to take from this is that attribution is not really a measurement field. It is a definitional field with a measurement layer underneath. The measurement layer matters; you cannot define against missing data. But once the data is roughly intact, every additional minute spent on tracking is a minute not spent on the document that names which definition the business uses. The document costs nothing to write. Its absence costs the marketing director two-thousand-one-hundred-eighty Shopify orders worth of unanswerable budget question.

What this case file is for: if your platforms each report a conversion count, and the counts do not agree, and you have not written the rule that picks among them, you have this case file. The Conversion Second Opinion delivers the verdict in seventy-two hours. The next move is the read; the read is what the engagement produces.

Stan Tscherenkow · Marketing Atlas · 2026-05-07
09 Section 09 · Related Atlas entries Related Atlas entries.

Each link below points at a related Atlas page that handles a piece of the case file in more depth. Reference pages give the definition. Position pages give the firm's defended doctrine. The hub gives the map.

If this is the pattern in your account

Pick a source of truth. Then defend the budget.

If the case file maps to your account — multiple platforms, contradictory channel counts, the CFO question still open — the engagement that runs this diagnostic is the Conversion Second Opinion. A written verdict against the four-conflict reconciliation framework, delivered in seventy-two hours. If the verdict says install, the Sprint engagement runs the reconciliation. If the verdict says hold, you keep the read.