Landing Page Tracking & Split Testing Using Prosper202
In my previous post, I mentioned that I was using Prosper202 to track my CPA campaign. It was a very simple campaign structure where I used one landing page with opt-in form and visitors will be redirected to an offer after submitting the form. I didn’t do any split testing for the landing page nor for the offer.
Right now I’m focusing on creating a second campaign and this time I want to split test both the ads and the landing pages, and for a start I will only promote one offer. Each landing page will have an opt-in form to capture leads. Here is a simple visual of the campaign structure.
So ideally, Prosper202 should rotate evenly between landing page #1 (LP1) and landing page #2 (LP2). After a visitor submit his email through the opt-in form, he should be redirected to the offer page. Out of the box, Prosper202 does not support landing page rotation but there are several articles that provide a workaround so it can be done although not very straightforward.
Before we go and talk about rotating the landing pages, I found out another limitation in Prosper202 that made me rethink the decision of using Prosper202. See, if you look at the diagram above the visitor traffic flow for my campaign structure is like this:
Ad —> Landing page —[opt-in]—> Offer Page
When I generated the landing page code (step #6 Get LP Code), Prosper202 gave me an inbound code to be inserted in the landing page and an outbound code that must be placed inside a standalone file to cloak the offer link. Since I have 2 landing pages, I have:
LP #1: http://mydomain.com/landingpage1.php
(contains inbound code for LP1) Redirector #1: http://mydomain.com/redirect1.php
(contains outbound code for LP1)
LP #2: http://mydomain.com/landingpage2.php
(contains inbound code for LP2) Redirector #2: http://mydomain.com/redirect2.php
(contains outbound code for LP2)
Herein lies the problem. I want visitors to be redirected to the offer page once they confirm subscription so I must use the redirector URL as the thank you page. But there are 2 redirector URLs! Since one opt-in form can only have one thank you page, I need to create 2 opt-in forms for my list. Technically this is not a big problem but all these workarounds start to bug me a little.
Back to the landing page rotation. Assume we already added traffic source (step #1 Traffic Sources), CPA/affiliate network (step #2 Categories), and the offer (step #3 Campaigns). Btw, if you need help in setting up basic campaign, Luke Kling has an excellent guide here. Once done, here is what to do to enable landing page rotation:
- Add each of the landing page in Prosper202 (step #4 Landing Pages).
- Generate Prosper202 inbound and outbound codes as usual for each landing page (step #6 Get LP Code).
- Go to step #7 Get Links and generate tracking link for each landing page and copy-paste the link in Notepad for later. If we are rotating 3 landing pages, we should have 3 URLs at the end of this step.
The tracking links obtained from the last step above are the ones that must be inserted into the rotator script. The link look something like this:
http://mydomain.com/landingpage1.php?t202id=6114&t202kw=
When we are not doing landing page split test, we need to append the PPC/PPV network’s keyword token at the end to capture the keyword that brings visitor to the landing page. An example for Google AdWords would be:
http://mydomain.com/landingpage1.php?t202id=6114&t202kw={keyword}
Since I want to do split test here, I’m going to give the PPC/PPV network the URL of the rotator script instead. The script is responsible to pick one landing page and display it to the visitor. But I also need the rotator script to capture the keyword so it can be passed through to the actual Prosper202 tracking link.
Initially I downloaded the rotator script from Prosper202 here. But I notice that the rotator script does not pass the keyword to Prosper202 tracking links so I need to do some modification to the script as follow:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
/* ---------------------------------- Prosper202 Landing Page Rotation Script http://AffiliateMarketingInsights.com This is a modified script from the one provided by Prosper202 at http://prosper.tracking202.com/scripts/split-testing-landing-pages/ ---------------------------------- */ // URLs of the landing pages to be rotated. // These are the URLs generated from step #7 Get Links, // one link for each landing page. // You can add as many landing pages here as you like $landingpage [1] = 'http://mydomain.com/landingpage1/?t202id=xxx&t202kw=' ; $landingpage [2] = 'http://mydomain.com/landingpage2.php?t202id=xxx&t202kw=' ; $landingpage [3] = 'http://mydomain.com/sub/landingpage3/?t202id=xxx&t202kw=' ; /* ------ DO NOT CHANGE ANYTHING BELOW ------ */ /* -- (unless you know what you are doing) -- */ // Grab the keyword from the URL $kword = $_GET [ 'keyword' ]; // The text file 'count.txt' must be created and stored // in the same directory as this rotator script. // Its permission must be set to 777 (CHMOD to 777). $myFile = "count.txt" ; // Open the txt file $fh = @ fopen ( $myFile , 'r' ); $lpNumber = @ fread ( $fh , 5); @fclose( $fh ); // See which landing page is next in line to be displayed if ( $lpNumber >= count ( $landingpage )) { $lpNumber = 1; } else { $lpNumber = $lpNumber + 1; } // Write the last landing page displayed to the 'count.txt' file $fh = fopen ( $myFile , 'w' ) or die ( "can't open file" ); $stringData = $lpNumber . "\n" ; fwrite( $fh , $stringData ); fclose( $fh ); // Redirect to the landing page header( 'Location: ' . $landingpage [ $lpNumber ] . $kword ); // Terminate script die (); ?> |
After changing the landing page tracking URLs with the actual URLs in the script above, I saved the file as ‘[campaign-id]-index.php
‘ and upload it to the server.
Note: The file must be saved as a PHP file (.php) for the script to work. You can name the file anything but I’d suggest a name related to your campaign instead of a generic name like ‘rotator.php
‘ or ‘landingpage.php
‘. I have a generic domain where I’ll be running campaigns in multiple niches so I give each campaign a unique ID/nickname.
When I enter this rotator script URL in the PPC network like AdWords, I append the network’s keyword token at the end like this:
http://mydomain.com/script/health12-index.php?keyword={keyword}
Examples for other networks:
7Search: http://mydomain.com/script/health12-index.php?keyword=###KEYWORD###
Bing: http://mydomain.com/script/health12-index.php?keyword={KeyWord}
LeadImpact: http://mydomain.com/script/health12-index.php?keyword=%KEYWORD%
Download
You can download my rotator script here. Remember to:
- Replace the landing page tracking links with your own links.
- Name the script appropriately and upload both the script and ‘count.txt’ to your server.
- CHMOD file ‘count.txt’ to 777.
Final Thoughts
No doubt that this workaround works but at this point I feel that:
- More complex scenario like split testing landing pages AND offers need another rotator script for the offer. Step #3 Campaigns allow you to enter multiple offer URLs but Prosper202 will not break down the statistics per offer.
- I’m using WordPress and for my landing page and even without any split testing Prosper202 needs standalone PHP files for cloaking offer links. I like my WordPress install clean and not having independent folders and files everywhere.
I’m looking into CPV Lab again as it supports landing pages and offers split test out of the box and landing page with lead capture only needs one opt-in form. I’ve read their PDF documentation and so far it looks good. The main consideration is of course the price but perhaps it’s a fair trade-off for the simplicity.