IMA DAI SDK の Open Measurement

iOS 向け IMA SDK には Open Measurement(OM)SDK Google Cloud が開発した業界標準 Interactive Advertising Bureau(IAB) 視認性と検証測定ですiOS 向け IMA SDK を使用すると、含まれる OM SDK によって VAST 広告タグ内の <AdVerifications> タグが自動的に解析され、OMID API を介して指定された測定ベンダーに視認性データが送信されます。IMA SDK は、OM SDK v1.4、VAST 2 以降の GAM AdVerifications 拡張機能、VAST 4 以降の AdVerifications ノードをサポートしています。オープン測定を活用するには、次の点に注意してください。

  • Open Measurement を使用するには、iOS 向け IMA SDK のバージョン 3.9.0 以降が必要です。

  • 次のとおり、VAST で <AdVerifications> を入稿するよう広告を設定する必要があります VAST 4.1 仕様 VAST 4.1 以降を使用している場合それ以外の場合は <Extension type="AdVerifications"> 使用します。

  • AdDisplayContainer をオーバーレイ(透明または不透明)で覆わないでください。OM SDK によって障害物としてフラグが立てられ、視認性が低下します。

前提条件

テスト

IMA SDK を使用してオープン測定をテストするには、上記の必須バージョンの SDK のいずれかを使用し、テスト広告タグを使用します。

VAST レスポンスで <AdVerifications> が返されます。

動画コントロールのオーバーレイの遮蔽物を登録する

一時停止ボタンや進行状況バーなどの動画コントロールは、ユーザーに重要な再生情報と操作を提供します。モバイルでは、タップが不正確であることとユーザーの期待から、メディア要素の上にタップしやすい大きなコントロールをレンダリングすることが一般的になっています。通常、これらのコントロールはユーザーのタップでフェードイン / フェードアウトし、再生時間のほとんどは表示されません。

YouTube アプリで表示される動画コントロールの例を次に示します。

ほとんどのパブリッシャーは、IMA SDK を使用する際、 ほぼ透明な広告表示コンテナの上に重ねて表示されます。通常、コントロールは、基盤となる動画プレーヤーを完全に覆い隠すこのビューの子要素です。この透明なオーバーレイは、タップイベントをキャプチャし、タップされたときにコントロールをレンダリングするために使用されます。

Open Measurement SDK を使用して広告の視認性を計算する際、すべての視聴は メディア要素をオーバーレイすると障害物と見なされ、 確認できます透明なタップオーバーレイが 全面的に広告が配信されるので、広告在庫の宣言も まったく視認できません

Open Measurement SDK では、動画コントロールをユーザー エクスペリエンスに不可欠な「フレンドリー」な障害物と見なすように規定されています。フレンドリーとして登録されたコントロールは、広告の視認性の測定から除外されます。

IMA SDK では、IAB と MRC をサポートしているため、これらを登録するための API が導入されています。 Open Measurement SDK を使用して実装しました。これらのコントロールは透明性を保ちながら 小さなボタンのオーバーレイなどに重点を置いています。動画コントロールに関係のないその他の視聴は、 未登録です。

DO 登録 登録しない
  • ユーザーのタップをキャプチャする透明なオーバーレイ
  • 一時的なボタン <ph type="x-smartling-placeholder">
      </ph>
    • 一時停止
    • 再生
    • 全画面表示
    • キャスト / AirPlay
    • 閉じる
    • 進行状況 / シーク
    • 再生に関連するその他のアクション
  • ウォーターマーク
  • ポップアップ
  • ダイアログ
  • 一時的でないボタン
  • その他の隠れたビュー

次のサンプルコードは、広告表示コンテナに動画コントロール オーバーレイを登録する方法を示しています。

<ph type="x-smartling-placeholder">
UIView *myTransparentTapOverlay = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 250)];
UIButton *myPauseButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 50, 10)];
// Substitute "myTransparentTapOverlay" and "myPauseButton" with the elements
// you want to register as video controls overlays.
// Make sure to register before ad playback starts.
IMAFriendlyObstruction *overlayObstruction =
      [[IMAFriendlyObstruction alloc] initWithView:myTransparentTapOverlay
                                           purpose:IMAFriendlyObstructionPurposeNotVisible
                                    detailedReason:@"This overlay is transparent"];
IMAFriendlyObstruction *pauseButtonObstruction =
      [[IMAFriendlyObstruction alloc] initWithView:myPauseButton
                                           purpose:IMAFriendlyObstructionPurposeMediaControls
                                    detailedReason:@"This is the video player pause button"];

[displayContainer registerFriendlyObstruction:overlayObstruction];
[displayContainer registerFriendlyObstruction:pauseButtonObstruction];

使用が完了したら、次のメソッドを呼び出してこれらの障害物を削除できます。

[displayContainer unregisterAllFriendlyObstructions];