AdSense A/B-Test – Mit PHP die Einnahmen einer ganzen Webseite optimieren

AdSense A/B-Test - Mit PHP die Einnahmen einer ganzen Webseite optimierenÜber die Optimierung von Google AdSense für höhere Werbeeinnahmen wurde hier bei SiN schon einiges geschrieben. Auch ich habe in einem vorhergegangenen Artikel drei Möglichkeiten vorgestellt, mit denen sich A/B-Tests für AdSense Werbeblöcke durchführen lassen.

Heute möchte ich einen Schritt weiter gehen und nicht nur einzelne Werbeblöcke optimieren, sondern die ganze Webseite mit mehreren Werbeblöcken betrachten und einem A/B-Test unterziehen.

>> Zu den besten AdSense Tipps und Tricks.

Die Problematik mehrerer Werbeblöcke

Zur Erinnerung: Mit einem A/B-Test, auch Splittest genannt, werden zwei Szenarien A und B im gleichen Zeitraum miteinander verglichen, um die bessere Performance zu ermitteln. Im Falle von AdSense Werbeblöcken werden also abwechselnd Block A und Block B auf der Webseite angezeigt und am Ende verglichen, mit welchem Werbeblock die höheren Einnahmen erzielt werden können.

Nun erlaubt Google AdSense nicht nur einen Werbeblock auf einer Webpage sondern bis zu drei gleichzeitig. Folglich sollte man alle drei Werbeblöcke auf maximale Einnahmen hin optimieren.

Egal ob man das nun der Reihe nach oder parallel versucht, es wird schnell klar, dass eine Änderung an einem Werbeblock nicht nur Auswirkungen auf die Einnahmen dieses Blocks haben kann. Es gibt Quereffekte, so dass eine bessere Performance eines Werbeblocks zu einer weitaus schlechteren eines anderen führen kann. Das ist auch einleuchtend, denn die drei Werbeblöcke konkurrieren ja um den Klick des Besuchers.

Wir brauchen also einen Mechanismus, der bei der Optimierung einzelner Werbeblöcke die Gesamtperformance der ganzen Seite im Auge behält.

Die Herangehensweise: A/B-Test mal 3

Nehmen wir ein einfaches Beispiel. Eine Webseite hat drei Werbeblöcke im Contentbereich, einen oben, einen in der Mitte und einen unten. Nun möchten wir testen, ob der obere Block nicht besser unter dem Seitentitel stehen sollte, als darüber.

Da nur Werbeblock 1 verändert wird, jedoch nicht die Blöcke 2 und 3, könnte man an einen einfachen A/B-Test für Block 1 denken. Will man aber die Auswirkungen der Änderung über die ganze Seite betrachten, müssen die Werbeblöcke 2 und 3 mit ins Boot. Damit brauchen wir für diesen Test insgesamt sechs Anzeigenblöcke und zwei benutzerdefinierte Channel.

AdSense A/B-Test - Mit PHP die ganze Webseite optimieren

Das Schaubild zeigt die ursprüngliche Variante A mit dem Anzeigenblock 1 oberhalb des Seitentitels. Und daneben die Variante B, die sich nur dadurch unterscheidet, dass Anzeigenblock 1 unter den Seitentitel gerutscht ist.

Als Vorarbeit legen wir zuerst in AdSense sechs gleiche Anzeigenblöcke an, die sich nur im Namen und der Slot-ID unterscheiden. Auch die obersten Blöcke 1A und 1B unterscheiden sich in diesem Fall nicht weiter von einander, da wir ja nur verschiedene Positionen testen und kein unterschiedliches Anzeigen-Layout. Als Namen für die Anzeigenblöcke verwenden wir die roten Bezeichnungen aus dem Schaubild.

Im nächsten Schritt erzeugen wir in AdSense zwei benutzerdefinierte Channel Variante A und Variante B und ordnen ihnen jeweils die zugehörigen Anzeigenblöcke zu. Channel Variante A fasst also Block1A, Block2A und Block3A zusammen und wird uns später die Gesamteinnahmen des Szenarios A ausgeben. Channel Variante B analog dazu für alle B-Blöcke.

Der PHP Code für den Test

<?php
$ab = "a";
if(rand(0, 1) >= 0.5) $ab = "b";

if($ab == "a") {
?>
--- Hier Block1A ---
<?php
}
?>

<h1>Seitentitel</h1>

<?php
if($ab == "b") {
?>
--- Hier Block1B ---
<?php
}
?>

--- HTML Seiteninhalte ---

<?php
if($ab == "a") {
?>
--- Hier Block2A ---
<?php
}
?>

<?php
if($ab == "b") {
?>
--- Hier Block2B ---
<?php
}
?>

--- HTML Seiteninhalte ---

<?php
if($ab == "a") {
?>
--- Hier Block3A ---
<?php
}
?>

<?php
if($ab == "b") {
?>
--- Hier Block3B ---
<?php
}
?>

