BACK TO BLOG
USE CASESNovember 11, 20269 min read

Coupler.io With Causality Engine: Check the Blended Conversions

JH

By Joris van Huët

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

Published

2026-11-11

The short answer: a blended conversions column built in Coupler.io is the sum of several platforms marking their own work, so it can pass the store's order count without a single wrong row. Coupler.io, the no-code platform whose data flows pull from 400+ sources (pricing), blend them and load them into sheets, BI tools and warehouses, even lets you set Meta's attribution window per flow; its documentation gives Meta's default as 7-day click and 1-day view (attribution settings guide). Put Shopify orders in the same flow and compare. For what each channel caused, download GA4's attribution paths and start with the free first finding from Causality Engine, which reads that one export, at app.causalityengine.ai/start.

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 numbers to line up in one flow:

  1. Claims minus orders. For example, 1,388 Meta purchases, 1,206 Google Ads purchase conversions and 315 TikTok purchases make 1,388 + 1,206 + 315 = 2,909. Beside 2,740 Shopify orders, that is 2,909 - 2,740 = 169 sales counted twice.
  2. The store as a source. Coupler.io's Shopify source has an Orders entity and filters on financial status, Paid or Refunded among them (Shopify source), so the denominator sits in the same flow as the claims.
  3. The window on each Meta flow. Open the flow's advanced settings and note which attribution option it uses. Coupler.io calls mismatched attribution settings the most common cause of discrepancies (Facebook Ads source).

Coupler.io beside the read

RowCoupler.ioCausality Engine
The productData flows with blending, from 400+ sources (entry)A causal read of a GA4 export (entry)
AttributionInherits each platform's; for Meta, account, ad set or a manual window (attribution settings guide)Caused share per channel next to a last-click rebuild (how it works)
Combining sourcesAppend, Join and Aggregate in the data set step (Append, Join)Works on one file, the Attribution paths CSV (how it works)
GA4 channelsDefault channel group among the GA4 dimensions (GA4 source)Channels as the paths report records them (paths report)
IntegrationNone with Causality EngineNone, and none needed (integrations)
The check's pricePart of the planFree first finding; €99 a read, excluding VAT (pricing, checked on 11 November 2026)

The attribution choice Coupler.io puts in your hands

Most connectors pass Meta's window through untouched. Coupler.io's attribution settings guide offers three routes instead:

  • Use ad account settings. The window configured on the account in Ads Manager, so the flow matches what the team sees there.
  • Use ad group settings. Each ad set's own window passes to the API, so rows from different ad sets can carry different windows.
  • Specify manually. One window for everything: 1-day, 7-day or 28-day click, 1-day view, first-conversion variants of those, DDA, Meta's default, or SKAN windows for iOS app campaigns.

The guide is precise about two of them. Default returns Meta's setting "at the time of the API call, which is currently 7-day click and 1-day view." First conversion counts only the first purchase per user inside the window: three purchases after one click become one. Coupler.io's own advice is to match Ads Manager with the account or ad set route, and to pick a manual window for a fixed baseline across accounts.

Google Ads has no such switch. Its source notes say conversions are attributed to the ad interaction date, so recent days keep changing for 24 to 72 hours, and the Campaign performance report sums all conversion actions together; a purchase-only column needs the report with conversion action names (Google Ads source).

Blending stacks claims, it does not settle them

Append compiles every unique column name across the sources and stacks the rows beneath them, matching by name (Append guide). Aggregate then sums, averages or counts a column by group (Aggregate guide). Join is a LEFT JOIN: every row of the key source stays, and only matching rows from the others come in (Join guide). None of the three, as documented, checks whether Meta's purchase and Google's conversion are the same order. That is not a flaw: each source arrives with its own count, and nothing in it says which orders another platform also claimed.

GA4 arrives the same way, as metrics and dimensions through the GA4 Data API in what Coupler.io calls a single flexible report type (GA4 source). Choose the channel field knowingly. Google's default channel group page gives Default channel group an event scope under the property's attribution model, data-driven by default, and Session default channel group a session scope under paid and organic last click. Ads from Meta and TikTok file as Paid Social, Google's search ads as Paid Search.

