BACK TO BLOG
USE CASESNovember 11, 20268 min read

Dataslayer With Causality Engine: When the Columns Outrun Sales

JH

By Joris van Huët

Enterprise Interim CMO & Marketing Leader · 15+ years · 50+ orgs

Published

2026-11-11

The short answer: if the Dataslayer sheet shows Meta, Google Ads and TikTok together claiming more purchase value than Shopify booked, nothing is broken. Dataslayer, a connector that moves Google Ads, Meta Ads, GA4 and other data into Sheets, BigQuery, BI tools and AI assistants (entry, homepage), copies each platform's figure under that platform's own rule. For Meta, the rule is whichever setting you pick in its Conversion attribute setting option, or the ad account's own when Use account attribution setting is ticked (Facebook attribution article). To learn what each channel caused, export the GA4 Attribution paths report and drop it on the start page of Causality Engine, a causal read of one GA4 file (entry). The first finding is free.

Disclosure: I founded Causality Engine and own it, and this page recommends it. Every claim about it links to Causality Engine's own pages.

Three things to settle before the sheet goes to anyone:

  1. Subtract first. Add the platform columns for one month and take Shopify's sales from the same sheet away from the total. Whatever is left over is credit two sellers gave themselves for one order.
  2. Use the store row you already pull. Dataslayer's Shopify connector takes figures from the official Shopify API "without making any changes", and its Shopify article says they match Analytics, Reports in the admin, not the Orders screen.
  3. Note the Meta setting in a cell. The same ads return a different purchase count under a different setting, and some metrics return 0 when both checkboxes are ticked together (Facebook attribution article).

Dataslayer and the read, side by side

QuestionDataslayerCausality Engine
What it isA connector for marketing data (entry)A causal read of the GA4 Attribution paths CSV (entry)
Whose numbers it showsEach platform's, from its official API; Shopify's exactly as the API gives them (Shopify article)Its own estimate of each channel's caused share, beside a last-click rebuild (how it works)
Rule for Meta conversionsYour pick in Conversion attribute setting, the account's setting, or the unified ad set setting (Facebook attribution article)Reads no ad platform
Combining platformsA Blended Connector merges sources such as Google Ads and Facebook Ads into one table (Blended Connector article)Every channel in the export, scored 0 to 100 for data health (how it works)
Its own modelMorpheus, a Bayesian marketing mix model (Morpheus article)Causal inference on converting paths, with Direct split back (how it works)
Integration between the twoNoneNone (integrations)
Cost of the checkCovered by your planFirst finding free; €99 per read, excluding VAT (pricing, checked on 11 November 2026)

Whose number lands in each column

Dataslayer adds nothing to a platform's count and removes nothing. Its discrepancy article asks for the Dataslayer query beside "the same data from the original data source (showing the correct data)". Correct means equal to the seller's own screen.

For Meta that screen depends on three controls. The Conversion attribute setting dropdown sits under Options in the Sheets add-on, API Query Manager and BigQuery, and in the Looker Studio connector settings. Under it sit two checkboxes: Use account attribution setting, and Use unified attribution setting (AdSet level), which overrides the first. Tick one, never both, and leave the custom selection empty, or website purchases can return 0 (Facebook attribution article).

Google Ads and TikTok arrive the same way. None knows what the others counted.

The GA4 side: what the connector pulls and what the read needs

Dataslayer reads GA4 through Google's official API; its GA4 article blames most mismatches on date ranges, dimensions and segment filters the API lacks. Pull purchases by Default channel group and you get GA4's filing under Google's channel rules, Direct as its own row.

