Convert.com With Causality Engine: Test Wins and Channel Credit
By Joris van Huët
Enterprise Interim CMO & Marketing Leader · 15+ years · 50+ orgs
Published
2026-11-11
The short answer: a Convert experiment and a channel read answer two questions that sound alike and are not. Convert.com, the A/B testing suite sold as Convert Experiences, compares variations of a page on randomly assigned visitors, and by default its revenue goal lets one transaction per visitor, experiment and goal through (revenue tracking guide). That makes its verdict a fair answer about the page and a partial count of the store. Which traffic sources caused the store's sales sits in GA4, and a split URL test can quietly shift some of that traffic into Direct. Causality Engine reads the GA4 export per channel; the first finding is free 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.
What to settle before the next test report reaches finance:
- Subtract the report from the till. For example, two variations that together show €107,088 of revenue in a fortnight the store booked €164,300 leave €57,212 that the experiment never saw. The worked example below shows where it goes.
- Open the integration you may already have. Under Project Configuration, Integrations, Convert can link a GA4 property and create one audience per variation (GA4 integration guide).
- Check one checkbox on every split URL test. The one that copies query string variables to the variation URL (query string guide). It decides whether your UTM tags survive the redirect.
Convert and the read: what each one measures
| Convert Experiences | Causality Engine | |
|---|---|---|
| The product | A/B, split URL and multivariate testing (entry) | A causal read of one GA4 file (entry) |
| Unit of comparison | Variations, on visitors assigned at random (split URL mechanics) | Channels, from converting paths (how it works) |
| Revenue rule | One transaction per visitor, experiment and goal unless force_multiple is added (revenue tracking guide) | Caused share beside a last-click rebuild, data health from 0 to 100 (how it works) |
| Verdict | 95% confidence typical, or a 95% chance-to-win threshold by default in Bayesian mode (statistics guide) | A next step: raise, cut or hold, tested in one region first |
| What it puts in GA4 | experience_impression, with exp_variant_string as CONV-[experience_id]-[variation_id] (GA4 integration guide) | Nothing; it only reads |
| Connection between the two | None | None (integrations) |
| Price of looking | An A/A test inside the trial | Free first finding, €99 per full read, excluding VAT (pricing, checked on 11 November 2026) |
How Convert counts revenue in a test
Convert gets revenue two ways. With GA4, you enable revenue tracking in the project configuration and import the GA4 purchase event as a goal (GA4 integration guide). Without it, a Manual Revenue Tracking goal gives you a snippet that pushes revenue, a product count and the goal ID from the confirmation page.
The counting rule is the part that shapes the report. By default one transaction per visitor, experiment and goal goes through. Add "force_multiple" and further purchases add revenue, though the cumulative revenue article is explicit that conversions stay unique: only the money is added again. The report then shows Revenue per Visitor with an Average Order Value column beside it, and the statistics run on RPV as before.
Two consequences follow. Revenue from visitors who never entered the test is outside the report by design. And a regular who orders three times in the test window counts once unless you said otherwise.
Neither is a flaw. Random assignment is what makes a test result trustworthy, and Convert's verdict on a variation is a causal answer about that page. It just answers nothing about channels.
Where a test touches the channel data
A standard A/B test changes a page in place and leaves the visit's source alone. A split URL test is different. All traffic lands on the original, and Convert's script sends the variation group onward with a client-side redirect such as window.location.replace(), counting the visitor only after the second page loads (split URL mechanics).
Two things can then go wrong in GA4:
- Tags dropped. Without the query string checkbox, the static variation URL carries none of the original's parameters. Google's (direct) / (none) page lists redirects that strip UTM parameters among the causes of Direct traffic.
- A pageview too many. GA4 can record a hit on the original for visitors who were sent on. Convert's fix is to place its code before the analytics tag and wrap the analytics code in a check on convert.isRedirect (analytics hit article).
The GA4 integration has its own default to know. Track first visitor exposure only is unticked, so experience_impression may fire on each qualifying page view; ticking it sends the event once per visitor and experience, and changes nothing else (GA4 integration guide). Count events, not visitors, until you tick it.
Worked example: a fortnight's split URL test
For example, with invented figures and no store behind them: a bike accessories shop runs a split URL test on its paid landing page for 14 days. Each side gets 18,400 tested visitors. The original books €51,520, an RPV of 51,520 ÷ 18,400 = €2.80; the variation books €55,568, or €3.02. Lift: (3.02 - 2.80) ÷ 2.80 = 7.9%, and the statistics settings decide whether that is a winner.
Over the same 14 days the store books €164,300. The test shows 51,520 + 55,568 = €107,088, so €57,212 sits outside it: buyers who never hit the landing page, and repeat orders from tested visitors that the default rule let through once.
Then the channel side. Say landing page sessions filed as Direct ran at 18% before launch and 26% during the test, because the checkbox was off and the redirect dropped utm_source=meta. Eight points of paid social sessions moved into a row that names no sender. A causal read on that export starts with Direct: per the how-it-works page, it splits Direct back to the channels that sent those buyers and sets each channel's caused share next to last-click, with a data-health score. Cleaner tags still make a better file to start from.
If the read and the test seem to disagree, they are not arguing. The test says the variation sells more per visitor. The read says how much of the shop's revenue Paid Social caused. Budget changes go through the read's one-region test first.
A free check that uses Convert itself
Convert recommends an A/A test, two identical versions that should end inconclusive (A/A guide). Run it as a split URL test on a tagged landing page for two weeks, with the query string checkbox on. Then compare, in GA4's Traffic acquisition report, the share of that page's sessions filed as Direct on the original and on the copy. Close to equal means the redirect keeps the source. A gap means fix the setup before any real test touches paid traffic. It costs nothing beyond the trial.
The channel question comes after. Export GA4's Attribution paths report as a CSV and drop it on the start page, where the first finding runs in your browser. Causality Engine, which I founded, charges €99 once for the full read, excluding VAT, with a refund inside 30 days (pricing, checked on 11 November 2026).
What the pairing will not do
- The read never sees a variation. It works per channel.
- It needs 12 months or more of GA4 history (how it works), and declines where spend is too small for a signal (homepage).
- Convert's tests, sample ratio checks and statistics engines have no counterpart in it. Which headline wins stays a Convert question.
Convert invoices the visitors tested in each billing period, however many tests they enter (pricing FAQ), so a split URL test left running on a busy landing page after its answer is in keeps adding to the number the bill is built on.
See also
- Convert.com: plans, tested-user billing and its MCP server
- How to use Convert.com: a demo-request page from tag to verdict
- Convert.com on the marketplace: Convert.com's affiliate program terms
- Causality Engine: what the read returns and costs
- How to use Causality Engine: the export, the read, the regional test
- Causality Engine on the marketplace: the affiliate terms, the owner's own
- Convert.com vs VWO: two testing suites set side by side
- How to find what Direct traffic is hiding: why the Direct row grows
FAQ
Is there a Convert integration in Causality Engine?
No, and none is needed. Causality Engine reads the channels in a GA4 export (integrations page); Convert's experience_impression events may sit in the same property, but the read does not use them.
Why does Convert's revenue differ from GA4's revenue for the same page?
Convert counts tested visitors only, one transaction each by default, while GA4 counts every purchase event. With the GA4 integration, Convert imports the purchase event as its goal, which narrows the gap without closing it (revenue tracking guide).
Should a split URL test run on paid traffic at all?
It can, with the query string checkbox on and the analytics code wrapped as Convert advises. Without both, paid sessions can lose their tags in the redirect and show up as Direct (query string guide).
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.
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.