Adjet

Split Testing Ads in WordPress: A/B Tests with Adjet

Whether an ad works is decided not by your taste but by its click-through rate – and that can be measured instead of guessed. Here's how to set up a clean A/B test with Adjet's rotation groups in ten minutes, and how to read the results correctly.

There are two kinds of publishers: those who believe they know their best ad, and those who have measured it. The difference is regularly in the double digits – in percent of ad revenue. Which imagery, which copy, which placement gets clicked is astonishingly hard to predict; even experienced marketers barely beat chance in A/B comparisons. The good news: a clean ad split test requires neither an optimization tool with triple-digit monthly fees nor a statistics degree. An ad plugin with rotation and counting is enough.

How split testing works in Adjet

In Adjet, a split test isn't a separate module with its own learning curve, but a property every ad block has anyway: the rotation group. Every block has two fields – a freely chosen group name and a weight. All blocks with the same group name form a rotation: on every page view, Adjet serves one of them, randomly and proportionally to the weighting. Two blocks with weights 1 and 1 give a 50/50 split – and that is exactly an A/B test.

Step by step

  1. Create variant A: create a normal ad block – say, your existing AdSense or house-ad banner. In the "Rotation / group" field, assign a name, for example incontent, weight 1.
  2. Create variant B: duplicate the block and change exactly one thing – a different image, a different headline, or a different format. Same group name incontent, weight 1 as well.
  3. Embed the group: instead of the individual blocks, put the group shortcode in place: [adjet_ad_group name="incontent"]. From now on the variants rotate 50/50.
  4. Let it measure: Adjet counts impressions and clicks per block – locally in your WordPress, without external services. The statistics page shows the click-through rate (CTR) per ad block.
  5. Decide: once enough impressions have accumulated (more on that in a moment), the variant with the better CTR wins. Deactivate the loser, create the next challenger variant, keep testing.

If you run AdSense, this way you're not testing the Google ad itself but the block's format and placement – which moves revenue considerably too, as our post How much does AdSense pay? shows. The basics of embedding are covered in our AdSense setup guide.

The three rules for reliable results

1. One variable per test

If variant B has a different image and different copy and a different color, in the end you only know that B performs better – but not why. The next banner starts from zero again. Change exactly one thing per test, and every result becomes knowledge that carries over to future ads.

2. Don't decide too early

After 200 impressions, one variant always looks like the clear winner – that's noise, not a result. As a rule of thumb for ad tests: at least 1,000 impressions per variant and at least one full week of runtime, so that day-of-week effects even out. For small CTR differences (below roughly a fifth in relative terms), better add another week. Whoever checks the statistics daily and stops at the first lead isn't testing – they're flipping a coin with extra steps.

3. Simultaneously, not one after the other

"Banner A ran in June, banner B in July, B did better" is not a test – between June and July lie holidays, weather, and the news cycle. That's exactly why rotation is the right mechanism: both variants see the same period, the same visitor mix, the same randomness. Only then is the difference between the variants the only difference.

What the Pro version adds

Rotation groups, weighting, and the block statistics are already in the free version, which is available as Hafenstudios Ads in the official WordPress directory. Adjet Pro extends the testing with unlimited parallel tests and AI variant suggestions: instead of puzzling over which challenger variant should compete next, Adjet suggests variants based on the existing block. On top come the other Pro features like overlays, triggers, and adblock messaging – the latter a topic of its own, which we've quantified in our post on adblock statistics.

In short: Two blocks, one group name, one shortcode – that's all an ad A/B test in Adjet is. The art isn't in the tool but in the discipline: one variable, enough impressions, simultaneous delivery. Stick to that, and you stop guessing.

Ads that have to prove themselves

Adjet: ad management with rotation groups, local statistics, and scheduling – GDPR-friendly without external services. Pro adds unlimited split tests and AI variant suggestions.

See Adjet

Frequently asked questions

Do I need a dedicated testing tool for ad A/B tests?

No. For ads, an ad plugin with rotation and click statistics is enough: the rotation provides the random, simultaneous delivery, the statistics provide the comparison. External testing suites only pay off once you want to test entire page layouts.

How many impressions does a meaningful test need?

As a rule of thumb, at least 1,000 impressions per variant and one full week of runtime. The smaller the CTR difference, the more data the decision needs – with close results, better measure for another week.

Can I test three or more variants at the same time?

Yes. A rotation group in Adjet can contain any number of blocks; the weighting controls the distribution. Just keep in mind: the more variants, the longer it takes until each one has enough impressions for a reliable verdict.

Does split testing also work with AdSense?

Yes, with one caveat: what you test is the format, size, and placement of the ad block, not the creative of the Google ad – Google picks that. But placement tests in particular move AdSense revenue considerably.

Are the click statistics GDPR-compliant?

Adjet counts impressions and clicks locally in your WordPress database, without external services, without cookies for the counting, and without profiling individual visitors. That's more data-minimal than any external tracking solution.

Back to blog A post by hafenstudios