Useful, and not the file Causality Engine asks for. The read wants the Key event attribution paths report, under Advertising in GA4, which lists the channels before each key event with purchase revenue (Google's report help). Dataslayer's GA4 articles describe metric and dimension queries, not that report, so download it by hand, as the export walkthrough shows. Twelve months or more reads better (how it works).

A worked example: one blended table, four claims

For example, with figures invented for illustration and no store behind them. A September tab built on a Blended Connector shows:

  • Meta purchase value, account attribution setting: €92,640
  • Google Ads conversion value: €71,180
  • TikTok purchase value: €18,910
  • Shopify sales from the same tab's Shopify query: €148,300

92,640 + 71,180 + 18,910 = €182,730 claimed. 182,730 - 148,300 = €34,430 more than the store took, before email, organic search and Direct have said anything.

Now switch Meta's dropdown to a click-only setting and suppose the column falls to €74,020. The ads did not change. The rule did: 92,640 - 74,020 = €18,620 of Meta's claim lived in the setting alone.

GA4's report on Paid and organic last click, a model that ignores Direct per Google's attribution help, might give Paid Social €29,770 for the same month. Three figures for one channel, each true by its own rule.

A causal read does not pick among them. Per the how-it-works page, it sets each channel's caused share beside last-click from the same export, grades it from 0 to 100, and names a next step to test in one region. If Paid Social's share sits nearer €29,770 than €92,640, run that test before cutting Meta everywhere.

The free check, by hand

The connector already holds what a geo test needs. Pick two comparable regions, pause or halve one channel in one of them for 21 days, and pull Shopify sales split by region in the same tab as before. Dataslayer documents no holdout feature, so this one is by hand: you set the regions, it fetches the numbers.

For example: region A keeps Meta running and books €41,200; region B, with Meta paused, books €37,900, after both regions sat within 2% of each other in the 21 days before. 41,200 - 37,900 = €3,300 is the rough difference Meta made there. Set that against what Meta claimed in region A, and you have an answer that needed no new tool.

Then, for every channel at once, Causality Engine, which I founded, reads the GA4 export on the start page. The first finding is worked out in your browser; the full read is €99 once and refundable within 30 days (pricing, checked on 11 November 2026).

Where the pairing stops

Nothing connects the two products. Causality Engine's integrations page says it reads the channels your GA4 export records, so there is no Dataslayer feed to set up. The read sees channels, not campaigns or ads; which Meta campaign to cut stays a question for the Dataslayer tab. It reads the key events GA4 keeps (one-off read), so a store without a purchase key event has nothing to read, and where spend is too small for a signal it says so and declines (homepage).

Dataslayer has its own model too. Morpheus, a marketing mix model, relates spend to sales over time and adjusts for seasonality and weather (Morpheus article), which covers offline media GA4 never sees.

Dataslayer's support desk shows who that default serves. Its discrepancy process counts a number as right when it matches the platform's own screen, so a connector that questioned Meta's count would generate tickets, and one that copies it faithfully generates none. That is a sound promise for a pipe. It also means the overcount reaches your sheet with Dataslayer's quality stamp on it.

See also

FAQ

Can Dataslayer send data straight into Causality Engine?

No. There is no connector between them in either direction. Causality Engine works from the Attribution paths CSV you download from GA4 yourself, and its integrations page describes no feed from a reporting tool.

Why does Meta show 0 purchases in my Dataslayer query?

Usually a settings clash. Dataslayer's Facebook attribution article says ticking both checkboxes, or filling the custom attribution field, can return 0 for website purchases; use one checkbox and match the setting in Ads Manager.

Is Morpheus a substitute for a causal read?

They work at different levels. Morpheus models spend against sales over time, offline included (Morpheus article); Causality Engine reads converting paths in a GA4 export. Where the two agree, lean on the answer.

TAGS
Causality EngineDataslayerData Connector AttributionGA4Worked Example

ABOUT THE AUTHOR

I am Joris van Huët, an enterprise interim CMO. 15+ years, 50+ organizations, including ING, P&G, Nestlé, BNP Paribas, WeTransfer and Vinted. I take on innovation projects (venture building, design sprints), agentic marketing (setting up and running AI agents) and hands-on multi-channel work. See the track record.

I wrote and published this with AI assistance, and I answer for it. Claims about my own experience are limited to the track record above, and a statistic links to its source or is labelled as an example. I sell interim and fractional CMO work, which is why this site exists. How this site is written.

Agentic marketing, built for your team

The agents in this article, built into your workflows and handed over to your team: the first one within two weeks.

With Joris van Huët, interim and fractional CMO in Utrecht. From EUR 5,000 a month, monthly cycles, a 30-day exit.