Einbau des Programmcodes

Die einzelnen Programmblöcke müssen nun an den entsprechenden Stellen in die Webseite eingefügt werden, an der die jeweilige Werbung später erscheinen soll. An Stelle der Platzhalter werden dann noch die Anzeigencodes der sechs AdSense Anzeigenblöcke eingefügt. Und zwar unverändert – so wie sie von AdSense ausgegeben werden.

Wichtig ist auch, dass der Zufallsgenerator, der das Auswürfeln der Varianten A oder B besorgt, ganz oben steht. Beziehungsweise vor dem ersten Werbeblock. Bei Block 1 kann man erkennen, dass die Variante A vor der Seitenüberschrift steht und die Variante B darunter. Bei den Blöcken 2 und 3 gibt es keinen Unterschied, die Auslieferung des Anzeigenblocks erfolgt an der selben Stelle, jedoch mit unterschiedlicher Slot-ID.

Je nachdem, mit welcher Technik die eigene Site aufgebaut ist, unterscheiden sich die Vorgehensweisen beim Codeeinbau:

Webseite auf Basis von PHP
Typischerweise enden dabei die Seitennamen auf .php. Hier braucht nichts weiter beachtet werden, die Programmblöcke können direkt in die Seite gesetzt werden, der Webserver übernimmt es, die PHP-Programmteile vor der Auslieferung der Seite auszuführen.

Statische HTML-Seite
Das sind HTML-Seiten, die auf .htm oder .html enden. Dabei wird PHP-Code normalerweise nicht ausgeführt, was sich aber durch einen Eintrag in der .htaccess Datei auch nachträglich noch ändern lässt:

AddType application/x-httpd-php .html

Damit wird der Server bei einer Seite mit der Endung .html ebenfalls PHP-Programmteile ausführen.

Webseite auf Basis von WordPress
WordPress basiert auf PHP und damit können auch PHP-Splittests gefahren werden. Um den Programmcode in die Seite zu bekommen muss auch nichts am Theme geändert werden. Man verwendet einfach mit ein Plugin, das viele sowieso benutzen, um generell Werbeblöcke auszuliefern. Wichtig ist nur, dass dieses Plugin auch mit PHP-Code umgehen kann. Brauchbar ist beispielsweise Ad Inserter, damit kann auch PHP-Code als Widget, oder per Shortcode ausgebracht werden. Oder auch automatisch an eine vordefinierte Position, wie zum Beispiel ans Ende des drittletzten Absatzes des Artikels.

Auswertung

Die Auswertung erfolgt zweistufig in der AdSense Admin-Oberfläche über den Menüpunkt Leistungsberichte. Als Zeitraum (rechts oben) geben wir dabei unseren Testzeitraum ein. Zuerst werten wir die benutzerdefinierten Channel aus, die wir zu diesem Zweck angelegt hatten (Berichtstyp: Benutzerdefinierte Channels). Hier sehen wir nun die beiden Channel Variante A und Variante B mit ihren Gesamtsummen gegenübergestellt. Und wir können sofort erkennen, welche Variante besser verdient.

Detailliertere Einblicke erhält man im zweiten Schritt bei einer Auswertung nach Anzeigenblöcken (Berichtstyp: Anzeigenblöcke). Jetzt werden die Einnahmen auf alle sechs Werbeblöcke herunter gebrochen.

AdSense A/B-Test - Mit PHP die ganze Webseite optimieren

Die Werte der Tabellen sind fiktiv, aber sie zeigen den Erkenntnisgewinn. Bei den benutzerdefinierten Channels sieht man, dass die beiden Varianten recht gleichmäßig bedient wurden mit jeweils ca. 52.000 Impressionen. Dabei unterscheiden sich die Seitenpreise (CPC) kaum, was nicht anders zu erwarten war, die Klickrate (CTR) jedoch ganz erheblich, was direkt auf die Einnahmen durchschlägt.

Da die Impressionen gleichmäßig auf die beiden Varianten verteilt wurden, können wir direkt die Einnahmen in € betrachten. Sollten die Impressionen ungleich verteilt sein, ist der RPM (Umsatz pro 1000 Impressionen) aussagefähiger, da hier die Impressionen berücksichtigt werden. Variante B verdient in diesem Beispiel also ein gutes Stück mehr, weil der oberste Werbeblock offensichtlich unterhalb der Seitenüberschrift deutlicher wahrgenommen und öfter geklickt wird.

Die zweite Tabelle zeigt die Einnahmen in ihrer Verteilung auf die einzelnen Anzeigenblöcke. Bei Block 3 sieht man kaum einen Unterschied, die Änderung ganz oben schlägt also nicht bis zum Seitenende durch. Bei Block 2 kann man allerdings erkennen, dass er in der B-Variante deutlich unter dem besseren Abschneiden von Block1B leidet. Der deutliche Gewinn von Block 1 in Höhe von fast 36€ zieht also vergleichsweise leichte Einbußen bei Block 2 von 4,29€ nach sich, was natürlich zu verschmerzen ist. Die Variante B führt also insgesamt zu höheren Einnahmen in Höhe von 32,49€ im Testzeitraum.

