Adsense automatisch nach dem ersten Absatz, Artikelmitte oder dem Ende einfügen

Google Adsense Anzeigen erzielen die höchsten Einnahmen wenn man sie direkt innerhalb des Artikel Content platziert. Anstatt den Adsense Code in jedem Artikel manuell einzufügen, ist es wesentlich komfortabler die Anzeigen einfach über das WordPress Theme in jedem Artikel automatisch ausgeben zu lassen. In diesem Artikel findest du ein paar Code Beispiele wie du Adsense oder andere Werbung nach dem ersten Absatz (oder zweiten, dritten,..), in der Mitte des Artikels und direkt am Ende des Artikels (abhängig von der Artikellänge) automatisch einfügen kannst.

Die einfachste Möglichkeit die Adsense Anzeigen recht Content nah zu platzieren und in jedem Beitrag über das Template anzuzeigen wäre in der single.php direkt vor der Content Ausgabe den Adsense Code innerhalb eines DIV Containers zu platzieren und diesem mit CSS ein float: left/right zuzuweisen. Wir wollen den Anzeigenblock aber erst nach dem ersten oder zweiten Absatz einfügen und je nach Textlänge in der Mitte des Artikels einen zweiten und am Ende noch einen letzten Adsense Block einfügen.

Adsense nach dem ersten Absatz

Wir öffnen also die single.php Datei unseres WordPress Themes und suchen die Funktion

<?php the_content() ?>

welche wir mit unserem Code ersetzen werden. Für die einfache Ausgabe eines Anzeigenblocks nach dem ersten bzw. X-ten Absatzes findet man bei doitwithwp.com und wpbeginner.com schon ein fertiges Code Beispiel, welches ich leicht modifiziert als Basis für die weiteren Anpassungen hier übernommen habe:

<?php // Basic Adsense after paragraph X Code
$content = apply_filters('the_content', $post->post_content);
$ad1_after_p = 0; // Ad after paragraph position. Note: count starts at 0! 
$contents = explode("</p>", $content);
$p_counter = 0;
foreach($contents as $content)
{
	echo $content.'</p>';
	if($p_counter == $ad1_after_p)
	{
	?>
		AD1_ADSENSE_CODE
	<?
	}
	$p_counter++;
}
?>

Mit der Variablen $ad1_after_p legen wir den Absatz fest, nach dem der Adsenseblock eingefügt werden soll. Mit dem Wert 0 wird der Adsense Code nach dem ersten Absatz eingefügt., bei 1 nach dem Zweiten, 2 nach dem Dritten usw. AD1_ADSENSE_CODE steht als Platzhalter für deinen Adsense Code und muss mit dem Code deiner Anzeige ausgetauscht werden.

Der Code macht an sich genau das was er soll. Er ermittelt die Absätze mit der substr_count() Funktion anhand der vorhandenen < p > Tags, teilt mit der explode() Funktion die Absätze bei jedem schließendem p Tag in einzelne Strings, Speichert diese in einem Array in der variablen $contents und fügt sie anschließend mit einer Schleifenfunktion wieder zusammen bei der dem gewünschten Absatz der Adsensecode angehängt wird.

Problematisch kann es nur werden, wenn man vor dem gewünschtem Absatz ein Bild mit WP Bildunterschrift (Caption) in den Text eingefügt hat. Der Fehler liegt im Detail: Die Bildunterschriften werden von WordPress ebenfalls in p Tags gesetzt, allerdings mit einer eigenen wp-caption-text CSS Klasse. Da wir im obigen Code die explode() Funktion auf den schließenden p Tag angewendet haben, kann es sein das der Adsense Code nach der Bildunterschrift innerhalb des Caption Div Tags eingefügt wird. Um das zu verhindern sollten wir besser den öffnenden < p > Tag nutzen.

Ich habe den Code also nachfolgend entsprechend angepasst und gleich um die Variable $p_count erweitert, welche wir später noch für die Ausgabe einer Adsense Anzeige in der Mitte und am Ende des Artikels, in Abhängigkeit der Artikellänge, benötigen:

