IMA SDK for iOS には Open Measurement(OM)SDK が含まれています。OM は、Interactive Advertising Bureau(IAB)が開発した業界標準で、第三者の視認性および検証測定を可能にしています。IMA SDK for iOS を使用する場合、付属の OM SDK は VAST 広告タグ内の <AdVerifications>
タグを自動的に解析し、OMID API を介して指定された測定ベンダーに視認性データを送信します。IMA SDK は、OM SDK v1.4、VAST 2 以上の GAM AdVerifications 拡張機能、VAST 4 以上の AdVerifications ノードをサポートしています。Open Measurement を活用するには、以下の点に留意してください。
Open Measurement を使用するには、バージョン 3.9.0 以降の IMA SDK for iOS が必要です。
VAST 4.1 以降を使用している場合は、VAST 4.1 仕様に沿って VAST で
<AdVerifications>
を入稿するように広告を設定する必要があります。それ以外の場合は<Extension type="AdVerifications">
を使用する必要があります。AdDisplayContainer
をオーバーレイ(透明または不透明)で覆わないでください。OMSDK によって障害物としてフラグが立てられ、視認性が低下します。
前提条件
- 広告をアド マネージャーから入稿する場合は、アド マネージャー ネットワークに視認性プロバイダを設定し、その視認性プロバイダを広告申込情報に割り当てます。
テスト
IMA SDK を使って Open Measurement をテストするには、上記の SDK の必須バージョンのいずれかとテスト広告タグを使用します。
VAST レスポンスに <AdVerifications>
が返されます。
動画コントロールのオーバーレイの遮蔽物を登録する
一時停止ボタンや進行状況バーなどの動画コントロールは、再生に関する重要な情報とアクションをユーザーに提供します。モバイルでは、タップが不正確でユーザーの期待が高まっているため、メディア要素に対してタップ操作に対応した大型のコントロールをレンダリングすることが一般的となっています。これらのコントロールは通常、ユーザーによるタップでフェードインとフェードアウトを行い、再生時間の大半で表示されません。
YouTube アプリで表示される動画コントロールの例を次に示します。
IMA SDK を使用する場合、ほとんどのパブリッシャーは、広告表示コンテナの上にほぼ透明なビューを追加することで、こうしたコントロールを実装しています。通常、コントロールは、基盤となる動画プレーヤーを完全に覆い隠すこのビューの子要素です。この透明なオーバーレイは、タップイベントをキャプチャし、タップされたときにコントロールをユーザーにレンダリングするために使用されます。
Open Measurement SDK で広告の視認性が計算される際、メディア要素をオーバーレイするすべてのビューは被覆物と見なされ、視認率が低下します。透明なタップ オーバーレイが広告表示コンテナ全体の上に配置されている場合、広告枠が完全に視認不能と宣言される可能性があります。
Open Measurement SDK では、動画コントロールをユーザー エクスペリエンスに不可欠な「フレンドリー」な遮蔽物と見なすように規定されています。フレンドリーとして登録されたコントロールは、広告の視認性の測定から除外されます。
IAB と MRC のサポートにより、IMA SDK には、Open Measurement SDK にこれらのオーバーレイを登録するための API が導入されています。これらのコントロールは、完全に透明なオーバーレイまたは小さなボタンである必要があります。動画コントロールに関係のないその他のビューは登録しないでください。
DO 登録 | 登録しないでください |
---|---|
|
|
次のサンプルコードは、広告表示コンテナに動画コントロール オーバーレイを登録する方法を示しています。
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];