Split Testing and Landing Page Rotation Script for PPV
Split testing kicks ass. Rotating landing pages to find which one converts best is the ticket to making you more money. Don’t be lazy, it’s not that hard!
If you’re experienced, I’ll cut to the chase. Here is my ppv landing page rotation script download link. This script supports all major CPV networks, and allows even rotation via counter file or psuedo-rotation via random number. Read the comments in the file, you’ll figure it out. Enjoy
If you’re still a little bit hazy on exactly how to set this up, read on retard!
Directory Structure
The first thing I do is organize the landing pages for the campaign. I’ll show you the method I use below. I have found it allows me to keep things neat, organized, and consistent. Keeping stuff simple let’s me focus on throwing up new campaigns quickly, over and over again.
Here is a screenshot of what a setup will look like:
1. I first create a directory for each offer I am going to test.
In this example, I chose to name the directory “auto”, because the offer is automotive related. If I was going to run a dating offer, I might name the directory “dating” or “black-dating”. You can name it whatever you want, but make sure to keep it URL friendly. That means no spaces.
2. I create 1 directory for every traffic source I will be using.
I name these directories using abbreviations for the various CPV networks. (ao = AdOn, dc = DirectCPV, li = LeadImpact, mt = MediaTraffic, tv = TrafficVance). Inside each of these directories, I drop the two rotation script files: index.php and count.txt. Make sure you set the count.txt file to writeable. (Chmod 777).
3. I create 1 directory for every landing page I will be testing.
I use names that are descriptive. I also make sure to use the exact same name when I’m setting up each landing page in Prosper202. This makes it a breeze to figure out what’s what. In this example, I will be testing 8 different landing pages.
Setting Up The Campaign In Prosper202
If you have not already done so, add each PPV traffic source you will be using to your Prosper202 installation:
Click: Tracking202 > Setup > PPC Accounts
For this example, I have added: AdOn, DirectCPV, LeadImpact, and MediaTraffic.
If you have not already done so, add the campaign (offer) you will be testing to your Prosper202 installation.
Click: Tracking202 > Setup > #3 Aff Campaigns
Make sure you setup the Affiliate Url so it will correctly pass the subid. Ask your CPA network or a buddy how to do this if you don’t know how.
Next, add the landing pages.
Click: Tracking202 > Setup > #4 Landing Pages
For “Landing Page Type” I use Simple. Since this is going to be PPV, I won’t be using multiple offers on the landing pages.
For “LP Nickname” I use the names of the landing page directories I have already created. So for this example, I would add the 8 landing pages you see in the yellow section of the screenshot. The LP Nicknames would be: plain-girl, plain-nycwoman, plain-sexy, stock-girl, etc.
For this example, the “Landing Page Urls” would be:
http://yourdomain.com/auto/plain-girl/ http://yourdomain.com/auto/plain-nycwoman/ http://yourdomain.com/auto/plain-sexy/ http://yourdomain.com/auto/stock-girl/ etc.
Next, we need to get the LP Code.
Click: Tracking202 > Setup > #6 Get LP Code
Get the “Landing Page Outbound Tracking Affiliate URL” and the “Inbound Javascript Landing Page Code” that Prosper202 generates. Insert both into each landing page. So for this example, I would add both pieces of code to /auto/plain-girl/index.html, auto/plain-nycwoman/index.html, etc. Remember, you have to do this for each landing page. Each landing page will/must have its own unique LP code snippets.
Next we need to get tracking links.
Click: Tracking202 > Setup > #7 Get Links
We will need to get a Destination Url for each Landing Page and each PPV network it will run on. In this example, I am using 8 landers and 4 traffic sources. So I will be generating 32 tracking links (8 x 4 = 32).
I like to do this one PPV network at a time, working my way down the PPC Network dropdown menu. So I would first do AdOn network. I do the same with the Landing Page dropdown menu, I work my way down. In the example, the first one I would do would be plain-girl / AdOn. See pic:
So once I got all 8 destination links for AdOn, they would look something like this:
http://yourdomain.com/auto/plain-girl/?t202id=2171&t202kw= http://yourdomain.com/auto/plain-nycwoman/?t202id=3186&t202kw= http://yourdomain.com/auto/plain-sexy/?t202id=4194&t202kw= http://yourdomain.com/auto/stock-girl/?t202id=3206&t202kw= http://yourdomain.com/auto/stock-nycwoman/?t202id=1215&t202kw= http://yourdomain.com/auto/stock-sexy/?t202id=3225&t202kw= http://yourdomain.com/auto/stock1/?t202id=8231&t202kw= http://yourdomain.com/auto/stock2/?t202id=8249&t202kw=
I usually have Notepad open and paste each url as I go. I then move on to the next PPV network in the list. In this example it would be DirectCPV.
When I’m done I have a Notepad file that’s got all 32 links I will need for the rotation scripts. Make sure you separate each block of links according to each PPV network in the Notepad file.
Editing Rotation Script
The final step is adding all of destination urls/tracking links we got into the rotation scripts. Again, just go down the list. So first, I would open the file /auto/ao/index.php (ao is for Adon, remember?)
Near the top of the script, you will see the section that allows you to add your landing pages. This is where you paste the destination urls you just got. So for this example, my rotation script lander section would look like this:
$lander[] = 'http://yourdomain.com/auto/plain-girl/?t202id=2171&t202kw='; $lander[] = 'http://yourdomain.com/auto/plain-nycwoman/?t202id=3186&t202kw='; $lander[] = 'http://yourdomain.com/auto/plain-sexy/?t202id=4194&t202kw='; $lander[] = 'http://yourdomain.com/auto/stock-girl/?t202id=3206&t202kw='; $lander[] = 'http://yourdomain.com/auto/stock-nycwoman/?t202id=1215&t202kw='; $lander[] = 'http://yourdomain.com/auto/stock-sexy/?t202id=3225&t202kw='; $lander[] = 'http://yourdomain.com/auto/stock1/?t202id=8231&t202kw='; $lander[] = 'http://yourdomain.com/auto/stock2/?t202id=8249&t202kw=';
Notice, I just wrapped each destination url with $lander[] =’ and ‘
You will need to do this for each rotation script. So in this example, I would have to edit 3 more files:
/auto/dc/index.php
/auto/li/index.php
/auto/mt/index.php
Edit each of these files as I have show you above.
PPV Tracking Links
Now, when it is time to set up a new campaign on the various PPV networks, you will use these as your destination Url’s:
DirectCPV: http://yourdomain.com/auto/dc/?vurl={{vurl}}
MediaTraffic: http://yourdomain.com/auto/mt/
LeadImpact: http://yourdomain.com/auto/li/
AdOn: http://yourdomain.com/auto/ao/?adon=SEARCHTEXT_PARTNERID
TrafficVance: http://yourdomain.com/auto/tv/?tvance=%%$KEYWORD%%
All of these point to the rotation script. When the PPV network shows your ad, it will direct the user to your rotation script url. The rotation script will then take over and show the user whichever landing page is due to be shown next.
That’s it! Make sure to test all of these url’s. Refresh the page several times and you should see your various landing pages rotating through. Never launch a campaign without testing all your LPs and all your links!
Related posts:
- Split Testing and Rotating Offers in Tracking202
- LeadImpact Doesn’t Allow Landing Page Rotations
- Tracking202 Missing PPV Icons Fix
- How To Use Wordpress as a Landing Page
- Passing Variables Through Prosper 202 Mod

















