Tech Tip: Dynamic Variables

Von | 31. Januar 2012

Heute möchten wir ein Feature vorstellen, das im wesentlichen zwei Anwendungen
hat:

  1. Trackingprobleme im Internet Explorer vermeiden
  2. Werte aus Cookies oder HTTP Headers tracken

Das Thema ist technischer Natur und bringt nur bedingt Mehrwert. Es ist aber nichtsdestotrotz wichtig (IE ist immer noch ein wichtiger Browser!) und aus technischer Sicht einfach umzusetzen. Wo immer man dynamic variables benutzen kann, sollte man das tun!

Das Problem mit Internet Explorer und langen URLs

JavaScript-basiertes Tracking funktioniert so, daß der Browser vom Trackingserver ein (unsichtbares) 1×1 Bild anfordert, das sogenannte „Trackingpixel“. In der Anfrage werden alle Werte kodiert, die übertragen werden sollen. Die Anfrage wird per HTTP GET gesendet, so wie Anfragen für die meisten anderen Ressourcen auf Webseiten.

Einleuchtend: je mehr Daten ich tracken will, desto mehr Werte müssen übertragen werden, die URL des HTTP GET Request wird also länger.

Das ist in fast allen Browsern gar kein Problem, Internet Explorer aber sendet Requests einfach nicht mehr ab, wenn die URL länger ist als 2083 Zeichen. In diesem Fall würde man dann einfach gar nichts tracken.

Beispiel: auf einer fiktiven Produktübersichtsseite tracken wir Kategorie, Hersteller, Produktvariante, Farbe, Grösse und noch weitere Kenngrößen und die URL des Requests ist für ein bestimmtes Produkt mit langem Namen 2082 Zeichen lang. Soweit so gut, das funktioniert. Für den IE ist es knapp aber noch in Ordnung.

Zusätzlich wird unser Shop ab nächstem Quartal auch für Frankreich verfügbar sein und wir wollen die Sprache tracken, d.h. bei jedem Trackingpixel wird in Zukunft noch die Sprache mitgesendet („de“, „en“, „fr“ usw.). Jeder Request wird also mindestens 2 Zeichen (eigentlich 6 oder 7) länger und damit funktioniert auf unserer fiktiven Produktseite das Tracking im IE nicht mehr.

Die „dynamic variables“ können das Problem zumindest reduzieren.

Warum?
Wegen der Trennung von traffic und conversion in SiteCatalyst werden Daten oft doppelt getrackt, in eine prop und eine eVar. Die Kategorie könnte zum Beispiel so getrackt werden:

    s.prop2="Damenmoden";
    s.eVar2=s.prop2;
Wie?
Mit dynamic variables findet die Zuordnung erst am Trackingserver statt. Der Code auf der Seite sähe so aus:

    s.prop2="Damenmoden";
    s.eVar2="D=c2";

Im Vergleich zum Beispiel oben ist das deutlich kürzer – statt 27 werden nur 21 Zeichen gesendet.

Man kann über dynamic variables auch mehrere Werte kombinieren. Der folgende Code kopiert die Werte aus eVar50 und prop6 nach prop15, getrennt durch „:“

  s.prop15='D=v50+":"+c6';

 

Anmerkung: Die Kurzform „c6“ steht für prop6, „v50“ bedeutet eVar50. Diese Kürzel sind identisch mit denen, die Firebug, Fiddler2, Charles oder fast jedes andere Debugtool anzeigen würde.

Generell bezeichnet „cXX“ eben „propXX“ und „vYY“ ist „eVarYY“. Nur „v0“ ist anders: das ist nämlich die campaigns Variable.

Eine vollständige Liste der Kürzel findet sich in der Dokumentation.

Werte aus Cookies oder HTTP Header tracken

Manchmal möchte man Daten tracken, die im HTTP Request vom Browser zum  Webserver transportiert werden. Der HTTP User-Agent Header ist ein typisches Beispiel, der x-forwarded-for Header oder vielleicht x-roaming. Auch den Wert eines Cookies möchte man vielleicht tracken.

Beides geht mit dynamic variables sehr einfach. Der folgende Code trackt den HTTP User-Agent Header sowie den Inhalt des s_vi Cookies:

  s.prop23="D=User-Agent";
  s.prop24="D=s_vi";

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.