パーソナライズした広告をAMPページで表示可能か? amp-iframeを利用できるか?

[レベル: 上級]

パーソナライズした広告をAMPページに掲載することはできるのでしょうか?

パーソナライズした広告とはたとえば、ユーザーの性別や年齢、地域、利用している端末のOSなどに応じて内容を切り替える広告です。
広告の世界では一般的な仕組みで、Google AdWordsでも利用できます。

しかしながら結論だけを言えば、AMPページでのパーソナライズ広告は、不可能ではなさそうですが難しそうです。

パーソナライズ広告をAMPページに掲載したい!

パーソナライズした広告をAMPページに掲載したいという、類似した質問が日本語と英語の両方のヘルプフォーラムでそれぞれ投稿されていました。

日本語フォーラムの投稿は次のような要望です。

ユーザーが利用しているデバイスのOSに応じて広告を分けたい

英語フォーラムの投稿は次のような要望です。

ユーザーがアクセスしてきた地域に応じて広告を分けたい。

具体的な条件は異なるものの、どちらもユーザーの環境に応じてパーソナライズした広告を表示させたいというサイト管理者です。

キャッシュから返るのでパーソナライズは無理

通常AMPページは、AMP CDNに保存されたキャッシュで表示されます。
キャッシュされた同一ページがすべてのユーザーに返されるので、ユーザーに応じてパーソナライズした広告を表示するのは無理でしょう。

自分が管理するサーバーではなく、CDN サーバーからコンテンツが返るのでOS判定もできません。
※AMPページに直接アクセスさせるならOS判定は可能

対応したアドネットワークがあれば可能

とはいえ、完全に実現不可能ということでもありません。
利用するアドネットワークがパーソナライズ対応した広告を提供していれば可能です(もちろん、広告がAMP対応している必要あり)。

パーソナライズ広告をサポートしているかどうかは、利用しているアドネットワークに確認してください。

amp-iframe を使う

もう1つの実現可能そうな方法は <amp-iframe> の利用です。

<amp-iframe> タグを使うと、そのAMPページとは切り離した任意の要素を表示することができます。
たとえば、AMPをサポートしていない動画プレーヤーを <amp-iframe> で埋め込むことでAMPページに掲載することができます。

概念としては、通常のウェブページで使う iframe と同等の機能を提供するタグだと認識してかまいません。

AMPページでは許可されたJavaScriptしか動かすことができません。
しかし、<amp-iframe> を使えば、この制限にとらわれずに任意のJavaScriptをAMPページで動かすことも可能です。

使いようによっては、AMPでの自由度が増す便利なタグとも言えます。

広告目的の要素には amp-iframe は使えない

<amp-iframe> はパーソナライズ広告を実現する良い選択肢に思えます。

ところが、広告を主たる目的にしている要素に <amp-iframe> を使うことをAMPの仕様は許可していません。

途中に広告が差し込まれる動画に <amp-iframe> を使うことは差し支えありません。しかしながら、”広告だけ”の要素に <amp-iframe> を使うことはできないのです。

<amp-iframe> must not be used for the primary purpose of displaying advertising. It is OK to use amp-iframe for the purpose of displaying videos, where part of the videos are advertising.

※理由は割愛します。知りたい方は<amp-iframe>のドキュメントの説明を参照してください。

つまり、広告には <amp-iframe> は使えないということになります。

<amp-iframe> タグは何でもかんでも好きなことができるわけではないのです。
(制限がある)”AMP”で利用するということを忘れてはいけません。
<amp-iframe> の仕様に関しては、ドキュメントを参照してください。

さて、この記事のまとめです。

  • AMPページでのパーソナライズ広告はアドネットワークが対応していれば掲載可能
  • <amp-iframe> が使えそうだけれど、広告だけの要素には使用を許可されていない
  • でも、<amp-iframe> は使いようによっては便利なAMPタグ