pw yet another blog

Affiliate Keywordtracking durch einfaches Skript

Hallo,

durch die letzte Publisherschulung von CJ bin ich von einem anderen Teilnehmer darauf aufmerksam gemacht worden, dass es interessant wäre, die Keywords im Publisherbereich von CJ einsehen zu können. Damit kann man die Kampagnen am besten steuern.
Kurzerhand habe ich zugesagt und während der Schulung für Publisher ein einfaches Skript gecodet, da der Schulungsinhalt nicht so von Interesse für mich war.

Das folgende Skript nimmt eigentlich nur den aktuellen Referrer, extrahiert das Keyword der Suchanfrage und schreibt es an die entsprechende Stelle in den Affiliatelink. Das wars auch schon.

Hier das Skript:

<?
function ref_analyzer($referer) {
  $domain = explode('/', $referer);
 
  $array = array(
            array("google","q"),
            array("alltheweb","q"),
            array("altavista","q"),
            array("aol","query"),
            array("ask", "q"),
            array("excite","search"),
            array("hotbot","query"),
            array("lycos","query"),
            array("yahoo","p"),
            array("t-online","q"),
            array("msn","q"),
            array("netscape","query"),
            array("cnn", "query"),
            array("looksmart", "qt"),
            array("about", "terms"),
            array("mamma", "query"),
            array("alltheweb", "q"),
            array("gigablast", "q"),
            array("voila", "rdata"),
            array("virgilio", "qs"),
            array("live", "q"),
            array("baidu", "wd"),
            array("alice", "qs"),
            array("yandex", "text"),
            array("najdi", "q"),
            array("aol", "q"),
            array("club-internet", "query"),
            array("mama", "query"),
            array("seznam", "q"),
            array("search", "q"),
            array("wp", "szukaj"),
            array("onet", "qt"),
            array("netsprint", "q"),
            array("szukacz", "q"),
            array("yam", "k"),
            array("pchome", "q"),
            array("kvasir", "searchExpr"),
            array("sesam", "q"),
            array("ozu", "q"),
            array("terra", "query"),
            array("nostrum", "query"),
            array("mynet", "q"),
            array("ekolay", "q"),
    );
 
    for($i=0; $i<count($array); $i++) {
        if(eregi($array[$i][0], $referer)) {
            $parse = parse_url($referer);
            parse_str($parse['query'], $output);
            $keyword = $output[$array[$i][1]];
            break;
        }
    }
    return array('domain' => str_replace('www.', '', $domain[2]), 'keyword' => $keyword);
}
 
$url = $_SERVER['HTTP_REFERER'];
$ref = ref_analyzer($url);
echo '<b>URL:</b> '.$url."<br />\n";
echo '<b>Domain:</b> '.$ref['domain']."<br />\n";
echo '<b>Keyword:</b> '.$ref['keyword']."<br />\n";
 
# Hier wird der CJ-Tracking-Code erzeugt:
echo '<a href="http://www.jdoqocy.com/click-3017409-10431321?sid='. $ref['keyword'] .'" \
target="_blank"><img src="http://www.awltovhc.com/image-3017409-10431321" \
width="200" height="300" alt="DaimlerChrysler Bank | Rendite Duo" border="0"/></a>';
?>

Das Skript macht jetzt nicht sonderlich viel und ein paar Debuginformationen stehen auch noch drin, also nicht einfach kopieren und hirnlos einsetzen ;-)

Zum Testen kann man die URL auch per Hand setzen, z.B.:

$url = 'http://www.google.com/search?hl=de&rls=de-de&q=diamantring&btnG=Suche&lr=';

Und man sollte das entsprechende Resultat bekommen.

Momentan sind nicht alle Suchmaschinen abgedeckt aber doch ein großer Teil. Der meiste Traffic sollte also bearbeitet werden können, beim Rest einfach hinzufügen oder ignorieren.

Momentan arbeite ich an einer JavaScript Variante, die es erlauben wird, auch mit AdServern wie OpenAds oder ähnliches zu arbeiten und das gleiche Ergebnis ohne serverseitige Performanceeinbußen zu liefern.

Sobald dies komplett und getestet ist, gibts auch hier den Code.

Beste Grüße
Peter

PS: Weitere Programmiertipps gibts drüben bei Chris.

About PW

Your email is never shared.
Required fields are marked *