Adsenseの自動広告ユニットに一つ広告ユニットを任意の場所に設置して見ると表示したが、chromeのDevToolsで確認してみると以下のエラーが出ていた。
adsbygoogle.push() error: All ins elements in the DOM with class=adsbygoogle already have ads in them.
一応広告は表示してたけどなんか気持ち悪いし、そのままにしていたら突然警告で非表示になったりするんじゃないかとかアカウント解除とかになるのかもと不安があったので色々とやってみた。
自動広告用のJSはdata-ad-clientと属性がついている。
<script data-ad-client="ca-pub-1234567890" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
広告ユニット用のJSに変える
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
それでもエラーは改善せず。何が悪いのか分からなかったが、エラーのところを再度よくみるとpushと言うのに何か引っかかる。
<script> (adsbygoogle = window.adsbygoogle || []).push({}); </script>
これが問題だったよう。広告ユニットを設置したときは必要なのだが、自動広告と組み合わせる場合はいらないようだ。削除してもちゃんと表示していた。
つまり、広告ユニットのみの場合に記述し、自動広告のみ・組み合わせの場合は必要ないと言うことらしい。