隨選視訊(VOD)廣告插入程式由廣告解析、廣告插入和廣告播放階段組成。 對於廣告追蹤,TVSDK必須通知遠端追蹤伺服器有關每個廣告的播放進度。 當發生非預期情況時,TVSDK會採取適當的動作。
TVSDK會連絡廣告傳送服務,例如Adobe Primetime廣告決策,並嘗試取得與廣告的視訊串流對應的主要播放清單檔案。 在廣告解析階段,TVSDK會對遠端廣告傳送伺服器進行HTTP呼叫,並分析伺服器的回應。
TVSDK支援下列類型的廣告提供者:
中繼資料廣告提供者
廣告資料會編碼為純文字JSON檔案。
Primetime廣告決策廣告供應商
TVSDK會傳送要求(包括一組定位參數和資產識別碼)至Primetime廣告決策後端伺服器。 Primetime廣告決策會以同步化多媒體整合語言(SMIL)檔案回應,其中包含所需的廣告資訊。
自訂廣告標籤提供者
處理廣告從伺服器端燒錄至串流的情況。 TVSDK不會執行實際的廣告插入,但需要追蹤在伺服器端插入的廣告。 此提供者會設定TVSDK用來執行廣告追蹤的廣告標籤。
在此階段中,可能會發生以下故障切換情形之一:
無法檢索資料,因為,例如,由於缺少連接或伺服器端錯誤(如找不到資源)等。
已擷取資料,但格式無效。
這可能是因為,例如,對入站資料的解析失敗。
TVSDK會針對錯誤發出警告通知,並繼續處理。
TVSDK會將替代內容(廣告)插入與主要內容對應的時間軸。
當廣告解析階段完成時,TVSDK會提供已分組為廣告插播的廣告資源順序清單。 每個廣告插播都使用以毫秒(ms)表示的開始時間值,定位在主要內容時間軸上。 廣告分段中的每個廣告都有持續時間屬性,也以毫秒錶示。 廣告分段中的廣告被鏈結,因此,廣告分段的持續時間等於個別合成廣告的持續時間的總和。
在此階段中,可能會發生故障切換,而且廣告插入期間時間軸上可能會發生衝突。 對於廣告分段開始時間/持續時間值的特定組合,廣告區段可能會重疊。 當廣告分段的最後一部分與下一個廣告分段中第一個廣告的開頭相交時,就會發生此重疊。 在這些情況下,TVSDK會捨棄稍後的廣告插播,並繼續包含清單中下一個項目的廣告插入程式,直到所有廣告插播被插入或捨棄為止。
TVSDK會針對錯誤發出警告通知,並繼續處理。
TVSDK會下載廣告區段,並在裝置螢幕上呈現廣告區段。
現在,TVSDK已解決廣告、將廣告放在時間軸上,並嘗試在螢幕上呈現內容。
以下幾類主要錯誤可能發生在以下階段:
TVSDK會將觸發的事件轉送至您的應用程式,包括在下列情況下觸發的通知事件:
發生故障切換。
由於故障切換演算法,配置檔案會更改。
已考慮所有故障切換選項,不能自動採取其他操作。
您的應用程式需要採取適當的動作。
不論是否發生錯誤,TVSDK都會針對每個onAdBreakStart
呼叫onAdBreakComplete
,並針對每個onAdStart
呼叫onAdComplete
。 不過,如果無法下載區段,時間軸中可能會有空隙。 當間隙足夠大時,播放磁頭位置中的值和報告的廣告進度可能會出現不連續。