マイルストーンビデオ測定を使用した iOS でのビデオ測定に関する情報を以下に示します。
ビデオの再生中に、頻繁な「ハートビート」コールが送信され、再生時間を測定します。これらのハートビート呼び出しは、10 秒ごとに送信されるので、ビデオエンゲージメント指標やビデオフォールアウトレポートがより正確になります。詳しくは、「Adobe Analytics でのオーディオとビデオの測定」を参照してください。
ビデオを測定する一般的なプロセスは、どのプラットフォームでも同様です。ここでは、開発者タスクの基本的な概要とコードサンプルを提示します。
次の表に、Analytics に送信されるメディアデータのリストを示します。処理ルールを使用して、コンテキストデータを Analytics 変数にマッピングします。
a.media.name
(必須)訪問者がビデオを何らかの方法で表示した場合に、実装で指定されているビデオの名前を収集します。この変数に分類を追加できます。
(オプション)カスタムインサイト変数はビデオパス情報を提供します。
a.media.name
(オプション)ビデオパス情報を提供します。この変数に対して、サポートでパスを有効にする必要があります。
a.media.segment
(必須)セグメント名や、ビデオ内でのセグメントの発生順序を含め、ビデオセグメントデータを収集します。この変数を入力するには、プレーヤーイベントを自動的に追跡する場合に segmentByMilestones
変数を有効にするか、プレーヤーイベントを手動で追跡する場合にカスタムセグメント名を設定します。例えば、訪問者がビデオの最初のセグメントを表示すると、SiteCatalyst によって 1:M:0-25
Segments eVar に次の情報が収集されます。
デフォルトのビデオデータ収集方法では、次の時点でデータが収集されます。
Analytics は、訪問者開始が視聴しているときに、最初のセグメント表示をセグメントの開始でカウントします。後続のセグメントは、セグメントの開始時に表示されます。
a.contentType
訪問者によって閲覧されたコンテンツのタイプに関するデータを収集します。ビデオ測定によって送信されるヒットには、コンテンツタイプ video
が割り当てられます。この変数は、ビデオ追跡専用に予約する必要はありません。同じ変数を使用する他のコンテンツレポートコンテンツタイプを使用することにより、異なるコンテンツのタイプでの訪問者の分布を分析できます。例えば、この変数を使用する「記事」や「製品ページ」などの値を使用して、他のコンテンツタイプにタグを付けることができます。ビデオ指標の見地からすると、コンテンツタイプを使用することで、ビデオ訪問者を識別して、ビデオのコンバージョン率を計算できます。
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];
}
}
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;
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;