Show Menu
トピック×

iOS でのコア再生の追跡

このドキュメントでは、バージョン 2.x の SDK での追跡について説明しています。1.x バージョンの SDK を実装する場合は、1.x の開発ガイドをこちら( SDK のダウンロード )からダウンロードできます。
  1. 追跡の初期設定
    いつユーザーが再生の意図をトリガーする(ユーザーが再生をクリックする、または自動再生がオンになる)かを識別し、 MediaObject インスタンスを作成します。
    変数名
    説明
    必須
    name
    ビデオ名
    mediaid
    ビデオの一意の識別子
    length
    ビデオの長さ
    streamType
    ストリームタイプ(後述の StreamType 定数 を参照)
    mediaType
    メディアタイプ(後述の​ MediaType 定数 を参照)
    StreamType 定数:
    定数名
    説明
    ADBMediaHeartbeatStreamTypeVOD
    ビデオオンデマンドのストリームタイプ
    ADBMediaHeartbeatStreamTypeLIVE
    Live コンテンツのストリームタイプ
    ADBMediaHeartbeatStreamTypeLINEAR
    Linear コンテンツのストリームタイプ
    ADBMediaHeartbeatStreamTypeAOD
    オーディオオンデマンドのストリームタイプ。
    ADBMediaHeartbeatStreamTypeAUDIOBOOK
    オーディオブックのストリームタイプ。
    ADBMediaHeartbeatStreamTypePODCAST
    ポッドキャストのストリームタイプ。
    MediaType 定数:
    定数名
    説明
    ADBMediaTypeAudio
    オーディオストリームのメディアタイプ。
    ADBMediaTypeVideo
    ビデオストリームのメディアタイプ。
    MediaObject を作成するための一般的な形式:
    ADBMediaObject *mediaObject =  
      [ADBMediaHeartbeat createMediaObjectWithName:<MEDIA_NAME> 
                                           mediaId:<MEDIA_ID> 
                                            length:<MEDIA_LENGTH>                       
                                        streamType:<STREAM_TYPE> 
                                         mediaType: <MEDIA_TYPE>];
    
    
  2. ビデオメタデータのアタッチ
    オプションで、コンテキストデータ変数を使用して標準またはカスタムのビデオメタデータオブジェクトをビデオトラッキングセッションにアタッチします。
    • 標準のビデオメタデータ
      メディアオブジェクトへの標準のビデオメタデータオブジェクトのアタッチはオプションです。
    • カスタムメタデータ
      カスタム変数の変数オブジェクトを作成し、このビデオのデータを設定します。例:
      NSMutableDictionary *videoMetadata = [[NSMutableDictionary alloc] init]; 
      [videoMetadata setObject:@"false" forKey:@"isUserLoggedIn"]; 
      [videoMetadata setObject:@"Sample TV station" forKey:@"tvStation"];
      
      
  3. 意図を追跡して再生を開始
    メディアセッションの追跡を開始するには、メディアハートビートインスタンスの trackSessionStart を呼び出します。
    2 つ目の値は、手順 2 で作成した、カスタムのビデオメタデータオブジェクトの名前です。
    - (void)onMainVideoLoaded:(NSNotification *)notification { 
    //    [_mediaHeartbeat trackSessionStart:mediaObject data:nil]; 
        [_mediaHeartbeat trackSessionStart:mediaObject data:videoMetadata]; 
    }
    
    
    trackSessionStart では、再生の開始ではなく、ユーザーの再生の意図を追跡します。この API は、ビデオのデータ/メタデータを読み込み、開始時間の QoS 指標( trackSessionStart trackPlay の間の時間)を見積もるために使用します。
    カスタムのビデオメタデータを使用しない場合は、前述の iOS の例でコメントアウトされている行に示されているように、 trackSessionStart data 引数に空のオブジェクトを送信します。
  4. 実際の再生開始を追跡
    ビデオの再生開始(ビデオの最初のフレームが画面に表示)に関するイベントをビデオプレーヤーから識別し、 trackPlay () を呼び出します。
    - (void)onVideoPlay:(NSNotification *)notification { 
        [_mediaHeartbeat trackPlay]; 
    }
    
    
  5. 再生の完了を追跡
    ビデオの再生完了(ユーザーがコンテンツを最後まで視聴)に関するイベントをビデオプレーヤーから識別し、 trackComplete () を呼び出します。
    - (void)onVideoComplete:(NSNotification *)notification { 
        [_mediaHeartbeat trackComplete]; 
    }
    
    
  6. セッションの終了を追跡
    ビデオ再生のアンロード/終了(ユーザーがビデオを閉じる、またはビデオの再生が完了してアンロードされる)に関するイベントをビデオプレーヤーから識別し、 trackSessionEnd () を呼び出します。
    - void)onMainVideoUnloaded:(NSNotification *)notification { 
        [_mediaHeartbeat trackSessionEnd]; 
    }
    
    
    trackSessionEnd は、ビデオトラッキングセッションの終わりをマークします。セッションが最後まで適切に視聴された場合(ユーザーがコンテンツを最後まで視聴)は、 trackComplete の前に trackSessionEnd を呼び出すようにしてください。 trackSessionEnd の後は、他のすべての track* API 呼び出しは無視されます(新しいビデオトラッキングセッション用の trackSessionStart を除く)。
  7. 考えられるすべての一時停止シナリオを追跡
    ビデオの一時停止に関するイベントをビデオプレーヤーから識別し、 trackPause を呼び出します。
    - (void)onVideoPause:(NSNotification *)notification { 
        [_mediaHeartbeat trackPause]; 
    }
    
    
    一時停止のシナリオ
    ビデオプレーヤーが一時停止するあらゆるシナリオを識別して、 trackPause が適切に呼び出されるようにします。以下のシナリオでは、アプリで trackPause() () を呼び出す必要があります。
    • アプリ内でユーザーが明示的に一時停止をクリックする。
    • プレーヤー自体が一時停止状態になる。
    • モバイルアプリ )- ユーザーがアプリケーションをバックグラウンドに移行した場合でも、アプリのセッションを開いたままにしておきたい。
    • モバイルアプリ )- 何らかのシステムの割り込みが生じ、アプリケーションがバックグラウンドに移行する。例:ユーザーに電話がかかってきた場合や、別のアプリケーションのポップアップが表示された場合でも、アプリケーションのセッションを終了せず、ユーザーが中断した場所からビデオを再開できるようにしたい。
  8. 一時停止からのビデオ再生およびビデオ再開に関するイベントをプレーヤーから識別し、 trackPlay を呼び出します。
    - (void)onVideoPlay:(NSNotification *)notification { 
        [_mediaHeartbeat trackPlay]; 
    }
    
    
    これは、手順 4 で使用したのと同じイベントソースである可能性があります。ビデオ再生が再開される際に、各 trackPause() API 呼び出しが後続の trackPlay() API 呼び出しと対になっていることを確認します。
コア再生の追跡に関する追加情報については、以下を参照してください。
  • 追跡シナリオ: 広告のない VOD 再生
  • iOS SDK に含まれている、追跡の完全な例を示すサンプルプレーヤー