ブログの記事本文以外の共通部分にアドセンスコードを入れていても、特定のページのアドセンスコードをコメントアウトしてコード自体をないものにできる。革新的だ。

アドセンスコード内のデフォルトのコメントアウト部分を移動させ、アドセンスコードの上に自作したJavaScriptコードを挿入する。広告を表示させたくないページのURLを追加していけば自由に表示/非表示を選べる。

JavaScript本格入門

何が便利で革新的なのか?

一言で言えば

ブログの共通部分(テンプレート)にあるアドセンスコードでも、自分が指定する記事だけ広告を非表示(無効化)にできる。

ポリシー違反対策に有効

記事本文にのみアドセンスコードを入れているのなら、ポリシー違反があると思われそうな記事にはアドセンスコードを入れなければいい。広告が表示されていなければ警告が来ない。

しかし、ブログの共通部分(テンプレート)にアドセンスコードを入れていると、通常は特定の記事だけ広告を非表示にすることはできない。「常に広告を表示する」か「常に表示しない」かの二択になる。

そこで筆者が自作したコードを導入すれば、特定のページでアドセンスコードを取り除けるようになる。具体的に言えば、コメントアウトしてアドセンスコードを無効にしてしまうのだ。

WordPressであればプラグインでこういうことができるが、これからはWordPress以外でも同じようなことができるよ。これで警告が来る前に広告を非表示にしておけるね。

必須条件

そのページのパーマリンクでページが表示されるときだけ広告の表示/非表示を指定できる。たとえば、「続きを読む」で本文を分割している記事なら、全文を表示するページを開くとそのページの広告を非表示にできる。

パーマリンクとは、そのページ固有のURLのこと。当ページであれば次の通り。

https://hapilaki.net/wiki/adsense-filter

以下、デフォルトのアドセンスコードを確認してからアドセンスコードの修正具体例を見ていく。

デフォルトのアドセンスコード

2014年12月現在、デフォルトのレスポンシブ広告ユニット用コードを例示すると次のとおり。広告ユニットの名前を便宜上ad-unit-nameとしている。

<style>
.ad-unit-name { width: 320px; height: 50px; }
@media(min-width: 500px) { .ad-unit-name { width: 468px; height: 60px; } }
@media(min-width: 800px) { .ad-unit-name { width: 728px; height: 90px; } }
</style>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- ad-unit-name -->
<ins class="adsbygoogle ad-unit-name"
style="display:inline-block"
data-ad-client="ca-pub-1234567890123456"
data-ad-slot="0987654321"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>

Google AdSenseのレスポンシブ広告ユニットでスマホ表示サイズにも最適化

コメントアウト部分を移動させる

まずは上記コード内にある背景色が黄色の部分を下部に移動させる。例示すると次のとおり。

<style>
.ad-unit-name { width: 320px; height: 50px; }
@media(min-width: 500px) { .ad-unit-name { width: 468px; height: 60px; } }
@media(min-width: 800px) { .ad-unit-name { width: 728px; height: 90px; } }
</style>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle ad-unit-name"
style="display:inline-block"
data-ad-client="ca-pub-1234567890123456"
data-ad-slot="0987654321"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
<!-- ad-unit-name -->

デフォルトのコードの改変はこれで終わり。コメントアウト部分を移動させただけなので規約に抵触することはないだろう。念のため書いておくが、あくまでも自己責任だよ。