SDK 作業模式
視從廣告伺服器收到的廣告回應而定,SDK 可在一或多種模式下運作。
- 單一廣告
- 當訊息傳送至
start
IMAAdsManager
時,隨時可播放的廣告。播放單一廣告時,不需要進行特殊初始化。 - 廣告連播
- 當
start
訊息傳送至IMAAdsManager
時,會連續播放多則廣告。如要播放單一廣告插播,不需要進行特殊初始化作業。 - 廣告規則
- 在特定時間針對特定內容排定的廣告插播時間點播放清單。在廣告規則模式中,系統會忽略
start
訊息。單一播放清單中可排定多個廣告插播時間點 (例如片頭、片中、片尾廣告)。如需更多導入詳細資料,請參閱下方的「廣告規則」一節。
廣告規則
IMA tvOS SDK 支援全自動廣告播放清單。這項功能會在您投放廣告時,按照 Google Ad Manager 中的指定方式,在內容中插入廣告插播。此外,這項功能還大幅簡化了支援廣告插播時間點 (包括片頭、片中和片尾廣告) 的影片播放器程式碼。
- 在 Ad Manager 中放送廣告時,可以指定各種廣告規則,例如「一律在內容開頭插播廣告」,或「每 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
。