L'agent vidéo Roku fournit monitoring des événements publicitaires via deux API publicitaires différentes :
Installer le framework publicitaire Roku (RAF)
Pour RAF, aucune étape supplémentaire n'est requise car le tracker est intégré au NRAgent.
Installer Google IMA
Pour IMA, assurez-vous que les fichiers suivants sont inclus dans le répertoire du projet :
components/NewRelicAgent/trackers    IMATracker.brs    IMATracker.xmlsource/    IMATrackerInterface.brsUsage
Utilisation de la RAF
Transmettez l’objet NRAgent (créé avec l’appel à NewRelic(accountId, apiKey)) à la tâche Annonces à l’aide d’un champ. Dans la tâche Annonces, effectuez les opérations suivantes :
adIface = Roku_Ads()
' Ad Iface setup code...
logFunc = Function(obj = Invalid as Dynamic, evtType = invalid as Dynamic, ctx = invalid as Dynamic)    'Call RAF tracker, passing the event and context    nrTrackRAF(obj, evtType, ctx)End Function
' m.top.nr is the reference to the field where we have the NRAgent objectadIface.setTrackingCallback(logFunc, m.top.nr)Pour un exemple d'utilisation complet, consultez les fichiers VideoScene.brs (fonction setupVideoWithAds()) et AdsTask.brs dans le présent référentiel (repository).
Utilisation de l'IMA
Créez l’objet IMA Tracker :
tracker = IMATracker(m.nr)Où m.nr est l'objet NRAgent.
Transmettez l'objet de suivi à la tâche IMA SDK à l'aide d'un champ et incluez le script IMATrackerInterface.brs dans le XML de la tâche. Dans la tâche, effectuez les opérations suivantes :
m.player.adBreakStarted = Function(adBreakInfo as Object)        ' Ad break start code...                ' Send AD_BREAK_START        nrSendIMAAdBreakStart(m.top.tracker, adBreakInfo)    End Function
    m.player.adBreakEnded = Function(adBreakInfo as Object)        ' Ad break end code...
        ' Send AD_BREAK_END        nrSendIMAAdBreakEnd(m.top.tracker, adBreakInfo)    End Function
    ' ...
    m.streamManager.addEventListener(m.sdk.AdEvent.START, startCallback)    m.streamManager.addEventListener(m.sdk.AdEvent.FIRST_QUARTILE, firstQuartileCallback)    m.streamManager.addEventListener(m.sdk.AdEvent.MIDPOINT, midpointCallback)    m.streamManager.addEventListener(m.sdk.AdEvent.THIRD_QUARTILE, thirdQuartileCallback)    m.streamManager.addEventListener(m.sdk.AdEvent.COMPLETE, completeCallback)
    Function startCallback(ad as Object) as Void        ' Send AD_START        nrSendIMAAdStart(m.top.tracker, ad)    End Function
    Function firstQuartileCallback(ad as Object) as Void        ' Send AD_QUARTILE (first)        nrSendIMAAdFirstQuartile(m.top.tracker, ad)    End Function
    Function midpointCallback(ad as Object) as Void        ' Send AD_QUARTILE (midpoint)        nrSendIMAAdMidpoint(m.top.tracker, ad)    End Function
    Function thirdQuartileCallback(ad as Object) as Void        ' Send AD_QUARTILE (third)        nrSendIMAAdThirdQuartile(m.top.tracker, ad)    End Function
    Function completeCallback(ad as Object) as Void        ' Send AD_END        nrSendIMAAdEnd(m.top.tracker, ad)    End FunctionOù m.top.tracker est l’objet de suivi transmis à la tâche.
Pour un exemple d'utilisation complet, consultez les fichiers VideoScene.brs (fonction setupVideoWithIMA()) et imasdk.brs.