互動式媒體廣告 (IMA) 動態廣告插播 SDK (DAI) 必須使用 內嵌於串流媒體區段的中繼資料資訊 (頻內中繼資料) 或透過串流資訊清單檔案 (資訊清單中繼資料) 追蹤檢視者 位置和用戶端廣告事件可從 DAI 串流取得中繼資料 根據要播放的串流類型 放送不同格式的廣告IMA DAI SDK 會透過單一 API 處理所有中繼資料格式。
您的應用程式負責擷取中繼資料,並將其轉送至 IMA DAI SDK。SDK 提供 StreamManager.onMessage()
方法來傳遞這項資訊。這個方法會透過
roVideo 通訊埠提供的 msg
物件。接著,這些物件會經由
IMA DAI SDK 中設定廣告事件的時間。這個函式會接受單一引數:
msg
:roVideo 通訊埠提供的訊息類型物件。
中繼資料程式碼範例
以下範例說明如何處理來自 roVideo 通訊埠的中繼資料
透過 StreamManager.onMessage()
將其傳遞至 IMA DAI SDK。
Sub runLoop()
' Forward all timed metadata events to IMA.
m.top.video.timedMetaDataSelectionKeys = ["*"]
' Cycle through all the fields and set listeners.
' IMPORTANT: Failure to listen to the position and timedmetadata fields could
' result in ad impressions not being reported.
m.port = CreateObject("roMessagePort")
fields = m.top.video.getFields()
for each field in fields
m.top.video.observeField(field, m.port)
end for
while True
msg = wait(1000, m.port)
if m.top.video = invalid
print "exiting"
exit while
end if
m.streamManager.onMessage(msg)
currentTime = m.top.video.position
If currentTime > 3 And not m.top.adPlaying
m.top.video.enableTrickPlay = true
End If
end while
End Sub
如要進一步瞭解如何將迴圈處理串流中繼資料納入應用程式,請參閱 IMA Roku 入門指南。指南的事件監聽器和串流開始部分包含中繼資料處理迴圈。
HTTP 即時串流 CMAF 串流
使用通用媒體應用程式架構 (CMAF) 的線性 DAI HLS 串流會依循 ID3 透過 CMAF 標準,透過頻道內 eMSGv1 方塊傳遞時間中繼資料。這些電子音樂盒 每個 ID3 eMSG 都嵌入 相對於串流上次中斷度的 PTS。
如果是 IMA Roku,所有 HLS CMAF 串流都會使用 eMSGv0 格式傳送頻內 ID3 資料。 IMA 結合了 eMSGv0 格式提供的資訊與資訊 從影片物件中嵌入
如要啟用正確剖析 HTTP 即時串流 CMAF 串流 ID3 事件,您必須將
透過
StreamRequest.videoObject
。