web analytics – kampagnentracking

Omniture SiteCatalyst

Omniture SiteCatalyst

nachdem wir im web analytics projekt mit site catalyst von omniture (link) arbeiten, haben wir eben auch unsere eigenen kampagnen in den code angebunden und tracken diese bereits. damit wir möglichst unabhängig bleiben, lassen wir unser tracking über die url-codes laufen. also prinzipiell der vorgeschlagenen vorgehensweise von omniture selbst, um kampagnen zu tracken.

anbei ein kleiner erfahrungsbericht sowie entsprechender pseudocode für eine erste implementierung. die idee ist klar, und ich denke, dass es noch einige verbesserungen benötigt, um wirklich gut zu messen. wie man liest, haben wir nämlich auf verkehrsvariablen gesetzt und ich denke, dass wir hier mit einem anderen konzept der konversion-variablen es hätten besser machen können. es stellt sich die frage, wieso wir das nicht gemacht haben – vielleicht ist es einfach ein bisschen fehlende erfahrung.

für inputs und verbesserungen bin ich dankbar.wie wir das gemacht haben kurz beschrieben:

im verlinkten javascript-file den entsprechenden code eingefügt:

if(!s.campaign){s.campaign=s.getQueryParam('campCode');
s.campaign=s.getValOnce(s.campaign,'s_campaign',0);}

was diese funktion macht: sie holt anhand des patterns ‘campCode’ die entsprechenden kampagnennamen aus der url heraus. dabei ist eine url des typus www.dpschmidt.ch/index.html?campCode=Kampagnnenname einzugeben bzw. zu verlinken. diese urls lassen sich in e-mail-newslettern, auf speziellen links etc verwenden und so die kampagne eindeutig identifizieren. wir haben hier custom campaigns benutzt, da wir auf ein anderes tool angewiesen sind, welches diese codes generiert.

die funktion getValOnce lässt es nun zu, dass die übergabe des kampagnennamens einmalig in einer besuchersession durchgeführt wird. die drei parameter sind mit s.campaign der kampagnenname, s_campaign das entsprechende cookie und o für einen internen wert (others), der auch noch individuell gesetzt werden könnte.

wie gesagt, der aufruf der kampagne bzw. die initialisierung wird über die url ausgelöst. dies hatten wir verschiedentlich probiert, bekamen dann aber irgendwie nicht ganz das resultat, was wir erwartet hatten. denn wir sollten eigentlich auch noch den pfad der benutzer beschrieben haben, nachdem sie die kampagne angeklickt hatten. in site catalyst kann hierzu entweder eine konversionsvariable evar oder eine datenverkehrsvariable sprop verwendet werden. damit wir erfahrungen sammeln, haben wir uns vorab auf die sprop festgelegt.

wir haben nun mit einer funktion die folgenden werte in einem ersten versuch übergeben mittels einer einfachen zusammenfügung der art:

s.prop=s.campaign+s.pagename;

das ging schief und es wurde nur die variable von s.pagename geschrieben. eigentlich auch klar, da die s.campaign beim aufruf der url geschrieben wird, dann aber wieder ‘vergessen’ wird.

dann haben wir die folgende funktion verwendet, um eine persistenz des wertes hinzubekommen bzw. den wert aus dem cookie s_campaign herauszulesen. dieses cookie hatten wir ja im javscript-file definiert (zweiter parameter). also kam heraus etwas in der art:

s.prop=getAndPersistValue(s.campaign, s_campaign)+s.pagename;

leider auch hier kein erfolg. einmal mehr – ich hatte die doku nicht richtig durchgelesen.

also der dritte versuch (lesen hilft ungemein weiter und sich dann beim support informieren auch):

s.prop=getAndPersistValue(s.campaign, s_campaign, 2)+s.pagename;

hiermit hats dann auch teilweise funktioniert. die daten wurden geschrieben – allerdings hat sich dann gezeigt, dass sie nicht von anfang geschrieben wurden, sondern erst nach dem ‘ersten’ aufruf. also erst nachdem der cookiecode geschrieben wurde und dann ausgelesen werden konnte. wir hatten also ein typisches sequenz-problem der abläufe. wie abhelfen? eigentlich sollte dies ja unter dem js-code selbst schon abgefangen werden. wir checken ja dort, ob s.campaign mit einem wert befüllt ist oder nicht. und es war eigentlich – nach js-debugger – schon.

also mussten wir eine neue art schreiben – und dabei kam dann das folgende raus:

if (!s.campaign) {
		s.campaign = s.getQueryParam('campCode');
		s.campaign = s.getValOnce(s.campaign, 's_campaign', 0);
	}
	var functionValue = s.getAndPersistValue(s.campaign, 's_campaign', 2);
	if(s.campaign) {
		s.prop39 = s.campaign+':'+s.pageName;
	} else if(functionValue) {
		s.prop39 = functionValue+':'+s.pageName;
	}

wie man erkenne kann, also eine teilweise verdoppelung des js-filecodes. und dazu dann noch einen neuen check, ob die variable s.campaign nun geschrieben wurde oder noch nicht. das sollte ja eigentlich der normale code im js-file getValOnce bzw. die funktion getAndPersistValue genau liefern.

oder machten wir da eine falsche überlegung? hätten wir u.u. die s.prop nicht nehmen sollen und dafür eine evar abfüllen sollen?

wäre für ideen, korrekturen, inputs und neuerungen für kampagnentracking in sitecatalyst sehr dankbar.

No Comments

Post a Comment

Your email is never shared. Required fields are marked *