iOS でのコア再生の追跡 track-core-playback-on-ios

このドキュメントでは、バージョン 2.x の SDK でのトラッキングについて説明しています。

IMPORTANT
1.x バージョンの SDK を実装する場合は、1.x の開発ガイドをこちら(SDK のダウンロード)からダウンロードできます。
  1. トラッキングの初期設定

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

    createMediaObjectWithName API

    table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3
    変数名 説明 必須
    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
    定数名 説明
    ADBMediaHeartbeatStreamTypeVOD ビデオオンデマンドのストリームタイプ
    ADBMediaHeartbeatStreamTypeLIVE Live コンテンツのストリームタイプ
    ADBMediaHeartbeatStreamTypeLINEAR Linear コンテンツのストリームタイプ
    ADBMediaHeartbeatStreamTypeAOD オーディオオンデマンドのストリームタイプ。
    ADBMediaHeartbeatStreamTypeAUDIOBOOK オーディオブックのストリームタイプ。
    ADBMediaHeartbeatStreamTypePODCAST ポッドキャストのストリームタイプ。

    MediaType定数:

    table 0-row-2 1-row-2 2-row-2
    定数名 説明
    ADBMediaTypeAudio オーディオストリームのメディアタイプ。
    ADBMediaTypeVideo ビデオストリームのメディアタイプ。

    MediaObject を作成するための一般的な形式:

    code language-none
    ADBMediaObject *mediaObject =
      [ADBMediaHeartbeat createMediaObjectWithName:<MEDIA_NAME>
                                           mediaId:<MEDIA_ID>
                                            length:<MEDIA_LENGTH>
                                        streamType:<STREAM_TYPE>
                                         mediaType: <MEDIA_TYPE>];
    
  2. ビデオメタデータのアタッチ

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

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

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

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

      code language-none
      NSMutableDictionary *videoMetadata = [[NSMutableDictionary alloc] init];
      [videoMetadata setObject:@"false" forKey:@"isUserLoggedIn"];
      [videoMetadata setObject:@"Sample TV station" forKey:@"tvStation"];
      
  3. 意図を追跡して再生を開始

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

    note tip
    TIP
    2 つ目の値は、手順 2 で作成した、カスタムのビデオメタデータオブジェクトの名前です。
    code language-none
    - (void)onMainVideoLoaded:(NSNotification *)notification {
    //    [_mediaHeartbeat trackSessionStart:mediaObject data:nil];
        [_mediaHeartbeat trackSessionStart:mediaObject data:videoMetadata];
    }
    
    note important
    IMPORTANT
    trackSessionStart では、再生の開始ではなく、ユーザーの再生の意図を追跡します。この API は、ビデオのデータ/メタデータを読み込み、開始時間の QoS 指標(trackSessionStarttrackPlay の間の時間)を見積もるために使用します。
    note note
    NOTE
    カスタムのビデオメタデータを使用しない場合は、前述の iOS の例でコメントアウトされている行に示されているように、trackSessionStartdata 引数に空のオブジェクトを送信します。
  4. 実際の再生開始を追跡

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

    code language-none
    - (void)onVideoPlay:(NSNotification *)notification {
        [_mediaHeartbeat trackPlay];
    }
    
  5. 再生の完了を追跡

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

    code language-none
    - (void)onVideoComplete:(NSNotification *)notification {
        [_mediaHeartbeat trackComplete];
    }
    
  6. セッションの終了を追跡

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

    code language-none
    - void)onMainVideoUnloaded:(NSNotification *)notification {
        [_mediaHeartbeat trackSessionEnd];
    }
    
    note important
    IMPORTANT
    trackSessionEnd は、ビデオトラッキングセッションの終わりをマークします。セッションが最後まで適切に視聴された場合(ユーザーがコンテンツを最後まで視聴)は、trackComplete の前に trackSessionEnd を呼び出すようにしてください。trackSessionEnd の後は、他のすべての track* API 呼び出しは無視されます(新しいビデオトラッキングセッション用の trackSessionStart を除く)。
  7. 考えられるすべての一時停止シナリオを追跡

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

    code language-none
    - (void)onVideoPause:(NSNotification *)notification {
        [_mediaHeartbeat trackPause];
    }
    

    一時停止のシナリオ

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

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

    code language-none
    - (void)onVideoPlay:(NSNotification *)notification {
        [_mediaHeartbeat trackPlay];
    }
    
    note tip
    TIP
    これは、手順 4 で使用したのと同じイベントソースである可能性があります。ビデオ再生が再開される際に、各 trackPause() API 呼び出しが後続の trackPlay() API 呼び出しと対になっていることを確認します。

コア再生の追跡に関する追加情報については、以下を参照してください。

  • トラッキングのシナリオ:広告のない VOD 再生
  • iOS SDK に含まれている、追跡の完全な例を示すサンプルプレーヤー
recommendation-more-help
c8eee520-cef5-4f8c-a38a-d4952cfae4eb