Rilato Split Tester

$77.00 Version 4.0 · PHP + MariaDB · one file

Two lines of PHP turn any part of a page into a test. The script splits your visitors, remembers which version each one saw, counts the conversions, and tells you honestly whether the difference means anything yet.

Opinions about headlines are worth nothing

Everyone in the room has a view about which headline is better, which button colour converts, whether the long page beats the short one. The views are free and usually wrong, and the only way to settle it is to show both and count.

The trouble is that most homemade split tests are broken in ways that are hard to see. A visitor gets version A on Monday and version B on Tuesday, so the numbers are measuring nothing. The same person is counted five times because every page view is an impression. Crawlers get counted. And then somebody calls a winner off forty visitors and a three percent difference, which is noise.

A test that is wrong
is worse than no test at all.

What it does

Three kinds of test, from one file:

  • Snippet — test a fragment inside an existing page: a headline, a paragraph, an image, any HTML.
  • Redirect — test complete pages. Send traffic at one URL and visitors are split between your landing pages.
  • Multivariate — define several page elements, each with several options, and the script builds every combination automatically.

A snippet test takes one line at the top of the page and one where the content goes:

<?php require_once '/home/you/public_html/admin/split-test.php'; st_assign('homepage-headline'); ?> <?php st_variant('homepage-headline'); ?>

And on the thank-you page, one line to record the conversion:

<?php st_convert('homepage-headline'); ?>

If the thank-you page is plain HTML rather than PHP, a one-pixel tracking image does the same job.

The parts that make it correct

  • Sticky assignment. A visitor is assigned once and keeps that version for 90 days, by cookie. The same person never sees version A on one visit and version B on the next.
  • One visitor, one impression. The impression is counted at the moment the assignment becomes sticky, not on every page view, so refreshing does not inflate the denominator.
  • One conversion per visitor. De-duplicated by its own cookie, so reloading the thank-you page does not count twice.
  • Bots are excluded. Known crawlers are shown the control and counted in neither column.
  • Real statistics. Confidence is a two-proportion z-test against the control, not a coloured arrow. The dashboard shows impressions, conversions, conversion rate, uplift versus control and confidence, and says plainly that you want 95% or better with at least a couple of hundred impressions per variant before believing it.
  • Pausing keeps your data. Pause a test and traffic goes to the control without the counters resetting. Reset stats zeroes the numbers without deleting the variants.

Multivariate testing

An A/B test answers one question. Multivariate answers several at once, and tells you about interactions — the cases where a headline only works with a particular button, which no sequence of separate A/B tests would ever show you.

You define factors (the page elements) and options for each. The script generates the full combination matrix, assigns each visitor to one combination and keeps them there, then reports both per-combination results and per-factor marginal results averaged across the others. Each element renders where you put its line:

<?php st_factor('homepage-mvt', 'headline'); ?> <?php st_factor('homepage-mvt', 'button'); ?>

Two headlines and three buttons make six cells, and each cell needs its own traffic to reach confidence — so the dashboard tells you the cell count as you build it and warns you to keep the matrix small. Editing an option's text keeps your statistics; adding or removing a factor regenerates the cells and resets the counters, which it also warns you about before you do it.

Security

  • Password-protected dashboard, bcrypt hashing, session ID regenerated on login, and a brake on repeated failed attempts.
  • CSRF token on every form that changes anything.
  • Every query is a PDO prepared statement.
  • The dashboard is noindex, nofollow, and the public endpoints do nothing but redirect and count.

System requirements

  • PHP 8.1 or newer, with PDO.
  • MariaDB or MySQL. Tables created automatically; on first run it asks you to create the admin account.
  • Your pages must be PHP for snippet and multivariate tests, because the sticky cookie is an HTTP header and has to be sent before any output. Redirect tests work with plain HTML pages.

$77.00

One payment. You own this version and every update to it, on as many of your own servers as you like.

Order this script

This one is still being listed in our shop, so for the moment the order goes through the contact page. Write and you get payment instructions and the download the same day.

Version 4.0 · PHP + MariaDB · Licence and refunds