- Home
- ポリシー違反していないのにアドセンス広告が表示されない理由と対応方法は?
ポリシー違反していないのにアドセンス広告が表示されない理由と対応方法は?
2014/06/07 23時半頃に、何気なく自分のブログを見ていたら、アドセンス広告が表示されていない状態であることに気付いた。
ブランク(白紙)ではなく、完全にコードが無視されている気配(何も配信されていない状態)で、ページレイアウトが崩れてしまっています。
本記事執筆時(2014/06/08 2:03現在)も事象はまだ続いています。一応、ヘルプからフィードバックを送信しておきました。
AdSenseアカウントのステータスやメッセージをチェックしてみましたが特に警告を受信しているわけではない(…今のところですが)。たぶん、ポリシー違反していない…はずなんだけど・・・。んー、この状況が一番焦りますよね・・・「なんかやっちまった!?」かなぁって不安な気持ちです。
じゃあ、どうして広告が表示されないのだろう。何が原因なんだろうか?と疑問に思い、他のサイトをいろいろ見て回ってみましたが、どうやら普通に広告が表示されているサイトと、うちと同様に広告配信が止まっているサイト、どちらもあるようです。
違いは何か?
ソースコードも見てみました。
・・・見つけた!
広告が表示されなくなっているサイトでは同期広告コードが使われ、普通に広告配信できているサイトでは非同期広告コードが使われている
ではありませんか。
うちのサイトのアドセンスコードも「同期」バージョンだし・・・!
同期広告コードの例
<script type="text/javascript"><!-- google_ad_client = "ca-pub-0000000000000000"; /* HOGE_NAME */ google_ad_slot = "0000000000"; google_ad_width = 250; google_ad_height = 250; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
非同期広告コードの例
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- HOGE_NAME --> <ins class="adsbygoogle" style="display:inline-block;width:250px;height:250px" data-ad-client="ca-pub-0000000000000000" data-ad-slot="0000000000"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script>
というわけで、
試しに、自分のサイトで「同期」→「非同期」にコードを差し替えてみました。
Before(「同期」:表示されていない(広告枠が潰れている))
↓
違いが分かるように、右側の広告コードだけを非同期版に変更してみました。左側は同期版のままです。
↓
After(「非同期」にコードを差し替えた後(表示が復活した!))
他の位置のコードも水平展開で対応して元通りに復旧できました。
ちなみに、非同期コードはAdSenseメニューの「広告の設定」→「広告ユニット」から対象の広告ユニット名の下部にある「コードを取得」のリンクをクリックすると、確認できます。コードタイプのプルダウンメニューで同期を選べば、旧来の同期コードも確認できます。
※2014/06/08 11:20追記
いつの間にか、同期コードに対する広告配信が復旧していた。(他サイトの状況を見て確認。)アドセンス側で何らかの改修対応が為された模様。
※ちなみにこちらの記事のテーマとは別件の発見なのですが、1ページ内で例えば「非同期(1)」「同期(1)」「非同期(2)」「非同期(3)」の順番で広告ユニットを並べた場合、「非同期(1)」と「同期(1)」は表示されますが、その後の「非同期(2)」と「非同期(3)」がブランク(白紙)表示になる事象を自分のサイトで確認(2014/06/08 11:20)。(ブランク表示となる場合は、AdSense側が意図的に広告表示しないようにコントロールした結果です。)尚、今この一例は敢えて単純に書いていますが、自分のサイトでは広告ユニットとリンクユニットを混在させている(「「非同期(1)」」と一括りで表現した箇所」および「「非同期(1)」「非同期(2)」で表現した箇所」)ので、どのような組み合わせでこちらの事象が発現するものなのか、その正確な細かい前提条件なども含めた厳密な仕様については、まだまだ検証の余地があります。しかし、まあ、この事象の発見に関しては一応備忘のために書いてはおきますが、私の場合は広告配信がちゃんとできてくれているならそれだけで満足なので、今のところ興味がないというか、この事象について深追いするつもりはありません。(どちらにしろ1ページ内で設置する広告ユニット、リンクユニットの全てを非同期コードで記載していれば、現時点ではこういった問題は起こらない為。逆に言えば、全てを非同期コードで記載している状態で、また何か不具合があった時には、その時に改めて調査してみようと思います。)
コメント
この記事へのトラックバックはありません。
2015/07/28 に確認した事象
ケータイ向け(いわゆるガラケー)のAdSense広告が表示されなくなっていた。
まあ、そんなにアクセスがあるわけじゃないけれど、営業機会損失だ。
どーなってるん?
Sunset of MobileAd and MobileImageAd Ad Types
(http://googleadsdeveloper.blogspot.jp/2015/05/sunset-of-mobilead-and-mobileimagead-ad.html)
Starting June 2015, AdWords will no longer support WAP mobile ads for devices without a full-featured browser, including feature phones. At that time, the AdWords API will no longer support creation of new MobileAds or MobileImageAds. Any remaining ads with these types will stop serving and be converted into DeprecatedAds with status REMOVED.
2015年6月以降、AdWordsの従来型モバイル広告、いわゆるガラケーへの広告配信が終了。
つまり、AdSenseの問題ではなく、AdWords側で広告出稿が終了となったことが原因。
安全な接続ができませんでした
ページの読み込み中に cas.jp.as.criteo.com への接続が切断されました。
受信したデータの真正性を検証できなかったため、このページは表示されませんでした。
この問題を Web サイトの管理者に連絡してください。
(再試行ボタン)
なんじゃ、こりゃ (-_-;)
ファイアウォール、または セキュリティソフトの影響かな?
手の込んだ、気持ち悪い広告表示手法は、いい加減、止めたまえ!
これ、AdSenseの問題ではなく・・・
どうも、Kaspersky (カスペルスキー インターネット セキュリティ)のウイルス定義ファイルの更新契機に関係しているような気がする。
ネットワーク接続が不安定になったと感じた時の解決策:手動で「アップデート」を実施する。
一度、保護機能を無効にすると、良い感じ。
(https://www.facebook.com/dnobori/posts/617851864958123)
Kaspersky 2014 には、大変深刻なバグがあるようだ。
Kaspersky 2014 を使っている SoftEther VPN のユーザーから、挙動がおかしいという報告があったので、SoftEther VPN のバグであると疑ってかなり努力して調べた結果、Kaspersky 側のバグであることが分かったので報告した。
このバグは、脆弱性ではなく単なるバグであるが、既存の TCP/IP (WinSock) アプリケーションの動作をことごとくおかしくしてしまうものである。
具体的には、Kaspersky 2014 の WinSock フィルタドライバがインストールされている環境では、確立済みの TCP ソケットに対して getsockname() API を呼び出すと、なんと必ず「127.0.0.1」が決め打ちで返ってくるというものである。本来、ここには接続確立された TCP ソケットの自ホスト側 IP アドレス (たとえば 129.168.0.1 とか) が返ってくるのであるが、Kaspersky 2014 がインストールしてあると「127.0.0.1」が返ってくる。そのため、これに依存しているアプリケーションは皆動作がおかしくなるのである。
ステータスの表示が“アカウント単位の違反”と“サイト単位の違反”の2つに分岐されていた。
問題ない時のメッセージ
アカウント単位のポリシー違反はありません。
サイト単位のポリシー違反はありません。
(https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js)スクリプトエラー
adsenseステータスが新規のままなんだけど