A/B-Test Google AdSense-Anzeigen mit Google Analytics

Wirken sich Google AdSense-Anzeigen negativ auf das Nutzungsverhalten der Besucher meiner Webseite aus? Diese Frage stellt sich insbesondere, wenn in einem auf Conversion ausgelegtem Shop Konkurrenz-Angebote über Google AdSense-Anzeigen den Besuchern angezeigt werden.

Im Fall eines conversion-optimierten Shops sind z.B. die KPIs Conversionrate, Seitenaufrufe pro Besuch, Besuchszeit, Warenwert, uvm. ein Indikator dafür, ob sich die Google AdSense Anzeigen negativ auf das Surfverhalten der Besucher auswirken. Um dies zu messen ist zwingend ein A/B-Test mit der AdSense-Gruppe und einer Testgruppe, die keine Anzeigen ausgespielt bekommt, notwendig.

Teil 1: Setup, Logik, Scripts

Testsetup A/B-Test:
Bei Aufruf der Shopseite mit AdSense Anzeigen wird dem User die Testgruppe zufällig zugewiesen. Dies wird in einem Cookie gespeichert. Je nach Testgruppe wird dem Besucher die AdSense-Anzeige ausgespielt, oder nicht. Über die Cookie-Laufzeit ist somit sichergestellt, dass dem Besucher bei jedem Besuch der Seite die korrekte und beim ersten Besuch ermittelte Testgruppe zugewiesen wird.
Um die KPIs im Anschluss bzw. während des AB-Testing zu monitoren, werden Google Analytics Ereignisse benutzt. Über die Ereignisse kann dem Webtracking gemeldet werden, welche Testgruppe dem User zugewiesen wurde. Google Analytics bietet durch die Separierung in Segmente die Möglichkeit, die oben genannten KPIs somit zwischen den beiden Testgruppen auf einfache Art und Weise zu vergleichen.

Technisches Setup:
Für die Integration des beschriebenen Setups sind folgende Code-Snippets notwendig:

  1. Code-Snippet Cookie-Verwaltung (Cookie erstellen, Cookie auslesen, Cookie aktualisieren, Cookie löschen)
  2. AdSense-Anzeige anhand des ermittelten Cookie-Wertes ausspielen
  3. AdSense-Anzeige anhand des ermittelten Cookie-Wertes ausspielen

1. Code-Snippet für Cookie-Verwaltung
Mit einem einfachen Javascript-Code kann das Setzen und Aktualisieren von Cookies umgesetzt werden. Das gewählte Script setzt keine weiteren Javascript Frameworks voraus. Im Netz gibt es vergleichbare Scripts auf Basis von jquery oder prototype o.ä.

Script:


function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return "notset";
}

2. AdSense-Anzeigen A/B-Test-sensitiv ausspielen
Um die Anzeigen entsprechend der Testgruppe auszuspielen bzw. nicht anzuzeigen wird folgende Logik benutzt: Die google AdSense-Anzeigen werden in einem initial nicht sichtbaren <div> im Quellcode ausgespielt. Dies wird über die CSS-Eigenschaft display:none; erreicht:

<div id="AdSenseTest" style="display: none;">
<script type="text/javascript"><!--mce:0--></script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"><!--mce:1--></script></div>

Im nächsten Schritt ist es notwendig, die Existenz des A/B-Test-Cookies zu bestimmen. Kann kein Cookie ermittelt werden, muss die Testgruppe ‚gewürfelt‘ und ein Cookie mit dem Wert gesetzt werden. Ist ein Cookie bereits vorhanden muss der Wert ausgelesen werden.

Um die AdSense-Anzeige einzublenden bedienen wir uns der CSS-Eigenschaft display: block;. Um auf das korrekte DIV zuzugreifen, wird dem DIV eine eindeutige ID zugewiesen, über diese wird die Sichtbarkeit gesteuert:

//Cookie in Variable auslesen
//Wenn Cookie nicht existiert, gibt die Funktion readCookie 'notset' zurück
var AdSenseTest= readCookie("AdSenseTest");
//Wenn kein Cookie gesetzt, muss die Gruppe ermittelt und Cookie gesetzt werden
if (AdSenseTest== "notset"){
AdSenseTest= "1";
//50:50 Verteilung über Zufallszahl zwischen 0 und 1
if (Math.random() > 0.5){
AdSenseTest= "0";
}
//Setzen des Cookies, 5 Tage Laufzeit
createCookie("AdSenseTest",AdSenseTest,5);
}
createCookie("AdSenseTest",AdSenseTest,5);
if (AdSenseTest== "1") {
//Wenn der Wert 1 ist, dann wird die Anzeige eingeblendet:
document.getElementById("AdSenseTest").style.display="block";
}

3. Segmentierung über Google Analytics Events/Ereignisse
Um die KPIs im Webtracking erfolgreich ermitteln zu können, muss die ermittelte A/B-Testgruppe an Google Analytics übermittelt werden. Ein effizienter Weg ist das Ausspielen von Analytics Events. Hierzu wird folgender Code integriert:

//Funktion zum Ausspielen des Events anlegen
function track_Event(group){
_gaq.push(['_trackEvent', 'AdSenseTest', 'Seitenbeschreibung', group]);
}
//Weil Events erst nach dem vollständigen Laden der Analytics-
//bibliothek gemeldet werden können, wir die Funktion mit einem
//Timeout aufgerufen. Der Code kann auch ohne Timeout nach dem
//GA-Code im Quelltext integriert werden
//Nach 5 sek Event auslösen
setTimeout('track_Event(AdSenseTest)', 5000);

Somit ist der A/B-Test scriptseitig und funktional abgeschlossen. Mehr zur Auswertung und Interpretation der Ergebnisse in Teil 2: Auswertung von A/B-Tests anhand Google Analytics Events/Ereignisse.

Eine Antwort zu “A/B-Test Google AdSense-Anzeigen mit Google Analytics”

  1. Robert sagt:

    Eine gute Beschreibung für ein mögliches A/B-Test Setup. Die Lösung über ein DIV, das über die CSS-Eigenschaften gesteuert wird finde ich genial einfach. Es sind keine weiteren Eingriffe in ein CMS oder den Kern einer Plattform notwendig. Wichtig ist auch die Speicherung der gewürfelten Testgruppe, damit das Ergebnis über den Testzeitraum nicht verfälscht wird.
    Der Hinweis auf die Auswertbarkeit mit Google Analytics auf Basis der Ereignisse bzw. Events war mir bisher unbekannt. Auch ich werde dies demnächst wie beschrieben testen.
    Danke für den Tipp!
    Robert

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.