Das Interactive Media Ads (IMA) Dynamic Ad Platzhalter SDK (DAI) basiert auf Metadateninformationen, die in die Mediensegmente des Streams eingebettet sind (In-Band-Metadaten), oder in der Streaming-Manifestdatei (in den Manifest-Metadaten), um die und clientseitige Anzeigenereignisse. Metadaten sind im Stream für die dynamische Anzeigenbereitstellung verfügbar. in verschiedenen Formaten, je nach Art des wiedergegebenen Streams. Dynamische Anzeigenbereitstellung IMA Das SDK verarbeitet alle Metadatenformate über eine einzige API.
Ihre App ist dafür verantwortlich, Metadaten zu erfassen und an das IMA DAI SDK weiterzuleiten. Das SDK bietet die
StreamManager.onMessage()
um diese Informationen zu übergeben. Mit dieser Methode werden Metadaten in Form eines msg
-Objekts weitergeleitet, das vom roVideo-Port bereitgestellt wird. Diese Objekte werden dann von
IMA DAI SDK verwenden, um den Zeitplan für Anzeigenereignisse festzulegen. Sie brauchen nur einen
Argument:
msg
: Ein Objekt vom Typ „msg“, das vom roVideo-Port bereitgestellt wird.
Beispielcode für Metadaten
Hier ist ein Beispiel für die Verarbeitung der Metadaten vom roVideo-Port und
über StreamManager.onMessage()
an das IMA DAI SDK übergeben.
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
Weitere Informationen zum Einbinden von Schleifenverarbeitungsstream-Metadaten in Ihrer App verwenden, finden Sie Startleitfaden für IMA Roku Die Abschnitt für Event-Listener und Stream-Start der Anleitung enthält die Schleife für die Metadatenverarbeitung.
HLS-CMAF-Streams
Bei linearen dynamischen Anzeigenbereitstellungs-HLS-Streams mit dem Common Media Application Framework (CMAF) werden getaktete Metadaten über In-Band-eMSGv1-Boxen gemäß dem ID3-bis-CMAF-Standard übergeben. Diese eMSG-Boxen sind am Anfang jedes Mediensegments eingebettet, wobei jede ID3 eMSG Folgendes enthält: einen PTS-Wert relativ zur letzten Diskontinuität im Stream.
Bei IMA Roku senden alle HLS-CMAF-Streams In-Band-ID3-Daten im eMSGv0-Format. IMA kombiniert im eMSGv0-Format bereitgestellte Informationen mit Informationen vom Videoobjekt entfernt.
Damit die ID3-Ereignisse des HLS-CMAF-Streams richtig geparst werden, müssen Sie Ihren
in der Streamanfrage mithilfe von
StreamRequest.videoObject