Roku でのコア再生の追跡

重要

このドキュメントでは、バージョン 2.x の SDK での追跡について説明しています。1.x バージョンの SDK を実装する場合は、1.x の開発ガイドをこちら(SDK のダウンロード)からダウンロードできます。

  1. トラッキングの初期設定

    いつユーザーが再生の意図をトリガーする(ユーザーが再生をクリックする、または自動再生がオンになる)かを識別し、MediaObject インスタンスを作成します。

    MediaObjectリファレンス:

    変数名 説明 必須
    name ビデオ名
    mediaid ビデオの一意の識別子
    length ビデオの長さ
    streamType ストリームタイプ(後述の StreamType 定数 を参照)
    mediaType メディアタイプ(後述の​MediaType 定数 を参照)

    StreamType定数:

    定数名 説明
    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定数:

    定数名 説明
    MEDIA_STREAM_TYPE_AUDIO オーディオストリームのメディアタイプ。
    MEDIA_STREAM_TYPE_VIDEO ビデオストリームのメディアタイプ。

    VOD コンテンツを含むビデオのメディア情報オブジェクトを作成します。

     mediaInfo = adb_media_init_mediainfo(
      "<MEDIA_NAME>",
      "<MEDIA_ID>",
      600,
      ADBMobile().MEDIA_STREAM_TYPE_VOD,
      ADBMobile().MEDIA_TYPE_VIDEO
    )
    

    または

    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 コンテンツを含むビデオのメディア情報オブジェクトを作成します。

    mediaInfo = adb_media_init_mediainfo(
     "<MEDIA_NAME>",
     "<MEDIA_ID>",
     600,
     ADBMobile().MEDIA_STREAM_TYPE_AOD,
     ADBMobile().MEDIA_TYPE_AUDIO
    )
    

    または

    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
    
  2. メタデータのアタッチ

    オプションで、コンテキストデータ変数を使用して標準またはカスタムメタデータオブジェクトをトラッキングセッションにアタッチします。

    • 標準メタデータ

      JavaScript での標準メタデータの実装

      メモ

      メディアオブジェクトへの標準メタデータオブジェクトのアタッチはオプションです。

    • カスタムメタデータ

      カスタム変数の変数オブジェクトを作成し、このメディアのデータを設定します。例:

      /* Set custom context data */
      var customVideoMetadata = {
          isUserLoggedIn: "false",
          tvStation: "Sample TV station",
          programmer: "Sample programmer"
      };
      
  3. 意図を追跡して再生を開始

    メディアセッションの追跡を開始するには、メディアハートビートインスタンスの trackSessionStart を呼び出します。

    mediaHeartbeat.trackSessionStart(mediaObject, customVideoMetadata);
    
    ヒント

    2 つ目の値は、手順 2 で作成した、カスタムのメディアメタデータオブジェクトの名前です。

    重要

    trackSessionStart では、再生の開始ではなく、ユーザーの再生の意図を追跡します。この API は、データ/メタデータを読み込み、開始時間の QoS 指標(trackSessionStarttrackPlay の間の時間)を見積もるために使用します。

    メモ

    カスタムメタデータを使用しない場合は、前述の iOS の例でコメントアウトされている行に示されているように、trackSessionStartdata 引数に空のオブジェクトを送信します。

  4. 実際の再生開始を追跡

    再生開始(メディアの最初のフレームが画面に表示)に関するイベントをメディアプレーヤーから識別し、trackPlay を呼び出します。

    mediaHeartbeat.trackPlay();
    
  5. 再生の完了を追跡

    再生完了(ユーザーがコンテンツを最後まで視聴)に関するイベントをメディアプレーヤーから識別し、trackComplete を呼び出します。

    mediaHeartbeat.trackComplete();
    
  6. セッションの終了を追跡

    再生のアンロード/終了(ユーザーがメディアを閉じる、またはメディアが完了してアンロードされる)に関するイベントをメディアプレーヤーから識別し、trackSessionEnd を呼び出します。

    mediaHeartbeat.trackSessionEnd();
    
    重要

    trackSessionEnd は、トラッキングセッションの終わりをマークします。セッションが最後まで適切に視聴された場合(ユーザーがコンテンツを最後まで視聴)は、trackComplete の前に trackSessionEnd を呼び出すようにしてください。trackSessionEnd の後は、他のすべての track* API 呼び出しは無視されます(新しいトラッキングセッション用の trackSessionStart を除く)。メディアの読み込みをトラッキングし、現在のセッションをアクティブに設定するメディア再生トラッキングメソッド:

    ‘ Create a media info object
    mediaInfo = adb_media_init_mediainfo()
    mediaInfo.id = <MEDIA_ID>
    mediaInfo.playhead = "0"
    mediaInfo.length = "600"
    
  7. ビデオメタデータのアタッチ

    オプションで、コンテキストデータ変数を使用して標準またはカスタムのビデオメタデータオブジェクトをビデオトラッキングセッションにアタッチします。

    • 標準のビデオメタデータ

      Roku での標準メタデータの実装

      メモ

      メディアオブジェクトへの標準のビデオメタデータオブジェクトのアタッチはオプションです。

    • カスタムメタデータ

      カスタム変数の変数オブジェクトを作成し、このビデオのデータを設定します。例:

      mediaContextData = {}
      mediaContextData["cmk1"] = "cmv1"
      mediaContextData["cmk2"] = "cmv2"
      
  8. 意図を追跡して再生を開始

    メディアセッションの追跡を開始するには、メディアハートビートインスタンスの trackSessionStart を呼び出します。

    ADBMobile().mediaTrackSessionStart(mediaInfo,mediaContextData)
    
    ヒント

    2 つ目の値は、手順 2 で作成した、カスタムのビデオメタデータオブジェクトの名前です。

    重要

    trackSessionStart では、再生の開始ではなく、ユーザーの再生の意図を追跡します。この API は、ビデオのデータ/メタデータを読み込み、開始時間の QoS 指標(trackSessionStarttrackPlay の間の時間)を見積もるために使用します。

    メモ

    カスタムのビデオメタデータを使用しない場合は、前述の iOS の例でコメントアウトされている行に示されているように、trackSessionStartdata 引数に空のオブジェクトを送信します。

  9. 実際の再生開始を追跡

    ビデオの再生開始(ビデオの最初のフレームが画面に表示)に関するイベントをビデオプレーヤーから識別し、trackPlay () を呼び出します。

    ADBMobile().mediaTrackPlay()
    
  10. 再生の完了を追跡

    ビデオの再生完了(ユーザーがコンテンツを最後まで視聴)に関するイベントをビデオプレーヤーから識別し、trackComplete () を呼び出します。

    ADBMobile().mediaTrackComplete()
    
  11. セッションの終了を追跡

    ビデオ再生のアンロード/終了(ユーザーがビデオを閉じる、またはビデオの再生が完了してアンロードされる)に関するイベントをビデオプレーヤーから識別し、trackSessionEnd () を呼び出します。

    ADBMobile().mediaTrackSessionEnd()
    
    重要

    trackSessionEnd は、ビデオトラッキングセッションの終わりをマークします。セッションが最後まで適切に視聴された場合(ユーザーがコンテンツを最後まで視聴)は、trackComplete の前に trackSessionEnd を呼び出すようにしてください。trackSessionEnd の後は、他のすべての track* API 呼び出しは無視されます(新しいビデオトラッキングセッション用の trackSessionStart を除く)。

  12. 考えられるすべての一時停止シナリオを追跡

    ビデオの一時停止に関するイベントをビデオプレーヤーから識別し、trackPause を呼び出します。

    ADBMobile().mediaTrackPause()
    

    一時停止のシナリオ

    ビデオプレーヤーが一時停止するあらゆるシナリオを識別して、trackPause が適切に呼び出されるようにします。以下のシナリオでは、アプリで trackPause() () を呼び出す必要があります。

    • アプリ内でユーザーが明示的に一時停止をクリックする。
    • プレーヤー自体が一時停止状態になる。
    • モバイルアプリケーション)- ユーザーがアプリケーションをバックグラウンドに移行した場合でも、アプリケーションのセッションを開いたままにしておきたい。
    • モバイルアプリケーション)- 何らかのシステムの割り込みが生じ、アプリケーションがバックグラウンドに移行する。例:ユーザーに電話がかかってきた場合や、別のアプリケーションのポップアップが表示された場合でも、アプリケーションのセッションを終了せず、ユーザーが中断した場所からビデオを再開できるようにしたい。
  13. 一時停止からのビデオ再生およびビデオ再開に関するイベントをプレーヤーから識別し、trackPlay を呼び出します。

    ADBMobile().mediaTrackPlay()
    
    ヒント

    これは、手順 4 で使用したのと同じイベントソースである可能性があります。ビデオ再生が再開される際に、各 trackPause() API 呼び出しが後続の trackPlay() API 呼び出しと対になっていることを確認します。

  • トラッキングのシナリオ:広告のない VOD 再生
  • Roku SDK に含まれている、追跡の完全な例を示すサンプルプレーヤー

このページ

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free