Android 用 IMA SDK には、Open Measurement(OM)SDK が含まれています。これは、Interactive Advertising Bureau(IAB)が開発した業界標準で、第三者による視認性と検証の測定を可能にします。Android 向け IMA SDK を使用している場合、含まれている OM SDK は VAST 広告タグ内の <AdVerifications> タグを自動的に解析し、OMID API を使用して指定された測定ベンダーにビューアビリティ データを送信します。IMA SDK は、OM SDK v1.4、VAST 2 以降の GAM AdVerifications 拡張機能、VAST 4 以降の AdVerifications ノードに対応しています。Open Measurement を活用するには、次の点に注意してください。
Open Measurement を使用するには、Android 用 IMA SDK のバージョン 3.11.0 以降が必要です。ただし、このガイドのサンプルは最新バージョンの SDK 向けに設計されており、バージョン 3.16.5 で導入された API が含まれています。
VAST 4.1 以降を使用している場合、広告は VAST 4.1 仕様に沿って VAST で
<AdVerifications>を配信するように設定する必要があります。それ以外の場合は、<Extension type="AdVerifications">を使用する必要があります。AdDisplayContainerをオーバーレイ(透明または不透明)で覆わないでください。これらは OM SDK によって障害物としてフラグが設定され、視認性が低下します。
前提条件
- 広告がアド マネージャーで配信される場合は、アド マネージャー ネットワークで視認性データの提供元を設定し、その視認性データの提供元を広告申込情報に割り当てます。
テスト
IMA SDK を使用して Open Measurement をテストするには、OM SDK をサポートする IMA のバージョンとテスト広告タグを使用します。
VAST レスポンスに <AdVerifications> が返されます。
動画コントロールのオーバーレイの障害物を登録する
一時停止ボタンや進行状況バーなどの動画コントロールは、ユーザーに再生に関する重要な情報と操作を提供します。モバイルでは、タップの精度が低いことやユーザーの期待に応えるため、メディア要素の上に大きなタッチフレンドリーなコントロールをレンダリングすることが一般的になっています。これらのコントロールは通常、ユーザーがタップするとフェードイン / フェードアウトし、再生時間の大部分は表示されません。
動画コントロールをオーバーレイする例については、YouTube アプリのコントロールのレンダリングに関する次の画像をご覧ください。

IMA SDK を使用している場合、ほとんどのパブリッシャーは、広告表示コンテナの上にほぼ透明なビューを追加することで、これらのコントロールを実装しています。通常、コントロールは、基盤となる動画プレーヤーを完全に覆うこのビューの子要素です。この透明なオーバーレイは、タップイベントをキャプチャし、タップされたときにコントロールをユーザーにレンダリングするために使用されます。
Open Measurement SDK を使用して広告の視認性を計算する場合、メディア要素に重なるすべてのビューが障害物と見なされ、視認率が低下します。透明なタップ オーバーレイが広告表示コンテナ全体を覆っている場合、インベントリが完全に視認できないと宣言される可能性があります。
Open Measurement SDK では、動画コントロールがユーザー エクスペリエンスに不可欠な「好ましい」被覆物として考慮されるようになっています。フレンドリーとして登録されると、これらのコントロールは広告の視認性の測定から除外されます。
IAB と MRC のサポートにより、IMA SDK には、これらのオーバーレイを Open Measurement SDK に登録するための API が導入されています。これらのコントロールは、完全に透明なオーバーレイまたは小さなボタンでなければなりません。動画コントロールに関連しない他のビューは登録しないでください。
| 登録する | 登録しないでください |
|---|---|
|
|
次のサンプルコードは、広告表示コンテナに動画コントロール オーバーレイを登録する方法を示しています。
private void registerFriendlyObstructions(
AdDisplayContainer adDisplayContainer, View transparentTapOverlay, View pauseButton) {
ImaSdkFactory imaSdkFactory = ImaSdkFactory.getInstance();
// Make sure to register all friendly obstructions before ad playback starts.
FriendlyObstruction overlayObstruction =
imaSdkFactory.createFriendlyObstruction(
transparentTapOverlay,
FriendlyObstructionPurpose.NOT_VISIBLE,
"This overlay is transparent");
FriendlyObstruction pauseButtonObstruction =
imaSdkFactory.createFriendlyObstruction(
pauseButton,
FriendlyObstructionPurpose.VIDEO_CONTROLS,
"This is the video player pause button");
adDisplayContainer.registerFriendlyObstruction(overlayObstruction);
adDisplayContainer.registerFriendlyObstruction(pauseButtonObstruction);
}
これらの障害物が不要になったら、次のメソッドを呼び出して削除できます。
private void unregisterFriendlyObstructions(AdDisplayContainer adDisplayContainer) {
adDisplayContainer.unregisterAllFriendlyObstructions();
}