39 responses to "Split Testing and Landing Page Rotation Script for PPV"
Dude,
From a fellow PPC-Coach member, thanks for the step-by-step. I am just getting into CPV and this will help out a lot as I am really trying to build email lists and thus I create my own landers.
Jeff
You’re welcome. I’m glad it helped out. Thanks for reading and commenting.
Awesome post! I have been trying to figure out how to get this done for a few weeks. I’m going to follow your instructions and give it a go.
Question: you’re saying rotate LP’s but could this exact same technique be used to rotate offers? Have one LP but pointing to multiple offers / find the winner / then send all the traffic to the one offer and then start split testing LP’s?
Glad you liked the post. Thanks for reading and commenting.
Yeah, you could totally use the same technique to rotate offers. You can even use the same script.
Just make a copy of the script, and put it in the same directory as your LP. Name it something like “out.php” Then edit the script so all the $lander[] array elements are not links to LP’s, but links to offers (i.e. “Landing Page Outbound Tracking Affiliate URL”).
The final step is change the links to the offer in your LP’s to link to the “out.php” script. That’s it. Your offers will rotate too.
will the directcpv code work for both keyword and url campaigns?
Yes. I left that out, sorry. To use it for a keyword campaign, you just swap out the token {{vurl}} with {{keyword}}
For a DirectCPV keyword campaign, you would just use this as your destination url:
http://yourdomain.com/auto/dc/?vurl={{keyword}}
So the instructions would be the same:
Step 1 instead of the offer, this would be the niche. Let’s say we keep this “Auto” if I was split testing/rotating auto insurance offers.
Step 2- still create a directory for each traffic source
Step 3- instead of creating a directory for each landing page, I am substituting that with a directory for each offer
Am I right so far?
Kind sorta, not really
There is no need to create directories for each offer. Technically, you don’t even need one for each landing page, but doing it like this makes it WAY easier to manage and set up.
Doing the offer rotation is a bit sticky. This is because AFAIK for Prosper202 to track it properly, you need to use Advanced Landing Pages. And even then, I am not convinced you will get proper statistics.
I think this warrants its own post. I will look into it and once I get something that I know works I will post a tutorial like this one.
In the meantime, some reading on the subject….
http://prosper.tracking202.com/scripts/rotate-offers/
http://www.ianfernando.com/2008/rotate-offers-base-on-performance/
Hey man, this tutorial is so useful. i managed to follow every single step from beginning to end. it works so well, there is one thing, not working for me. it don’t show any click through data.. i am not sure why? do you have any idea what is the best way for me to troubleshoot?
Thank a lot
SimonT
If you mean CTR specifically, you can see this on the Analyze > Landing Pages screen. By default Tracking202 only shows “Real Clicks”. Change the dropdown to show “All Clicks” and you will see the multiple clicks from your PC’s IP. If you are viewing your landing pages and clicking on your offer links and still don’t see clicks after doing this, then you have done something wrong. Easiest thing is to start over and paste stuff again.
Hey man. Thanks a lot for the reply
Yes i did the same setup another campaign. i have the same problem. Yes i am view it under “Analyze Incoming Landing Pages”. Yes i mean no data for “Click Throughs” and “CTR”.
I did follow you step by step many time , read over many time too. I guess it is not your step wrong, but maybe i need to do something on server end to make it track the CTR? any possibility other issue i need to look for? example, maybe i need to name the file to .html instead of .php?
Thanks
Simon
Great post, very helpful!
One question. What If you want to rotate your LPs AND direct link as well. Will you just add your directlink into the rotation script? If yes, I understand that this MUST be a direct link that prosper generates in order to track it properly. So the direct link will look like this:
http://trackingdomain.com/tracking202/redirect/dl.php?t202id=XXXX&t202kw= and i need to create it in Get Links in prosper and then include it in your rotation script.
is that right?
thanks in advance and thanks again for your script!
You got it exactly right. Just create your direct link through Prosper202 and you put that URL into the rotation script. Thanks for reading!
hey mate,
just came back to thank you again for your tutorial(s) and scripts. everything works perfect!
you are only few post away from getting into affbuzz
cheers
Quick question, if I’m running a campaign on Adon network using a third party called prosper202 basically the url they give you ends with kw= do I insert SEARCHTEXT_PARTNERID at the end of kw= has anyone tracked on Adon using prosper. All suggestions would be great. Thank you
If you follow the guide exactly, you will see at the very end I give you the exact url you should use for AdOn. Obviously, you should make sure “yourdomain.com” is replaced with your real domain and make sure the path is correct. ADOn will replace the token “SEARCHTEXT_PARTNERID” before passing the user to your lander.
Thanks for your help! Very good info.
One question is if I were to direct link I understand how to set it up, but how can i track my conversions? What code do i send to my affiliate network to be placed on the thank you page?
Thanks in advance!
Not sure why you mentioned direct linking. Tracking conversions requires either use of a postback url or pixel. If your network supports a postback url, use that. Otherwise you need to get a pixel placed. In Prosper202 go to Setup > #8 Get Postback/Pixel. That is what you use. Ask your AM which one they support and ask them where to enter. Most networks let you do it in their campaign settings/interface.
Actually, and I’m sure it’s just an oversight, the MOST common method for tracking your conversions is not placing pixels or a postback, that’s difficult for people to manage, given the technical know-how/resources required to ingest and do something w/ a postback, etc. Want to get an AM pissed at you ? Starting running around asking them to place pixels for all the little tests you want to run for testing, it’s not worth their time/effort nor the advertisers if that’s what’s necessary. The method I think most people would agree makese sense is the subid reporting method – where you upload your stats directly into T202 (it will get them automatically w/ the paid version from LOTS of networks). Since T202 places it’s unique tracking ID as the subid, when you download your subid stats from the network, then upload them into T202, you get a matchback that shows you all the sales/conversion data your looking for.
Not quit related, but kinda related – Desktop tools like StatsJunky can inegrate data in the same way to give you an affiliate earnings dashboard, but don’t breakdown source to earnings conversions – but sure a cool to look at.
Yup, for sure you can use subid tracking. But that involves more work. I’d rather spend my time putting up new campaigns. Using a automated tracking via postback url or pixels requires zero additional work on you part once it’s setup.
I also agree that having to hound your AM to get pixels placed sucks. That’s why I prefer networks where the system is designed to handle placements for you. Off the top of my head: A4D, EWA and Neverblue. IMO, networks that don’t allow this type of functionality are way behind the times. We are using computers… everything should be automated.
Thanks for reading and commenting!
Thanks for the script and the excellent tutorial! It was of great help.
I followed all the steps and the campaign is live now. I do see lots of clicks in Propser202 report but but for some reason my affiliate n/w (Neverblue) does not show any links at all.
I am confused as to which URL I use in my landing page to send the visitor to the advertiser’s page, when they click on the button/link. Is this the URL I get from Tracking202 > Setup > #7 Get Links? Or the one I get from my affiliate offer page? Appreciate your feedback!
You want: Tracking202 > Setup > #6 Get LP Code
This step will give you both the code that tracks the landing page impression AND the outbound link that goes to the offer page.
Thanks for reading and commenting
Correction: I meant to say my affiliate n/w (Neverblue) does not show any clicks/impressions at all.
This is probably related to your URL confusion. Maybe you aren’t linking to the offer page correctly? Always make sure you test your landing page. Click on the outbound links and make sure the offer page is displaying properly.
I’ve never had any issues with Neverblue. However, sometimes they take their reporting offline for maintenance. The clicks still get tracked, but reporting is delayed. Usually they post a notice about this though. Double check your setup
thanks for posting this great script and tutorial! I hated p202 for the longest time (well.. I still do
), and even went as far as to have a programming genius design me something wayyyy better, unfortunately its not done yet but when it is its going to wipe the floor with P202 for CPV tracking hands down. It’s packed full of features that will increase profits and reduce time in setting up campaigns ect. I find the main flaw with P202 is that they throw 20 different tracking tools into one clunky, confusing interface. Combine that with external scripts and it’s not very appealing to newbie marketers looking for a quick easy setup.
Anywho, on to my question; I got everything setup as you described and I see the clicks for my landing pages but it doesn’t seem to track the clicks from my landing page to the offers I setup. I used the ‘create advanced landing page’ because I’m running 2 offers on my landing page, I applied given PHP redirect for each offer but it doesn’t seem to track correctly.. I went to Analyze > Landing Pages and Spy View but don’t see any clicks for the offer pages.
Any advice would be a huge help! Great blog btw, can I somehow subscribe by email?
Hi, outbound clicks from your LP to the offer page should indeed be tracking. It sounds like you set everything up correctly. I would double-check your links. Also, in Spy View you should make sure to select “Show All Clicks”, otherwise clicks from your IP will be filtered out. If that doesn’t fix it, I would go through Setup again. I used this setup all the time, so I know it works. You might have just made a simple mistake.
Your tracking sounds cool. Hit me up if you need a beta tester
There are a lot of people looking for a different tracking solution right now. Especially one that is designed for CPV.
I’m going to look into getting the subscribe by email thing setup. Check back soon.
Thanks for reading!
This may or may not be related to using tracking202 for cpv but let me know what you think.
With an advanced landing page that has 2 offers. When I’m looking at the CTR under analyze > Landing pages. Is this CTR % for the first offer or both the first and 2nd offer ?
I sure it’s CTR just for the 1st offer because that’s what I’m optimizing for.
The CTR you are seeing is for the Landing Page itself. Each outbound click is counted, regardless of which outbound link was used.
So let’s say your LP has 100 Clicks. It would have a CTR of 50% if you got: (a) 50 clicks from offer #1, (b) 25 clicks from offer #1 and 25 clicks from offer #2, etc.
Thanks for reading and commenting!
Hey thanks for your response. I got this answer from Nana and Wes today.
[12:35:27 PM] Nana Gilbert-Baffoe: last offer that was clicked on. it’s just the entire click through
if they click through on 2 offers
its just 1 clickthrough for the landing page
other wise 1 visitor, could have 2 click-throughs with a CTR of 200% & that wouldn’t make sense
So… 1 visitors max, 1 click-through
- Wes Mahler, Today 12:32 PM
Wow, OK when they put it like that, it makes perfect sense. Having a 200% CTR would be dumb. I guess I could have figured that out if I’d have thought it through with some other scenarios.
Thanks for posting their reply
First…This tutorial has been a godsend. Thank you so much for taking the time to write something useful.
Very important question….
Is there a way you can track which PPV networks the conversions are coming from?
I looked all throughout my Prosper install, and I can’t figure it out. This information would be vital, since I can cut unnecessary costs.
Following this guide exactly, you will see conversions coming in from the different networks. Overview > Group Overview is a good view I use a lot.
Yeah…just caught that. Careless mistake on my part. =T
On a separate note, know of anyone kind enough to provide a referral to TrafficVance? =)
I think TV recently updated the kw variable to {KeyWord}…with that being said, does it matter within the script whether we use {KeyWord} or %%%KEYWORD%%% ?
Hey Ctrtard, great script, I’ve made it work fine using the %%$KEWORD%% variable. I went in the index.php file and appended {KeyWord} at the end of the dest links, but when I do go to this url
http://www.abc.com/tv/?tvance={KeyWord}
It gives me a link that looks like this instead
http://www.abc.com/test/?t202id=9445&t202kw={KeyWord}{KeyWord}
I am just trying to make it match TV’s new kw variable. Any way to make this work?
You are correct, TrafficVance has changed their token from %%$KEYWORD%% to {KeyWord}
However, the script requires no changes to work with this new token. I use it myself and it works just fine. So try the original, unchanged script and it should work OK for you.
Thanks for reading!
Thanks for this! I keep searching for random PPV questions to get answered and stumbling upon your blog. It’s all great stuff.
(needed the AdOn network token at the moment. Just in time =).
Thanks again!
You’re welcome. Thanks for reading and commenting!
Again, great post! Just getting back into PPV a little and will definitely be putting this to use.