Before you start
- Your own tracking domain. Set up a custom tracking domain before anything else. Shared domains get flagged by ad platforms and blocked by browsers. See Tracking domains.
- A direct tracking campaign. The campaign’s Transition between ad and campaign funnel is set to Direct. If you have not built one yet, follow Direct campaign tracking first.
- The ClickFlare direct tracking script on every landing page (or every LanderLab variant) you want to test, and CTAs that use the ClickFlare Click URL.
Why rotation needs a redirect
In a redirect campaign the click goes through ClickFlare first:Method 1: Duplicate the ad, one lander per ad
This is a workaround, not true rotation. It works with any landing page, wherever it is hosted.How it works
When you add two or more landers to a path in a direct tracking campaign, ClickFlare gives you a separate direct tracking URL for each lander. Each URL is the lander’s own URL plus the campaign ID (cpid) and your traffic source parameters.
You then duplicate the ad in your traffic source and give each copy a different lander URL:
Setup
Add the direct tracking script to every lander
</body> tag, and its CTA must use the ClickFlare Click URL. See Direct campaign tracking.Create or open the direct tracking campaign
Add all landers to the path
Copy one direct tracking URL per lander
Duplicate the ad in your traffic source
Compare landers in ClickFlare
Limitations
The ad platform decides the split, not you
The ad platform decides the split, not you
The test mixes ad performance with lander performance
The test mixes ad performance with lander performance
More ads to manage
More ads to manage
Changing the winner means editing ads
Changing the winner means editing ads
Method 2: Server-side rotation with LanderLab (recommended)
LanderLab is a landing page builder with built-in A/B testing. Its A/B testing is server-side: the page keeps one URL, and LanderLab serves a different version of the page, called a variant, to each visitor according to the weights you set. That is exactly what direct tracking needs. The ad keeps a single, fixed URL, there is no redirect, and the rotation still happens.How ClickFlare knows which variant was shown
When A/B testing is on and more than one variant is active, LanderLab automatically appends avariantId parameter to the page URL, identifying the variant the visitor is seeing.
The ClickFlare direct tracking script reads the full landing page URL on every visit. If your ClickFlare traffic source has a parameter called variantId, ClickFlare captures its value like any other traffic source parameter (campaign ID, ad ID, keyword and so on) and stores it in a ClickFlare tracking field. You can then break down any report by variant.
Setup
Build your variants in LanderLab
- Existing Variant copies a variant of the same page, so you only change what you want to test (headline, hero image, layout).
-
Another Landing Page brings in a different LanderLab page as a variant, so you can test two completely different landers on the same URL.

Add the ClickFlare script and Click URL to every variant
Set the variant weights and publish
variantId when A/B testing is enabled and more than one variant is active.Add variantId to your ClickFlare traffic source
{trackingFieldN}) automatically. Make sure the parameter is switched on, then save.
variantId from the landing page URL. An empty token also keeps variantId out of your campaign and lander tracking URLs, so the only variantId in the URL is the one LanderLab adds.Set up the direct tracking campaign with the LanderLab page
Use one direct tracking URL in the ad
Test before sending traffic
- Different variants load across visits.
- The address bar shows
variantId=with a value. - The visits appear in ClickFlare with a value in the
variantIdcolumn.
Reading the results
In ClickFlare, open the campaign report and group by thevariantId traffic source parameter (the name you gave it in the traffic source). Each row is one LanderLab variant, with its own visits, lander clicks, CTR, conversions, revenue, cost and ROI.
Because variantId is stored like any other traffic source parameter, you can combine it with other groupings, for example variantId → Country or variantId → Device, to see whether a variant wins only for part of your audience.
When you have a winner, go back to LanderLab, use Set as Main on the winning variant and switch the page from A/B Test mode back to Standard mode. The main variant then receives 100% of the traffic. Nothing needs to change in ClickFlare or in the ad.
Things to know
The variants appear as one lander in ClickFlare
The variants appear as one lander in ClickFlare
variantId breakdown, not in the Lander breakdown.Weights are set in LanderLab, not in ClickFlare
Weights are set in LanderLab, not in ClickFlare
Visits with an empty variantId
Visits with an empty variantId
variantId, check that A/B testing is still enabled with at least two active variants, and that the parameter name in the traffic source is spelled exactly variantId. Visits recorded before you added the parameter to the traffic source will not have a value.Does this work with traffic sources other than Google Ads?
Does this work with traffic sources other than Google Ads?
variantId to each traffic source you run LanderLab tests on.Can I use this with redirect tracking too?
Can I use this with redirect tracking too?
Which method should I use?
- Your landers are on LanderLab: use Method 2. True rotation on one URL, controlled weights, one ad to manage, and a per-variant breakdown in ClickFlare.
- Your landers are hosted elsewhere and you can’t move them: use Method 1, and keep the ads identical so the lander is the only difference.
- Your traffic source allows redirects: you don’t need either method. Use a redirect campaign and rotate landers in the path. See Redirect vs. direct tracking.