Configurare Roku 2.x per contenuti multimediali in streaming
Adobe Media SDK 2.x per Roku (adbmobile.brs) invia i dati multimediali in streaming dai canali Roku scritti in BrightScript direttamente ad Adobe Analytics. Raccoglie inoltre dati sul pubblico tramite Audience Manager e misura il coinvolgimento attraverso gli eventi multimediali.
-
Prerequisiti:
- Completa la Panoramica sull’implementazione di sola Analytics.
- Scarica Media SDK per Roku.
- Includi un’API nel lettore multimediale per abbonarti agli eventi del lettore e un’API che fornisce informazioni sul lettore come il nome del file multimediale e la posizione della testina di riproduzione.
Installare SDK
Il download di AdobeMobileLibrary-2.*-Roku.zip contiene due componenti:
adbmobile.brs: il file di libreria. Copiarlo nella directorypkg:/source/del tuo canale.ADBMobileConfig.json: file di configurazione di SDK personalizzato per l’app.
Per i canali di SceneGraph, copiare anche adbmobileTask.brs e adbmobileTask.xml nella directory pkg:/components/. Consulta Supporto di SceneGraph.
Configurare ADBMobileConfig.json
Il JSON di configurazione ha una chiave mediaHeartbeat esclusiva per lo streaming multimediale. Aggiungi ADBMobileConfig.json all’origine del progetto e imposta i valori mediaHeartbeat, marketingCloud e analytics:
{
"analytics": {
"rsids": "your-report-suite-id",
"server": "your-analytics-server"
},
"marketingCloud": {
"org": "YOUR-MCORG-ID@AdobeOrg"
},
"mediaHeartbeat": {
"server": "your-namespace.hb-api.omtrdc.net",
"publisher": "your-publisher-id",
"channel": "sample-channel",
"ssl": true,
"ovp": "sample-ovp",
"sdkVersion": "sample-sdk",
"playerName": "Roku Player"
}
}
serverpublisherchannelsslovpsdkVersionplayerNamemediaHeartbeat non è configurato correttamente, il modulo multimediale immette uno stato di errore e interrompe l'invio di chiamate di tracciamento. Assicurarsi che il valore marketingCloud.org includa @AdobeOrg.Inizializzare SDK ed elaborare i messaggi
Ottieni un’istanza di SDK con ADBMobile(). Il servizio ID visitatore di Experience Cloud genera un ID visitatore incluso in tutti gli hit.
processMessages e processMediaMessages nel ciclo dell'evento principale ogni 250 ms in modo che SDK invii i ping correttamente.adb = ADBMobile()
' In your main event loop, every ~250 ms:
adb.processMessages()
adb.processMediaMessages()
processMessagesprocessMediaMessagesTracciare gli eventi multimediali
Traccia ogni evento multimediale chiamando il relativo metodo SDK. Consulta la scheda Roku 2.x su ogni pagina event e variable per informazioni sulle chiamate, i generatori e le costanti esatte.
Una sessione tipica inizia con la creazione di un oggetto multimediale e la chiamata a mediaTrackSessionStart:
adb = ADBMobile()
mediaInfo = adb_media_init_mediainfo("Mr. Robot", "video-123", 128.0, adb.MEDIA_STREAM_TYPE_VOD, adb.MEDIA_TYPE_VIDEO)
contextData = { "a.media.show": "Mr. Robot" }
adb.mediaTrackSessionStart(mediaInfo, contextData)
I generatori di adb_media_init_* globali creano gli oggetti multimediali, ad, ad-break, chapter e QoS utilizzati dalle chiamate di tracciamento:
adb_media_init_mediainfo(name, id, length, streamType, mediaType)adb_media_init_adinfo(name, id, position, length)adb_media_init_adbreakinfo(name, startTime, position)adb_media_init_chapterinfo(name, position, length, startTime)adb_media_init_qosinfo(bitrate, startupTime, fps, droppedFrames)I metadati standard vengono passati come array associativo di a.media.* chiavi (SDK definisce anche costanti denominate come MEDIA_VideoMetadataKeySHOW per queste chiavi). Consulta le pagine Variabili per la chiave corrispondente a ciascuna dimensione.
Configurare l’ID visitatore di Experience Cloud, la privacy e la registrazione
I metodi seguenti nell’istanza ADBMobile() gestiscono l’identità, la privacy e il debug:
visitorMarketingCloudID()visitorSyncIdentifiers(identifiers)setAdvertisingIdentifier(rida)getRIDA().getAllIdentifiers()setPrivacyStatus(status)adb.PRIVACY_STATUS_OPT_IN o adb.PRIVACY_STATUS_OPT_OUT. Vedi Privacy.getPrivacyStatus()setDebugLogging(flag)getDebugLogging()true se la registrazione di debug è abilitata.Supporto di SceneGraph scenegraph
Il framework XML Roku SceneGraph non può chiamare direttamente le API legacy di SDK BrightScript perché SDK utilizza componenti (come i thread) che non sono disponibili per un’app SceneGraph. Per colmare questo gap, SDK fornisce un connettore che restituisce un’istanza compatibile con SceneGraph che espone le stesse API, oltre a un meccanismo di callback per le API che restituiscono dati.
Il ponte ha tre parti:
adbmobileTasknodo: nodo attività SceneGraph che esegue API SDK su un thread in background e restituisce dati alle scene.- Istanza del connettore: esegue il wrapping di tutte le API pubbliche legacy e comunica con il nodo
adbmobileTask. - Callback
API_RESPONSE: campo osservato dall’app per ricevere i valori restituiti dalle API getter.
Per inizializzare SDK in un canale SceneGraph:
-
Importa
adbmobile.brsnella tua scena:code language-brightscript <script type="text/brightscript" uri="pkg:/source/adbmobile.brs" /> -
Crea il nodo
adbmobileTask, ottieni l’istanza del connettore e carica le costanti SceneGraph:code language-brightscript m.adbmobileTask = createObject("roSGNode", "adbmobileTask") m.adbmobile = ADBMobile().getADBMobileConnectorInstance(m.adbmobileTask) m.adbmobileConstants = m.adbmobile.sceneGraphConstants() -
Registra un callback per ricevere gli oggetti di risposta per le API che restituiscono dati:
code language-brightscript m.adbmobileTask.ObserveField(m.adbmobileConstants.API_RESPONSE, "onAdbmobileApiResponse") function onAdbmobileApiResponse() as void responseObject = m.adbmobileTask[m.adbmobileConstants.API_RESPONSE] if responseObject <> invalid methodName = responseObject.apiName retVal = responseObject.returnValue if methodName = m.adbmobileConstants.PRIVACY_STATUS print "Privacy status: " + retVal end if end if end function
L’istanza del connettore (m.adbmobile) espone gli stessi metodi multimediali del SDK legacy (mediaTrackSessionStart, mediaTrackPlay, mediaTrackPause, mediaTrackComplete, mediaTrackSessionEnd, mediaTrackError, mediaTrackEvent, mediaUpdatePlayhead e mediaUpdateQoS) in modo che le chiamate visualizzate nelle pagine evento e variabile funzionino allo stesso modo. Le API di impostazione vengono chiamate direttamente; le API di getter restituiscono i loro valori tramite il callback API_RESPONSE.
Passaggio successivo
Una volta completata l’implementazione, puoi Configurare la generazione di rapporti per le implementazioni solo Analytics.