WordPressで記事の内容によって記事中に挿入する広告を切り替える方法

Google Adsenseを利用していて怖いのが、広告を表示させてはならぬ禁止コンテンツにまかり間違って表示させてしまって突然BANされることですよね。

禁止コンテンツが絡みそうな記事だけ、別の広告ネットワークに切り替えられれば・・・という人向けのカスタマイズ方法です。

Wordpress Button Closeup
Photo:Wordpress Button Closeup By Stefanos Kofopoulos

Google Adsenseを利用していると、ごくまれにうっかりポリシー違反をやらかして広告配信が停止されてしまったり、最悪なケースだとアカウントがBANされて二度と利用できなくなるなんてことがあります。

わかったブログ」のかん吉さんが以前に配信停止を食らったときのことを記事にしていて、とてもわかりやすく解説してくれているので是非参考にしてください。

広告ネットワークを切り替える

じゃあ、そんなときはどうしたらいいのか? ってことになるわけですけど、これについても「わかったブログ」で記事としてまとめられています。

かん吉さんが採られた方法は、PHPとカスタムフィールドを使って当該記事の広告を非表示にするというもの。

うちではこの方法を応用して、Google Adsenseとは異なる広告ネットワークの広告に切り替えて表示するようにしています。

ただ一点問題があるのが、今回の本題である記事中(moreタグの後ろ)に挿入する広告を切り替える方法です。
うちの場合、記事中の広告を挿入するのにショートコードを利用していて、かん吉さんの記事で書かれている方法に切り替えるのも厳しかったため、当該記事についてはショートコードを消して非表示にするようにしていました。

その後、それまでのコードに少し手を加え、現在は記事中の広告でも切り替えられるようにしてあります。

記事中の広告を切り替える方法

記事中に広告を挿入する

うちでは記事中に広告を挿入する場合、上述したようにショートコードを用いています。
プラグインは使わずfunctions.phpに以下のコードをぶっ込んでありました。

function adsense_shortcode( $atts ) {
extract(shortcode_atts(array(
'fotmat' => '1',
), $atts));

switch ($format) {
case 1 :
$ad = 'adsense code';
break;
}
return $ad;
}
add_shortcode('adsense', 'adsense_shortcode');

これでショートコード[adsense]を記事の任意の箇所に挿入すれば、そこに広告が表示されるようになります。

少しカスタマイズして切り替えられるようにする

基本的にこのコードからなるべく形を変えず、これまでの記事に影響が出ないようにしなければならなかったので、うちでは以下のようにコードを書き換えました。

function adsense_shortcode( $atts ) {
extract(shortcode_atts(array(
'type' => '1',
), $atts));

switch ($type) {
case 1 :
$ad = 'adsense code';
break;
case 2 :
$ad = 'another ad code';
break;
}
return $ad;
}
add_shortcode('adsense', 'adsense_shortcode');

ほんの少し変えただけですが、広告を切り替えたい場合のみショートコードを
[adsense type=”2″]
としてやれば、別にネットワークの広告を表示させることができます。

本当なら他広告枠の切替時に使うカスタムフィールドとうまく連動させられればいいんですが、あいにくそこまでの技倆がなく、現状はこんな方法を採っている次第。

いずれにしてもGoogle Adsenseのプログラムポリシーにそぐわない場合は、こんな感じのカスタマイズを加える事で、別の広告ネットワークに切り替えられます。
今回はWordPressでのカスタマイズですが、似たような感じでMovavle Typeなんかでも実装できると思いますよ。