Landing Page Tracking & Split Testing Using Prosper202

Posted on April 24, 2013

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:

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:

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:

<?php
/*
----------------------------------
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:

Download

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.

It is true that you do have to do a lot of thinking when it comes to setting up anything more than a rudimentary funnel with Prosper 202. On the other hand you CAN do pretty much anything with Prosper 202 that you can do with CPVLab. I’ve used as many as 4 rotators in sequence to get tricky jobs done with Prosper.

The trick is to not try to solve everything with a single campaign, but to break the funnel down into components, assign a campaign per component, and then link the campaigns together. You can find more info about this on my site 🙂

I agree with you that Prosper202 ‘limitation’ can also allow you to be more creative with your campaign structure, although you need a bit of PHP knowledge to write the script. At the end, it’s a matter of preference for me personally. Since my campaigns fit CPV Lab predefined structure, I find it more beneficial to use it and have clean WordPress site (without the standalone script files) and more importantly customer support when I have problems.

You asked about “PLACE OTHER LANDING PAGE CLICK THROUGH CONVERSION TRACKING PIXELS HERE” when generating the landing page code? This part is explained right above the code, i.e. “This is useful when you want to use other services like Google Website Optimizers to track the click-through ratios on your landing pages”. Beside using Prosper202, some people use additional 3rd party tracking like GWO. So if you are using other tracking tool, you have to copy-paste the JavaScript code above Prosper202 code so it can be executed before Prosper202 redirect your visitor to the offer. If you are only using Prosper202 then don’t worry about it, you don’t have to do anything.

The postback pixel code that you put on the advertiser’s sale confirmation or thank you page is generated using option “#8 Get Postback/Pixel”.

2. Prosper202 knows which landing page it has to show the visitor and display it. When the landing page is loading, the “Inbound Javascript Landing Page Code” from step “#6 Get LP Code” is executed so Prosper202 knows and record the visit.

3. When your visitor click on your cloaked affiliate/offer URL (for example, yourdomain.com/redirect.php), the “Outbound Javascript Redirect Code” is executed, Prosper202 records the click-through from LP to the offer, and your visitor is redirected to the offer.

4. After your visitor made a purchase, he will be shown the sale confirmation page which triggers your Prosper202 postback pixel. Now Prosper202 knows that a conversion happens and the campaign flow stops here.

Latest Deals

KnownHost is offering 20% lifetime discount for its managed dedicated server plans. To take advantage of this promo, you need to enter the coupon code below.

This 20% lifetime discount is valid for all their dedicated server plans. Even if you start with the lowest plan and later decide to upgrade, the 20% lifetime discount remains so in turn your discount increases. The discount also applies for any add-on purchased such as extra RAM, disk space, etc.

About KnownHost

All our managed dedicated servers are custom built, secured and optimized out of the box.

Free backups & free migrations

Always online support – 24/7/365 customer support.

30 day money back guarantee

A la carte RAM, bandwidth and disk space upgrades

KnownHost is offering 15% lifetime discount for its managed VPS & managed SSD VPS plans. To take advantage of this promo, you need to enter the coupon code below.

This 15% lifetime discount is valid for VPS-1 through VPS-7 plans and SSD-0 through SSD-5 plans. Even if you start with VPS-1 and later decide to upgrade, the 15% lifetime discount remains so in turn your discount increases. The discount also applies for any add-on purchased such as extra RAM, disk space, etc.

About BuzzBundle

This tool is what your business’s been missing!

BuzzBundle is a social media tool that grants you full control over your online reputation. With BuzzBundle’s extensive social media coverage (Facebook, Twitter, Google+, LinkedIn, blogs, forums and Q&A sites), you can:

Promote your biz across all social networks and win thousands of new customers

Keep perfect brand reputation, instantly reacting to negative comments that show up on the social Web

See what your competition is doing on social media to always keep one step ahead

Boost your backlink profile with thousands of safe, Penguin-friendly links from social networks

Now with powerful social analytics & reporting!

Today BuzzBundle got EVEN better!

Enhanced with a powerful set of social media analytics reports, the software now:

Gives you access to a whole set of new analytical data

Lets you easily report the success of your social media campaigns to clients or management

Both the free and Pro version fully supports recurring billing, with the ability to track affiliate commissions on a recurring basis. s2Member also supports custom pages for registration (including custom registration/profile fields), account access, and a whole lot more.