A company I worked with was spending about half a million dollars a month on Facebook ads.
To improve their results, they decided to test new landing pages.
They would clone their existing ads for these tests, creating new post IDs without the history of the original ads.
For six agonizing months, they watched as their test ads consistently underperformed.
They kept telling me, “No one can beat our landing page.”
When I investigated, it was clear—they were unknowingly setting themselves up for failure.
The new post IDs had no historical data, no social proof, and no engagement metrics.
They were essentially starting from scratch every time.
The realization hit them hard: they had wasted thousands of dollars in flawed tests, believing all the while that their original landing page was untouchable.
The first critical lesson of split testing is understanding the true opportunity cost.
Every failed test represents not just wasted ad spend, but missed conversions and lost revenue.
If you’re spending $100 a day and your control ad converts at 20% but your test ad converts at 10%, that 10% difference is your lost opportunity—leads and revenue that you’ll never get back.
Metric | Control Ad | Test Ad | Difference (Lost) |
---|---|---|---|
Daily Ad Spend | $100 | $100 | – |
Cost per click | $1 | $1 | – |
Conversion Rate | 20% | 10% | – |
Conversions per Day | 20 | 10 | 10 |
Revenue per Day | $200 | $100 | $100 |
Ad Spend (14 Days) | $1,400 | $1,400 | – |
Total Conversions | 280 | 140 | 140 |
Total Revenue | $2,800 | $1,400 | $1,400 |
The pain doesn’t stop there.
The constant struggle of watching your new tests fail, knowing that each failure is not just a minor setback but a costly error, is mentally and financially draining.
You start to second-guess your strategies and lose confidence in your ability to optimize your campaigns.
Split testing is essential, but it’s not free.
Each test carries a risk, a very real cost that can hurt your bottom line if not executed correctly.
You need a strategy that minimizes this risk, a pragmatic approach that ensures your tests are meaningful and likely to bring back positive results.
What 90% of people get wrong (even the PROs)
But there’s another common issue that even seasoned professionals often overlook: client-side testing.
Most split-testing platforms use a client-side rotator, which involves placing a script, like a GTM or pixel, in the header section of your page.
When traffic arrives at your landing page A, the script realizes it needs to rotate and loads landing pages B and C. Sometimes, you might even notice a slight flicker on the page.
The problem?
Pages B and C are inherently disadvantaged because page A loads first.
The script takes time to trigger, introducing a delay that can range from a few milliseconds to a couple of seconds, depending on your infrastructure and page builder.
This delay is inconsistent and often invisible, but it sabotages the fairness of your tests.
To illustrate how severe this is, consider running an AA test, where both versions of your page are identical.
Ideally, they should convert at the same rate. But if you see that one version converts at 5% while the other converts at 4%, this indicates a significant disadvantage caused by the client-side rotator.
This discrepancy can lead you to prematurely discard variations that are actually effective, mistakenly believing they’re underperforming.
Imagine the frustration of continually seeing test results that seem to fail, not because the variations are weak, but because the testing setup itself is flawed.
If you’re running paid ads, the stakes are even higher.
Make adjustments to your campaigns without fully understanding these nuances, and you may lose the entire campaign, along with the precious data and algorithmic learning that took months to gather.
Is there a solution that works?
So, what’s the solution if you find something that works but still need to test variations?
How do you ensure you’re not losing money on ineffective tests?
When you discover a successful campaign, resist the temptation to hack at it.
Instead, duplicate the entire setup and clone the campaign.
This way, you can introduce your new landing page as a variant while maintaining the integrity of your control.
Here’s what you should do:
- Duplicate the entire campaign.
- Add your current, high-performing landing page as a variant.
- Include your new landing page variants, B and C.
This method allows you to measure the performance accurately.
For example, if your original landing page (A) converts at 10%, and its clone only converts at 7%, you have a 3% disadvantage caused by the client-side rotator.
If variant B converts at 9%, adding the 3% disadvantage reveals that B is actually outperforming your original page.
The issue, however, is that this disadvantage isn’t consistent.
It can vary based on factors like the type of landing page builder you use, the traffic source, the number of scripts on the page, and even specific elements like GTM containers.
Because of this inconsistency, you need to run these checks every time you test a new variant to ensure accuracy.
This process is expensive and time-consuming.
The ad spend used to determine this disadvantage is essentially wasted money—money that could have been better utilized.
Despite what many split testing platforms claim, this issue is ever-present. The question is whether it’s a significant enough problem to impact your results and ROI.
The Ideal Setup: Server-Side Split Testing
A more effective setup involves server-side testing, where the rotation of your landing pages happens on the server, rather than the client side.
This method evenly divides the traffic without the delays that disadvantage some variants.
Here’s how to execute this:
- Server-Side Rotation: Direct your traffic to a server-side setup that will rotate your landing pages equally. Unlike client-side testing, this method distributes traffic without any delay, ensuring each variant gets a fair chance.
- Reduced Risk Strategy: If you’re spending significant amounts—say, a million dollars a month—you don’t want to split your traffic 50/50. This approach is too risky and could lead to substantial losses if the new variant underperforms. Instead, allocate 95% of your traffic to your control (the original, high-performing page) and 5% to the new variant. This minimizes risk while still gathering meaningful data.
- Practical Testing Duration: To ensure your results are statistically significant and practically useful, plan your tests to run over a 10 to 14-day cycle. This duration helps account for daily fluctuations and special events like Cyber Monday or Black Friday, which can skew results if considered in isolation.
For example, a company spending five million dollars a month once told me, “Nick, the test is over; we have the result.”
They had run the test for only two hours.
I had to explain that you need at least 10 to 14 days to gather comprehensive and reliable data.
Testing for just a few hours may give you statistically insignificant and practically useless outcomes.
By using this server-side, low-risk strategy, you’ll avoid wasting money on ineffective tests and ensure the results you get are both meaningful and actionable.
Why This Matters
One of the most common pieces of feedback I’ve received is the need to avoid touching existing high-performing campaigns.
Using this setup with LeadsHook, you can create new campaigns with the same destination URL, making the transition seamless.
Once your new campaign outperforms the old one, you can simply switch off the old campaign without changing the URL, ensuring continuous and consistent performance tracking.
Benefits of this approach:
- No Disruption to Facebook Ads:
- Your Facebook ads continue to run smoothly without reverting to the learning phase, which can impact performance.
- This maintains the optimizations that Facebook’s algorithms have already learned and applied to your campaigns.
- Efficient Split Testing:
- Each time you publish a new variant, it’s like starting a fresh split test, but with the convenience of a consistent destination URL.
- This reduces complexity and ensures that you can focus on optimizing your landing pages rather than juggling multiple URLs and ad sets.
This ability to add new pages seamlessly into your split test setup without altering the destination URL is a game-changer. It addresses the common frustration of needing new URLs for each new campaign or split test, which can disrupt your ad performance.
- Consistency is Key: Keep your high-performing ads running without touching the destination URL.
- Seamless Integration: Easily introduce new variants like Page C and publish changes, ensuring your testing process is both efficient and effective.
By maintaining a consistent destination URL, you avoid the pitfalls of re-entering the learning phase on Facebook and safeguard your campaign’s existing performance metrics.
Implementing with LeadsHook
The best part? You don’t have to wait for this solution to become available—it’s here now.
LeadsHook offers a server-side split testing setup that will save you money and provide reliable results.
I’m about to share how you can set this up inside LeadsHook, so you can start optimizing your campaigns more effectively today.
Here’s a step-by-step guide on setting up your server-side split testing with Leads Hook:
- Create Hypothetical Pages:
- I’ve created two sample landing pages using Brizy—a WordPress plugin with beautifully designed templates. They may or may not be the best in terms of performance, but they serve well for demonstration purposes.
- These pages are themed around cryptocurrency, but you can customize them to fit your niche.
- Set Up Decision Trees:
- I’ve integrated decision trees into both pages. You don’t need any additional scripts on the page; LeadsHook tracks the landing page activities effectively.
- Navigate to Experiments in Leads Hook:
- Once you log in, you’ll see a tab labeled “Experiments.” Click on it to start setting up your split test.
- Click “Add” to create a new experiment, name it, and proceed to the variant setup.
- Add Variants:
- Start with your control page (Page A) and your test page (Page B).
- You can add more variants by clicking “Add Variant.” Let’s say you add Variant C. You would pick your decision tree and configure the domain settings accordingly.
- If you’re embedding the pages, select the option and enter the URL, like yourdomain.com. If you’re not embedding and running direct link campaigns, leave it as is.
- Configure Custom Domains:
- If you’ve verified custom domains inside Leads Hook, they’ll be available for selection. This ensures your traffic from platforms like Facebook is routed correctly.
- Select the verified domain for rotation, which maintains continuity with your existing campaigns.
- Update Destination URL:
- The URL generated by Leads Hook should be used as your destination URL in your ads. Attach any necessary UTM parameters for tracking.
- Leads Hook automatically passes UTM parameters to your underlying pages, so you won’t need to make any changes to your current tracking setup.
- Run Your Campaigns:
- With this setup, you can confidently run your campaigns knowing that the server-side rotation will evenly distribute traffic without the delays and disadvantages of client-side testing.
- Start the campaign, let it run for a 10 to 14-day period, and monitor the performance to gather meaningful, statistically significant data.
This setup takes away the hassle and inefficiencies of client-side rotators, ensuring that your tests are fair and your ad spend is used effectively.
Here’s how you can introduce Page C without disrupting your existing setup:
- Create Page C:
- Within the LeadsHook experiment tool, add a new variant named Page C.
- Define the URL (e.g., pc.html), and add a description and summary of edits. This ensures you keep track of modifications and can easily identify the changes made to Page C over time.
- Configure and Publish Page C:
- Once configured, save and publish Page C.
- LeadsHook will now include Page C in the rotation. All Facebook traffic will be directed to Page C along with Pages A and B, based on your specified rotation settings.
- Delete Unnecessary Variants (if needed):
- If you decide to focus solely on Page C, you can delete Pages A and B from the rotation.
- This simplifies your setup, ensuring that all Facebook traffic is solely directed to Page C without changing the destination URL.
You can see the whole implementation and get additional insight from this point forward in the video: