SDK のオペレーション モード
SDK は、広告サーバーから受け取った広告レスポンスに応じて、1 つ以上のモードで動作できます。
- 単一広告
start
メッセージがIMAAdsManager
に送信されたときにいつでも再生できる広告。1 つの広告を再生するために特別な初期化は必要ありません。- 連続配信広告
start
メッセージがIMAAdsManager
に送信されると、複数の広告が連続して再生されます。単一の広告ポッドを再生するために特別な初期化は必要ありません。- 広告ルール
- 特定のコンテンツに対して特定の時間にスケジュールされたミッドロール挿入点のプレイリスト。広告ルールモードでは、
start
メッセージは無視されます。1 つのプレイリスト内に複数の広告ブレーク(プレロール、ミッドロール、ポストロールなど)をスケジュールできます。実装の詳細については、下記の広告ルールをご覧ください。
広告のルール
IMA iOS SDK は、完全に自動化された広告プレイリストをサポートしています。この機能では、広告を入稿する際に、Google アド マネージャーで指定したとおりに広告ブレークがコンテンツに挿入されます。また、プレロール、ミッドロール、ポストロールなどの広告ブレークをサポートするために必要な動画プレーヤーのコードも大幅に簡素化されます。
- アド マネージャーで広告をトラフィックする際に、「コンテンツの冒頭で常に広告ブレークを再生する」や「コンテンツの 30 分ごとに 1 分間の広告ブレークを再生する」など、さまざまな広告ルールを指定できます。
- 広告がリクエストされると、広告サーバーは広告の再生リストを返すことができます。SDK はプレイリストを処理し、指定された広告ブレークを自動的にスケジュールします。
AdsManager
を初期化するときに、initializeWithContentPlayhead:adsRenderingSettings:
呼び出しを介してIMAContentPlayhead
オブジェクトが渡されます。AVPlayer を使用してコンテンツを表示する場合は、adDisplayContainer
を作成するときにIMAAVPlayerContentPlayhead
のインスタンスを SDK に渡します。このオブジェクトは、コンテンツの再生の進行状況を追跡するために使用されます。これにより、Ad Manager で指定された時間に広告ブレークが自動的に挿入されます。
AVPlayer を使用する場合:
IMAContentPlayhead *contentPlayhead = [[IMAAVPlayerContentPlayhead alloc] initWithAVPlayer:self.contentAVPlayer]; IMAAdsRequest *request = [[IMAAdsRequest alloc] initWithAdTagUrl:adTagUrl adDisplayContainer:adDisplayContainer contentPlayhead:contentPlayhead userContext:nil];
AVPlayer なし:
IMAContentPlayhead
インターフェースを実装します。currentTime
を実装して、動画プレーヤーの現在の時間を返します。IMAAdsManager
の初期化呼び出しを変更して、initializeWithContentPlayhead:self
を使用します。
- IMAAdsManagerDelegate は、ミッドロール挿入点の再生時にコンテンツを一時停止および再開するために使用されます。
注: コンテンツの再生が終了したとき、またはユーザーが再生を停止したときは、IMAAdsLoader
で contentComplete
を呼び出して、コンテンツの再生が終了したことを SDK に通知してください。その後、SDK は、ポストロール広告ブレークがスケジュールされている場合は、それを再生します。ALL_ADS_COMPLETED
イベントは、すべての広告ブレークが再生されたときに発生します。また、コンテンツ トラッキングは IMAAdsManager
の initializeWithContentPlayhead:adsRenderingSettings
メソッドが呼び出されたときに開始されるため、コンテンツを再生する前に必ず initializeWithContentPlayhead:adsRenderingSettings
を呼び出す必要があります。