Google AdSense(アドセンス)で発生したコンソールエラーを解消する方法【Cocoon】

イヌ
イヌ

気づいたら発生していたエラーを解消するよ!

ウサギ
ウサギ

またなのか!大変だ!

2種類の「adsbygoogle.push() error」エラー

2種類の「adsbygoogle.push() error」エラーが、コンソールで発生していました。

Only one ‘enable_page_level_ads’ allowed per page

問題は

コンソールに「adsbygoogle.push() error: Only one ‘enable_page_level_ads’ allowed per page.」が表示されている。

のコンソールエラーです。

原因は

  • 「googleadby.js」を複数箇所で読み込んでいた

です。

解決策は

不要なscriptタグを削除する

です。

No slot size for availableWidth=0

問題は

コンソールに「adsbygoogle.push() error: No slot size for availableWidth=0」が表示されている。

のコンソールエラーです。

原因は

  • スマホ画面で非表示になっているアドセンス広告がscriptの対象になっていた

です。

解決策は

スマホ画面で非表示になる領域のアドセンス広告を掲載しないように設定した

です。

詳しくは続きをご覧ください!

エラー詳細:Only one ‘enable_page_level_ads’ allowed per page.

イヌ:またエラーを発見してしまったよ。

ウサギ:あらあら。

イヌ:以下の感じでコンソールにエラーが表示されていたんだ。

ウサギ:ふむふむ。なんのこっちゃ全然わからない。

イヌ:エラーの表示も分かりづらいよね。 Uncaught 〜 とコンソールに表示されている場合は、何らかのJavaScriptエラーの可能性があるんだよ。

ウサギ:ほー、そうなんだ。

イヌ:はっきりとエラー内容がテキストで表示されていることもあれば、今回のようにいろいろなデータが含まれて表示されることもあるね。

ウサギ:なるほど。

イヌ:コンソールに表示されている部分をクリックすると、中身が展開されて、より詳しく見れる場合がある。今回は、messageというkeyの中に、エラー内容が書かれてるね。

ウサギ:ふむふむ。ってことは、「adsbygoogle.push() error: Only one ‘enable_page_level_ads’ allowed per page.」がエラー内容だ。

イヌ:そうそう、そのとおり。

ウサギ:でも、やっぱりわからない。「enable_page_level_adsは1ページにつき1つしか許可されていません。」みたいな意味だよね。

イヌ:正直、イヌもわからない(笑)。ただ、 enable_page_level_ads という名前から、なにかの機能を有効化するような名前に見えるし、「1ページにつき1つしか許可されない」ということは、2回以上初期化の処理が走ってるような雰囲気にみえるかな。

ウサギ:ほー、なるほどねぇ。この1文でそこまでわかるんだ。

イヌ:で、ググってみると、Googleアドセンスやアナリティクスのスクリプトが複数あると、発生するエラーである。というのがわかりました。

ウサギ:おー、すばらしい。

イヌ:調べてみると、たしかに重複でGoogleのスクリプトを読み込んでいました。。

ウサギ:なるほどー、問題がわかってよかった!

イヌ:問題が起きた手順としては以下の通り。

  1. Googleアナリティクスをアカウント登録
  2. Googleアナリティクスのスクリプトを追加
  3. Googleアドセンスの審査通過
  4. Googleアドセンスのスクリプト追加

4の「Googleアドセンスのスクリプト追加」で、2のGoogleアナリティクスのスクリプトは外しておくのが正解でした。

追加したときの画面は以下のとおりです。

Googleアナリティクスのスクリプト追加

「外観」→「テーマエディタ」を開く

テーマヘッダーのbody直上にGoogleアナリティクスのスクリプトを挿入しました。

(よく考えてみると、Cocoon側にGoogleアナリティクスのスクリプトを挿入する設定があるはずなので、そちらで設定したほうがよいですね。)

Googleアドセンスのスクリプト追加

解決方法

イヌ:ということで、GoogleアナリティクスとGoogleアドセンス、それぞれの項目で <script src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>を読み込んでいたため、Googleアナリティクスのテーマヘッダーのbody直上にあった、Googleアナリティクスのスクリプトを削除しました。

ウサギ:おー、よかったよかった!

エラー詳細:adsbygoogle.push() error: No slot size for availableWidth=0

イヌ:そうしたらね、また別のエラーがでてきたんですよ。

ウサギ:え!つらい。

イヌ:以下のエラーがでました。

イヌ:今度は「adsbygoogle.push() error: No slot size for availableWidth=0」です。

ウサギ:ふむふむ。「availableWidth=0のスロットサイズがありません」って、全然わからない。

イヌ:「スロット」っていうのは、Googleアドセンスの広告を設定する領域で「広告スロット」とか呼んだりするんだけど、「幅0の広告を収められる広告領域はありません」ってことかなと。

ウサギ:ふーん。要はどういうこと。

イヌ:幅0の広告ってことは、Googleの広告を扱うプログラミング上は広告は存在しているのに、画面上には表示されていない。みたいな感じ。

ウサギ:んー、わかんない。

イヌ:例えば、4つの広告が表示されるというデータをGoogleが持っているとする。

ウサギ:うん。

イヌ:で、実際に画面から4つの広告のデータを取得しにいく。

ウサギ:うんうん。

イヌ:で、4つのうち、3つの広告は表示されているので、幅が120pxとか160pxとか、availableWidthを持っている。

ウサギ:うん。

イヌ:で、4つのうち、1つの広告は表示されていないので、avaiableWidthが0になって、エラーになる。

ウサギ:なるほどー。なんで1つは表示されてないの?

イヌ:パソコンでは表示されている領域の広告が、スマホで非表示の処理になってたからだったよ。

ウサギ:なるほど?

イヌ:以下のサイドバーにあるプロフィールの上部にある広告が

ウサギ:ふむふむ。

イヌ:スマホでは非表示になるようになっているのです。

ウサギ:確かにサイドバー自体が非表示になってるね。

イヌ:そうそう。だから、以下の設定を調整したの。

イヌ:「Cocoon 設定」→「広告」タブを開いて、「サイドバートップ」のチェックを外しました。

ウサギ:そもそも設定で表示しなければ、エラーも起きないってことか。

イヌ:そうそう。実際これでエラーは解消しました。ただ、Googleアドセンスを表示する枠が1つ減ったから、広告表示を調整をどうしようかなという悩みはある。

ウサギ:それは追々考えないとねー。とりあえず、エラーが直ってよかった!

イヌ
イヌ

Googleアドセンスのエラー解消方法でした!
該当する項目があれば、試してみてください!

ウサギ
ウサギ

試してみてね!
またね〜

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です