ストリーミングメディア用にRoku 2.xを設定する
Roku (adbmobile.brs)用Adobe Media SDK 2.xは、BrightScriptで記述されたRoku チャンネルからストリーミングメディアデータをAdobe Analyticsに直接送信します。 また、Adobe Audience Managerを通じてオーディエンスデータを収集し、メディアイベントを通じてエンゲージメントを測定します。
-
前提条件:
- Analyticsのみの実装の概要を完了します。
- RokuのMedia SDKをダウンロードします。
- メディアプレーヤーに、プレイヤーイベントを登録するためのAPIと、メディア名や再生ヘッドの位置などのプレーヤー情報を提供するAPIを含めます。
SDK のインストール
AdobeMobileLibrary-2.*-Roku.zip ダウンロードには、次の2つのコンポーネントが含まれています。
adbmobile.brs: ライブラリファイル。 チャンネルのpkg:/source/ディレクトリにコピーします。ADBMobileConfig.json: アプリ用にカスタマイズされたSDK設定ファイル。
SceneGraph チャネルの場合は、adbmobileTask.brsとadbmobileTask.xmlをpkg:/components/ ディレクトリにコピーします。 SceneGraph サポート を参照してください。
ADBMobileConfig.jsonの設定
設定JSONには、ストリーミングメディア用の排他的なmediaHeartbeat キーがあります。 プロジェクトソースにADBMobileConfig.jsonを追加し、mediaHeartbeat、marketingCloud、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が正しく設定されていない場合、メディアモジュールはエラー状態になり、トラッキング呼び出しの送信を停止します。 marketingCloud.orgの値に@AdobeOrgが含まれていることを確認してください。SDKの初期化とメッセージの処理
ADBMobile()のSDKのインスタンスを取得します。 Experience Cloud Visitor ID サービスは、すべてのヒットに含まれる訪問者IDを生成します。
processMessagesとprocessMediaMessagesを250 ミリ秒ごとに呼び出して、SDKがPingを適切に送信します。adb = ADBMobile()
' In your main event loop, every ~250 ms:
adb.processMessages()
adb.processMediaMessages()
processMessagesprocessMediaMessagesメディアイベントの追跡
SDK メソッドを呼び出して、各メディアイベントをトラッキングします。 正確な呼び出し、ビルダー、定数については、各 イベント および変数 ページのRoku 2.x タブを参照してください。
一般的なセッションは、メディアオブジェクトを作成し、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)
グローバル adb_media_init_* ビルダーは、トラッキング呼び出しで使用されるメディア、広告、広告区切り、章、およびQoS オブジェクトを作成します。
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)標準メタデータは、a.media.*個のキーの連想配列として渡されます(SDKでは、これらのキーにMEDIA_VideoMetadataKeySHOWなどの名前付き定数も定義されています)。 各ディメンションに対応するキーについては、変数 ページを参照してください。
Experience Cloud訪問者ID、プライバシー、ログの設定
ADBMobile() インスタンスの次のメソッドは、ID、プライバシー、デバッグを管理します。
visitorMarketingCloudID()visitorSyncIdentifiers(identifiers)setAdvertisingIdentifier(rida)getRIDA() APIで取得します。getAllIdentifiers()setPrivacyStatus(status)getPrivacyStatus()setDebugLogging(flag)getDebugLogging()trueを返します。SceneGraph サポート scenegraph
Roku SceneGraph XML フレームワークは、従来のBrightScript SDK APIを直接呼び出すことはできません。これは、SDKがSceneGraph アプリで使用できないコンポーネント(スレッドなど)を使用しているためです。 このギャップを埋めるために、SDKは、同じAPIを公開するSceneGraph互換のインスタンスを返すコネクタと、データを返すAPIのコールバックメカニズムを提供します。
橋は3つの部分で構成されている:
adbmobileTasknode: バックグラウンド スレッドでSDK APIを実行し、シーンにデータを返すSceneGraph タスク ノード。- コネクタインスタンス:すべてのレガシー公開APIをラップし、
adbmobileTaskノードと通信します。 API_RESPONSEコールバック: アプリが取得APIから戻り値を受信するために監視するフィールド。
SceneGraph チャネルでSDKを初期化するには:
-
シーンに
adbmobile.brsを読み込む:code language-brightscript <script type="text/brightscript" uri="pkg:/source/adbmobile.brs" /> -
adbmobileTaskノードを作成し、コネクタインスタンスを取得し、SceneGraph定数を読み込みます。code language-brightscript m.adbmobileTask = createObject("roSGNode", "adbmobileTask") m.adbmobile = ADBMobile().getADBMobileConnectorInstance(m.adbmobileTask) m.adbmobileConstants = m.adbmobile.sceneGraphConstants() -
データを返すAPIの応答オブジェクトを受信するコールバックを登録します。
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
コネクタインスタンス (m.adbmobile)は、従来のSDK (mediaTrackSessionStart、mediaTrackPlay、mediaTrackPause、mediaTrackComplete、mediaTrackSessionEnd、mediaTrackError、mediaTrackEvent、mediaUpdatePlayhead、およびmediaUpdateQoS)と同じメディアメソッドを公開するため、イベントページとバリアブルページに表示される呼び出しは同じように機能します。 Setter APIは直接呼び出されます。getter APIは、API_RESPONSE コールバックを通じて値を返します。