Optibase With Causality Engine: P2BB Beside a Channel Read
By Joris van Huët
Enterprise Interim CMO & Marketing Leader · 15+ years · 50+ orgs
Published
2026-11-11
The short answer: when two Optibase tests each report the same purchase as their own conversion, both reports are following the documented rule. Optibase, the no-code A/B testing tool for Webflow and WordPress sites, attributes a conversion "to all variants the user was exposed to", even when it happens on another page (tested user guide), and recommends waiting for a Probability to Be Best of 95% before naming a winner (P2BB guide). Inside one test that is fair, because visitors are assigned at random. Across tests the counts overlap, and none of them says which traffic source paid for the buyer. Causality Engine reads that from the store's GA4 export, per channel, with a free first finding 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.
Before the test results go into a quarterly review:
- Add the conversions across tests. For example, a hero test reporting 380 purchases and a split test reporting 360, in a month with 410 buyers, adds up to 740: 330 more than there were people paying.
- Check the setting you may have skipped. Without Count only once per tested user, Optibase logs a conversion every time the action is performed, by the same person too (double counting FAQ).
- Look for the event already in GA4. With the GA4 script tag on the page, Optibase sends optibase_variant_shown on its own, no connection needed (GA4 guide).
What Optibase measures, and what the read measures
| Optibase | Causality Engine | |
|---|---|---|
| In one line | A/B, split and multivariate tests run from the Webflow Designer or WordPress (entry) | A read of the GA4 Attribution paths CSV (entry) |
| What counts | Clicks, submits, page views, scroll depth, time on page or programmatic events (conversion types) | Converting paths and the purchase key event in the export (how it works) |
| Who gets the credit | Every variant the tested user saw (tested user guide) | Each channel, as a caused share next to last-click |
| When it calls it | P2BB of 95% recommended (P2BB guide) | Data health from 0 to 100 and a next step per channel |
| What GA4 gets | optibase_variant_shown, category optibase, label {testId:variantId} (GA4 guide) | Nothing; it reads only |
| Integration between them | None | None (integrations) |
| First step's cost | Free plan, 10,000 tested users and one active test (pricing, checked on 11 November 2026) | Free first finding; €99 per full read, excluding VAT (pricing, checked on 11 November 2026) |
Optibase's rule for a conversion
A tested user is a visitor placed in at least one test, and keeps the same variant on later visits until the test ends. When that user converts, the tested user guide says the conversion goes to every variant they were shown, so a visitor who saw the homepage hero test and the pricing page test gives one signup to both. On Business and Professional plans the same tracking follows the user across domains where the script is installed.
What a conversion is, you decide. The conversion types page lists six. For a shop the useful ones are Page View on an order confirmation page and Programmatic, which a server can trigger. Optibase's Stripe guide shows the second in full: pass window.optibaseTestedUserId to Stripe as client_reference_id, listen for checkout.session.completed, and post the event name and a value to Optibase's conversion endpoint. That is how a purchase on Stripe's domain reaches a test at all.
The winner rule is Bayesian. P2BB estimates how likely a variant is to be the top performer, swings early, and should reach 95% before you call it. Auto Stop can end a test when conversions, a conversion rate, a tested-user count or a P2BB hits a number you set; any one rule is enough, and the variant leading on current results is then shown to all users (Auto Stop guide).
How tests show up in GA4, and where they do not
Optibase does not create a channel, and it is not supposed to. Each session keeps the source and medium it arrived with, and GA4 assigns its channel by the rules on Google's default channel group page. The optibase_variant_shown event rides inside that session. Connect the GA4 property in Optibase's integrations page and you can also create one audience per variant, which takes 24 to 48 hours to fill (GA4 guide). If GA4 runs through Google Tag Manager, the trigger and tag are yours to build.
Split tests are where testing tools usually damage channel data, through redirects that drop UTM tags. Google's (direct) / (none) page lists exactly that among the causes of Direct traffic. Optibase answers it directly: search parameters such as utm_medium=paid-social are ignored when deciding who enters a test, and appended to the redirected URL when one happens (UTM FAQ). A visitor who lands straight on a non-entry variant from an ad is not redirected and is still tracked (split variant guide). Check one live redirect yourself; it takes a minute.
Worked example: two tests, one buyer
For example, with numbers made up for the sums and no shop behind them: a Webflow shop selling print runs, with Stripe Checkout, runs two tests in October. The hero test on the homepage enters 9,200 tested users; a split test on the pricing page enters 7,100; 5,900 people are in both. Stripe records 410 buyers.
| Figure | Purchases |
|---|---|
| Hero test, all variants | 380 |
| Pricing split test, all variants | 360 |
| Sum of the two reports | 740 |
| Stripe, the month's buyers | 410 |
740 - 410 = 330, which is the number of buyers who sat in both tests and were counted by each: 380 + 360 - 330 = 410. Neither report is wrong. Each compares its own variants on its own random split, and the hero test's Variant B at 4.3% against 3.9% with a P2BB of 96% is a fair page verdict. The sum is the mistake.
Meanwhile the October GA4 export holds the same 410 purchases spread over Paid Social, Organic Search, Email and Direct. Per its how-it-works page, a causal read splits Direct back to the channels that sent those buyers, then shows each channel's caused share beside a last-click rebuild, with a data-health score from 0 to 100 and a next step. The hero test changes nothing in that table; it changes how many of the visitors each channel sends end up buying. When a test win and a channel shift land in the same month, test the budget move in one region before acting on either.
Free checks first
On the testing side, Optibase's own tools are enough. Switch on Count only once per tested user before launch, so a buyer counts once. Use a Page View conversion on the order confirmation page, or the Stripe webhook for an off-site checkout. Read the test against a P2BB of 95%. The Free plan covers this for one active test at a time (pricing, checked on 11 November 2026).
On the channel side, a by-hand step: take a month's purchases from Stripe or the store, set them against the sum of every test's reported purchases, and against GA4's purchase total in the Traffic acquisition report. Three numbers on one row show whether the reports overlap and whether GA4 sees every sale.
Then the export. Drop GA4's Attribution paths CSV on the start page and the first finding is worked out in your browser for free. Causality Engine, which I founded, charges €99 once for the full read, excluding VAT, refundable within 30 days (pricing, checked on 11 November 2026).
Limits on both sides
- No purchase in GA4, no read. A Stripe checkout that sends its purchase to Optibase and not to GA4 leaves the read with nothing to work on, and it wants 12 months or more of history (how it works).
- Small traffic. Where spend is too small for the model to find a signal, it says so and declines (homepage).
- No variants in the read. Heatmaps, recordings and the question of which hero converts stay with Optibase.
Optibase's crediting rule hands one purchase to every test the buyer passed through, so each extra test running on the site arrives with conversions already on its scoreboard, and a tool that sells more concurrent tests on its paid plans gains from every test looking busy.
See also
- Optibase: plans, tested users and the MCP server
- How to use Optibase: a first Webflow landing page test
- Optibase on the marketplace: Optibase's affiliate program terms
- Causality Engine: the read, what it costs, where it declines
- How to use Causality Engine: export to read to regional test
- Causality Engine on the marketplace: affiliate terms, as the owner states them
- Optibase vs VWO: a Webflow tool against a testing programme
- How to export GA4 data for attribution: the Attribution paths file, step by step
FAQ
Does Optibase connect to Causality Engine?
No. They share nothing. The read takes a GA4 export and lists every channel it records (integrations page); Optibase's variant events can sit in that property without the read using them.
Can Optibase track a purchase that completes on Stripe?
Yes, with a server step: the tested user ID goes to Stripe as client_reference_id, and a webhook on checkout.session.completed posts the conversion and its value back to Optibase (Stripe guide).
Do Optibase split tests lose UTM tags?
Optibase says not: parameters are appended to the redirected URL, and UTMs are preserved across redirects (UTM redirects FAQ).
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.