Just started using CPVLab and you're staring at all the options in confusion?
It's a pretty intimidating piece of software when you first get it.
But don't worry - it's actually very simple to use CPVLab once you understand how it works, and your friendly local STM guide is here to help with that bit!
How CPVLab Works
Before we start with the practical stuff, it's really helpful to know the basics of how CPVLab tracks your campaigns. A lot of the time, just this theory will help you debug what's going wrong in your setup.
CPVLab tracks the behaviour of each and every person who comes through your ads to your landing page - or to your offer, if you're linking directly.
To do that, it uses invisible "referer" pages that record visitor behaviour, then forward them on to the landing page or offer they were expecting to see.
Let's assume Alice is running a campaign on Plenty Of Fish (POF), for example, and Bernhard clicks on one of her ads - ad #16 - for male muscle supplements.
That link actually takes him to a page on Alice's tracking domain, called "base.php". That page sets a cookie on Bernhard's web browser, giving him a unique ID (called a "subid"), and makes a note in Alice's tracking database that Bernhard clicked on her ad #16. Then, it invisibly forwards Bernhard to one of the landing pages Alice is testing for her offer.
If Bernhard is convinced by Alice's sales pitch and clicks on her "Turn Yourself Into A Superhuman TODAY!" link, that link takes him to a second PHP page, "base2.php". That page reads his cookie, gets the "subid" from there, and makes a note in Alice's database that the person with that subid clicked through to the offer. Then, it invisibly forwards Bernhard's browser on to the offer Alice is promoting, "UberMuscleNow!".
Alice now knows that ad #16 has produced at least one visitor who was interested enough to click through to her offer.
If Bernhard subsequently signs up for "UberMuscleNow!", Alice's affiliate network uses a Postback (see the Stack That Money guide to postbacks) to let her know that a visitor with Bernhard's subid signed up.
Of course, just having the data on one visitor isn't that useful. But after a few hundred POF users have clicked on Alice's links, she'll be able to look at her database and tell which banners are producing the most clicks, which landing page gets the best clickthroughs, and which banner/landing page combinations produce the most signups.
What You'll Need To Get Started


Step 1: Add General Campaign Settings
Mouseover "Add Campaign" in the CPVLab menu, then click on "Direct Link And Landing Page".

You'll be presented with a terrifying menu of bizarre-sounding options, from "Optimisation Profile" to "TS Hidden Field" to "Double Meta Refresh".
Don't Panic.
You can ignore most of these values or leave them on their default settings. Here are the settings you DO need to change:



<a href="http://track.browsergaming.pw/base2.php">Click for Offer</a>
http://track.browsergaming.pw/base2.php
URL Append Token
These vary on a per-traffic-source basis.
In general, if your traffic source doesn't offer a "target" or "keyword" token - ask your traffic source account manager - you should set URL Append Token to
&keyword=EDIT
Capture Extra Tokens
Many traffic sources can give us extra information beyond just the keyword, target or banner. "Capture Extra Tokens" lets us capture this vital information and see it in our stats.
Predefined traffic source?
If you're using a source that's already defined in CPVLab, this is really easy. Check the "Capture extra tokens" box, and a series of text boxes will appear, including a dropdown box with "Select" in it.
Click on the dropdown box to see the options for things to track. Add as many rows (with the "Add" button) as there are extra tokens you want to track, then select one token for each row.
Non-predefined traffic source?
If your traffic source isn't one of the predefined ones, it's definitely worth checking if they offer additional information about your clickthroughs. Ask your account manager at the traffic source if they have any "URL Tokens" you can use.
For example, ZeroPark also offers {match} and {target}. Both of these give us useful information.
To do this, click the "Capture Extra Tokens" checkbox. Some additional fields appear:

Yaaay perfect! Cheers Caurmen!
Great stuff
And remember to use a VPS (at the very least) when it comes to hosting!
Shared hosting won't cut it.
YES! YES! This is EXACTLY what stm needed! Thanks again Caurmen you're beast mode
what the heck is the ID for, I still clueless till today
Glad you like it, guys! Let me know what else you want to hear about / know about!
Next tutorial is going to look at the infamous "lots of data" slowdown problems in major trackers - I'm going to start with Prosper and look at ways to make it handle more data, better, faster.
@dr0z - Yes, yes, yes, to the power of YES. Shared hosting is a MAJOR false economy. If you're in doubt, take a bit of time to read the STM Affiliate Marketing Hosting Guide - it could save you a lot of money.
@affluent - Yep, STM Mobile Tracker has the same advantage!
@hd2010 - Which ID are you confused by? There's a few in CPVLab - do you mean the Source ID of the publisher, the LP / offer IDs, or something else?
stupid question time,
When I've got cpc selected I get the prompt to not only append a dynamic parameter for "keyword" which I use for targets, but also to append a unique ad. See below:

I've got both boxes ticked but no ads are showing in my stat reports, only the dynamic placements. My tracking url looks like this:
http://mytrackingdomain.bro/base.php?c=8&key=djghi4uqeiru49ue934498349&keyword ={dynamic_url}&ad=EDIT
I simply replace 'EDIT' with names of ads. Ad1, ad2, ad3, ad4 etc. My stat report shows the 'keywords' (targets of different websites) but all of the ad column is completely blank.
Do I have something not set up correctly? I used to just append ads after the keyword token but now with the new change I'm not getting any ad tokens to pass through.
Edit: no idea why spaces are showing in the example url but I'm not typing them in. Yes the url works as the campaign is profitable. Just no ads show in the stat report.
@caurmen : the offer ID, why and what should I put in for this value.
Groomez, are ad token parameters case-sensitive? "A" =/= "a" depending on how things are coded so it could be that appending &ad=something and having the parameter listed as "Ad" is causing problems. Change it to "ad" and check again.
@groomez - I strongly suspect Zeno's answer is the right one - case-sensitivity is probably what's giving you problems here. Try it with "ad" rather than "Ad" as the parameter and see how it goes.
@hd2010 - you just need to make sure each offer has a different ID number in the campaign. 0, 1, 2, 3, 4 and so on will work fine. As far as I know, this is just so the database doesn't get confused.
@tmcalvin - I don't believe that out-of-the-box CPVLab supports geo redirects, I'm afraid. I'll look into workarounds for a future post!
Kudos Hugh, well done guides! Thumbs up!
One thing I'd mention to add is the function to add revenue parameters in the postback URL. A step by step guide for this (if posted already on a diff thread, sorry for not noticing) would help a lot of beginners to get their tracking together, especially on hasoffers networks that allow split offers with different payouts per age 
@fjk87 - Good point! I'm going to be rolling out some guides for slightly more advanced elements of Prosper and CPVLab in the next couple of weeks, so I'll add that into the mix!
@andyvon - You're absolutely right! My bad, I thought you DID need to add an ID, but I tested it and you don't. Updating the guide.
@hd2010 - Ignore the offer ID, you don't need it for a simple campaign.
great guide guys, I hate how I overlook stuff so often
Thank you
@magnum : yes, visitor from california, sign up now !! get the idea ?
Thanks a lot for this, I wanted to give CPVlab a test but its annoying to learn a new system when I already know prosper202 so well... But some stuff really annoys me in prosper wen it comes to tracking LP's and offer rotations so this will be great 
@magnum - Yup, as hd2010 says, it's for calling out specific attributes of a visitor when they arrive on your landing page.
For example, you can drive CTRs up on a lot of PPV landing pages by calling out the name of the site that the user was viewing before your popup arrived. "Welcome visitors from Google!" or "An EXCLUSIVE offer for Bing users only", say.
The LP won't *have* to be PHP, but that's the most common way to do it. You can call out these attributes very simply: I'll write a guide to doing so on your landers for next week!
@peanut - nice share!
Am I right in thinking that will track all conversions on those geo-located offers as a single offer? Not necessarily a critical problem, just worth knowing.
yes, but you can manually edit offer payout later if there are too many conversions from other geos
This is the reason why I started to implement this trick on adult campaigns. Some networks redirect visitors to alternative offers properly, some not.
I, as a newbie somehow managed to get the CPVlab but was confused with so many options.
All clear now 
Thanks Caurmen...Cheers.
What if my lander has 2 offers? So like step1 and step 2 offers then how do I add offers and give them percentages?
Thanks for the tutorial. Really appreciate it.
Started a while back but one of the things that confused the heck out of me was the CPV setup.
Making a another start so this really comes in handy.
Hopefully I'll get it right this time.
@udenchi, @moneycometh - no worries, glad it was useful!
@rrohn - Do you mean that your lander has two different links on it, and each of those two links goes to an offer? Or do you just mean that you want the lander to link to one offer half the time and another offer the other half of the time, so that you're comparing their performance?
In the second case, rotating offers is super-easy: in Step 2, just add both the offer URLs into the first two offer sections (there should be 5, each of which looks like the section that I picture in Step 2), and assign them a "share%" of 50 each.
caurmen, thank you very much for this setup tute!
I had some questions though…
For the URL Append Token, not sure what to enter here?
You mentioned to check out the other post with a list, but my traffic source isn't there, which is Traffic Junky by the way. I know you used TJ as an example elsewhere in the tute so was hoping you could provide the info for this field? Would it be ‘&keyword=EDIT’ or perhaps something else?
Also if TJ works with the 'Capture Extra Tokens' setup as mentioned in Step 9. If so, what values to enter?
Thank you!
Or if not caurmen who I'm sure is plenty busy, would anyone else happen to know?
I believe a good many people here use both CPV Lab and also Traffic Junky..
For you folks, what do you guys enter for the 'URL Append Token' field and also for the 'Capture Extra Tokens' section?
Hi okthen,
This is how I set it up for myself:

