この記事では、記事本文中のh2タグを使った小見出しの前数カ所に、アドセンス広告を設置する方法を紹介します。
アドセンス広告の配置を見直していると、投稿記事本文中の任意の場所に自動的に配置したくなることはありませんか?
WordPressのテーマ「Simplicty2」で記事本文中にアドセンス広告を設置するときに使われるウィジェットだけでは、数カ所に自動配置させることはできません。
設定ファイル「functions.php」にコードを追加することで、h2タイトルの前数カ所にアドセンス広告を設置することができます。
「functions.php」に自動配置するコードを追加すると、アドセンスの取りこぼしを最小限にすることができます。
もくじ
function.phpにコードを追加する
WordPressに用意されている「投稿本文中」というウィジェットを使った方法では、文中最初のh2タグの前にのみ表示させることができますが、各h2タグの前など自由に任意の場所に置くことはできません。
WordPressの設定ファイル「functions.php」にコードを追加することで、任意の箇所に配置することが可能です。
アドセンスコードを直接貼り付ける方法と、「投稿本文中」ウィジェットに貼り付けたアドセンスコードを利用する方法の2種類を紹介します。
アドセンスコードを直接貼り付けるコード
WordPressメニュー 外観 テーマの編集画面から、子テーマを選び、「テーマのための関数(functions.php)」を選択します。
「//以下にSimplicity子テーマ用の関数を書く」の下に、下記コードを貼り付けます。
//h2見出し前に広告を設置 function add_ad_before_h2_headline($the_content) { //広告(AdSense)タグを記入 $ad = <<< EOF ////////////////////////// // ここにアドセンスを挿入 // ////////////////////////// EOF; if ( is_single() && is_active_sidebar( 'widget-in-article' ) ) {//見出し前広告のウィジェットがアクティブのとき $h2 = '/^.+?<\/h2>$/im';//H2見出しのパターン if ( preg_match_all( $h2, $the_content, $h2s )) {//H2見出しが本文中にあるかどうか if ( $h2s[0] ) { if ( $h2s[0][2] ) {//3番目のH2見出しの前に広告を挿入 $the_content = str_replace($h2s[0][2], $ad.$h2s[0][2], $the_content); } if ( $h2s[0][4] ) {//5番目のH2見出しの前に広告を挿入 $the_content = str_replace($h2s[0][4], $ad.$h2s[0][4], $the_content); } } } } return $the_content; } add_filter('the_content','add_ad_before_h2_headline');
「ここにアドセンスを挿入」の箇所に、表示させたいアドセンスコードを貼り付けてください。
このコードでは、同じアドセンスコードを複数箇所に表示することになります。
最初のh2タグの前には「投稿本文中」ウィジェットでアドセンが挿入されているという前提で、3番めと5番目のh2タグの前に表示させるコードです。
このコードを編集することで、以下のような指定ができます。
- 表示させたいh2タグの位置を指定する
- それぞれ別のアドセンスコードを表示させる
任意のh2タグの前に表示させる
コード中の以下の部分を編集・追加することで、指定したh2タグの前に自動配置することができます。
if ( $h2s[0][2] ) {//3番目のH2見出しの前に広告を挿入 $the_content = str_replace($h2s[0][2], $ad.$h2s[0][2], $the_content); }
このコードの$h2s[0][2]
の部分。末尾の数字を3箇所全て変えることで、表示位置が変わります。
最初のh2タグの前を[0]として計算します。
上記コードでは、3番めと5番目に表示するため、末尾の数字が3番めは[2]、5番目は[4]となっています。
2番めに表示したい場合は、以下のようになります。
if ( $h2s[0][1] ) {//2番目のH2見出しの前に広告を挿入 $the_content = str_replace($h2s[0][1], $ad.$h2s[0][1], $the_content); }
すべてのh2タブの前に設置したい場合は、末尾の数字を書き換えたものを、必要な数だけ挿入する必要がありますが、そこまでするとアドセンス広告が多すぎるのでやめておいたほうが良いでしょう。
ブログのジャンルやスタイルにもよると思いますが、h2タグの小見出しをそこまで大量に使うことはないと思います。
5番目〜6番目くらいまでを想定して、配置するようにしておけば良いと思います。
それぞれ別のアドセンスコードを表示させる
それぞれの設置位置による違いを解析したいなど、すべて同じアドセンスコードではなく、別々のコードを使いたいというときは、以下のように編集します。
まず、「ここにアドセンスを挿入」の部分を下記のように編集します。
function add_ad_before_h2_headline($the_content) { //1つ目のアドセンスコードを挿入 $ad1 = <<< EOF //////////////////////////// // ここにアドセンス①を挿入 // //////////////////////////// EOF; //2つ目のアドセンスコードを挿入 $ad2 = <<< EOF //////////////////////////// // ここにアドセンス②を挿入 // //////////////////////////// EOF; //3つ目のアドセンスコードを挿入 $ad3 = <<< EOF //////////////////////////// // ここにアドセンスを③挿入 // //////////////////////////// EOF;
必要な数だけ別々のアドセンスコードを挿入します。ここでは3種類のコードを挿入してます。
つぎに表示させたい場所を指定するコードを以下のように編集します。
if ( $h2s[0][1] ) {//2番目のH2見出しの前に広告①を挿入 $the_content = str_replace($h2s[0][1], $ad1.$h2s[0][1], $the_content); } if ( $h2s[0][2] ) {//3番目のH2見出しの前に広告②を挿入 $the_content = str_replace($h2s[0][2], $ad2.$h2s[0][2], $the_content); } if ( $h2s[0][3] ) {//4番目のH2見出しの前に広告③を挿入 $the_content = str_replace($h2s[0][3], $ad3.$h2s[0][3], $the_content); }
str_replace内の$ad1〜$ad3の部分を変えてあげることで、それぞれ別のアドセンス広告を表示することができます。
既存のウィジェットを利用するコード
「functions.php」内に直接アドセンスコードを貼り付けずに、ウィジェットに貼り付けたアドセンスコードを利用する方法を紹介します。
すべて同じアドセンスコードになりますが、ウィジェットで管理できるので、アドセンスコードの貼り替えなど管理がしやすいというメリットがあります。
//h2見出し前に広告を設置 function add_ad_before_h2_headline($the_content) { //ウィジェットを$adに格納 ob_start(); dynamic_sidebar( 'widget-in-article' ); $ad = ob_get_contents(); ob_end_clean(); if ( is_single() && is_active_sidebar( 'widget-in-article' ) ) {//見出し前広告のウィジェットがアクティブのとき $h2 = '/^.+?<\/h2>$/im';//H2見出しのパターン if ( preg_match_all( $h2, $the_content, $h2s )) {//H2見出しが本文中にあるかどうか if ( $h2s[0] ) { if ( $h2s[0][2] ) {//3番目のH2見出しの前に広告を挿入 $the_content = str_replace($h2s[0][2], $ad.$h2s[0][2], $the_content); } if ( $h2s[0][4] ) {//5番目のH2見出しの前に広告を挿入 $the_content = str_replace($h2s[0][4], $ad.$h2s[0][4], $the_content); } } } } return $the_content; } add_filter('the_content','add_ad_before_h2_headline');
上記のように、直接アドセンスコードを挿入するときには「アドセンスを挿入」となっていた箇所を、ウィジェットから読み込むように置き換えます。
このコードで使用しているウィジェットは「投稿本文中」、ウィジェットIDは ” widget-in-article ” です。
「投稿本文中」ウィジェットに貼り付けたアドセンスコードで、最初のh2タグの前にアドセンス広告が表示され、そのコードを読み取って3番目、5番目にも表示させます。
アドセンスの管理を楽にするために、極力ウィジェット画面で管理したいという場合は、こちらのほうが向いています。
まとめ
任意のh2タグの前にアドセンスコードを配置するには、「functions.php」にコードを挿入することで実現できます。
アドセンス広告は、配置する場所によってクリック率が大きく変わってきます。
いろいろな配置方法を覚えておくと、収益率の高い場所を探すのにも役立ちますね。