Da mittlerweile schon viele Leute Werbeblocker verwenden und dies den Umsatz senkt, wäre es schön, wenn man den User bitten könnte seinen Werbeblocker für die eigene Seite abzuschalten.
Im Internet habe ich nun eine Möglichkeit gefunden genau dies zu tun. Wie man dies in Worpress umsetzt werde ich hier erläutern:
Idee
Wir versuchen am Anfang der Seite ein Script aufzurufen, welches in einem tief verschachtelten Ordner liegt. Die Ordnernamen sind alle Keywords für die Adblocker wie “ads”, “click”, “adserver”,…
Wird das Script aufgerufen, so ist kein Werbeblocker aktiv, denn dieser hätte den Aufruf des Scripts verhindert (wegen der vielen Keywords). In diesem Fall wird eine Variable auf true gesetzt.
Später im Quelltext (am besten da wo die Werbung angezeigt wird) macht man nun eine Abfrage, ob die Variable auf true steht (was bedeutet, dass kein Werbeblocker aktiv ist). Tut sie es nicht, soll ein alternativer Text ausgegeben werden, der den User darum bittet seinen Werbeblocker für die Seite abzuschalten.
Umsetzung in WordPress
Ich benutze den Adsense-Manager um Adsense Werbung auf der Seite zu zeigen und werde auch darauf eingehen.
Als erstes erstellen wir unser Testscript, was in einem tief verschachtelten Ordner liegt (die Ordner müssen natürlich alle erst angelegt werden):
Bei mir liegt das Script in http://zinformatik.de/werbung/banner/ads/adserver/advertising/click/adsense/ad.js.
Die Datei ad.js hat nur eine Zeile:
Nun rufen wir das Script im Header auf. Dafür fügen wir folgende Zeile ans Ende der header.php an:
<script src="http://zinformatik.de/werbung/banner/ads/adserver/advertising/click/adsense/ad.js"
type="text/javascript"></script>
Die Domain (zinformatik.de) muss natürlich angepasst werden.
Nun fragen wir die Variable ab. Wer den Adsense-Manager verwendet, kann den Code einfach in den Einstellungen der einzelnen Banner vor den Werbeblock einfügen. Dafür gibt es ein extra Feld. Nun güt man zu jedem Banner in der Liste den entsprechenden Code ein (je nachdem, ob es ein horizontales oder vertikales Banner ist)
Wenn man den Adsense-Manager nicht verwendet, muss man den Code von Hand an die Stellen im Code einfügen, wo der Hinweis an den User erscheinen soll (z.B. vor jedem Auftreten des Werbecodes).
Hier mein Code, den ich anstelle von horizontalen Bannern verwende:
<script type="text/javascript">
try {
if (!werbeblocker) {
zeigemeldung = true;
} else {
zeigemeldung = false;
}
} catch(e) {
zeigemeldung = true;
}
if (zeigemeldung) {
document.write("<div class="adblock"><table><tr>
<td><img src="http://zinformatik.de/warning.png"></td>
<td>Diese Seite wird durch Werbung finanziert.<br />
Bitte deaktiviere Deinen Werbeblocker für diese Seite!</td>
</tr></table></div>");
}
</script>
Der folgende Code ist für dier Ersetzung vertikaler Banner:
<script type="text/javascript">
try {
if (!werbeblocker) {
zeigemeldung = true;
} else {
zeigemeldung = false;
}
} catch(e) {
zeigemeldung = true;
}
if (zeigemeldung) {
document.write("<div class="adblock"><table>
<tr><td><img src="http://zinformatik.de/warning.png“></td></tr>
<tr><td>Diese Seite wird durch Werbung finanziert.<br />
Bitte deaktiviere Deinen Werbeblocker für diese Seite!</td></tr>
</table></div>");
}
</script>
Auch bei diesen beiden Codeschnipseln muss die Domain (zinformatik.de) entsprechend ersetzt werden.
In die style.css fügen wir nun noch folgende Klasse ein um die Ausgabe zu formatieren:
.adblock {
background-color: #ff0000;
color: #000000;
text-align: center;
font-family: 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, Sans-Serif;
font-weight: bold;
font-size: 1.6em;
}
Das Bild stammt aus den Wikimedia Commons und kann hier herunter geladen werden. Ich habe es noch auf eine Höhe von 100px zugeschnitten.
![]()
![]()