To rotate ads in WordPress with WB Ad Manager, assign two or more ads to the same placement. Each page view shows one of them, picked at random and weighted by the ad’s Priority (1 to 10, default 5). Then compare their click-through rates in the Ad Performance Comparison box on the ad’s edit screen. That’s the free plugin. A true A/B test with a fixed traffic split and a significance check is in Pro.
The rotation part is easy. The part people get wrong is the second half: deciding which ad actually won. This post covers how Priority turns into a share of views, how to read the CTR box, and why a gap after 40 impressions tells you almost nothing.
Rotation, refresh and A/B testing are different things
These three get lumped together, and they aren’t the same.
Rotation means several ads share one slot and each page view shows one of them. A new visitor, or the same visitor on a new page, can see a different ad.
Refresh means the ad swaps on a timer while the page stays open. WB Ad Manager doesn’t do that, so don’t plan around it.
A/B testing means you deliberately split visitors between versions of one ad, on a fixed ratio, to find out which does better. Rotation shows you a comparison as a side effect. A test is set up to produce an answer.
If you want the basics of putting more than one ad in a placement, placing your first ad zones covers it in Step 5. This post picks up from there.
How Priority turns into a share of views
Under the hood, each ad goes into a pool once per point of Priority, and the plugin draws one entry at random on every page view. So an ad at 10 has ten entries and an ad at 5 has five. The maths is linear: your share is your Priority divided by the total of every live ad’s Priority in that slot.
Every ad starts at 5, so two fresh ads split the slot evenly. Change one and the shares shift:
| Ads in the slot | Priorities | Share of views |
|---|---|---|
| Two ads | 5 and 5 | 50% / 50% |
| Two ads | 10 and 5 | 67% / 33% |
| Two ads | 5 and 1 | 83% / 17% |
| Two ads | 10 and 1 | 91% / 9% |
| Three ads | 5, 5 and 5 | 33% each |
Two things follow from this. First, doubling an ad’s Priority doesn’t double its share unless the others stay put, because the total changes too. Second, it’s a random draw, not a rotation queue. Over 20 page views you won’t see a neat 10 and 10; over thousands, the totals settle close to the table.
Only ads that are live count. Scheduling decides whether an ad is in the pool at all, so a sponsor with a start and end date joins the mix on day one and leaves it after the last day. The AdSense plus direct sponsor use case shows that pattern with real numbers.
Set up two creatives in one placement
For an honest comparison, change one thing between the two ads and keep the rest the same.
- Create the first ad under WB Ad Manager > Add New Ad and tick the placement you want, say the sidebar widget.
- Create the second ad and tick the same placement.
- Leave both at Priority 5 so the split is even. A comparison is cleaner when neither ad gets a head start.
- Make the two ads differ in one respect: the headline, the image, or the button text. If you change all three, you won’t know which change did the work.
Keep both ads live over the same dates. An ad that ran over a payday weekend and one that ran midweek aren’t a fair fight.
Read the CTR box, and what “too close” means
Open WB Ad Manager > All Ads to see the Impressions and Clicks columns for each ad. For the side-by-side view, edit one of the ads: the free plugin shows an Ad Performance Comparison box for ads in the same slot, with a winner badge.
The badge isn’t handed out on a hunch. The ad needs at least 100 impressions, and its click-through rate has to lead the runner-up by 20% relative or by 1 percentage point absolute. Until then the box says there is no winner yet, or that the ads are too close.
Here’s why both rules exist. Say ad A has a 2.0% CTR and ad B has 2.3%. B is 15% ahead in relative terms, but that’s 0.3 points, below the 20% line and well below one point. That gap is small enough that another week of traffic could flip it. Now say A sits at 1.0% and B at 1.3%: that’s a 30% relative lead, so the badge can appear even though the absolute gap is only 0.3 points. The two-rule check is deliberately simple, and it’s a guide, not a statistics test.
Treat the badge as “worth a closer look”, not as proof.
What the comparison box shows
The box is called Ad Performance Comparison, and it sits on the edit screen of any ad that has a placement. It lists every enabled, published ad that shares a placement with the one you are editing, up to 50. Each row shows impressions, clicks and click-through rate, with a bar that scales to the best performer.
Next to every ad except the one you are on, there is a Disable link. It asks you to confirm and then switches that ad off, which is the quick way to retire the loser once you have decided.
The note under the table tells you where you stand. It says there is no winner yet when an ad has fewer than 100 impressions, that the top two are still within noise when they are too close, or that only one ad has enough data so far. That last message deserves care. When only one ad has reached 100 impressions, that ad can wear the winner badge simply because it is the only one eligible, not because it beat anything. Let the other ad catch up before you believe it.
A worked example
These numbers are invented to show how the rule behaves. Your own will differ.
Two sidebar creatives for the same sponsor run at Priority 5 for a month. Each is shown 1,500 times. Ad A gets 18 clicks, a rate of 1.2 percent. Ad B gets 22 clicks, a rate of 1.47 percent.
B leads by about 22 percent in relative terms, which clears the 20 percent line, so the winner badge appears. But the whole difference is four clicks. A different month could easily have produced 21 and 19. A significance test, which is what the Pro A/B test runs, would not call this a result.
Now take a second pair, with 12 clicks against 21 from the same 1,500 views each. That is 0.8 percent against 1.4 percent, a lead of 75 percent. Nine extra clicks on the same exposure is a much firmer signal, though still not a certainty.
The lesson is to read the clicks as well as the badge. If the difference is a handful of clicks, treat the badge as a prompt to keep running, not as a verdict.
When 100 impressions each isn’t enough
A hundred impressions is the floor, not the target. At a 1% click rate, 100 impressions is about one click. One extra click on either side swings the CTR by a full point, which is why the numbers jump around early on.
A rough way to think about it: the lower your click rate, the more impressions you need before a gap means something. Display ads often sit in the low single digits or below, so you may need thousands of impressions per ad, not hundreds. If your slot only gets a few hundred views a week, expect to wait weeks, or accept that you’re making a judgement call.
Two habits help. Don’t peek daily and stop the moment one ad leads; that’s how people crown winners that were just early noise. And write down your rule before you start, such as “at least 1,000 impressions each and at least two full weeks”, then stick to it.
Use the caps to fix the size of a test
Free rotation has no end date for a comparison, so you set one yourself. Two controls help.
- Total Impressions stops an ad after it has been shown that many times across all visitors. Give both ads the same cap, for example 2,000 each, and each retires itself after an equal share of views.
- Schedule dates (and optionally days of the week and a time window) keep both ads live for the same period, so neither gets a better week.
Once one ad reaches its cap, it leaves the pool and the other ad takes the whole slot, so do not leave the test unattended past that point. Check the box when both caps are about to be reached, record the result, and then decide what to run next.
Free rotation versus a Pro traffic-split test
Free rotation is a random draw on every page view, so one visitor can see both ads across a session. That’s fine for sharing a slot, and the CTR box gives you a quick read. It doesn’t promise equal exposure in a short window, and it won’t shift weight to the better ad by itself: if ad B is winning, you decide whether to raise its Priority or drop ad A. The plugin doesn’t do it for you.
The Pro A/B test is built for an actual answer. You choose an original ad and one or more variants, and you set the traffic split: the percentage of visitors who see the original, with the rest shared among the variants. Each visitor is assigned to a version and a cookie keeps them on it for 30 days, so the same person isn’t shown both ads and muddying the result.
Pro also checks significance. The default minimum is 100 impressions, and it runs a significance test on the click-through rates, calling a winner when the result clears p < 0.05, which is a 95% confidence level. When you complete the test, you can promote the winner so it takes over the original ad’s placement and keeps serving.
If you rotate for convenience, free covers it. If you’re making a decision you’ll act on, such as swapping a sponsor’s creative or changing a high-traffic slot, the Pro test gives you a cleaner answer. The free versus Pro page lists the split, and pricing has the current plans.
Rotation and cached pages: what to check
One caution before you trust any numbers. Page caching can serve the same stored copy of a page to everyone. If the ad is baked into that cached page, every visitor may see the same ad until the cache refreshes, and impressions are counted when the server builds the page, so cached views can go uncounted.
We haven’t claimed that rotation works on fully cached pages, and you shouldn’t assume it does. Test your own setup: load a page with the rotating slot in several private windows, or from a few different devices, and see whether the ad changes. Then compare the impressions the plugin reports with what your analytics say. If the counts are far apart, caching is the likely reason.
If you find caching is flattening your rotation, exclude the pages with the slot from the cache or ask your cache provider what it offers for dynamic fragments. That’s a question for your host and your cache plugin, and the answer varies by setup.
After you pick a winner
Choosing a winner is half the job. The other half is making the result stick.
- Disable the loser from the comparison box, or lower its Priority to 1 if you want it to appear rarely for a while.
- Note the numbers in a spreadsheet: the dates, the impressions and clicks, and the one thing you changed. In six months that note is worth more than the badge.
- Build the next test around the winner. Keep its headline and change the image, or keep the image and change the button text.
- Check the sizes. A creative that wins in a sidebar may not fit a different slot, so see banner ad sizes for your website before moving it.
The same approach works for non-sponsor creatives. A newsletter signup form is also an ad type, so you can test two headlines against each other the same way, as email capture ads explains. When the slot belongs to a paying sponsor, share the result with them. The direct sponsor ads use case shows how the pieces fit together.
A simple routine
Put two ads in a slot at the same Priority, change one thing, let them run for the same dates, and read the CTR box once you have a few thousand impressions each. If it says too close, that’s a real answer too: the change didn’t matter much, so test something bolder. When the stakes are higher, use the Pro test. Either way, check your caching first, or you’ll be measuring the cache instead of the ads.
For the wider picture of what the plugin does, see the WordPress ad manager plugin page and the full feature list.