O agente Roku Video fornece monitoramento de eventos por meio de duas APIs de anúncios diferentes:
Instalar o Roku Advertising Framework (RAF)
Para a RAF, nenhuma etapa adicional é necessária, pois o rastreador é integrado ao NRAgent.
Instalar o Google IMA
Para o IMA, certifique-se de que os seguintes arquivos estejam incluídos no diretório do projeto:
components/NewRelicAgent/trackers    IMATracker.brs    IMATracker.xmlsource/    IMATrackerInterface.brsUso
Uso da RAF
Passe o objeto NRAgent (criado com a chamada para NewRelic(accountId, apiKey)) para a tarefa Ads usando um campo. Na tarefa Anúncios, execute o seguinte:
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)Para um exemplo de uso completo, confira os arquivos VideoScene.brs (função setupVideoWithAds()) e AdsTask.brs no repositório atual.
Uso do IMA
Crie o objeto IMA Tracker:
tracker = IMATracker(m.nr)Onde m.nr é o objeto NRAgent.
Passe o objeto rastreador para a tarefa do IMA SDK usando um campo e inclua o script IMATrackerInterface.brs no XML da tarefa. Dentro da tarefa, execute o seguinte:
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 FunctionOnde m.top.tracker é o objeto rastreador passado para a tarefa.
Para um exemplo de uso completo, confira os arquivos VideoScene.brs (função setupVideoWithIMA()) e imasdk.brs.