Show Menu
TOPICS×

追跡の概要

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

プレーヤーイベント

コア再生の追跡には、メディアの読み込み、メディアの開始、メディアの一時停止およびメディアの完了の追跡が含まれます。また、必須ではありませんが、バッファーとシークの追跡もコンテンツ再生の追跡に使用されるコアコンポーネントです。ご使用のメディアプレーヤー API で、メディア SDK のトラッキングコールに対応するプレーヤーイベントを識別し、トラッキング API を呼び出すイベントハンドラーと、必須およびオプションの変数を設定するイベントハンドラーをコーディングします。

メディアの読み込み時

  • メディアオブジェクトを作成します
  • メタデータを設定します
  • trackSessionStart
    を呼び出します。例:
    trackSessionStart(mediaObject, contextData)

メディアの開始時

  • trackPlay
    を呼び出します

一時停止/再開時

  • trackPause
    を呼び出します
  • 再生が再開されたときに
    trackPlay
    を呼び出します。__

メディアの完了時

  • trackComplete
    を呼び出します

メディアの中止時

  • trackSessionEnd
    を呼び出します

スクラビングの開始時

  • trackEvent(SeekStart)
    を呼び出します

スクラビングの終了時

  • trackEvent(SeekComplete)
    を呼び出します

バッファリングの開始時

  • trackEvent(BufferStart);
    を呼び出します

バッファリングの終了時

  • trackEvent(BufferComplete);
    を呼び出します
再生ヘッドの位置は、セットアップおよび設定コードの一環として設定されます。
getCurrentPlayheadTime
について詳しくは、 概要:一般的な実装のガイドライン を参照してください。

実装方法

  1. 追跡の初期設定
    - いつユーザーが再生の意図(ユーザーが再生をクリックする、または自動再生がオンになる)をトリガーするかを識別し、メディア情報(コンテンツ名、コンテンツ ID、コンテンツの長さ、ストリームのタイプ)を使用して
    MediaObject
    インスタンスを作成します。
    MediaObject
    リファレンス:
    変数名
    説明
    必須
    name
    コンテンツ名
    mediaid
    コンテンツの一意の識別子
    length
    コンテンツの長さ
    streamType
    ストリームタイプ
    mediaType
    メディアタイプ(オーディオまたはビデオコンテンツ)
    StreamType
    定数:
    定数名
    説明
    VOD
    ビデオオンデマンドのストリームタイプ。
    LIVE
    Live コンテンツのストリームタイプ。
    LINEAR
    Linear コンテンツのストリームタイプ。
    AOD
    オーディオオンデマンドのストリームタイプ。
    AUDIOBOOK
    オーディオブックのストリームタイプ。
    PODCAST
    ポッドキャストのストリームタイプ。
    MediaType
    定数:
    定数名
    説明
    Audio
    オーディオストリームのメディアタイプ。
    Video
    ビデオストリームのメディアタイプ。
    MediaObject
    を作成するための一般的な形式は
    MediaHeartbeat.createMediaObject(<MEDIA_NAME>, <MEDIA_ID>, <MEDIA_LENGTH>, <STREAM_TYPE>, <MEDIA_TYPE>);
    です。
  2. メタデータのアタッチ
    - オプションで、コンテキストデータ変数を使用して標準またはカスタムのメタデータオブジェクトをトラッキングセッションにアタッチします。
    • 標準メタデータ -
      メディアオブジェクトへの標準メタデータオブジェクトのアタッチはオプションです。
      標準メタデータオブジェクトをインスタンス化し、必要な変数を設定して、メディアハートビートオブジェクトでメタデータオブジェクトを設定します。
      メタデータの包括的なリストについては、 オーディオおよびビデオパラメーター を参照してください。
    • カスタムメタデータ
      - カスタム変数の変数オブジェクトを作成し、このコンテンツのデータを設定します。
  3. 再生開始の意図を追跡
    - セッションの追跡を開始するには、メディアハートビートインスタンスで
    trackSessionStart
    を呼び出します。
    trackSessionStart
    では、再生の開始ではなく、ユーザーの再生の意図を追跡します。この API は、データ/メタデータを読み込み、開始時間の QoS 指標(
    trackSessionStart
    trackPlay
    の間の時間)を見積もるために使用します。
    カスタムメタデータを使用しない場合は、
    trackSessionStart
    data
    引数に空のオブジェクトを送信します。
  4. 実際の再生開始を追跡
    - 再生開始(コンテンツの最初のフレームが画面にレンダリングされる)に関するイベントをメディアプレーヤーから識別し、
    trackPlay
    を呼び出します。
  5. 再生の完了を追跡
    - 再生完了(ユーザーがコンテンツを最後まで視聴)に関するイベントをメディアプレーヤーから識別し、
    trackComplete
    を呼び出します。
  6. セッションの終了を追跡
    - 再生のアンロード/終了(ユーザーがコンテンツを閉じる、またはコンテンツが完了してアンロードされる)に関するイベントをメディアプレーヤーから識別し、
    trackSessionEnd
    を呼び出します。
    trackSessionEnd
    は、トラッキングセッションの終わりをマークします。セッションが最後まで適切に視聴された場合(ユーザーがコンテンツを最後まで視聴)は、
    trackComplete
    の前に
    trackSessionEnd
    を呼び出すようにしてください。
    trackSessionEnd
    の後は、他のすべての
    track*
    API 呼び出しは無視されます(新しいトラッキングセッション用の
    trackSessionStart
    を除く)。
  7. 考えられるすべての一時停止シナリオを追跡
    - 一時停止に関するイベントをメディアプレーヤーから識別し、
    trackPause
    を呼び出します。
    一時停止のシナリオ
    - プレーヤーが一時停止するあらゆるシナリオを識別し、
    trackPause
    が適切に呼び出されるようにします。以下のシナリオでは、アプリで
    trackPause()
    () を呼び出す必要があります。
    • アプリ内でユーザーが明示的に一時停止をクリックする。
    • プレーヤー自体が一時停止状態になる。
    • モバイルアプリ
      )- ユーザーがアプリケーションをバックグラウンドに移行した場合でも、アプリのセッションを開いたままにしておきたい。
    • モバイルアプリ
      )- 何らかのシステムの割り込みが生じ、アプリケーションがバックグラウンドに移行する。例:ユーザーに電話がかかってきた場合や、別のアプリケーションのポップアップが表示された場合でも、アプリケーションのセッションを終了せず、ユーザーが中断した場所からコンテンツを再開できるようにしたい。
  8. 一時停止からの再生および再開に関するイベントをプレーヤーから識別し、
    trackPlay
    を呼び出します。
    これは、手順 4 で使用したのと同じイベントソースである可能性があります。再生が再開される際に、各
    trackPause()
    API 呼び出しが後続の
    trackPlay()
    API 呼び出しと対になっていることを確認します。
  9. メディアプレーヤーの再生シークイベントをリッスンします。シーク開始イベント通知時に、
    SeekStart
    イベントを使用してシークを追跡します。
  10. メディアプレーヤーからのシーク完了通知時に、
    SeekComplete
    イベントを使用してシークの終わりを追跡します。
  11. メディアプレーヤーの再生バッファーイベントをリッスンし、バッファー開始イベント通知時に、
    BufferStart
    イベントを使用してバッファーを追跡します。
  12. メディアプレーヤーからのバッファー完了通知時に、
    BufferComplete
    イベントを使用してバッファーの終わりを追跡します。
次のプラットフォーム固有のトピックに記載されている各手順の例と、SDK に含まれているサンプルプレーヤーを確認してください。
再生の追跡のシンプルな例については、次の HTML5 プレーヤーでの JavaScript 2.x SDK の使用を参照してください。
/* Call on media start */ if (e.type == "play") { // Check for start of media if (!sessionStarted) { /* Set media info */ /* MediaHeartbeat.createMediaObject(<MEDIA_NAME>, <MEDIA_ID>, <MEDIA_LENGTH>, <MEDIA_STREAMTYPE>, <MEDIA_MEDIATYPE>);*/ var mediaInfo = MediaHeartbeat.createMediaObject( document.getElementsByTagName('video')[0].getAttribute("name"), document.getElementsByTagName('video')[0].getAttribute("id"), video.duration, MediaHeartbeat.StreamType.VOD); /* Set custom context data */ var customVideoMetadata = { isUserLoggedIn: "false", tvStation: "Sample TV station", programmer: "Sample programmer" }; /* Set standard video metadata */ var standardVideoMetadata = {}; standardVideoMetadata[MediaHeartbeat.VideoMetadataKeys.EPISODE] = "Sample Episode"; standardVideoMetadata[MediaHeartbeat.VideoMetadataKeys.SHOW] = "Sample Show"; mediaInfo.setValue(MediaHeartbeat.MediaObjectKey.StandardVideoMetadata, standardVideoMetadata); // Start Session this.mediaHeartbeat.trackSessionStart(mediaInfo, customVideoMetadata); // Track play this.mediaHeartbeat.trackPlay(); sessionStarted = true; } else { // Track play for resuming playack this.mediaHeartbeat.trackPlay(); } }; /* Call on video complete */ if (e.type == "ended") { console.log("video ended"); this.mediaHeartbeat.trackComplete(); this.mediaHeartbeat.trackSessionEnd(); sessionStarted = false; }; /* Call on pause */ if (e.type == "pause") { this.mediaHeartbeat.trackPause(); }; /* Call on scrub start */ if (e.type == "seeking") { this.mediaHeartbeat.trackEvent(MediaHeartbeat.Event.SeekStart); }; /* Call on scrub stop */ if (e.type == "seeked") { this.mediaHeartbeat.trackEvent(MediaHeartbeat.Event.SeekComplete); }; /* Call on buffer start */ if (e.type == “buffering”) { this.mediaHeartbeat.trackEvent(MediaHeartbeat.Event.BufferStart); }; /* Call on buffer complete */ if (e.type == “buffered”) { this.mediaHeartbeat.trackEvent(MediaHeartbeat.Event.BufferComplete); };

検証

実装の検証について詳しくは、 検証 を参照してください。