2017.01.23 Mon

【Google AdSense】レスポンシブ広告ユニットにエラーが起きて表示されなかったときの解決策

当ブログを運営するにあたり、Google AdSenseでの広告を表示させることを考えました。

そして現在、Google AdSenseを用いて広告を表示しています。

ただ、製作中あることに悩まされました。

レスポンシブ広告ユニットが表示されないんです…。

ただし、固定サイズの広告は表示されていました。

しかも制作前に試しで貼ったときは表示されていたんです。

うーん。なんでだろうぅぅぅ。

そういうときはとりあえずググる!

そして、AdSenseヘルプの確認。

いろいろと試した結果。

できない…。

広告ユニットのステータスもアクティブになっている。

そしてコンソール確認。

TagError: adsbygoogle.push() error: No slot size for availableWidth=0

エラー起きてます。

だめだこりゃ、と思っていたんですが一旦落ち着いて考えました。

ページ切り替え時のフェードイン表示が問題なのではないか?

制作中のjsは下記のようになっていました。

$(window).load(function() { //ロードされる際
	$('body').delay(700).fadeIn(); //bodyごと0.7秒遅延しフェードイン 
});

ページの遅延表示のせいで読み込まれる前にレスポンシブ広告ユニットが表示され、広告ユニット側がwidthを取得できていないのでは?という考えに至りました。

ということでAdSenseを遅延表示します。

<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>	
//省略
<script>
	(adsbygoogle = window.adsbygoogle || []).push({});
</script>

ハイライトしてある部分をを変更します。

<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>	
//省略
<script>
	window.onload = setTimeout(
		function() {
			(adsbygoogle = window.adsbygoogle || []).push({});
		},1000 //1秒間遅延
	);
</script>

ページ表示は0.7秒間遅延でしたので、AdSenseは上記のように1秒間遅延しました。

あ、

表示された…。

ただ、安定感がないので記事ページ等のフェードインを止めました。

そのためAdSenseの遅延も止めてあります。

表示されない原因はいろいろとありますが、ページの表示遅延のせいだったとは…。

今回は、意外とシンプルな理由だったのですぐに解決されましたが、表示されない問題はその他諸々あります。

表示されない原因を丁寧にまとめてあるサイトがあったので貼っておきます。

アドセンス広告が表示されない15の原因と解決方法

Popular Posts人気