cBlog

Tips for you.

サイドバーのAdSenseは規約違反? 404時はJavaScriptで非表示に

更新:2017-07-08

#jQueryを使わないバージョンを一番下に追記しました。こちらの方が速いはずです。併せて、タイトルを変更しました

 

貼りやすいこともあり、2カラムのWebサイトのサイドバーにGoogle AdSenseの広告を掲載している方も多いと思います。

しかし、サイドバーにAdSenseを貼るとポリシー違反となる可能性が大です。

support.google.com

コンテンツを含まないページ(手続き完了ページ、離脱ページ、ログインページ、エラーページなど)に広告を掲載することは許可されません。このようなページは、訪問者がドメインから離脱する可能性がある際や、購入やダウンロードなど、サイト上で特定のアクションを実行した後に表示されます。

以下は実例として引用させていただきました。

www.daisuiseishocker.com

3:つまりこういうこと!

  1. サイドバーにadsense広告を貼ると
  2. 実在しないURLをふまれたときに表示されるページで、adsense広告が表示されてしまうので
  3. それが『コンテンツなし』と判断されてしまうらしい

 

というわけで僕は、

サイドバーには忍者admax広告だけ置いてadsense広告は撤去しました。

 

そしたらadsenseの再審査がやっとクリアー出ましたー!

わーいわーい!!

やっほーい!!

 

ネット上ではそれを回避するために、はてなブログのNot Foundページをカスタマイズした例もあります。しかし、いくらカスタマイズしても判断するのはGoogle側であり、規約違反とされる心配は拭えません。

ここは逆に、Not FoundページにはAdSenseを表示させないようにしようと考えました。ですが、ちょっと探した限りでははてなブログでそのようなカスタマイズは見つかりませんでした。

 

これは自分でやるしかない。

こちらの記事では、jQueryを使ってNot Foundページにおわび文とランダムに人気記事を表示させています。

iro.hateblo.jp

jQueryのjの字もわからない私ですが、コードを見たらなんとなくわかったのでやってみたら成功しました。

ということで、いつものように共有します。

 

0. jQueryの読み込み

ブログをカスタマイズしている方はこんなやつを追加していると思います。

こんなやつ(HTML)

<script type="text/javascript" src="https://cdn.blog.st-hatena.com/js/external/jquery.min.js?version=1.12.3"></script>

無い人は「タイトル下」辺りにでも記述しておきましょう。

 

1. AdSenseの貼り付け

AdSense 広告コードを以下のようにサンドイッチします。

HTML

<!-- サイドバーAdSense -->
<div class="adsbox2">
<script>document.write('<span style="font-size: 80%;">スポンサーリンク<br></span>');</script>

AdSenseのコード

</div>
<script>
$(document).ready(function() {
if ($('#main-inner').children().hasClass("no-entry")) {
$('.adsbox2').addClass('no-ads');
}
});
</script>

AdSenseのコード部分は自身のAdSenseコードに置き換えてくださいね。そうしないと、書類の名前欄に山田太郎と書くみたいな恥ずかしいことになりますよ。

大事なことを言いますが、このAdSenseコードは必ずレスポンシブ広告ユニットにしてください。大事なことなので2回言います。レスポンシブ広告ユニットにしてください。

なぜかというとレスポンシブ広告以外を非表示にすることは規約違反だからです。

support.google.com

AdSense コードを以下の方法で改変することは禁止されています。

  • display:none などを使用して広告ユニットを隠す(ただし、レスポンシブ広告ユニットを実装している場合を除く)

サイドバーの固定(追従)も禁忌事項です。

安全で快適なユーザー エクスペリエンスを提供するため、ユーザーがページをスクロールしたりページ間を移動したりする際に、広告が「固定」位置または「フローティング」位置で表示されるような配置方法は禁止されています。

同「広告の配置に関するポリシー - AdSense ヘルプ」より

上のHTMLコードに話を戻すと、サイドバーのAdSenseにadsbox2というクラスを与えています。別になんでもいいんですけど。

<script></script>内は虎ちゃん (id:itry)さんのコードを参考にしました。感謝申し上げます。

Not Foundページが表示されると、div.adsbox2に(なんでもいいんですけど)no-adsクラスが与えられます。

 

2. CSSで非表示にする

no-adsクラスは非表示にします。

CSS

/* サイドバーAdSense 非表示 */
.no-ads {
display: none;
}

これで完了です。

 

あ、確かめようと私のブログの存在しないURLに突撃することはやめてください。

 

[追記] 素のJavaScript版

jQueryは不要です。

 

1. AdSenseコード

HTML

<!-- サイドバーAdSense -->
<div class="adsbox2">
<script>document.write('<span style="font-size: 80%;">スポンサーリンク<br></span>');</script>

AdSenseのコード

</div>
<script>
var cbTemp = document.getElementById('main-inner').children[0];
if (cbTemp.classList.contains('no-entry')) {
document.getElementsByClassName('adsbox2')[0].classList.add('no-ads');
}
</script>

もしサイドバーにAdSenseを複数掲載したい場合は、adsbox2を別名に置換して都度貼るかfor文で回すかしてください。

 

2. CSS

CSS

/* サイドバーAdSense 非表示 */
.no-ads {
display: none;
}

同じやつです。

できる100ワザ Google AdSense 必ず結果が出る新・ネット広告運用術 できる100ワザシリーズ

できる100ワザ Google AdSense 必ず結果が出る新・ネット広告運用術 できる100ワザシリーズ