iOS 向け IMA SDK には、サードパーティの視認性と検証の測定を可能にするために
Interactive Advertising Bureau(IAB)が開発した業界標準の
Open Measurement(OM)SDKが含まれています。iOS 向け 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 を使用するには、iOS 向け IMA SDK のバージョン 3.9.0 以降が必要です。
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 が導入されています。これらのコントロールは、完全に透明なオーバーレイまたは小さなボタンである必要があります。動画コントロールに関連しない他のビューは登録しないでください。
| 登録する | 登録しない |
|---|---|
|
|
次のサンプルコードは、広告表示コンテナに動画コントロールのオーバーレイを登録する方法を示しています。
UIView *myTransparentTapOverlay = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 250)];
UIButton *myPauseButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 50, 10)];
// Replace myTransparentTapOverlay and myPauseButton with your own elements
// that function as video control 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];
これらの障害物は、次のメソッドを呼び出すことで削除できます。
Objective-C
- (void)unregisterObstructionsForContainer:(IMAAdDisplayContainer *)displayContainer {
// This removes all previously registered friendly obstructions from the container.
[displayContainer unregisterAllFriendlyObstructions];
}
Swift
func unregisterObstructions(displayContainer: IMAAdDisplayContainer) {
// This removes all previously registered friendly obstructions from the container.
displayContainer.unregisterAllFriendlyObstructions()
}