« クリスマスパーティでターキーを焼きました(シャンパンタワーも!) | トップページ | 番外編:2011年のご挨拶 »

2010年12月28日 (火)

ココログの記事下にGoogle Adsenseを設置する(「ユニット3回まで」に対応)

Advertisement 広告

普段からご覧頂いている方はお分かりと思いますが、本ブログでは各記事の下にGoogle Adsenseの広告枠を設置しています。
まぁ収益を目的にブログを書いているわけではありませんが、それでもたまにクリックがあると嬉しかったり(^-^;)。

さてそのAdsenseですが、1ページ内に設置できるユニット(広告枠)の数には上限があります。節操無く広告だらけのページはお客様も見たくないでしょうし、そんなページには出稿側としても広告なんて出したくないですもんね。

そんなわけで今回は、回数制限の上限を超えずに枠を設置する方法をご紹介します。
おそらくもっとエレガントなやり方はあると思いますので、まずはご参考程度に。


目的・背景
■目的
Google Adsenseの広告枠について、上限数以上は表示しないようにしたい。

■背景・解説
このブログの記事下にある「レクタングル」というユニットは「1ページ3つまで」という規定があります。

記事下に広告枠を設置する場合、1記事のみが表示されているページであれば当然広告枠も1つのみ表示されるので問題になりません。
しかしブログの場合はバックナンバーやカテゴリーページなどの「1ページ中に記事が多数表示されるページ」が生成されるため、単純に記事下に枠を設置しただけでは規定回数以上表示されるページが出てきてしまいます。

そのため、広告表示を何らか動的に制御することを考えました。


解決案
JavaScriptで広告枠の表示回数を把握し、それ以上は表示しないようにします。
具体的には、広告枠だけを記載したHTMLファイルを作り、そのHTMLをJavaScriptで生成した iframe 内に表示するようにしました。
直接JavaScriptからAdsenseのタグを吐き出しても良いのですが、iframeのほうがデザイン的に崩れなかったので。

具体的な手順は下記のような感じになります。


■Google Adsenseのみを記載したHTMLファイルを作成する
<body> ~ </body>の間に Adsense のタグのみを書いた、シンプルなHTMLファイルを用意します。(iframeの「具」となるファイルです)

ファイルができたらココログのファイルマネージャで転送し、表示確認をしておきます。
例として、ファイル名は「gw_adsense.html」としておきましょう。


■JavaScriptファイルを作成する
上記で作成した HTML を iframe 内に表示するJavaScriptを作成します。
内容としてはこんな感じですね。
面倒なので、グローバル変数として「googlecounter」なる変数を使っています。

(JavaScriptの内容)

if( typeof(googlecounter) == "undefined")
{
var googlecounter = 0;
gw_ads_msg = '<iframe style="border:none;" src="http://xxxxxxxx/gw_adsense.html" width="336" scrolling="no" height="280" marginwidth="0" marginheight="0" frameborder="0"></iframe>';
}
else
{
googlecounter++;
}
if(googlecounter < 3) { document.write(gw_ads_msg); }

内容はソースを見ればお分かりですよね。
単純にカウンターの変数が定義されていなければカウンター定義と表示内容(タグ)の定義を行い、カウンターが定義されていればインクリメントしたうえで3回までタグを表示する、という作りになっています。

出来上がったJavaScriptもファイルマネージャで適当なフォルダに転送しておきます。
例として、ファイル名は「footer.js」ということにしましょう。


■記事を書く
実際の記事への設置は記事下の広告を入れたい場所で上記の外部スクリプトを呼ぶだけです。

<script type="text/javascript" src="http://xxxxx/footer.js">

ほら、簡単ですね。


他の利点も多いです
このやり方だと広告ユニットの上限設定のほか、デザインを変えたりするときにも非常に簡単です。HTMLファイルの中身を変更すれば全ページにデザインが反映されますし、広告ユニットの上限が増えた際にはJavaScriptを直してやれば済みます。

見る人が見ればエレガントじゃないことをやってるのだとは思いますが、まずはこれで実現できているのでよしとしたいと思います。
ご参考になれば幸いです。


|

« クリスマスパーティでターキーを焼きました(シャンパンタワーも!) | トップページ | 番外編:2011年のご挨拶 »

プログラム(Perl・HTML・JavaScript)」カテゴリの記事

コメント

余計なお世話かもしれませんが、
AdSenseの上に「関連サイト」なんてラベルを付けると
一発でAdSenseアカウントが剥奪されます。

ラベル表示で認められているのは、
「スポンサード リンク」もしくは
「広告」のみに限定されています。

それか、記事コンテンツとAdSenseが明確に分離されていれば、特にラベル表示は必要ありません。

AdSenseアカウントが剥奪されると、二度と再取得は出来ません。

もう少し、Google AdSenseのプログラムポリシー(規約)を
勉強されてから記事に取り上げたほうがよいと思います。

投稿: 通りすがり | 2011年1月 2日 (日) 12:41

あっ、ありがとうございました。
確かにそのとおりですね。ご指摘感謝いたします。
テンプレート、近々直しておきます。

投稿: ガジェットWatch | 2011年1月 2日 (日) 20:06

iframe表示は規約違反だったと思います。
http://adsensemania.com/articles/adsense-account-deleated/1235.html

投稿: | 2011年5月19日 (木) 17:31

コメントありがとうございます。
コメントを受け、現在一時的にAdsense非表示にしてみました。

Adsenseコードのみを別htmlに記載しておいて、他の記事からはiframe内にそのhtmlを表示する…というやりかたは管理上いろいろ楽なのですが、やはり違反なんですかね…。
「広告の内容を故意に操作」とかにあたるんでしょうか。

AdSense 用広告コードを変更できますか? - AdSense ヘルプ
https://www.google.com/adsense/support/bin/answer.py?hl=jp&answer=9997

投稿: ガジェットWatch | 2011年5月22日 (日) 08:25

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/153129/50425347

この記事へのトラックバック一覧です: ココログの記事下にGoogle Adsenseを設置する(「ユニット3回まで」に対応):

« クリスマスパーティでターキーを焼きました(シャンパンタワーも!) | トップページ | 番外編:2011年のご挨拶 »