Setup together
Install the snippet, create goals, set up the first test, guided instead of alone with a manual.
?Support and documentation
The most common questions from real setups, sorted by topic. Whatever is not here, we answer directly.
The direct route
No ticket maze. For setup and analysis you get someone who built the product.
Install the snippet, create goals, set up the first test, guided instead of alone with a manual.
Not sure whether a result holds? Send the report link and we will look at it together.
Theme quirks, consent managers, revenue tracking, API and MCP, there is someone with access to the code for that.
From the agency plan onwards, a named person instead of a general address.
A public operational status for hosted installations, including maintenance windows.
Guaranteed response times per plan, put in writing.
Documentation
Each entry answers one question and says where the setting lives.
One script tag with your website ID goes into the <head> of every page you want to test on. The ready-made tag sits under Website setup → Installation; Shopify, WooCommerce, Shopware, Webflow and Magento have their own guides.
The setup check verifies before your first test whether the snippet reports in, whether goals fire and whether purchase events arrive. It also shows when the website last reported.
Under Installation → First-party tracking you enter a subdomain of your own domain, for example t.your-domain.com. The snippet then loads from there, is blocked less often and measures more completely. What is collected stays the same.
Environments under Website setup → Environments. An experiment can be limited to one environment, and a preview link shows you the variation without any result being counted.
Text, images, buttons and ordering work by clicking in the editor. As soon as logic is involved, conditions, calculations, inserted sections. JavaScript and CSS is the more stable route. Both can be mixed in the same variation.
As a redirect experiment: the variation redirects to a different path on the same website. The exposure is counted before the redirect and campaign parameters are carried over.
Yes, through reusable sections and asset management. Upload an image once and use it in several experiments.
Through a preview link that bypasses audiences and schedules and counts nothing. It expires after 24 hours or as soon as you change the draft; there is a QR code for your phone.
Click on an element, form submission, page view, custom event and revenue. An experiment has one primary goal; everything else runs alongside as an additional goal or a guardrail.
Create a revenue goal and call SplitTest.track('Purchase', { value, currency, eventId }) on the order confirmation. Using the order number as eventId prevents double counting on reload. The snippet alone captures no orders.
For metrics that must not get worse while you improve something else, returns, support requests, drop-offs. abdriven reports when a winner is doing damage elsewhere.
abdriven can forward the exposure to tools already present on the page. GA4, GTM, Matomo, Clarity, Hotjar and others. The switch enables forwarding; it does not install a tool or connect an account.
The sample size planner works it out from your current conversion rate and the smallest difference you want to detect. Progress then sits next to the result.
It says how large the difference plausibly is. If zero is inside it, you have no result, however good the average looks. With several variations abdriven adjusts the interval, because otherwise the sheer number of comparisons produces winners.
A comparison of the planned and the actual distribution. A clear deviation means something is wrong with delivery, and the result should not be used.
As a report link: read-only, no login, aggregated numbers only, with an expiry date and revocable at any time. For your own analysis there is also CSV export.
Yes. The SDK follows pushState and back/forward, reverses variations that no longer match, and waits for an element signalling that the new view is ready. Hash routes such as #/page are not followed.
With data-consent="required" the snippet stays quiet until your banner calls SplitTest.consent(). If you load the snippet only after consent anyway, leave the attribute out.
Through API tokens for your own scripts, webhooks and Slack for notifications, and the MCP server if AI agents should create experiments or summarise results.
Through the built-in backup in the monitoring area or through SQLite’s online backup facility. The database belongs outside the public directory, and automatic off-site copies are not built in yet.
Still open?
A badly set up measurement costs more time than any question.