The paths report is not in that list. Causality Engine reads the Key event attribution paths report, found under Advertising in GA4, with every key event aggregated until you choose one (paths report). Download it from GA4 by hand, purchase only, covering 12 months or more (how it works).

Worked example: an appended conversions column

For example, with figures invented for the arithmetic and drawn from no store: one month, one flow. Meta on the Default window reports 1,388 purchases. Google Ads, on the report with conversion action names and filtered to the purchase action, reports 1,206. TikTok reports 315. The Shopify Orders entity, filtered to Paid, holds 2,740.

Appended and aggregated, the claims total 1,388 + 1,206 + 315 = 2,909. That is 2,909 ÷ 2,740 = 1.06 claimed sales per order. Had Google Ads come from Campaign performance instead, with every action summed, say 1,947, the total would read 1,388 + 1,947 + 315 = 3,650: a jump of 3,650 - 2,909 = 741 from a report choice alone.

The GA4 flow, Session default channel group with purchases: Paid Social 517, Paid Search 784, Organic Search 602, Email 233, Direct 489, Referral 115. Those add to 2,740, matching the store. Meta and TikTok claim 1,388 + 315 = 1,703 between them; last click gives Paid Social 517.

The 489 under Direct are where a causal read begins. As the how-it-works page describes it, the read splits Direct back to the channels that sent those buyers and shows what each channel caused beside last-click from the same export, with data health from 0 to 100 and a next step. When the read and the blended column point different ways, move budget in one region first and compare.

The free check, built with a Join

The free version needs no plan: export a month from each ad manager and Shopify as CSVs, stack the claims in a spreadsheet, and put orders by date beside them. Coupler.io's free plan holds one account and 100 rows a run, so it cannot carry four sources (pricing, checked on 11 November 2026). Inside a paid plan, or the 7 free days with full access the pricing page gives at sign-up, build the same thing in a flow (Join guide): aggregate the appended claims by Date, then Join them onto Shopify orders with orders as the key source, and add a formula column for claims divided by orders. A ratio that drifts upward while orders hold steady tells you the platforms are sharing more sales than before, and that answer stands on its own.

For a channel-by-channel answer, Causality Engine, which I founded, reads the paths CSV on its start page. The first finding is free and computed in the browser; the full read is €99 once, refundable within 30 days (pricing, checked on 11 November 2026).

Limits on both sides

Coupler.io and Causality Engine do not connect, and Causality Engine's integrations page explains why none is needed: it reads every channel the GA4 export records. The read answers per channel, never per campaign, ad set or creative; those rows stay in the flows. It also refuses to rule on thin data: a channel under 1% of credit on both methods is too small to act on, says the page written for AI agents.

Coupler.io's GA4 page pitches combining GA4 with ad spend from Google Ads or Facebook Ads "to calculate true ROI across channels" (GA4 source), and its plans are counted in accounts: Starter holds 3, Active 15 (pricing, checked on 11 November 2026). The reconciliation above needs four, Meta, Google Ads, TikTok and Shopify, so every platform added to the blend is capacity Coupler.io sells, whether or not those platforms count the same order.

See also

FAQ

Can a Coupler.io flow feed Causality Engine directly?

No. Causality Engine takes no feed from Coupler.io or any connector; it reads the Attribution paths CSV you download from GA4 (integrations).

Which Meta attribution option should a reconciliation flow use?

Pick one manual window and keep it, so month-on-month comparisons hold. Account or ad set settings track whatever Ads Manager is set to, which can change under you (attribution settings guide).

Why do last week's Google Ads conversions keep rising?

Google Ads files conversions on the date of the ad interaction, so recent days fill in as conversions are recorded; Coupler.io suggests allowing 24 to 72 hours (Google Ads source).

TAGS
Causality EngineCoupler.ioPaid Media 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.