SDK 運作模式
SDK 可根據廣告伺服器接收的廣告回應,以一或多種模式運作。
- 單一廣告
- 將
start
訊息傳送至IMAAdsManager
時,可隨時播放的廣告。不需要特別初始化即可播放單一廣告。 - 廣告連播
- 將
start
訊息傳送至IMAAdsManager
時,會播放多則廣告。無須進行特殊初始化作業即可播放單一廣告連播。 - 廣告規則
- 針對特定內容安排在特定時間的廣告插播播放清單。廣告規則模式會忽略
start
訊息。一個播放清單 (例如片頭、片中、片尾) 可安排多個廣告插播。如要進一步瞭解導入做法,請參閱下方的廣告規則一節。
廣告規則
IMA tvOS SDK 支援全自動廣告播放清單。這項功能會在投放廣告時,將廣告插播時間點插入 Google Ad Manager 中指定的內容。此外,它也大幅簡化了支援廣告插播所需的影片播放器程式碼,包括片頭廣告、片中廣告和片尾廣告。
- 在 Ad Manager 中投放廣告時,您可以指定各種廣告規則,例如「在內容開頭一律播放廣告插播時間點」或「每 30 分鐘內容播放一次一分鐘」。
- 請求廣告時,廣告伺服器可能會傳回廣告播放清單。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
。