Konfigurera Roku 2.x för direktuppspelande media

Adobe Media SDK 2.x for Roku (adbmobile.brs) skickar direktuppspelande mediedata från Roku-kanaler skrivna i BrightScript direkt till Adobe Analytics. Den samlar också in målgruppsdata via Audience Manager och mäter engagemanget via medieevent.

NOTE
Den här sidan innehåller endast Analytics Media SDK 2.x för Roku. För nya implementeringar rekommenderar Adobe Roku Edge SDK som gör data tillgängliga för Customer Journey Analytics, Adobe Journey Optimizer och Real-Time CDP förutom Adobe Analytics.
  • Förutsättningar:

    • Slutför implementeringsöversikten för enbart analys.
    • Hämta Media SDK för Roku.
    • Inkludera ett API i mediespelaren för att prenumerera på spelarhändelser och ett API som ger spelarinformation som medienamnet och spelhuvudets position.

Installera SDK

Hämtningen av AdobeMobileLibrary-2.*-Roku.zip innehåller två komponenter:

  • adbmobile.brs: biblioteksfilen. Kopiera den till kanalens pkg:/source/-katalog.
  • ADBMobileConfig.json: SDK konfigurationsfil, anpassad för din app.

För SceneGraph-kanaler kopierar du även adbmobileTask.brs och adbmobileTask.xml till din pkg:/components/-katalog. Se Stöd för SceneGraph.

Konfigurera ADBMobileConfig.json

Konfigurations-JSON har en exklusiv mediaHeartbeat-nyckel för direktuppspelningsmedia. Lägg till ADBMobileConfig.json i projektkällan och ange värdena mediaHeartbeat, marketingCloud och 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"
  }
}
Config-parameter
Beskrivning
server
URL för mediaspårningsslutpunkten. Se Översikt över implementering enbart för analys.
publisher
Unik identifierare för innehållsutgivaren.
channel
Namn på innehållsdistributionskanalen. Rapporterad som innehållskanal.
ssl
Anger om SSL används för att spåra anrop.
ovp
Namnet på onlineleverantören av videoplattformar.
sdkVersion
Aktuell version av din app eller SDK.
playerName
Spelarens namn. Rapporterat som Innehållsspelarens namn.
IMPORTANT
Om mediaHeartbeat är felaktigt konfigurerad försätts mediemodulen i ett feltillstånd och skickar inte längre spårningsanrop. Kontrollera att värdet marketingCloud.org innehåller @AdobeOrg.

Initiera SDK och bearbeta meddelanden

Hämta en instans av SDK med ADBMobile(). Tjänsten Experience Cloud Visitor ID genererar ett besökar-ID som ingår i alla träffar.

IMPORTANT
Anropa processMessages och processMediaMessages i din huvudhändelseslinga var 250:e ms så att SDK skickar alla meddelanden korrekt.
adb = ADBMobile()

' In your main event loop, every ~250 ms:
adb.processMessages()
adb.processMediaMessages()
Metod
Beskrivning
processMessages
Skickar köade analyshändelser till SDK.
processMediaMessages
Skickar mediahändelser i kö till SDK, inklusive automatiska ping-kommandon.

Spåra mediahändelser

Spåra varje mediahändelse genom att anropa dess SDK-metod. Exakta anrop, byggare och konstanter finns på fliken Roku 2.x på varje event - och variable -sida.

En normal session börjar med att skapa ett mediaobjekt och anropa 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)

De globala adb_media_init_*-byggarna skapar medie-, annons-, annons-, kapitel- och QoS-objekten som används av spårningsanropen:

Builder
Signatur
Media
adb_media_init_mediainfo(name, id, length, streamType, mediaType)
Annons
adb_media_init_adinfo(name, id, position, length)
Annonsbrytning
adb_media_init_adbreakinfo(name, startTime, position)
Kapitel
adb_media_init_chapterinfo(name, position, length, startTime)
QoS
adb_media_init_qosinfo(bitrate, startupTime, fps, droppedFrames)

Standardmetadata skickas som en associativ array med a.media.* nycklar (SDK definierar även namngivna konstanter som MEDIA_VideoMetadataKeySHOW för dessa nycklar). På sidorna Variabler finns en nyckel som motsvarar varje dimension.

Konfigurera Experience Cloud Visitor-ID, sekretess och loggning

Följande metoder på instansen ADBMobile() hanterar identitet, sekretess och felsökning:

Metod
Beskrivning
visitorMarketingCloudID()
Hämtar Experience Cloud ID (ECID).
visitorSyncIdentifiers(identifiers)
Anger ytterligare kund-ID för samma besökare.
setAdvertisingIdentifier(rida)
Anger Roku-ID för Advertising (RIDA). Hämta den med Roku-API:t getRIDA().
getAllIdentifiers()
Returnerar alla identifierare som lagras av SDK, inklusive Analytics, Visitor, Audience Manager och anpassade identifierare.
setPrivacyStatus(status)
Anger sekretessstatus. Skicka adb.PRIVACY_STATUS_OPT_IN eller adb.PRIVACY_STATUS_OPT_OUT. Se Sekretess.
getPrivacyStatus()
Returnerar den aktuella sekretessstatusen.
setDebugLogging(flag)
Aktiverar eller inaktiverar felsökningsloggning.
getDebugLogging()
Returnerar true om felsökningsloggning har aktiverats.

Stöd för SceneGraph scenegraph

Roku SceneGraph XML-ramverket kan inte anropa de äldre SDK-API:erna för BrightScript direkt, eftersom SDK använder komponenter (till exempel trådar) som inte är tillgängliga för en SceneGraph-app. För att överbrygga denna lucka tillhandahåller SDK en koppling som returnerar en SceneGraph-kompatibel instans som exponerar samma API:er, plus en callback-mekanism för API:er som returnerar data.

Bron består av tre delar:

  • adbmobileTasknod: en SceneGraph-aktivitetsnod som kör SDK API:er på en bakgrundstråd och returnerar data till scenerna.
  • Anslutningsinstans: kapslar in alla äldre publika API:er och kommunicerar med adbmobileTask -noden.
  • API_RESPONSEcallback: det fält som din app observerar för att ta emot returvärden från get-API:er.

Så här initierar du SDK i en SceneGraph-kanal:

  1. Importera adbmobile.brs till din scen:

    code language-brightscript
    <script type="text/brightscript" uri="pkg:/source/adbmobile.brs" />
    
  2. Skapa noden adbmobileTask, hämta anslutningsinstansen och läs in SceneGraph-konstanterna:

    code language-brightscript
    m.adbmobileTask = createObject("roSGNode", "adbmobileTask")
    m.adbmobile = ADBMobile().getADBMobileConnectorInstance(m.adbmobileTask)
    m.adbmobileConstants = m.adbmobile.sceneGraphConstants()
    
  3. Registrera ett återanrop för att ta emot svarsobjekt för API:er som returnerar data:

    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
    

Kopplingsinstansen (m.adbmobile) visar samma mediemetoder som den gamla SDK-instansen (mediaTrackSessionStart, mediaTrackPlay, mediaTrackPause, mediaTrackComplete, mediaTrackSessionEnd, mediaTrackError, mediaTrackEvent, mediaUpdatePlayhead och mediaUpdateQoS), så anropen som visas på händelse- och variabelsidorna fungerar på samma sätt. Setter-API:er anropas direkt; get-API:er returnerar sina värden via API_RESPONSE-återanropet.

Nästa steg

När implementeringen är klar kan du konfigurera rapporter för implementeringar som bara är till för analyser.

recommendation-more-help
media-analytics-help