
Google先生からメールが来ました。「サイトへの AdSense 広告配信が停止されています」 と。
初めてではないのであまり驚きはしないのですが、どのサイトが停止されたのか、アカウントは生きているのか、少しドキドキしながらメールの内容を確認。広告配信を停止されたブログは記事数161で、多くは無いが少なくも無い、自分的には。頂戴したメールに記載されている「違反が認められるページの例」のリンクからブログを見て何となく納得するものがありました。今後、なるべく広告配信が停止されないように対策を考えてみました。
違反が認められるページの例
ちなみに広告配信が停止されたのは、これと同じ Seesaa ブログ。メールに記載されていた違反が認められるページは、「タグ」のページ。ブログのタグをクリックして表示されるページです。
メールにあったリンクを開いて見てみると、記事が1つ、フォトが1つ(Seesaaはアップした画像にタグを付けると、それもタグページに表示されます)。そして、ヘッダーのブログ説明の直下に 728px x 15px のリンクユニット。表示されているアドセンス広告はこのリンクユニット1つだけです。
これを見てなるほどと思ったのは、要はブログ全体のページ数ではなく、まさに今、表示されているページに十分なコンテンツがあるかないかということが焦点になるということ。もちろん、コンテンツの量と広告や画像との相対的な比率のようなものも関係あるでしょうが、弱小ブロガーで数百ページというのはなかなか大変なボリュームですから一朝一夕には解決できない予感。
いずれにしても、サイトやブログ全体のボリュームだけではなく、表示される1ページ上でのコンテンツのボリュームも十分に考慮する必要があることは間違いなさそうです。
タグページと検索結果ページではAdSense広告を非表示にしよう
根本的な解決方法は、コンテンツを充実させることに尽きます。
タグクラウドからタグページが表示されたときに、そこにずらっと10記事、20記事、30記事と表示されれば恐らく問題は無いはず。だから記事を増やせば良い。
しかし、それで解決するかと言うと実はそうじゃないような気がする。例えばブログ内の記事検索。ブログのテーマとは全く関係のないキーワードで検索さるケースを想定してみましょう。
料理レシピ ブログの検索窓でキーワード「アベノミクス」と検索したとき、アベノミクス弁当のレシピがあったり、アベノミクスで食材の値段が上がっていますなりのコメントがあったりしない限り、記事がヒットする可能性は低い。
でも、表示される検索結果画面のヘッダーなりサイドバーには AdSense 広告が表示されるわけです。
Google 先生は、このことを言っているのかなと。
そう考えると答えはひとつ。サイトのデザインを変更するしかない。表示される記事数の少ない「タグページ」と「検索結果ページ」(場合によっては「アーカイブページ」)は AdSense 広告を表示させないようにカスタマイズするのが安全策であるという結論です。
ブログの記事中にアドセンス広告を表示する方法というのはよく見るトピックですが、今回は逆にどうやったらアドセンス広告を表示させないかという、アドセンスを表示させないためのテンプレートのカスタマイズ。何やら本末転倒の予感です。
早速、Seesaaブログ、FC2ブログ、Google Blogger という3つの代表的な無料ブログでアドセンス広告の非表示を実装してみましたので備忘録も兼ねて解説します。
Seesaaブログ編
まず、Seesaaの場合、デザイン>コンテンツと進むと、ひとつひとつのコンテンツの要素を非表示することができます。「トップページ」「記事」「アーカイブ」「カテゴリ」の4種類。でも、この4つだけですから懸案のタグページと検索結果ページは非表示にできません。それをどうやって非表示にするのか、それが今回の課題であります。
Seesaa には <% if:page_name eq 'tag' -%> という変数がある。AdSense 広告タグを入れたコンテンツ(デザイン)にこれを追記すれば非表示になるのでは?
ところが、コンテンツ内では page name は分岐してくれないんですね。でも HTMLであれば動作する。ということは結局、HTMLテンプレートをカスタマイズしないと実装できないことになります。
色々と考えた結果、display:none で非表示にすることしました。(ちなみに FC2 も Google Blogger も基本的な考え方は同じ。記述が異なるだけです)
※ Adsense広告コードを display:none で非表示にできるのは、レスポンシブ広告のみです。それ以外の 336px × 280px のレクタングル(大)などに適用するとポリシー違反になりますのでご注意ください。» アドセンスのレスポンシブ広告ユニットは非表示にできる確証を得た話
HTMLに直接 AdSense広告コードを貼り付けている場合
page_name 変数は HTML上では動作するので CSS で非表示にするのではなく AdSense 広告コードを出力しないように処理します。
<% if:page_name eq 'tag' -%>もしくは
<% else -%>
<% if:page_name eq 'search' -%>
<% else -%>
<% if:page_name eq 'archive' -%>
<% else -%>
AdSense広告コード
<% /if %><% /if %><% /if %>
<% if:((page_name eq 'tag') + (page_name eq 'search')) + (page_name eq 'archive') -%>
AdSense広告コード
<% /if -%>
これでイケました。HTMLに直接貼り付けている既存の AdSense広告コードをはさむように条件を追記します。
1行目は「タグページだったら」、2行目は「検索結果ページだったら」、3行目は「アーカイブページだったら」。サイドバーなどのコンテンツと違って HTML は前述の4つの非表示オプションがありませんので条件を直接記述します。下段の例は if 条件の分岐を一行にまとめたパターンです。
サイドバーのコンテンツの場合
HTML 上にスタイルを直接定義し非表示用のクラスを1つ追加しておきます。それから AdSense 広告コードを貼り付けているコンテンツのコンテンツHTMLに非表示のクラスタグを割り当てます。
HTML上に追加するスタイル
<style type="text/css">
<!--
<% if:page_name eq 'tag' -%>
.cond_hide {display: none;}
<% else -%>
<% if:page_name eq 'search' -%>
.cond_hide {display: none;}
<% /if %><% /if %>
-->
</style>
非表示用のクラスは cond_hide としました。重複してなければもちろん何でもオッケー。タグページだったら cond_hide を非表示に、検索結果ページだったら cond_hide を非表示にというスタイル定義です。
デザイン>HTML と進み、適用しているHTML を開いて </head> より前にこのスタイルを貼り付けます。繰り返しますが CSS だと page_name の if条件分岐ができないので貼り付けるのは HTML の中です。
コンテンツHTML
<div class="cond_hide">
<div class="sidetitle"><% content.title %></div>
<div class="side">
<% content.header -%>
<% content.free.text %>
<% content.footer -%>
</div>
</div>
HTML本体が完了したら次はコンテンツです。デザイン>コンテンツ>AdSense広告コードの貼り付けてあるコンテンツを開き、「コンテンツHTMLの編集」から編集します。
おおよそ上記の黒い文字のような記述になっているはずですが、「自由形式」を追加した初期状態では sidetitle の記述はありません。
先ほど HTML に定義した赤い文字の cond_hide クラスタグを追加し既存のコードをはさみ込みます。保存しておしまい。Seesaaは以上で完了です。
※Seesaa ブログにはカテゴリーページと過去記事ページにも同じようにコンテンツ不足になるページがあります。こちらの「タグページだけではない!! Seesaaブログのコンテンツ不足によるAdSense配信停止の危険性」もご参照ください。
FC2ブログ編
FC2 には解決できない課題がひとつ。FC2 ブログはサイドバーのタイトルがどうしても非表示にできませんでした。コンテンツ内で sidetitle を定義している Seesaa と違って、FC2はサイトバータイトルの定義がどこにも見えない。だから消せない。
仕方ないので非表示の代替案としてプラグインはそのまま残し、タグページ、検索結果ページでは「AdSense 以外の広告を表示する」ということにします。
HTMLにスタイルを追加
<STYLE type="text/css">
<!--
<!--tag_area-->
.cond_hide {display: none;}
<!--/tag_area-->
<!--search_area-->
.cond_hide {display: none;}
<!--/search_area-->
-->
</STYLE>
適用しているHTMLの編集から、このスタイルを</head> より前にこのスタイルを貼り付けます。
HTMLに直接 AdSense広告コードを貼り付けている場合
<div class="cond_hide">
AdSense広告コード
</div>
引き続き HTMLの編集画面から非表示にしたい AdSense広告コードを探し、上記のように cond_hide クラスタグではさみます。既にクラスを定義しているときは下記のように併記します。(例:ad728 というクラスを既に割り当てている場合)
<div class="ad728 cond_hide">
サイドバー(プラグイン)
前述のようにサイドバーのタイトルが非表示にできないので、タイトルは残しプラグインの中身だけを変えます。
FC2管理画面左側のメニューから「プラグインの設定」を選びAdSense広告コードを貼り付けた既存のプラグインを開きます。非表示にするプラグイン>詳細>フリーエリア内容の変更と進み下のようにエリアのオプションを追記します。
<!--index_area--><!--permanent_area--><!--category_area--><!--titlelist_area--><!--date_area-->
既存のAdSense広告コード
<!--/data_area--><!--/titlelist_area--><!--/category_area--><!--/permanent_area--><!--/index_area-->
<!--tag_area-->
タグ表示画面で表示したい代替広告のリンクコード
<!--/tag_area-->
<!--search_area-->
検索結果画面で表示したい代替広告のリンクコード
<!--/search_area-->
タグページ(tag_area)と検索結果ページ(search_area)で指定した広告が、それ以外ではAdSense広告が表示されます。
FC2ブログは以上でおしまいです。
Google Bloggerブログ編
Google Blogger は元々スタイルが HTML 内に定義されていますし、追加したガジェット(ウィジェット)もカスタマイズは HTML で行うので、作業はHTML の編集だけで済みます。
同じように、スタイルを定義します。
<style type='text/css'>
<b:if cond='data:blog.pageName != ""'>
<b:if cond='data:blog.pageType != "archive"'>
<b:if cond='data:blog.pageType != "item"'>
<b:if cond='data:blog.pageType != "static_page"'>
.cond_hide {display: none;}
</b:if>
</b:if>
</b:if>
</b:if>
</style>
Bloggerダッシュボード(管理画面)の左メニューから「テンプレート」を選択し「HTMLの編集」を選択します。HTML を開いて </head> より前にこのスタイルを貼り付けます。
上記は b:if と /b:if は見やすいように改行していますが、書き出されるHTMLに空白行ができますので特に改行しなくても良いです。
Google Blogger は Seesaa や FC2 と違って細かいことにうるさいので、<!-- や --> のコメントアウトを記述するとスタイルが上手く読めなくなるので記述しません。
次に、非表示にする AdSense広告コードを入力しているガジェット(ウィジェット)を探します。最も簡単な方法は、ブラウザの機能を使ってブログのHTMLソースを見ることです(大抵はページを右クリックして「ソースの表示」などのメニューを選択)。
HTML ソースを開いて、最近のAdSense広告コードであれば googlesyndication とか adsbygoogle とか、以前のコードであれば ad_client などのキーワードでソースを検索します。どのウィジェットに AdSense を貼り付けてあるのか検索し "Widget ID" を特定します。
例えば Widget ID が HTML7 だと分ったら、Blogger の HTML編集画面で HTML7 を検索し、画面左側の行数にある三角印をクリックして展開していきます。
下記のように記述されているはずです。
<b:widget id='HTML7' locked='false' title='' type='HTML'>
<b:includable id='main'>
<div class="cond_hide">
(ガジェットのコード〜とても長い)
</div>
</b:includable>
上のように b:includable と /b:includable のすぐ内側に cond_hide クラスタグを記述します。
まとめ
サイトはコンテンツが命なわけで、コンテンツを増やしていけばポリシー違反で広告配信停止ということにはならないと思います。まあ5年10年前は「アドセンスは10ページくらいコンテンツがあればオッケー」と勝手に解釈していた時代もありましたが今は違いますよね。
もちろんコンテンツ命なんですが、1,000ページのサイトができてから AdSense 広告コードを貼りましょうというのも現実的ではないし。にしても、コンテンツ拡充の過渡期であるということを証明するためにも「頻繁な更新」は絶対に必要だと思います。頻繁な更新といえば、FC2ブログで広告配信停止になるパターンとして更新していないことがあると考えられます。更新しないとFC2が強制的に表示する広告がトップに出ているブログはそこそこヤバいです。実際、ボクが FC2 ブログで広告配信停止を受けたのは、ほとんどがこのパターンです。非力なブログに関してはカテゴリやタグ(ときにはアーカイブ)の分類も非常に重要です。記事数が100あってもカテゴリやタグに記事がひとつだけだと、今回のボクのように広告配信停止になるかもしれません。カテゴリとタグを見直して上手に記事を振り分けスカスカのカテゴリやタグはなくすようにしましょう。まあ個々に事情は色々あるとは思いますが、前述のような小技でポリシー違反から少しだけでも遠ざかることが自己防衛策だろうというのが本音でもあります。更新もしていないし AdSenseの収益もさほど上がっていないサイト・ブログであれば、広告コードを剥がしちゃった方が良いのかもしれません。今回はどうでも良いブログからアドセンスは外しました。1日10円稼ぐブログを1,000個持っていれば月収30万円という時代はとっくに終わっています。百害あって一利なしです。正直なところ、どうでもよいサイトやブログが広告配信停止になると、Google 先生がじわじわと本尊に近づいて来るようで精神的に良くないですわ。お尻がムズムズする。そういえば配信停止とは別のサイト(ちょっと大切なサイト...)のアクセス解析を見ていると、ここ数日間、米国の Mountain View からのアクセスが頻繁です。最後になりますが、投稿記事のタグは際限なく付けられます。大文字と小文字、スペースも区別されます。ルールを決めてタグを振るようにしたほうが良いですね。タグの付け方、タグページの扱いに関してはSEOの鈴木さんブログのこちらの記事が参考になります。