Please note that the extra tokens I created (site, zone, angle) are optional, I just created them so I can see exactly where the clicks are coming from. You not need anything else except the banner.
On the other hand if you want to work with these variables (tokens) in your LP you have to check the "Pass to LP" checkbox when creating a new campaign. Then you can call these tokens in PHP as $_GET["banner"] and do some custom advanced stuff based on that.
Thanks for that erik!
Looks like your screenshot differs from what I see and from the screenshot from the tutorial though?
What I'm looking at looks like the example screen shot from the post here:

I'm assuming your 'Append Token' field is the same as the 'URL Append Token' field that I'm looking at... (noted as #3 in the above) so I guess it's okay to just leave blank? I wasn't really sure... especially since the tutorial mentioned to enter "&keyword=EDIT" if the traffic source doesn't offer a "target" or "keyword" token. And is it better to leave blank or to enter "&keyword=EDIT"? Or maybe best to enter something else entirely for Traffic Junky? I'm all sorts of confused right now so I ask... =I
And for the Extra Tokens, so I see TJ does support this.. Earlier I was under the impression from the tute that there were only certain recognized valid tokens as defined by each traffic source, but I now see you can custom all these tokens yourself as long as you setup the LP properly?
Is there a link somewhere to see how you custom'd this so I can setup something similar?
Thank you!
TJ not support any tokens as far as I know, so they keyword is unnecessary.
The additional tokens are just my custom and I insert value in them each time for each banner. As I said you probably not need them.
In Step 4: Add Link To Traffic Source using CPVLabs, what if my URL doesn't have the word edit in it, where do I change because i have multiple banners!
Thanx in advance for the help and your amazing guides!
for TrafficForce:
{site_id} - id of the site on whch the ad is shown
{channel_id} - id of the channel on which the ad is shown
@arefmadi - set your URL Append Token to "&keyword=EDIT" in Step 1, under "3" on the diagram. That'll give you the "EDIT" bit.
I have a quick question.
I got it all sorted out and the tracking link is working. But now my url layout/subid is looking weird and I don't know how to fix it.
When you click the offer link from the LP it looks like this.
Normally my "&keyword=EDIT" would be something like:
clean_1a or adult_1a
Now it shows up as followed:
clean_1atekmwpdty_7_16
http://www.offerdomain.com/home?pi=c...tekmwpdty_7_79
The only info I can get out of it is that "clean_1a" is my ID I gave it under the offer url. The confusing part for me is "tekmwpdty". I have no clue where that is coming from. I know that the 7 is the camp ID and the 16 is most likely the click count (because that number keeps changing) but I have no clue what the tekmwpdty is..
Any idea on this and how I can remove it or change it?
Thanks!
Phil, I believe CPVlab automatically appends its click ID to the end of your offer URL. So, it takes hxxp://www.offerdomain.com/home?pi=clean_1 and adds a random string to it, giving your what your observed.
To avoid this you should end your offer links with something like ".....&s2=" so that when it appends the click ID you get it as a subid that can then be used in a postback URL at your network.
E.g. set offer URL as hxxp://www.offerdomain.com/home?pi=clean_1&clickid=
Which CPVlab automagically turns into
hxxp://www.offerdomain.com/home?pi=clean_1&clickid=atekmwpdty_7_79
- obviously in a live campaign you might have ...?pi={keyword}&clickid=
Perfect, thanks a lot Zeno! Will try it out 
Back for a new CPVlab question
Hope its ok I post it in this thread.
So I am trying to track category conversions from TrafficFactory. My link looks like this:
http://DOMAIN.com/track/base.php?c=241&key=diow32qdj&banner={banner.name}& bid={target.bid}&category={categories}
These are the URL parameters for TF:
{banner.name} Name of the banner
{target.bid} Target's bid
{categories} The page's categories
But I am having no luck with tracking the target bid or categories. The banner name gets tracked, but not the rest. Contacted TF but they didn't provide much help.
Anyone knows why its not getting tracked?
Setup looks like this:
http://screencast.com/t/RkF83xUPEdH
I'm not sure what the difference between ad token and extra tokens are (maybe ad token is preferentially for creative IDs?) but you need to fill out the details fully.
You haven't put in parameters, which is the thing that comes after an & and before the =. So for &category={categories}, but category in the parameter tab.
The extra tokens could then read:
Category | &category={categories} | category
Bid | &bid={target.bid} | bid
Banner Name | &banner={banner.name} | banner
Not sure if you need/want to pass any of these to the LP or the offer, I would maybe just pass banner name.
I will give it a try, thanks guys! Zeno always to the rescue
Too bad didn't get to meet you last time you were in Amsterdam.
anyone wanna help a newbi set up his first cpvlab multiple options? pleasae pm i would like to hear from someone that is familiar with cpv lab. It is driving me crazy
Does anyone know how to set up cpv lab with Revcontent? If anyone can assist me that be great.
Please check my ZeroPark setting.. Is that correct? Am I missed something right here?
What a great thread... and very informative!
I'd love to see how you actually create templates and upload traffic reports to see real hard data. This is something I struggle with.
Thanks again! 