メディア・クエリを書かなくても表示される場所に合わせて自動でリサイズされるスマート サイズというフォーマットがAdSenseのレスポンシブ広告ユニットに追加されたようだ。ざっと試したところ画像広告の場合は収まる最大の広告サイズ、テキスト広告の場合は表示される場所に合わせて文字サイズと広告数を調節して表示される。リアルタイムに切り替わるわけではないけど、これで十分そう。

張りつけるコードも少し変更になっていて、data-ad-formatという属性でautoを指定するとこのモードが有効になる。inline-blockからstyle="display:block"にも変更になっている。広告の表示される場所のサイズを手軽に調べるためだろう。JavaScriptコードやURLは変更されていない。

<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-xxxxxxxxxxxxxxxx"
     data-ad-slot="xxxxxxxxxx"
     data-ad-format="auto"></ins>

data-ad-format属性では他にrectanglehorizontalverticalという値を使え、ある程度使う広告サイズに制限をかけられる。大抵の場合はautoで問題なさそうだけど、本文に食い込むような形で表示している場合などにはrectangleで制限をかけたりとかは有効そう。

気になったのは広告の表示位置。テキスト広告の場合は入るだけ詰め込まれるが、画像広告の場合はどうやら必ずセンタリングされて表示されるようだ。広告の位置決めは生成されるiframe要素の中で行われるので、ウェブサイトのスタイルからは位置を調節することはできない。


メディア・クエリの記述ミスとか、どのあたりで切り替えるかとか、そういうのをまったく気にしなくて良くなるので速やかに変更したいところ。既にこちらが推奨になっているようだ。こういう時に静的生成のシステムは全てのページを再構築しなければならず、とても辛い……みたいな2004年くらいに通った道を再度通ろうとするインターネット。なんとかーネントで解決されるようになる時代は来るのか。