Adsense auf der Startseite und nur unter dem ersten Blog-Artikel anzeigen

Eine Adsense-Anzeige soll nur ein einziges Mal angezeigt werden und zwar ausschließlich unter oder über dem ersten Artikel.

Diese Positionierung ist relativ vielversprechend, da sie im direkten Fokus des Lesers steht und somit, jedenfalls bei einer sinnvollen Implementierung, häufig angeklickt wird, was letzten Endes natürlich unsere Werbeeinnahmen steigert.

Hierbei stellt uns aber WordPress vor ein unnötiges und vor allem nerviges Problem, denn wer einfach auf der Startseite ein Banner einbindet, stellt schnell fest, dass es nun unter jedem Beitrag aufploppt.

Werbung nur unter dem ersten Blogbeitrag darstellen

Wer auf der eigenen Startseite ein Adsense-Banner einbauen möchte, steht also häufig vor der Frage, wie das eigentlich zu realisieren sei. Denn der WordPress-Loop sorgt normalerweise dafür, dass jeder Codeschnipsel, der in ihm steht, unendliche Male wiederholt wird.

Das ist aber eher hinderlich, da man einerseits die eigenen Leser verschreckt und ebenso gegen Googles Richtlinien zur Implementierung verstößt (Die schreiben vor, dass maximal drei Adsense-Banner auf einer Seite angezeigt werden dürfen.)

Das heißt also, wenn ich will, dass unter dem ersten Beitrag auf meiner Startseite eine Adsense-Werbung geschaltet werden soll, muss ich nach einer Alternative suchen.

Wie stelle ich auf meiner Startseite nur eine Adsense-Anzeige dar?

Um diesem Problem aus dem Weg zu gehen, kann man entweder auf ein Plugin zurückgreifen oder eben selbst Hand anlegen. Da es sich hierbei um einen wirklich simplen Eingriff in die Codestruktur handelt, rate ich allerdings von irgendwelchen externen Lösungen ab.

Wir rufen einfach unsere Hauptindex-Datei auf, welche in der Regel index.php und suchen nach dem Loop, der dafür verantwortlich ist, dass auf unserer Startseite chronologisch Blog-Artikel erscheinen. Normalerweise suchen wir also nach folgendem Code, der den Loop einleiten sollte:

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

Und natürlich brauchen wir ebenso den Endpunkt, der in etwa so aussehen dürfte:

<?php endwhile; else: ?>
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>

Natürlich können diese Bausteine in Eurem Theme leicht abgeändert sein und gegebenenfalls gestreckt, dennoch bleibt die Grundstruktur gleich.

Jetzt brauchen wir lediglich eine Möglichkeit, um eine Adsense-Anzeige nur unter dem ersten Blog-Artikel zu positionieren, um eben nicht hinter jedem Excerpt, jeder Vorschau oder unter allen Thumbnails eine Google-Werbung zu platzieren.

Eine recht einfache Option stellt dieser Code dar, den ich auch in diesem Blog verwende:

<?php if (!$show_adsense) { ?>
Hier muss der Adsense-Code stehen
<?php $show_adsense = 1; } ?>

Diesen setzen wir nun ans Ende des Loops.

Der kleine Codeschnipsel fragt dann ab, ob eine Werbung schon eingebunden wurde und wenn ja, wird der Inhalt (Adsense) einfach übersprungen.

Fortan wird ausschließlich unter dem ersten Blog-Beitrag Werbung angezeigt. Natürlich kann das Ganze auch in allen anderen Loop-Aufrufen im eigenen Blog implementiert werden. Denkbar wäre somit auch die Archiv-Ansicht, die Kategorien-Darstellung und ebenso die interne Blogsuche.

1 Meinung

  1. Stephan06-09-2012

    Hat mir sehr weitergeholfen, vielen Dank.