トピック×
ビデオ分析
マイルストーンビデオ測定を使用した iOS でのビデオ測定に関する情報を以下に示します。
ビデオの再生中に、頻繁な「ハートビート」コールが送信され、再生時間を測定します。これらのハートビート呼び出しは、10 秒ごとに送信されるので、ビデオエンゲージメント指標やビデオフォールアウトレポートがより正確になります。詳しくは、「
Adobe Analytics でのオーディオとビデオの測定
」を参照してください。
ビデオ測定の一般的なプロセスは、すべてのプラットフォームでほぼ同一です。このコンテンツでは、開発者のタスクに関する基本的な概要とコードサンプルを示します。
プレーヤーイベントの Analytics 変数へのマッピング
次の表に、Analytics に送信されるメディアデータのリストを示します。処理ルールを使用して、コンテキストデータを Analytics 変数にマッピングします。
- a.media.name(必須)訪問者がビデオを何らかの方法で表示したときに、実装で指定されたビデオの名前を収集します。この変数では分類を追加できます。(オプション)カスタムインサイト変数は、ビデオパス情報を提供します。
- 変数型:eVar
- デフォルトの有効期限:訪問
- カスタムインサイト(s.prop、ビデオパスに使用)
- a.media.name(オプション)ビデオパス情報を提供します。この変数に対して、カスタマーケアでパスを有効にする必要があります。
- 変数タイプ:カスタムインサイト(s.prop)
- イベントタイプ:カスタムインサイト(s.prop)
- a.media.segment(必須)セグメント名や、ビデオ内でのセグメントの発生順序を含め、ビデオセグメントデータを収集します。この変数を入力するには、プレーヤーイベントを自動的に追跡する場合に segmentByMilestones 変数を有効にするか、プレーヤーイベントを手動で追跡する場合にカスタムセグメント名を設定します。例えば、訪問者がビデオの最初のセグメントを表示すると、SiteCatalyst によって 1:M:0-25 Segments eVar に次の情報が収集されます。デフォルトのビデオデータ収集メソッドでは、次の時点のデータが収集されます。
- ビデオの開始(再生)
- セグメントの開始
- ビデオの終了(停止) Analytics は、訪問者が視聴を開始したときに最初のセグメントビューをセグメントの先頭としてカウントします。後続のセグメントビューは、セグメントの開始としてカウントされます。
- 変数型:eVar
- デフォルトの有効期限:ページビュー
- a.contentType訪問者によって閲覧されたコンテンツのタイプに関するデータを収集します。ビデオ指標によって送信されるヒットには、 video というコンテンツタイプが割り当てられます。この変数は、ビデオ追跡専用に予約する必要はありません。同じ変数を使用する他のコンテンツレポートのコンテンツタイプを使用することにより、異なるコンテンツのタイプでの訪問者の分布を分析できます。例えば、この変数を使用する「記事」や「製品ページ」などの値を使用して、他のコンテンツタイプにタグを付けることができます。ビデオ指標の見地からすると、コンテンツタイプを使用することで、ビデオ訪問者を識別して、ビデオのコンバージョン率を計算できます。
- 変数型:eVar
- デフォルトの有効期限:ページビュー
- a.media.timePlayed前回のデータ収集プロセス(イメージリクエスト)以降のビデオ視聴秒数をカウントします。
- 変数型:イベント
- タイプ:カウンター
- a.media.view訪問者がビデオの一部を視聴したことを示します。ただし、訪問者がビデオを視聴した時間や視聴した部分に関する情報は提供されません。
- 変数型:イベント
- タイプ:カウンター
- a.media.segmentView訪問者がビデオセグメントの一部を視聴したことを示します。ただし、訪問者がビデオを視聴した時間や視聴した部分に関する情報は提供されません。
- 変数型:イベント
- タイプ:カウンター
- a.media.completeユーザーがビデオを最後まで視聴したことを示します。デフォルトでは、完了イベントはビデオが終了する 1 秒前に測定されます。導入時に、表示完了と見なすビデオの終わりからの秒数を指定できます。終わりが定義されていないライブビデオや他のストリームの場合、完了を測定するカスタムポイント(一定時間の視聴後など)を指定できます。
- 変数型:イベント
- タイプ:カウンター
メディア設定の指定
ビデオの追跡に使用する設定で
ADBMediaSettings
オブジェクトを指定します。
ADBMediaSettings *mediaSettings = [ADBMobile mediaCreateSettingsWithName:MEDIA_NAME length:MEDIA_LENGTH playerName:PLAYER_NAME playerID:PLAYER_ID]; // milestone tracking. Use either standard milestones (percentage of total length) // or offset milestones (seconds elapsed from the beginning of the video) mediaSettings.milestones = @"25,50,75"; mediaSettings.segmentByMilestones = YES; mediaSettings.offsetMilestones = @"60,120"; mediaSettings.segmentByOffsetMilestones = YES; // seconds tracking - sends a hit every x seconds mediaSettings.trackSeconds = 30; // sends a hit every 30 seconds // open the video [ADBMobile mediaOpenWithSettings:mediaSettings callback:nil]; // You are now ready to play the video, for example, [movieViewController.moviePlayer play]; // Note the mediaPlay, mediaStop and mediaClose methods are called in the // event handlers described in the next section
プレーヤーイベントの追跡
ビデオの再生を測定するには、
mediaPlay
、
mediaStop
および
mediaClose
メソッドを適切なときに呼び出す必要があります。例えば、プレーヤーが一時停止した場合は
mediaStop
が呼び出され、再生が開始または再開された場合は
mediaPlay
が呼び出されます。
以下の例は、通知の設定と、ビデオを測定するメディアメソッドの呼び出しを示したものです。
// configure notifications for when the video is finished, and when the media playback state changes - (void) configureNotifications:(MPMoviePlayerController *) movieController { [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(mediaFinishedCallback:) name: MPMoviePlayerPlaybackDidFinishNotification object: movieController]; [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(mediaPlaybackChangedCallback:) name: MPMoviePlayerPlaybackStateDidChangeNotification object: movieController]; } // define your notification callbacks. - (void) mediaFinishedCallback: (NSNotification*) notification { [ADBMobile mediaClose:MEDIA_NAME];} - (void) mediaPlaybackChangedCallback: (NSNotification*) notification { MPMoviePlayerController *mediaController = notification.object; if (mediaController.playbackState == MPMoviePlaybackStatePlaying) { [ADBMobile mediaPlay:MEDIA_NAME offset: isnan(mediaController.currentPlaybackTime) ? 0.0 : mediaController.currentPlaybackTime]; } else if (mediaController.playbackState == MPMoviePlaybackStateSeekingBackward) { [ADBMobile mediaStop:MEDIA_NAME offset:mediaController.currentPlaybackTime]; } else if (mediaController.playbackState == MPMoviePlaybackStateSeekingForward) { [ADBMobile mediaStop:MEDIA_NAME offset:mediaController.currentPlaybackTime]; } else if (mediaController.playbackState == MPMoviePlaybackStatePaused) { [ADBMobile mediaStop:MEDIA_NAME offset:mediaController.currentPlaybackTime]; } else if (mediaController.playbackState == MPMoviePlaybackStateInterrupted) { [ADBMobile mediaStop:MEDIA_NAME offset:mediaController.currentPlaybackTime]; } else if (mediaController.playbackState == MPMoviePlaybackStateStopped) { [ADBMobile mediaStop:MEDIA_NAME offset:mediaController.currentPlaybackTime]; } }
クラス
クラス:ADBMediaSettings
bool segmentByMilestones; bool segmentByOffsetMilestones; double length; NSString *channel; NSString *name; NSString *playerName; NSString *playerID; NSString *milestones; NSString *offsetMilestones; NSUInteger trackSeconds; NSUInteger completeCloseOffsetThreshold; // settings used for ad tracking. For bool isMediaAd; double parentPodPosition; NSString *CPM; NSString *parentName; NSString *parentPod;
クラス:ADBMediaState
bool ad; bool clicked; bool complete; bool eventFirstTime; double length; double offset; double percent; double segmentLength; double timePlayed; double timePlayedSinceTrack; double timestamp; NSDate *openTime NSString *name NSString *playerName NSString *mediaEvent NSString *segment NSUInteger milestone NSUInteger offsetMilestone NSUInteger segmentNum NSUInteger eventType
メディア測定クラスとメソッドのリファレンス
- mediaCreateSettingsWithName:length:playerName:playerID:指定したパラメーターと共に ADBMediaSettings オブジェクトを返します。
- このメソッドの構文を次に示します。
+(ADBMediaSettings *) mediaCreateSettingsWithName:(NSString *)name length:(double)length playerName:(NSString *)playerName playerID:(NSString *)playerID;
- このメソッドのコードサンプルを次に示します。
ADBMediaSettings *myCatSettings = [ADBMobile mediaCreateSettingsWithName:@"catVideo" length:85 playerName:@"catVideoPlayer" playerID:@"catPlayerId"];
- mediaAdCreateSettingsWithName:length:playerName:parentName:parentPod:parentPodPosition:CPM:広告ビデオの追跡に使用する ADBMediaSettings オブジェクトを返します。
- このメソッドの構文を次に示します。
+ (ADBMediaSettings *) mediaAdCreateSettingsWithName:(NSString *)name length:(double)length playerName:(NSString *)playerName parentName:(NSString *)parentName parentPod:(NSString *)parentPod parentPodPosition:(double)parentPodPosition CPM:(NSString *)CPM;
- このメソッドのコードサンプルを次に示します。
ADBMediaSettings *mySettings = [ADBMobile mediaAdCreateSettingsWithName:@"ad" length:30 playerName:@"adPlayer" parentName:@"catVideo" parentPod:@"catCollection" parentPodPosition:2 CPM:nil];
- mediaOpenWithSettings:callback:追跡する ADBMediaSettings オブジェクトを開きます。
- このメソッドの構文を次に示します。
+ (void) mediaOpenWithSettings:(ADBMediaSettings *)settings callback:(void (^)(ADBMediaState *mediaState))callback;
- このメソッドのコードサンプルを次に示します。
[ADBMobile mediaOpenWithSettings:mySettings callback:^(ADBMediaState *mediaState) { // do something with media state if you want}];
- mediaClose:name という名前のメディアアイテムを閉じます。
- このメソッドの構文を次に示します。
+ (void) mediaClose:(NSString *)name;
- このメソッドのコードサンプルを次に示します。
[ADBMobile mediaClose:@"kittiesPlaying"];
- mediaPlay:offset:指定された 名前 のメディアアイテムを指定された オフセット (秒)で再生したことを記録します。
- このメソッドの構文を次に示します。
+ (void) mediaPlay:(NSString *)name offset:(double)offset;
- このメソッドのコードサンプルを次に示します。
[ADBMobile mediaPlay:@"cats" offset:25];
- mediaComplete:offset:指定された オフセット でメディアアイテムが再生完了されたことを手動で記録します。
- このメソッドの構文を次に示します。
+ (void) mediaComplete:(NSString *)name offset:(double)offset;
- このメソッドのコードサンプルを次に示します。
[ADBMobile mediaComplete:@"meowzah" offset:90];
- mediaStop:offset:指定された offset でビデオが停止または一時停止されたことを記録します。
- このメソッドの構文を次に示します。
+ (void) mediaStop:(NSString *)name offset:(double)offset;
- このメソッドのコードサンプルを次に示します。
[ADBMobile mediaStop:@"toonses" offset:30];
- mediaClick:offset:メディアアイテムがクリックされたことを記録します。
- このメソッドの構文を次に示します。
+ (void) mediaClick:(NSString *)name offset:(double)offset;
- このメソッドのコードサンプルを次に示します。
[ADBMobile mediaClick:@"soManyCats" offset:47];
- mediaTrack:withData:現在のメディア状態をトラックアクション呼び出し(ページビューがカウントされない方式)で送信します。
- このメソッドの構文を次に示します。
+ (void) mediaTrack:(NSString *)name withData:(NSDictionary *)data;