I'm setting up a mobile campaign in Sitescout, and would appreciate any help on using STM tracker.
I want to create a unique destination for each banner that I uploaded (10), as per the SiteScout docs on macros I should have a redirect script on the server to handle this, which is in progress.
How do I track the following setup with STM tracker?
I don't intend to use the STM page rotator, but rather let SiteScout banner-optimiser do the deciding. Each link on the LP's point to go.php, which in turn sends to the sign-up-page.
Questions:
1. Do I just add the same Landing Page PHP code to each lander? I assume that will still allow me to see which banner is working the best? I'm not particularly interested in seeing which Page performs best at this point, as the page is essentially a (slightly) larger version of the initial banner the visitors sees.
2. How exactly do I alter this code, as each lander points to go.php already (which in turn sends to the sign-up-page.)?
Screenshot here
3. If I use a script to redirect based on the SiteScout Macro, from eg: "adId 999" to hxxp://domain.com/landerA.php, will I still get the Carrier, OS, Device, AppId, etc? Or have I broken the "chain" somewhere?
Note: This is not an affiliate offer, so there is no aff platform. It's an in-house product so I have complete control over the conversion page.
4. Since this is a mobile campaign, I've provided a click-to-call button on the converting page, as well as name & email submit. To track both types of conversion I've set this up as an Advanced Lander, as this is sort of a "multiple offer page". With this I should be able to track click-throughs, but is there any way to have 'clicks-to-call' show up as a straightforward conversion? (I know it's still possible for the visitor to not actually dial, but it is a step in the right direction)
Thanks for any help,
J
This is quite an time-consuming set-up your want to do... Are the landers identical apart from a background image or are they all unique?
If you really want to have separate landers for each banner then you should make a separate lander for each in p202, paste the unique tracking code for each on the pages, then generate links for each banner individually. You could use scripts to do things dynamically but it's more effort than it's worth if all you want is for banner A -> lander A, banner B -> lander B etc.
You want the user to go through the tracking links to pick up the carrier etc.
You should be able to track the clicks to offer A vs offer B on the analyze > landing page tab of p202, presumably it should be easy to distinguish between clicks to each offer. However I assume your issues with the click-to-call are that it pops up a call function rather than sending the user somewhere = they don't get tracked via a tracking link? You could probably do something with javascript to post to the tracking 202 URL without interfering with the users call but I can't say I know how to do this off the top of my head.
Thanks for your insights Zeno.
Yes, each page is identical apart from the image shown.
I'm not following the part about "generating links for each banner individually". Is this in p202?
For the phone tracking, I'm trying the 'Advanced landing page' feature, giving each page two "offers" One offer is the email submit, the other is click-to-call.
As there is neither a way to fire a pixel on a click-to-call (without getting into more js) or really determine if they actually pressed the dial button, I will settle for clicks on the call button. It's not 100% accurate, but it still gives some indication.
For whoever might have a similar scenario, below is the script we use to handle SitScout's multiple banners:
<?php $url="";
$array = array(
"377899"=> "http://www.yourdomain/landerA.php",
"377830"=> "http://www.yourdomain/landerA.php",
"377272"=> "http://www.yourdomain/landerB.php",
"377899"=> "http://www.yourdomain/landerB.php",
);
if(isset($_GET['adid'])){
if (array_key_exists($_GET['adid'], $array)) {
$url=$array[$_GET['adid']]."?".$_SERVER['QUERY_STRING'];
}else{
if($_SERVER['QUERY_STRING']){
$url="http://www.yourdomain/default.php/"."?".$_SERVER['QUERY_STRING'];
}else{
$url="http://www.yourdomain/default.php/";
}
}
}else{
$url="http://www.yourdomain/default.php";
}
header( 'Location:'.$url );
die();
?>
I can't for the life of me figure out how to format the URL for p202/STM tracker so that it combines the sitescout macro and pulls all the mobile tracking data that I need to optimise.
This is what I got back from SiteScout support:

http://www.concept-academy.co.il/lnd/mob/cascript.php/?site={siteId}&adid={adId}&campaignId={campaignId}&carrier={carrier}&network={networkId}&uid={uid}&device={device}&appId={appId}&appType={appType}
http://www.concept-academy.co.il/lnd/mob/cascript.php/?c1={siteId}&c2={adId}&c3={campaignId}&c4={carrier}&c5={networkId}&c6={uid}&c7={device}&c8={appId}&c9={appType}
http://www.concept-academy.co.il/lnd/mob/cascript.php/?[[c1]]={adId}&[[c2]]={campaignId}&[[c3]]={carrier}&[[c4]]={networkId}&[[c5]]={uid}&[[c6]]={device}&[[c7]]={appId}&[[c8]]={appType}
http://www.concept-academy.co.il/lnd/mob/cascript.php?site=1111&adId=378829&campaignid=7777
http://www.concept-academy.co.il/lnd/mob/stylist-cig.php
Regarding the conversion tracking: should I use pixel or postback URL? This is a mobile campaign, but the offer is not on an affiliate platform. It's an in-house lander, "own product". So will postback work? Doesn't that require special setup on the server?
You advert URL at SiteScout that is directing toward p202 should look something like this:
http://www.tracking202domain.com/tracking202/redirect/tracker.php?c1={siteId}&c2={adId}&c3={campaignId}&c4={carrier}&c5={networkId}&c6={uid}&c7={device}&c8={appId}&c9={appType}
http://www.concept-academy.co.il/lnd/mob/cascript.php?c1=[[c1]]&c2=[[c2]]&c3=[[c3]]&subid=[[subid]]
Wonderful help Zeno!
The STM-modded p202 supports c1 up to c8, with the addition of the keyword as well - t202kw, though I don't think you can pass this on in the campaign (affiliate) link.
So, do c1 up to c8 with SiteScout macros and use t202kw for one of them, giving 9 in total. Remember you can always pass macros together under one c-value to save space, e.g. ...c6={appType}_{appID}&c7=....
I noticed that the script therefore needs to change. Intsead of listening out for "adid", it needs to listen for "c2", like this:
<?php
$url="";
$array = array(
"377777"=> "http://www.example.com/landerA.php",
"377778"=> "http://www.example.com/landerA.php",
);
if(isset($_GET['c2'])){
if (array_key_exists($_GET['c2'], $array)) {
$url=$array[$_GET['c2']]."?".$_SERVER['QUERY_STRING'];
}else{
if($_SERVER['QUERY_STRING']){
$url="http://www.domain.com/landerA"."?".$_SERVER['QUERY_STRING'];
}else{
$url="http://www.domain.com/landerA";
}
}
}else{
$url="http://www.domain.com/default-index.php";
}
header( 'Location:'.$url );
die();
?>
http://www.concept-academy.co.il/lnd/mob/cascript.php/?c1={appType}&c2={adId}&c3={campaignId}&c4={carrier}&c5={networkId}&c6={uid}&c7={device}&c8={appId}
Great! Hope it works flawlessly. FYI the macros lose their curly brackets {} when they are replaced by real values, i.e. cascript.php/?c1=android&c2=adNo99999...
Btw, are you meant to have a / after php? It doesn't seem to break the link functionality but is unorthodox, i.e. one would normally use cascript.php?c1= rather than cascript.php/?c1=
I'm getting the most bizarre and peculiar errors:
At first I was getting an error while testing the tracker:
I used this link to test if I can see anything happening:
http://www.concept-academy.co.il/lnd/mob/cascript.php?site=1111&adId=378829&campaignid=7777
http://www.concept-academy.co.il/lnd/mob/stylist-hairbob.php
<?php global $clickThruLink; $clickThruLink = 'http://trk.conce.pt/tracking202/redirect/lp.php?lpip=6236&'.$_SERVER['QUERY_STRING']; ?>

Erasing click data shouldn't wipe landers - not sure what happened here! The error is slightly concerning, can't say I know what caused it, possible permissions issues or PHP lacking some module. Do any other errors ever pop up on the platform?
In any case, if the $clickThruLink takes you to the wrong outgoing URL it would be wise to regenerate the LP code and replace it in the lander, then test again.
Yes, I'll regenerate the landers in p202 and re-test. I've just installed it so I've never noticed/encountered any other errors.
http://www.concept-academy.co.il/lnd/mob/cascript.php?c1=[[c1]]&c2=[[c2]]&c3=[[c3]]&subid=[[subid]]
http://www.concept-academy.co.il/lnd/mob/cascript.php/?c1=[[c1]]&c2=[[c2]]&c3=[[c3]]&c4=[[c4]]&c5=[[c5]]&c6=[[c6]]&c7=[[c7]]&c8=[[c8]]
Hey, every click that comes into p202 gets allocated a 'subid', which is just a number, e.g. 126. We can pass this forward by using [[subid]]. This value is necessary for the postback URL but is not needed if you are using an image pixel.
So, if you are using the image pixel, yes you can drop the [[subid]] :-)
In fact, if it is your own offer, you don't necessarily need to pass any values (e.g. c1, c2, c3) if you are going to do all the tracking and data crunching in p202.
I'm about to throw out p202, as I'm getting constant problems.
This is the issue right now:
I couldn't get any stats to show up even when clicking my own tracking link. It turns out I was using the wrong link:
http://www.concept-academy.co.il/lnd/mob/cascript.php/?c1=android&c2=378832&c3=stylist_m&c4=Orange&c5=OpenX&c6=uid1&c7=iphone5s&c8=88888
http://trk.conce.pt/tracking202/redirect/tracker.php?t202id=133&c1={networkId}&c1=378832&c3={uid}&c4={carrier}&c5={device}&c6={appType}&c7={campaignId}&c8={appId}&t202kw=
?t202id=133
c2=378832
This should be relatively easy to sort out regardless of the tracking system but perhaps we should take a step back and outline exactly what it is that you want.
If I understand correctly, you want to use a single URL for your campaign in SiteScout that has multiple banners in it. Each banner has it's own identifying AdID that is dynamically added to the URL. You want clicks from each banner to land on a specific landing page, therefore cannot use the p202 landing page rotation tool as this will rotate all traffic between all LPs.
This is how I would do it:
1. Add a campaign to p202, add the offer/outgoing click link as you normally would.
2. Add each landing page to p202, within this campaign, name them appropriately.
3. Generate and place the unique landing page codes for each lander.
4. Go to get links and generate the tracking links for each landing page in that campaign. Copy/paste these somewhere with labels. What we really need to know is what the t202id is for lander A, lander B, etc.
Now we have links that head to each individual lander within a specific campaign. We can now direct SiteScout ads to an intermediate script, located anywhere (preferably on same domain as your tracking system), which looks at the banner AdId and chooses a lander (i.e. t202id!) accordingly, and passes along all other querystrings. I would use something like this, based on the SiteScout URL you have provided.
<?php
$passed_adid = $_GET['passed_adid'];
$landers = array(
"AdID1" => "t202id", //corresponding t202id for that banner's lander
"AdID2" => "t202id",
"AdID3" => "t202id",
"AdID4" => "t202id",
);
header('Location: http://trk.conce.pt/tracking202/redirect/tracker.php?t202id='.$landers[$passed_adid].'&'.$_SERVER['QUERY_STRING']);
?>
http://trk.conce.pt/myawesomescript.php?passed_adid={adId}&c1={networkId}&c2={siteId}&c3={uid}&c4={carrier}&c5={device}&c6={appType}&c7={campaignId}&c8={appId}&t202kw=whatever
Zeno, that's genius. I'll implement it first thing in the morning.
I owe you beer. A large quantity of it.
1. When you say "intermediate script", are you referring to the p202's own redirect script, or the one I wrote to begin with?
2. What are s1-s8? Where would I get those, even if I'm not going to be using them? I don't recall reading anything about those in the setup steps by caurmen.
1. Intermediate script = the one in my post, i.e. the first code box.
2. c1-c8? They are c-variables. Prosper202 expects values to be passed by these and nothing else. If we add c1=something&c2=somethingelse to a prosper202 link it automatically picks them up and they appear in your stats.
Thanks again Zeno, this idea and script will do the trick. I'm finalising the setup and hopefully we should go live soon.
Question 1. Does the p202 generate new t202id's each time you click "Generate Tracking Link", under #7?
I was double-checking the id's I had added and they are different than what I got the first time. We've been having issues with this VPS, mostly because of something called "apparmor" which is supposed to secure the server. But it does a helluva job restricting one's work. It is a live server so reboots have had to be done at 3am each morning.
But, if this is normal for p202, then fine.
Also, half way through generating the id's I noticed they jumped from three digits, to four. Here is what I got:
1. I believe p202 generates new t202ids and it's a bit weird that it does - however both the old and the new ones should work.
2. Don't worry about the digits in the t202id - 3 or 4 is fine.
3-100. The c1, s1, subid1, etc. that you put at the end of URLs all depend on what the page the URL is going to expects. In the case of p202, the tracking system is designed to harvest data from c1-c8, t202kw, t202id. It is not programmed to work with anything else, so nothing else will pass data to the tracking system.
Similarly, affiliate network platforms like Cake and HasOffers expect different things. Cake accepts data in the form of s1-s5, HasOffers I believe uses subid1, subid2, etc. It all depends on the platform. There is no fundamental difference in how these values are passed, it's all just a string of text, but the coding on the backend looks only for specific, defined values.
For p202, everything we do is c1-c8, t202kw.
When we get to the affiliate link, under campaign setup, the link may look different as we have to pass data on in the form that system expects.
Hence why we might have affnetwork.com?affid=1234&cid=5678&subid1=[[c1]]&subid2=[[c2]] and so on.
c1-c8 and t202kw are variables that contain data that we have passed to the tracking system, through our tracking link. On the other hand, the prosper202 subid value is the unique number of the click that came through. I.e. what # visitor is this? Each user is given a number and this lets you identify each conversion specifically. This is the one value that prosper202 generates, not us.
We can dynamically insert it into an affiliate link using [[subid]]. It can go wherever we want, as long as we comply with the affiliate networks or offers URL structure, e.g. we would use:
affnetwork.com?affid=1234&cid=5678&subid1=[[c1]]&subid2=[[c2]]&subid3=[[subid]]
not:
affnetwork.com?affid=1234&cid=5678&subid1=[[c1]]&subid2=[[c2]]&clickid=[[subid]]
as the affiliate network won't register the clickID, we then can't use it in our postback URL. The specific format you need to use is something you would find at the affiliate network end.
So, at the affiliate network you could then setup your postback URL to include the value of subid3, thus completing the tracking circuit. If using an image pixel, which is fired by the user rather than the affiliate networks server, we don't need to pass [[subid]] as it's not necessary due to the magic of cookies.
When it comes to being careful about using s1, what this means is you should NOT pass unique clickIDs such as [[subid]] as s1. Above we have it as the 3rd 'subid', so it's fine.
Note: people say 'subids' to mean things like s1-s5, subid1-subid5, c1-c8, etc., it's a bit of a misnomer as these are actually querystring parameters but the term is historic and easy to use. In this respect, prosper202's usage of [[subid]] for unique clickIDs is confusing!
We avoid passing things in the first subid, whether it be s1, subid1, c1, g1, derp1, etc. because of how many tracking systems are designed. Often, we can get to a 'subid summary' that displays all the click data for your campaigns but grouped by subid1. Cake does this for example under the subaffiliate summary. If you pass unique clickIDs under s1, then this report gets needlessly huge - and this puts computing stress on the platform that is better avoided! The affiliate network platform needs to log and redirect clicks quickly and track conversions - it is not built for crunching all your data, that's what p202 is for.
So, under s1, most people pass something generic and/or aggregate, like FB_US_M_13_Campaign1_ad1, so that data is grouped nicely but not too complex.
That's the most lucid, concise explanation I've ever come across. I suspected it was something along those lines, but without your explanation I could never fully figure it out.
Greatly appreciated.
I'm having an issue with the redirect function of p202 when using this set-up. Here's what happens:
I set up the URL like this:
http://trk.conce.pt/zeno.php?passed_adid={adId}&c1={networkId}&c2={adId}&c3={uid}&c4={carrier}&c5={device}&c6={appType}&c7={campaignId}&c8={appId}&t202kw=banners
http://rtb.sitescout.com/clicktest?ad=3699341ee2213517/cc396e76417a68c0&key=hjWgKAYG6V0aSGJXI215UMQPmsYSbn%2B2bjen7hwR5%2BoCzf0hhijG38bbrrBtXyoA3deQlmldZ20%3D
http://trk.conce.pt/tracking202/redirect/tracker.php?t202id=&passed_adid=380298&c1=5&c2=380298&c3=&c4=&c5=&c6=&c7=106289&c8=&t202kw=banners
That final code looks off...
There is an extra '&passed_id=' there that shouldn't be there and it is not giving you the t202id from the array, which suggests something in zeno.php is incorrect.
It should read:
...tracker.php?t202id=1234&c1=...
Rather than
...tracker.php?t202id=&passed_adid=380298&c1=
Since you're not supplying a valid t202id it doesn't go anywhere. Everything up until this point looks to be working fine.
Post the exact content of zeno.php here and I'll troubleshoot it - i.e. test on my end. There could be some simple errors - the main one at the moment looks like it isn't pulling a t202id from the array properly.
P.S. You could always go to simple lander rotation. You will lose the continuity you have been going for (at least for a large % of the clicks) but on the other hand you will then get data that shows whether or not that even works - for all we know it may work less effectively than banner A > lander C.
I went through all the LP codes, just to be sure I am using the correct codes. I am not certain but I may have used a "simple page" when creating the codes in step #7, and I am actually using "Advanced pages", with two "offers" (webform & call link).
As I went through I got all new codes. zeno.php has now been updated to contain the new id's. I tested the same link from SiteScout, but still the same error unfortunately.
zeno.php
<?php
$passed_adid = $_GET['passed_adid'];
$landers = array(
"378823" => "5192", //corresponding t202id for cig
"378830" => "5192",
"380272" => "5192",
"380279" => "5192",
"378824" => "7213", //corresponding t202id for diamond
"378831" => "7213",
"380273" => "7213",
"380280" => "7213",
"378825" => "9222", //corresponding t202id for eye
"378832" => "9222",
"380274" => "9222",
"380281" => "9222",
"378826" => "2236", //corresponding t202id for green
"378833" => "2236",
"380275" => "2236",
"380282" => "2236",
"378827" => "2245", //corresponding t202id for hairbob
"378834" => "2245",
"380276" => "2245",
"380283" => "2245",
"378828" => "1254", //corresponding t202id for hat
"378835" => "1254",
"380277" => "1254",
"380284" => "1254",
"378829" => "2263", //corresponding t202id for pilot
"378836" => "2263",
"380278" => "2263",
"380285" => "2263",
"380307" => "8273", //corresponding t202id for f, http://www.concept-academy.co.il/lnd/mob/stylist_f.php
"380310" => "8273",
"380308" => "2283", //corresponding t202id for f2, http://www.concept-academy.co.il/lnd/mob/stylist_f2.php
"380311" => "2283",
"380309" => "5294",//corresponding t202id for m , http://www.concept-academy.co.il/lnd/mob/stylist_m.php
"380913" => "5294",
);
header('Location: http://trk.conce.pt/tracking202/redirect/tracker.php?t202id='.$landers[$passed_adid].'&'.$_SERVER['QUERY_STRING']);
//header('Location: http://trk.conce.pt/tracking202/redirect/trackere.php?'.$landers[$passed_adid].'&'.$_SERVER['QUERY_STRING']);
?>
The contents of zeno.php above seem to work fine for me.
The problem is that with the test link the {adId} is not getting replaced by a real number.
zeno.php?passed_adid=378823 works.
zeno.php?passed_adid={adID} does not.
In any case, if {adId} is not replaced with a real number that exists in the array, the link will go nowhere anyway as the p202 destination wont exist.
My conclusion is that the SiteScout link was not correctly replacing {adID} - either with no number or with number that did not exist in the above array.
We could modify the script to fall back to some default t202id if no adid's match in the array, but I think the first issue is figuring out why SiteScouts outgoing clicks weren't bringing the adId's expected.
Another oddity that I found is:
using only an adid works:
http://trk.conce.pt/zeno.php?passed_adid=380279
http://trk.conce.pt/zeno.php?passed_adid=380279&c1=OpenX&c2=adId_test&c3=uid_test&c4=carrier_test&c5=device_test&c6=appType_test&c7=campaignId_test&c8=appId_test&t202kw=banner
Both links evidently work fine for me from my end. There's no reason that adding &c1... and anything thereafter would have an effect on the passed_adid stuff.
Oh dear, my mistake: they both work. (It was a long and late night trying to see what was wrong.)