<?php // Better Adsense after paragraph X code
$content = apply_filters('the_content', $post->post_content);
$ad1_after_p = 1; // Ad after paragraph X position. Change as desired. Count starts at 1 for first paragraph 
$p_count = substr_count($content, '<p>');
$contents = explode("<p>", $content);
$p_counter = 0;
foreach($contents as $content)
{
	if ($p_counter > 0) {
		echo '<p>'.$content;
	}
	if($p_counter == $ad1_after_p)
	{
	?>
			AD1_ADSENSE_CODE
	<?
	}
	$p_counter++;
}
?>

Durch das Teilen des Content an jedem öffnenden < p > Tags werden nur noch die eigentlichen Absätze des Fließtextes berücksichtigt. Da jetzt der erste Absatz in der variablen $contents aber quasi „leer“ gespeichert wird, müssen wir die Ausgabe im ersten Schleifendurchlauf überspringen. Das Bedeutet auch, dass die Positionsangabe mit der Variablen $ad1_after_p nun nicht mehr bei 0 startet, sondern bei 1 für das Einfügen der Anzeige nach dem ersten Absatz!

Adsense nach erstem Absatz und Artikel Ende

Jetzt wollen wir noch einen Adsense Anzeigenblock nach dem letzten Absatz einfügen, aber nur wenn der Artikel mindestens eine bestimmte Länge (Anzahl an Absätzen) hat:

<?php // Insert Adsense after paragraph X and article end code
$content = apply_filters('the_content', $post->post_content);
$ad1_after_p = 1; // Ad after paragraph X position. Change as desired. Count starts at 1 for first paragraph 
$ad3_end_min_p = 6; // Minimum paragraph count for content end ad. Change as desired.
$p_count = substr_count($content, '<p>');
$contents = explode("<p>", $content);
$p_counter = 0;
foreach($contents as $content)
{
	if ($p_counter > 0) {
		echo '<p>'.$content;
	}
	if($p_counter == $ad1_after_p)
	{
	?>
			AD1_ADSENSE_CODE
	<?
	}	
	if(($p_counter == $p_count) && ($p_count >= $ad3_end_min_p) )
	{
	?>
			AD3_ADSENSE_CODE
	<?
	}
	$p_counter++;
}
?>

Mit der variablen $ad3_end_min_p legen wird die Mindestanzahl der Absätze fest, welche der Artikel habe muss, damit die Anzeige angefügt wird. Bei dem Wert 6 wird eine Adsense Anzeige am Ende des Artikels angehängt, wenn dieser mindestens 6 Absätze hat.

Adsense nach erstem Absatz, Artikelmitte und Ende

Zuletzt erweitern wir den Code so, dass bei sehr langen Artikeln eine Anzeige in der Mitte des Artikels eingefügt wird. Dafür legen wir die Mindestlänge des Artikels mit der Variablen $ad2_middle_min_p fest. Mit dem Wert 12 Wird eine Adsense Anzeige nach dem Absatz genau in der Mittel des Artikels eingefügt, wen dieser mindestens 12 Absätze besitzt. Der fertige Code sieht dann so aus:

<?php // Insert Adsense after paragraph X, article middle and article end code
$content = apply_filters('the_content', $post->post_content);
$ad1_after_p = 1; // Ad after paragraph X position. Change as desired. Count starts at 1 for first paragraph 
$ad2_middle_min_p = 12; // Minimum paragraph count for content middle ad. Change as desired.
$ad3_end_min_p = 6; // Minimum paragraph count for content end ad. Change as desired.
$p_count = substr_count($content, '<p>');
$contents = explode("<p>", $content);
$p_counter = 0;
foreach($contents as $content)
{
	if ($p_counter > 0) {
		echo '<p>'.$content;
	}
	if($p_counter == $ad1_after_p)
	{
	?>
			AD1_ADSENSE_CODE
	<?
	}
	if(($p_counter == round(($p_count / 2),0)) && ($p_count >= $ad2_middle_min_p) )
	{
	?>
			AD2_ADSENSE_CODE
	<?
	}		
	if(($p_counter == $p_count) && ($p_count >= $ad3_end_min_p) )
	{
	?>
			AD3_ADSENSE_CODE
	<?
	}
	$p_counter++;
}
?>

Du hast Fragen zum Code oder willst ein Feedback abgeben? Hinterlasse einfach einen Kommentar.

4 Comments

Add a Comment

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *