google adsenseで、いくつかの広告ブロックの一つが表示されず、chromeのデベロッパーツールで見ると
adsbygoogle.push() error: No slot size for availableWidth=0
というエラーが出ている事象に遭遇。
検索してみると、
にあった次の方法が有効でした。
広告スクリプトの
(adsbygoogle = window.adsbygoogle || []).push({})
を
$(document).ready(function(){(adsbygoogle = window.adsbygoogle || []).push({})})
に差し替えるもの。つまりdocumentが生成されてから実行させるのですが、厳密にいってこれがスクリプトの改変に該当するのかしないのか確証がないので、特に推奨はしません。
ちなみに、表示されなかったのはレスポンシブユニットでしたし、「該当箇所の幅が取得できないために発生する」みたいな記述も見かけたので、広告表示部分の幅・高さを明示的にcssで指定してやる、というのもやりましたが、効果がありませんでした。