Werbe-Banner nur für Besucher von Suchmaschinen anzeigen
Ich bin bei WpRecipes auf einen interessanten Artikel zum Thema “AdSense-Anzeigen” gestoßen. Viele Blog-Betreiber möchten ja durch die Textanzeigen von Google monatlich ein paar Werbeeinnahmen generieren, um die Hosting-Kosten zu decken.
An sich völlig verständlich, andererseits stören die Textanzeigen oder ganz allgemein Werbebanner auch viele Leser und sicherlich auch viele Blog-Betreiber. Durch diese Funktion von WpRecipes lässt sich das Einblenden von Werbeanzeigen – speziell auch von AdSense-Anzeigen – ein wenig eingrenzen. Das Skript sorgt dafür, dass nur Besucher, die über eine Suchmaschine auf die Seite gelangt sind, eine Anzeige angezeigt bekommen. Alle anderen Besucher, also Leute, die das Blog direkt aufgerufen haben – über ein Bookmark oder den RSS-Feed – sehen keine Anzeigen und können ungestört die Artikel lesen.
Wer sich viel mit Online-Marketing bzw. mit der Google-AdSense-Technologie beschäftigt, weiß, dass vor allem Besucher, die über Suchmaschinen auf eine Webseite gelangen, auch auf Anzeigen klicken. Das geschieht meist dann, wenn der Besucher nicht fündig geworden ist und eine Textanzeige, die zum gefundenen Artikel bzw. Content passt, eine “bessere” Antwort liefern könnte. Die bis dato generierten Werbeeinnahmen sollten sich also nicht verringern. Im Gegenteil: Durch Google’s SmartPricing-Technologie und die durch das Skript verursachte bessere Klickrate auf die Anzeigen (die Impressionen der Anzeigen sinken ja, wenn sie nicht mehr jedem Besucher gezeigt werden), sollte sich der eCPM und damit die Gesamteinnahmen sogar verbessern lassen.
Soweit zur Theorie, hier die Praxis:
1. functions.php im Theme-Ordner anpassen:
$ref = $_SERVER['HTTP_REFERER'];
$SE = array('/search?', 'images.google.', 'search.', 'del.icio.us/search', '/search/', '.yahoo.');
foreach ($SE as $source) {
if (strpos($ref,$source)!==false) {
setcookie("sevisitor", 1, time()+3600, "/", ".wordpress-magazin.de");
$sevisitor=true;
}
}
function wpmag_fromasearchengine(){
global $sevisitor;
if ($sevisitor==true || $_COOKIE["sevisitor"]==1) {
return true;
}
return false;
}
Was passiert hier? Eigentlich ganz einfach: Das Skript liest den Referer des Besuchers aus und achtet dabei auf bestimmte Teile in der URL. Diese stehen im Array $SE. Wer also weitere Suchmaschinen oder Seiten dazunehmen möchte, der kann das Array einfach erweitern. Der Code oben sorgt dafür, dass der Wert “true”, also “wahr” zurückgegeben wird, wenn der Besucher von Google, inkl. der Google-Bildersuche, von del.icio.us oder von Yahoo und anderen Seiten die in der URL “search” enthalten auf die Seite gelangt. Wenn das nicht der Fall ist, wird der Wert “false” bzw. “falsch” zurückgegeben.
Außerdem setzt das Skript ein Cookie mit dem Namen “sevisitor” beim Benutzer, wodurch verhindert wird, dass bei einem Reload der Seite oder beim Navigieren auf dem Blog plötzlich keine Anzeigen mehr erscheinen (der Referer ändert sich ja dann). Die Cookie-Laufzeit beträgt dabei 3600 Sekunden, also 10 Minuten – danach ist das Cookie nicht mehr gültig und die Werbe-Anzeigen würden verschwinden. Wer für Besucher von Suchmaschinen längere Besuchszeiten auf der Webseite verzeichnet, sollte diesen Wert entsprechend erhöhen.
Die URL “wordpress-magazin.de”, die in der “setcookie”-Zeile am Ende steht, muss unbedingt noch an die eigene Domain angepasst werden, damit es funktioniert.
Übrigens sollte darauf geachtet werden, dass in der Datei functions.php noch “< ?php” bzw. “? >” (ohne die Leerzeichen vor und nach dem Fragezeichen) am Anfang und am Ende der Funktion ergänzt werden muss, wenn die Datei functions.php bisher leer ist. Sonst bekommt man eine Fehlermeldung.
2. In den verschiedenen Theme-Dateien, in denen man den Banner-Code (Javascript-Code) von AdSense eingebaut hat, ergänzt man dann noch folgenden Code:
if (function_exists('wpmag_fromasearchengine')) {
if (wpmag_fromasearchengine()) {
PLATZHALTER FÜR HTML-/BANNER-CODE
}
}
An die Stelle “PLATZHALTER FÜR BANNERCODE” kommt dann der eigentliche Bannercode – egal ob AdSense oder ein anderer Javascript-Code. Theoretisch kann man hier auch beliebigen anderen (HTML-)Code einsetzen, beispielsweise ein Bild oder einen Text, den nur Besucher von Suchmaschinen angezeigt bekommen sollen.
Achtung: Beim Einbau in Theme-Dateien wie die single.php oder die sidebar.php muss noch die richtige PHP-Syntax für den obigen Code beachtet werden (man beachte die roten php-Tags):

Jeder möge dieses Skript bitte auf eigene Gefahr einsetzen. Auch die Annahme, dass sich die Werbeeinnahmen über AdSense dadurch steigern lassen, ist nur eine unbestätigte Theorie. Fragen und Meinungen dazu können gern wieder über die Kommentar-Funktion diskutiert werden.