SDK per Roku.
L'SDK Dynamic Ad Insertion (DAI) Interactive Media Ads (IMA) si basa su informazioni sui metadati incorporate nei segmenti multimediali dello stream (metadati in banda) o nel file manifest dello streaming (metadati nel manifest) per monitorare le posizioni degli spettatori e gli eventi pubblicitari lato client. I metadati sono disponibili dallo stream DAI in diversi formati, a seconda del tipo di stream riprodotto. L'SDK IMA DAI gestisce tutti i formati dei metadati tramite una singola API.
La tua app è responsabile dell'acquisizione dei metadati e del loro inoltro all'SDK IMA DAI. L'SDK offre il
metodo StreamManager.onMessage()
per trasmettere queste informazioni. Questo metodo inoltra i metadati sotto forma di oggetto
msg
fornito dalla porta roVideo. Questi oggetti vengono poi elaborati dall'SDK IMA DAI per stabilire la tempistica degli eventi pubblicitari. Accetta un solo
argomento:
msg
: un oggetto di tipo msg fornito dalla porta roVideo.
Codice campione dei metadati
Ecco un esempio di come gestire i metadati dalla porta roVideo e
trasferirli all'SDK IMA DAI tramite StreamManager.onMessage()
.
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
Per saperne di più su come incorporare i metadati del flusso di gestione dei loop nella tua app, consulta la Guida introduttiva di IMA Roku. La sezione relativa al listener di eventi e all'inizio dello stream della guida contiene il ciclo di gestione dei metadati.
Stream CMAF HLS
Gli stream HLS di DAI lineare che utilizzano Common Media Application Framework (CMAF) trasmettono i metadati temporizzati tramite le caselle eMSGv1 in banda seguendo lo standard ID3 tramite CMAF. Questi riquadri eMSG sono incorporati all'inizio di ogni segmento multimediale e ogni eMSG ID3 contiene un PTS relativo all'ultima discontinuità nel flusso.
Per IMA Roku, tutti gli stream HLS CMAF inviano dati ID3 in-band utilizzando il formato eMSGv0. IMA combina le informazioni fornite dal formato eMSGv0 con le informazioni dell'oggetto video.
Per consentire l'analisi corretta degli eventi ID3 del flusso HLS CMAF, devi inviare l'oggetto video nella richiesta di flusso utilizzando StreamRequest.videoObject
.