影片發布商可能會想防止觀眾看到 越過片中廣告使用者跳轉超過廣告插播時間點時,您可以將他們帶回該廣告插播的開頭,然後在廣告插播結束後將其傳回搜尋位置。此功能稱為「回歸」。
請參考下圖範例。觀眾正在觀看影片,然後選擇從 5 分鐘的標記開始跳轉至 15 分鐘。然而,在 10 分鐘標記處出現一段廣告插播時間點,表示您希望使用者在看完內容前看完廣告:
如要顯示這個廣告插播時間點,請按照下列步驟操作:
- 檢查使用者執行的跳轉是否超過未觀看的廣告插播時間點。如果可以,請將使用者重新回到廣告插播時間點。
- 廣告插播結束後,請返回原本的跳轉。
以圖表形式呈現,如下所示:
請參考進階範例,瞭解如何在 Roku IMA SDK 中實作這個工作流程。
防止使用者在未觀看的廣告插播時間點暫停播放
檢查使用者執行的時間是否超過未觀看的廣告插播時間點,如果有的話,就可以回到廣告插播時間點。Roku 進階範例需要使用遠端按鈕,才能讓使用者跳轉。使用者每次按下前進按鈕時,都會以一定的秒數在串流中快轉。處理此跳轉的相同方法也會檢查跳轉動作是跳轉/通過/插到廣告插播時間點,如果確實是在廣告插播時間點開始時,請改為將使用者移至該廣告插播的開頭:
Function handleFastForward(player as Object, streamManager as Object, updatedTime As Integer)
previousAd = streamManager.getPreviousCuePoint(updatedTime)
If previousAd = Invalid or previousAd.hasPlayed
player.seek(updatedTime * 1000)
Else If previousAd.start > player.currentTime
player.isSnapback = True
player.timeAfterSnapback = updatedTime
player.seek(previousAd.start * 1000 + 1000)
End If
End Function
引導使用者回到原本的搜尋點
在 adBreakEnded
處理常式中,查看先前的廣告插播是否因為回溯處理而播放。如果是的話,請將使用者帶回原本想搜尋的位置 (只要不是剛才播放的廣告插播中間位置):
player.adBreakEnded = Function(adBreakInfo as Object)
If m.isSnapback
m.seek(m.timeAfterSnapback * 1000)
m.isSnapback = False
End If
End Function