AdSense AMP版レスポンシブ広告ユニットの謎

AMPページにおいてGoogle Adsenseを利用するためには、AMP専用の広告コードを使う必要があります。

AMP ページは AMP HTML で作成します。AMP HTML は標準の HTML に似ていますが、パフォーマンスの信頼性に一定の制約があり、リッチ コンテンツを作成できる、簡易 HTML 以上の拡張機能を備えています。そのため、AMP 広告ユニットには通常の AdSense タグとは異なる独自のタグが必要になります。

AMP 広告ユニットを作成する – AdSense ヘルプ

Google AdSenseのヘルプには、AMP広告ユニットのコードについて2つの設定(layout="fixed-height" or layout="responsive")が例示されています。responsiveの設定を行うと通常のレスポンシブ広告と同じ動作をすると思っていたのですが、期待通りに広告が表示されなかったので混乱してしまいました。

スポンサーリンク

AdSenseのヘルプ、2つの設定例

layout="fixed-height"

<amp-ad
layout="fixed-height"
height=100
type="adsense"
data-ad-client="ca-pub-1234567891234567"
data-ad-slot="1234567890">
</amp-ad>

広告をスクロールせずに見える範囲に配置する場合は、高さを固定した AMP 広告ユニットを使用することをおすすめします。

AdSenseヘルプによると、スクロールせずに見える範囲に広告を配置する場合には、高さを固定することが推奨されています。

これは、「モバイル端末でスクロールしなければ見えない位置にコンテンツが押しやられている」状態がAdSenseのポリシー違反になるためでしょう。広告サイズを自動にしてしまうと、大きな広告が表示されてしまうおそれがあります。

layout="responsive"

<amp-ad
layout="responsive"
width=300
height=250
type="adsense"
data-ad-client="ca-pub-1234567891234567"
data-ad-slot="1234567890">
</amp-ad>

スクロールしなければ見えない位置に配置する場合は、300×250 のレスポンシブ AMP 広告ユニットを使用することをおすすめします。AMP のレスポンシブレイアウトを使用すると、表示される広告ユニットのサイズが端末のサイズに合わせて自動的に変更されます。

一方、広告をスクロールしなければ見えない位置に配置する場合にはレスポンシブレイアウトが推奨されています。ところが、設定例を見てみると何故かwidthが指定されています。これはどういうことでしょうか。

試しに、width=336 height=280と設定しレクタングル(大)と同じサイズの広告をiPhone5で表示させてみたところ、見事に広告がはみ出てしまいました。

widthを削除した場合も試してみましたが、想定より小さな広告が表示されてしまいました。通常のレスポンシブ広告(レクタングル指定)のように横幅いっぱいの広告が表示されることはありませんでした。

ちなみにwidthとheight双方を削除した場合には、広告は表示されませんでした。

AMPのレスポンシブ広告って何?

いろいろと試してみましたが、widthを削除した場合以外ではレスポンシブな動きは見られませんでしたし、AdSenseヘルプのようにwidthを指定したレスポンシブ広告は果たしてレスポンシブ広告と言えるのでしょうか?

ちなみに、通常のレスポンシブ広告の場合はセンタリングが自動で行われますが、AMPのレスポンシブ広告はセンタリングの処理が行われないようです。AMPのレスポンシブ広告をセンタリングする場合には、CSSでスタイル(text-align:center;)を設定する必要があるようです。

AMPのレスポンシブ広告って何のためにあるのでしょうかね?誰か教えてください。