らいちのヒミツ基地

公然のひみつ基地です

MENU

たった7行ではてなブログでページ単位でGoogleAdSenseを非表示にする方法

Googleから警告が来た場合、ページ単位でGoogleAdSenseを非表示にする必要が出てくるケースがあります。はてなブログでそれを行う方法を解説します。

f:id:AzuLitchi:20190620144819j:plain

当ブログもPCでは記事下に、スマホ表示では記事の上下にGoogleAdSenseの広告を貼り付けています。画面の上下からニュッとでる広告とか自動広告は使用していません。

全然儲かってません。

が、下記のエントリで解説したとおり・・・

www.secret-base.org

イージーランサー#004がGoogleAdSenseから「AdSense サイト運営者向けポリシー違反レポート」が到着、「アダルトコンテンツ(性的な内容…」との警告がありました。

f:id:AzuLitchi:20190620030346p:plain

f:id:AzuLitchi:20190601000837j:plain

モンハンで言うところのインナー装備ってだけでそれほど性的な内容でもないのですが、警告は警告です。

せっかくページ単位でのポリシー違反が出たのでこれを機に違反とされたページから広告コードを削除してみようと思いました。

既存の手法

「はてなブログ ページ単位 GoogleAdSense 非表示」
こんなキーワードでググると、下記のような手法が出てきました。

JavaScriptでコメントアウトする方法

アドセンスコードのコメント部分を一番下に移動して、AdSenseコードの前に判定するJavaScript書いて必要に応じてAdSenseコード全体をコメントアウトする手法。

判定方法はJavaScriptのArray。

判定方法をはてなブログのカテゴリに。

デメリット
  • コメントの位置移動とはいえGoogleAdSenseから提供されるコードを改変しなくてはならない。
  • 広告毎に10行以上のJavaScriptを記載する必要がある。

URLグループ機能を使う方法

GoogleAdSenseに備わっているURLグループの機能を使って広告非表示にしたいページを追加する方法。

自動広告を使っている場合はこの方法一択です。

デメリット
  • ブログ編集画面だけで作業を完結できない
  • 記事URLを決める前の下書き記事を非表示設定にできない
  • 「スポンサーリンク」「広告」など、自分で設定した見出しが表示されてしまう。

f:id:AzuLitchi:20190620144843j:plain

たった7行でAdSenseを非表示に

せっかくの機会なので自分でもAdSenseをページ単位で非表示にする方法を考えてみました。
上記デメリットを回避できたと思います。

jQueryでclassの中身を全部削除する方法

準備

リンクユニットや関連コンテンツなども含め、記事上や記事下・サイドバーに貼るAdSenseコード全てを

<div class="googlead">
〜GoogleAdSenseコード〜
</div>

となるように二行追加してクラスgoogleadのdivタグで囲っておきます。

下記はその一例です。

f:id:AzuLitchi:20190621174550p:plain

フッタにjQueryを追加

下記4行のコードをダッシュボードの「カスタマイズ→フッタ」に追加。
別の場所でjQueryの読み込みのカスタマイズしていれば最初の一行は不要です。

<script type="text/javascript" src="https://cdn.blog.st-hatena.com/js/external/jquery.min.js?version=1.12.3"></script>
<script>
if ($('#noad')[0]) { $(".googlead").empty();}
</script>

これで準備完了。

広告非表示記事に1行追加

広告非表示にしたい記事の先頭に、はてな記法かhtmlモードで下記1行のコードを記載。

<div id="noad"></div>

以上です。

準備含めて合計7行。一度準備しておけば記事に一行のhtmlを追加するだけで広告非表示にできます。

下書きで寝かせてる記事でもhtmlを一行追加しておくだけなので、公開した時点で広告非表示記事になります。
「広告不要」などのカテゴリを増やす必要もありません。

技術解説

GoogleAdSenseコードをdivタグで囲うのは特になんの違反にもなりません。

jQueryで「noad」のidを検索して、あればgoogleadのclassの中身を全部削除しています。

検索対象はclassでなくidにしておけば若干検索が速いはず…です。

コードを削除するのはjQueryの「empty()」を使ってますが、ここを「hide()」にしたらアカンやつでした。
hide()はcssで言うと display:none;の扱いとなります。これは禁止されているコードの改変方法に該当します。


AdSense 広告コードの修正 - AdSense ヘルプ

AdSense コードを以下の方法で改変することは禁止されています。
・display:none などを使用して広告ユニットを隠す(ただし、レスポンシブ広告ユニットを実装している場合を除く)

AdSenseコードを非表示にするときは、cssでdisplay:none;にするのは禁止です。

まとめ

ページの内容を修正した場合は審査をリクエストする手続きが必要ですが、広告配信を停止した場合は審査のリクエストはしないでくださいとのこと。

f:id:AzuLitchi:20190620140649j:plain

このエントリ方法でイージーランサー#004を広告非表示にし放置してみたところ、一週間程度でポリシー違反警告は消えました。

f:id:AzuLitchi:20190620024803p:plain

さらに二週間ほど様子をみましたが、再警告はありません。

今後また何かの理由でAdSense違反の警告があれば、広告非表示に設定したいと思います。




それではまた・・・さよならいち!