Configuration de Roku 2.x pour les médias en flux continu
Adobe Media SDK 2.x pour Roku (adbmobile.brs) envoie des données de médias en flux continu depuis des canaux Roku écrits en BrightScript directement à Adobe Analytics. Il collecte également des données d’audience via Audience Manager et mesure l’engagement par le biais d’événements multimédia.
-
Conditions préalables :
- Terminez la présentation de l’implémentation pour Analytics uniquement.
- Téléchargez Media SDK for Roku.
- Incluez une API dans votre lecteur multimédia pour vous abonner aux événements du lecteur, ainsi qu’une API qui fournit des informations sur le lecteur telles que le nom du média et la position de la tête de lecture.
Installation du SDK
Le téléchargement AdobeMobileLibrary-2.*-Roku.zip contient deux composants :
adbmobile.brs: le fichier de bibliothèque. Copiez-le dans le répertoirepkg:/source/de votre canal.ADBMobileConfig.json: le fichier de configuration SDK, personnalisé pour votre application .
Pour les canaux SceneGraph, copiez également adbmobileTask.brs et adbmobileTask.xml dans votre répertoire pkg:/components/. Voir Prise en charge de SceneGraph.
Configuration d’ADBMobileConfig.json
La configuration JSON dispose d’une clé mediaHeartbeat exclusive pour les médias en flux continu. Ajoutez des ADBMobileConfig.json à la source de votre projet et définissez les valeurs mediaHeartbeat, marketingCloud et 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 n’est pas correctement configuré, le module multimédia passe en état d’erreur et arrête l’envoi des appels de suivi. Assurez-vous que la valeur marketingCloud.org inclut @AdobeOrg.Initialiser le SDK et traiter les messages
Obtenez une instance du SDK avec ADBMobile(). Le service d’identification des visiteurs Experience Cloud génère un identifiant visiteur inclus dans tous les accès.
processMessages et processMediaMessages dans votre boucle d’événement principale toutes les 250 ms afin que le SDK envoie correctement les pings.adb = ADBMobile()
' In your main event loop, every ~250 ms:
adb.processMessages()
adb.processMediaMessages()
processMessagesprocessMediaMessagesSuivi des événements multimédia
Suivez chaque événement multimédia en appelant sa méthode SDK. Voir l’onglet Roku 2.x sur chaque page event et variable pour connaître les appels, les générateurs et les constantes exacts.
Une session type commence par créer un objet multimédia et appelle 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)
Les créateurs de adb_media_init_* globaux créent les objets de média, d’annonce, de coupure publicitaire, de chapitre et de QoS utilisés par les appels de suivi :
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)Les métadonnées standard sont transmises sous la forme d’un tableau associatif de clés a.media.* (le SDK définit également des constantes nommées telles que les MEDIA_VideoMetadataKeySHOW pour ces clés). Reportez-vous aux pages Variables pour la clé qui correspond à chaque dimension.
Configuration de l’identifiant visiteur, de la confidentialité et de la journalisation Experience Cloud
Les méthodes suivantes sur l’instance ADBMobile() gèrent l’identité, la confidentialité et le débogage :
visitorMarketingCloudID()visitorSyncIdentifiers(identifiers)setAdvertisingIdentifier(rida)getRIDA().getAllIdentifiers()setPrivacyStatus(status)adb.PRIVACY_STATUS_OPT_IN ou adb.PRIVACY_STATUS_OPT_OUT. Voir Confidentialité .getPrivacyStatus()setDebugLogging(flag)getDebugLogging()true si l’enregistrement de débogage est activé.Prise en charge de SceneGraph scenegraph
Le framework XML SceneGraph de Roku ne peut pas appeler directement les API SDK BrightScript héritées, car SDK utilise des composants (tels que des threads) qui ne sont pas disponibles pour une application SceneGraph. Pour combler cette lacune, SDK fournit un connecteur qui renvoie une instance compatible avec SceneGraph exposant les mêmes API, ainsi qu’un mécanisme de rappel pour les API qui renvoient des données.
Le pont se divise en trois parties :
adbmobileTasknœud : nœud de tâche SceneGraph qui exécute les API SDK sur un thread d’arrière-plan et renvoie les données à vos scènes.- Instance de connecteur : enveloppe toutes les API publiques héritées et communique avec le nœud
adbmobileTask. API_RESPONSEde rappel : champ observé par votre application pour recevoir des valeurs de retour des API getter.
Pour initialiser le SDK dans un canal SceneGraph :
-
Importez les
adbmobile.brsdans votre scène :code language-brightscript <script type="text/brightscript" uri="pkg:/source/adbmobile.brs" /> -
Créez le nœud
adbmobileTask, récupérez l’instance du connecteur et chargez les constantes SceneGraph :code language-brightscript m.adbmobileTask = createObject("roSGNode", "adbmobileTask") m.adbmobile = ADBMobile().getADBMobileConnectorInstance(m.adbmobileTask) m.adbmobileConstants = m.adbmobile.sceneGraphConstants() -
Enregistrez un rappel pour recevoir des objets de réponse pour les API qui renvoient des données :
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’instance de connecteur (m.adbmobile) expose les mêmes méthodes de média que le SDK hérité (mediaTrackSessionStart, mediaTrackPlay, mediaTrackPause, mediaTrackComplete, mediaTrackSessionEnd, mediaTrackError, mediaTrackEvent, mediaUpdatePlayhead et mediaUpdateQoS), de sorte que les appels affichés sur les pages d’événement et de variable fonctionnent de la même manière. Les API Setter sont appelées directement ; les API getter renvoient leurs valeurs par le biais du rappel API_RESPONSE.
Étape suivante
Une fois l’implémentation terminée, vous pouvez Configurer des rapports pour les implémentations Analytics uniquement.