影片發布商可能會希望觀眾 尋找略過片中廣告使用者跳轉而略過廣告插播時 可以直接回到廣告插播的開始時間 廣告播放完畢後,就會前往尋找地點這個 功能稱為「回溯」
請參考下圖範例。觀眾正在觀看影片 並決定從 5 分鐘的標記跳轉至 15 分鐘的位置。 但在 10 分鐘標記處加入廣告插播時間點 然後才觀看內容:
如要顯示這個廣告插播時間點,請按照下列步驟操作:
- 檢查使用者是否跳轉到未觀看的廣告時段。 如果有,請將觀眾帶回廣告插播時間點
- 廣告插播時間點後,請回到原本的時間點。
圖表形式如下所示:
以下說明如何在 IMA DAI SDK 中實作此工作流程,如 AdvancedExample。
避免跳轉,讓觀眾在不知情的情況下離開廣告插播時間
檢查使用者是否已略過未觀看的廣告插播,如果是的話,請將他們帶回廣告插播。針對 iOS Advanced 範例,請使用使用者與使用者介面的互動方式 偵測他們何時開始跳轉保留搜尋開始時間,以便檢查是否已在搜尋中略過未播放的廣告時段。當使用者 釋出影片控制介面,並比較其目前時間與 最近的廣告插播時間點如果廣告插播時間點在跳轉時間點之後 時間 (也就是使用者跳過這關) 且未播放過 以便將觀眾導回廣告時段的開頭。此外,設定回溯旗標 稍後在廣告插播完整處理常式中檢查:
- (IBAction)videoControlsTouchStarted:(id)sender {
self.seekStartTime = self.contentPlayer.currentTime;
}
- (IBAction)videoControlsTouchEnded:(id)sender {
self.seekEndTime = CMTimeMake(self.progressBar.value, 1);
IMACuepoint *lastCuepoint =
[self.streamManager previousCuepointForStreamTime:CMTimeGetSeconds(self.seekEndTime)];
if (!lastCuepoint.played && (lastCuepoint.startTime > CMTimeGetSeconds(self.seekStartTime))) {
self.snapbackMode = YES
// Add 1 to the seek time to get the keyframe at the start of the ad to be your landing place.
[self.contentPlayer seekToTime:CMTimeMakeWithSeconds(lastCuepoint.startTime + 1, NSEC_PER_SEC)];
}
}
讓使用者回到原本的搜尋頁面
在廣告插播的處理常式中,檢查 因回溯而播放中斷。如果是的話,請傳回使用者 他們原本想去的地方 (只要這邊只是 不是剛播放的廣告插播中間):
- (void)streamManager:(IMAStreamManager *)streamManager didReceiveAdEvent:(IMAAdEvent *)event {
switch (event.type) {
case kIMAAdEvent_AD_BREAK_ENDED: {
if (self.snapbackMode) {
self.snapbackMode = NO;
if (CMTimeCompare(self.seekEndTime, self.contentPlayer.currentTime)) {
[self.contentPlayer seekToTime:self.seekEndTime];
}
}
break;
}
}
}