Würde die Variante B nun dauerhaft aktiviert, dann wäre für einen gleich langen Zeitraum eine Einnahmeerhöhung um ca. 65€ zu erwarten, da ja dann sämtliche Impressionen (ca. 104.000) nach Variante B erfolgen und nicht nur die Hälfte wie im Testszenario.

Fazit

Im Beispiel oben hätte auch ein einfacher Splittest zwischen den Blöcken 1A und 1B zu der Erkenntnis geführt, dass B besser performt als A. Die Auswirkungen der Änderung auf die anderen Werbeblöcke wäre allerdings ohne Beachtung geblieben. Erst im späteren Betrieb hätten sie sich gezeigt.

Das volle Bild gibt also nur ein A/B-Test der gesamten Seite mit allen Werbeblöcken. Und per PHP lässt sich das einfach durchführen.

Was kann getestet werden?

Grundsätzlich alles, worin sich Anzeigenblöcke unterscheiden. Hier ein paar konkrete Vorschläge für eigene Tests:

  • Positionen:
    Wie in diesem Beispiel können verschiedene Positionen der Werbeblöcke auf der Webseite gegeneinander getestet werden. Performt ein Block besser in der Seitenleiste, oder im Textbereich, im Header oder im Footer? Dabei sollte man im Hinterkopf behalten, dass Adsense die Anzeigen mit den höchsten Klickpreisen (CPC) in dem Anzeigenblock ausliefert, der im HTML-Code an erster Stelle steht. Das muss nicht zwangsweise der Block sein, der auch im Browser ganz oben angezeigt wird. Block 2 und Block 3 bestückt AdSense dann mit immer weniger einträglichen Anzeigen.
  • Anzahl der Anzeigenblöcke:
    Drei sind erlaubt, vielleicht ist die Gesamtperformance aber besser, wenn nur zwei oder gar nur ein Werbeblock verwendet wird.
  • Gestaltung:
    Kann durch Farbe, Schrift oder Abstand zum umgebenden Text mehr Aufmerksamkeit für einen Werbeblock erregt werden, die sich in höheren Einnahmen niederschlägt? Oder sollte für Werbung dasselbe Design wie für die Webseite verwendet werden?
  • Text- oder Displayanzeigen:
    Bei Webmastern ist das sehr umstritten – Google empfiehlt beides zuzulassen.
  • Linklisten:
    Bei Websites, die ein eindeutiges Thema haben, können Linklisten sehr gut laufen. Entweder zusätzlich oder anstelle eines klassischen Anzeigenblocks. Aber Vorsicht! Linklisten sind (noch?) nicht responsive. Also keine horizontalen Listen verwenden, sondern nur vertikale.
  • Anzeigengrößen:
    Bei Websites, die nicht responsive gestaltet sind, oder eine eigene Mobilvariante haben, können auch verschiedene Anzeigenblockgrößen gegeneinander getestet werden. Oder eine andere Ausrichtung, wie zum Beispiel Skyscraper vs. Rectangle.
  • Andere Werbeanbieter:
    Etwas schwieriger auszuwerten, aber durchaus möglich, ist es einen AdSense-Block gegen eine Affiliate-Werbung zu testen, oder zum Beispiel AdSense gegen Amazon.

Autor

Helmut Karger betreibt seit 13 Jahren das Wanderportal www.GpsWandern.de und nutzt dort AdSense als Einnahmequelle seit 2006. Über die Jahre sind weitere Webprojekte dazugekommen – seit April 2015 auch ein Personal Blog.

Peer Wandiger

2 Gedanken zu „AdSense A/B-Test – Mit PHP die Einnahmen einer ganzen Webseite optimieren“

  1. Sehr interessant. Wir führen seit dem 01.12 auch einen A/B-Test durch. Bin mal gespannt wie unterschiedlich die Monate Dezember und Januar ausfallen, obwohl wegen dem Weihanchtsgeschäft sicherlich eine gewisse Besuchsverfälschung stattfindet.

    Antworten
  2. Kann es vielleicht sein, dass durch einen ständigen Positionswechsel von Block 1 eine höhere Klickrate zustande kommt? Bekanntlich nehmen Besucher Bannerwerbung nach einer Weile nicht mehr wahr, wechselt das Banner aber plötzlich die Position, erreicht es dadurch mehr Aufmerksamkeit und eventuell eine höhere Klickrate. So könnte es passieren, dass Block 1B im Test zwar besser als Block 1A abschneidet, aber nach der Umsetzung (also ohne ständigen Wechsel) ein schlechteres Ergebnis erzielt als zuvor Block 1A.

    Antworten

Schreibe einen Kommentar