Interactive Media Ads (IMA) Dinamik Reklam Ekleme SDK'sı (DAI), görüntüleyenlerin konumlarını ve istemci taraflı reklam etkinliklerini izlemek için akışın medya segmentlerine (grup içi meta veriler) veya akış manifest dosyasına (manifest meta verileri) yerleştirilen meta veri bilgilerini kullanır. Meta veriler, oynatılan akışın türüne bağlı olarak DAI akışından farklı biçimlerde kullanılabilir. Roku IMA SDK, tüm meta veri biçimlerini tek bir API üzerinden işler.
Uygulamanız meta verileri yakalamak ve IMA DAI SDK'sına iletmekten sorumludur. SDK, bu bilgileri iletmek için StreamManager.onMessage()
yöntemini sunar. Bu yöntem, meta verileri roVideo bağlantı noktası tarafından sağlanan bir msg
nesnesi biçiminde yönlendirir. Bu nesneler daha sonra, reklam etkinliklerinin zamanlamasını belirlemek üzere IMA DAI SDK'sı tarafından işlenir. Tek bir argüman:
msg
: roVideo bağlantı noktası tarafından sağlanan mesaj türü nesnesi.
Meta veri örnek kodu
Meta verilerin roVideo bağlantı noktasından nasıl işleneceği ve StreamManager.onMessage()
üzerinden IMA SDK'ya nasıl iletileceğine dair bir örneği burada bulabilirsiniz.
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
Döngü işleme akış meta verilerini uygulamanıza nasıl dahil edeceğiniz hakkında daha fazla bilgi için IMA Roku başlangıç kılavuzuna bakın. Kılavuzun etkinlik işleyici ve akış başlangıç bölümü, meta veri işleme döngüsünü içerir.
HLS CMAF akışları
Ortak Medya Uygulama Çerçevesi (CMAF) kullanan doğrusal DAI HLS akışları, zamanlanmış meta verileri ID3'ten CMAF'ye kadar bant içi eMSGv1 kutuları üzerinden geçirir. Bu eMSG kutuları, her bir medya segmentinin başına yerleştirilir ve her bir ID3 eMSG, akıştaki son süreksizliğe göre bir PTS içerir.
IMA Roku için tüm HLS CMAF akışları, bant içi ID3 verilerini eMSGv0 biçimini kullanarak gönderir. IMA, eMSGv0 biçimi tarafından sağlanan bilgileri video nesnesindeki bilgilerle birleştirir.
HLS CMAF akış ID3 etkinliklerinin doğru şekilde ayrıştırılmasını sağlamak için video nesnenizi akış isteğinde StreamRequest.videoObject
kullanarak göndermeniz gerekir.