Google Adsenseの広告をサイトに掲載するには挿入コードが必要です。具体的にはJavaScriptの<script>と<ins>で囲まれたHTMLコード。
このコードがいつからなのか変わってました。大きな違いはなく細かい設定が増えています。
この変更についてアナウンスされた記憶がありません。ボクがスルーしちゃったのかな?
Googleアドセンスで広告をサイトに挿入するコードはこんな感じです。
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
style="display:block; text-align:center;"
data-ad-format="fluid"
data-ad-layout="in-article"
data-ad-client="ca-pub-1234567890123456"
data-ad-slot="0123456789"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
<ins>のdata-ad-client属性はアドセンスアカウントに割り当てられるID、data-ad-slot属性はアドセンスの管理サイトで作成した広告IDです。
挿入コードは作成した広告からコピーボタンで取得できるので気づきにくいですが、広告タイプがちがってもコードの作りはほぼ同じ。
属性のルールさえ知ってれば自分で作ることもできます。(そんなことしないが。)
このコードはいつからかは分かりませんが、若干の変更が行われました。
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1234567890123456"
crossorigin="anonymous"></script>
<ins class="adsbygoogle"
style="display:block"
data-ad-format="autorelaxed"
data-ad-client="ca-pub-1234567890123456"
data-ad-slot="0123456789"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
変更点は、頭の<script>でJavaScriptを読み込むところ。プロトコルがhttpsになり、URLパラメータでアドセンスのアカウントIDを送るようになっています。
あともうひとつ。crossorigin属性が追加されました。
crossorigin属性とは何か?
crossoriginは『オリジンが交わる』という意味。まだ???ですね。
オリジン(Origin)は、WebのURLのプロトコル、ホスト、ポートの組み合わせのこと。
同一オリジン | https://example.com/index.html https://example.com/main.html |
異なるオリジン | https://example.com http://example.com |
異なるオリジン | https://example.com https://example2.com |
異なるオリジン | https://example.com https://example.com:9000 |
この属性は異なるオリジン間の制御を行います。
この制御のことをオリジン間リソース共有(CORS: Corss-Origin Resource Sharing)という。
つまり、アドセンスの<script>で指定されているJavaScriptファイルのオリジンとコードを挿入する自サイトのオリジンはちがうので、CORSが必要だということ。
crossorigin="anonymous" は、異なるオリジン間で共有の制限をしません。制限されるとJavaScriptが読み込めなくなるので当たり前ですね?
今回新しく指定された属性値はデフォルト値で属性の未指定のときと同じです。
ちなみに、CORSの制限をかけたときはHttpヘッダに認証情報をくっつけます。
結局コードが変わって何が起きるのか?
crossorigin属性の指定はデフォルトなので前のコードと同じです。CORSはWebのセキュリティの観点から注目されているので明示したかっただけでしょう。
もうひとつはhttps通信に変えたこと。"//" から始まるURLは "http://" と同じです。Googleはhttpプロトコルは使わないように通知してきました。
そんなものをアドセンスで使うわけにはいかないのでしょう。
http://から始まるサイトはGoogleの検索結果にも表示されません。
(誰も見ないような後ろの方に追いやられてたような気がする。)
いまやhttpのサイトは絶滅危惧種と言っていい。
URLパラメータにアカウントIDをくっつけてる理由は分かりません。将来的に使うためなのかすでに使ってるのかも不明。
アカウントIDなので、いろんなものに使えることを想定していることは想像できる。
結論を言うと、2021年8月24日現在、古い挿入コードでも広告は掲載されます。(正常に動く)
ただ、将来的には分かりません。とくにhttp://はGoogleがいつ廃止すると言ってもおかしくない。
今のうちに新しいコードに修正することをおすすめします。
挿入コードが変更されたことをGoogleは目に見えてアナウンスしていません。
もしかすると試験運用なのかな?
すでに新コードが使われているので、古いコードが使えなくなると正式にアナウンスするのかもしれません。
自分が見逃しちゃった可能性もある。