Roku でのコア再生の追跡 track-core-playback-on-roku
このドキュメントでは、バージョン 2.x の SDK でのトラッキングについて説明しています。
-
トラッキングの初期設定
いつユーザーが再生の意図をトリガーする(ユーザーが再生をクリックする、または自動再生がオンになる)かを識別し、
MediaObject
インスタンスを作成します。MediaObject
リファレンス:table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 3-align-center 7-align-center 11-align-center 15-align-center 19-align-center 23-align-center 変数名 説明 必須 name
ビデオ名 ○ mediaid
ビデオの一意の ID ○ length
ビデオの長さ ○ streamType
ストリームタイプ(後述の StreamType 定数 を参照) ○ mediaType
メディアタイプ(後述の MediaType 定数 を参照) ○ StreamType
定数:table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 定数名 説明 MEDIA_STREAM_TYPE_VOD
ビデオオンデマンドのストリームタイプ。 MEDIA_STREAM_TYPE_LIVE
LIVE コンテンツのストリームタイプ。 MEDIA_STREAM_TYPE_LINEAR
LINEAR コンテンツのストリームタイプ。 MEDIA_STREAM_TYPE_AOD
オーディオオンデマンドのストリームタイプ。 MEDIA_STREAM_TYPE_AUDIOBOOK
オーディオブックのストリームタイプ。 MEDIA_STREAM_TYPE_PODCAST
ポッドキャストのストリームタイプ。 MediaType
定数:table 0-row-2 1-row-2 2-row-2 定数名 説明 MEDIA_STREAM_TYPE_AUDIO
オーディオストリームのメディアタイプ。 MEDIA_STREAM_TYPE_VIDEO
ビデオストリームのメディアタイプ。 VOD コンテンツを含むビデオのメディア情報オブジェクトを作成します。
code language-none mediaInfo = adb_media_init_mediainfo( "<MEDIA_NAME>", "<MEDIA_ID>", 600, ADBMobile().MEDIA_STREAM_TYPE_VOD, ADBMobile().MEDIA_TYPE_VIDEO )
または
code language-none mediaInfo = adb_media_init_mediainfo() mediaInfo.name = "<MEDIA_NAME>" mediaInfo.id = "<MEDIA_ID>" mediaInfo.length = 600 mediaInfo.streamType = ADBMobile().MEDIA_STREAM_TYPE_VOD mediaInfo.mediaType = ADBMobile().MEDIA_TYPE_VIDEO
AOD コンテンツを含むビデオのメディア情報オブジェクトを作成します。
code language-none mediaInfo = adb_media_init_mediainfo( "<MEDIA_NAME>", "<MEDIA_ID>", 600, ADBMobile().MEDIA_STREAM_TYPE_AOD, ADBMobile().MEDIA_TYPE_AUDIO )
または
code language-none mediaInfo = adb_media_init_mediainfo() mediaInfo.name = "<MEDIA_NAME>" mediaInfo.id = "<MEDIA_ID>" mediaInfo.length = 600 mediaInfo.streamType = ADBMobile().MEDIA_STREAM_TYPE_AOD mediaInfo.mediaType = ADBMobile().MEDIA_TYPE_AUDIO
-
メタデータのアタッチ
オプションで、コンテキストデータ変数を使用して標準またはカスタムメタデータオブジェクトをトラッキングセッションにアタッチします。
- 標準メタデータ
<div class="extension note">
<div>NOTE</div>
<div>
<p>メディアオブジェクトへの標準のビデオメタデータオブジェクトのアタッチはオプションです。</p>
</div>
</div>
-
カスタムメタデータ
カスタム変数の変数オブジェクトを作成し、このビデオのデータを設定します。次に例を示します。
code language-none mediaContextData = {} mediaContextData["cmk1"] = "cmv1" mediaContextData["cmk2"] = "cmv2"
-
意図を追跡して再生を開始
メディアセッションの追跡を開始するには、メディアハートビートインスタンスの
trackSessionStart
を呼び出します。code language-none ADBMobile().mediaTrackSessionStart(mediaInfo,mediaContextData)
note tip TIP 2 つ目の値は、手順 2 で作成した、カスタムのビデオメタデータオブジェクトの名前です。 note important IMPORTANT trackSessionStart
では、再生の開始ではなく、ユーザーの再生の意図を追跡します。この API は、ビデオのデータ/メタデータを読み込み、開始時間の QoS 指標(trackSessionStart
とtrackPlay
の間の時間)を見積もるために使用します。note note NOTE カスタムのビデオメタデータを使用しない場合は、前述の iOS の例でコメントアウトされている行に示されているように、 trackSessionStart
のdata
引数に空のオブジェクトを送信します。 -
実際の再生開始を追跡
ビデオの再生開始(ビデオの最初のフレームが画面に表示)に関するイベントをビデオプレーヤーから識別し、
trackPlay
() を呼び出します。code language-none ADBMobile().mediaTrackPlay()
-
再生ヘッド値の更新
メディア再生ヘッドが変更されたら、
mediaUpdatePlayhead
API を呼び出して SDK に通知します。
ビデオオンデマンド(VOD)の場合、値はメディア項目の開始時からの秒数で指定されます。
ライブストリーミングでは、プレーヤーがコンテンツのデュレーションに関する情報を提供しない場合、その日の午前 0 時(UTC)からの秒数を指定できます。code language-none ADBMobile().mediaUpdatePlayhead(position)
note note NOTE mediaUpdatePlayhead
API を呼び出す際は、次の点を考慮してください。- プログレスマーカーを使用する場合、コンテンツのデュレーションが必要です。また、再生ヘッドはメディアアイテムの開始時からの(0 から始まる)秒数で更新する必要があります。
- Media SDK を使用する場合は、
mediaUpdatePlayhead
API を 1 秒に 1 回以上呼び出す必要があります。
-
再生の完了を追跡
ビデオの再生完了(ユーザーがコンテンツを最後まで視聴)に関するイベントをビデオプレーヤーから識別し、
trackComplete
() を呼び出します。code language-none ADBMobile().mediaTrackComplete()
-
セッションの終了を追跡
ビデオ再生のアンロード/終了(ユーザーがビデオを閉じる、またはビデオの再生が完了してアンロードされる)に関するイベントをビデオプレーヤーから識別し、
trackSessionEnd
() を呼び出します。code language-none ADBMobile().mediaTrackSessionEnd()
note important IMPORTANT trackSessionEnd
は、ビデオトラッキングセッションの終わりをマークします。セッションが最後まで適切に視聴された場合(ユーザーがコンテンツを最後まで視聴)は、trackComplete
の前にtrackSessionEnd
を呼び出すようにしてください。trackSessionEnd
の後は、他のすべてのtrack*
API 呼び出しは無視されます(新しいビデオトラッキングセッション用のtrackSessionStart
を除く)。 -
考えられるすべての一時停止シナリオを追跡
ビデオの一時停止に関するイベントをビデオプレーヤーから識別し、
trackPause
を呼び出します。code language-none ADBMobile().mediaTrackPause()
一時停止のシナリオ
ビデオプレーヤーが一時停止するあらゆるシナリオを識別して、
trackPause
が適切に呼び出されるようにします。以下のシナリオでは、アプリでtrackPause()
() を呼び出す必要があります。- アプリ内でユーザーが明示的に一時停止をクリックする。
- プレーヤー自体が一時停止状態になる。
- (モバイルアプリケーション)- ユーザーがアプリケーションをバックグラウンドに移行した場合でも、アプリケーションのセッションを開いたままにしておきたい。
- (モバイルアプリケーション)- 何らかのシステムの割り込みが生じ、アプリケーションがバックグラウンドに移行する。例:ユーザーに電話がかかってきた場合や、別のアプリケーションのポップアップが表示された場合でも、アプリケーションのセッションを終了せず、ユーザーが中断した場所からビデオを再開できるようにしたい。
-
一時停止からのビデオ再生およびビデオ再開に関するイベントをプレーヤーから識別し、
trackPlay
を呼び出します。code language-none ADBMobile().mediaTrackPlay()
note tip TIP これは、手順 4 で使用したのと同じイベントソースである可能性があります。ビデオ再生が再開される際に、各 trackPause()
API 呼び出しが後続のtrackPlay()
API 呼び出しと対になっていることを確認します。
- トラッキングのシナリオ:広告のない VOD 再生
- Roku SDK に含まれている、追跡の完全な例を示すサンプルプレーヤー