チャプターが 1 つある VOD 再生 vod-playback-with-one-chapter

シナリオ scenario

このシナリオでは、VOD コンテンツの一部がチャプターとしてマークされています。

特に指定のない限り、このシナリオのネットワーク呼び出しは、広告のない VOD 再生シナリオの呼び出しと同じです。ネットワーク呼び出しは同時に発生しますが、ペイロードは異なります。

トリガー
ハートビートメソッド
ネットワーク呼び出し
メモ
ユーザーが​ 再生 ​をクリックする
trackSessionStart
Analytics Content Start、Heartbeat Content Start
プリロール広告があることを Measurement Library にまだ伝えていないので、これらのネットワーク呼び出しは、単一の VOD と同一です。
チャプターが開始します。
trackEvent:ChapterStart
Heartbeat Chapter Start
チャプター再生の最初のフレーム。
trackPlay
Heartbeat Content Play
メインコンテンツの前にチャプターコンテンツを再生する場合、ハートビートは、チャプターが開始する際に開始されます。
チャプターが再生されます。
Chapter Heartbeats
チャプターが完了します。
trackEvent:trackChapterComplete
Heartbeat Chapter Complete
チャプターの終わりに達したとき。
コンテンツが再生されます。
Content Heartbeats
このネットワーク呼び出しは、広告のない VOD 再生シナリオとまったく同じです。
コンテンツが完了する
trackComplete
Heartbeat Content Complete
このネットワーク呼び出しは、広告のない VOD 再生シナリオとまったく同じです。
セッションが終了します。
trackSessionEnd
SessionEnd は、表示セッションの終端に到達したことを意味します。この API は、ユーザーが最後までメディアを視聴していなくても、呼び出される必要があります。

パラメーター parameters

チャプターの再生が開始されると、Heartbeat Chapter Start 呼び出しが送信されます。チャプターの開始が 10 秒のタイマーと同時に起こらない場合、Heartbeat Chapter Start 呼び出しは、数秒間遅延され、呼び出しは次の 10 秒のインターバルに進みます。

これが発生すると、Content Heartbeat 呼び出しは同じインターバルから出ます。イベントタイプとアセットタイプを調査することで、この 2 つの違いを区別できます。

Heartbeat Chapter Start

パラメーター
メモ
s:event:type
"chapter_start"
s:asset:type
"main"
s:stream:chapter_*
チャプターデータに特有のストリーム情報。
s:meta:*
特有のコンテキストデータのあるチャプター。

チャプターが途中にある場合のサンプルコード sample-code-chapter-in-the-middle

このシナリオでは、VOD コンテンツの一部がチャプターです。

Android

Android でこのシナリオを表示するには、以下のコードを設定します。

// Set up mediaObject
MediaObject mediaInfo = MediaHeartbeat.createMediaObject(
  Configuration.MEDIA_NAME,
  Configuration.MEDIA_ID,
  Configuration.MEDIA_LENGTH,
  MediaHeartbeat.StreamType.VOD
);

HashMap<String, String> mediaMetadata = new HashMap<String, String>();
mediaMetadata.put(CUSTOM_KEY_1, CUSTOM_VAL_1);
mediaMetadata.put(CUSTOM_KEY_2, CUSTOM_VAL_2);

// 1. Call trackSessionStart() when the user clicks Play or if autoplay is used,
//    i.e., there is an intent to start playback.
_mediaHeartbeat.trackSessionStart(mediaInfo, mediaMetadata);

......
......

// 2. Call trackPlay() when the playback actually starts, i.e., first frame of the
//    ad media is rendered on the screen.
_mediaHeartbeat.trackPlay();

.......
.......

// Chapter
HashMap<String, String> chapterMetadata = new HashMap<String, String>();
chapterMetadata.put(CUSTOM_KEY_1, CUSTOM_VAL_1);
MediaObject chapterDataInfo =
MediaHeartbeat.createChapterObject(CHAPTER_NAME,
                                   CHAPTER_POSITION,
                                   CHAPTER_LENGTH,
                                   CHAPTER_START_TIME);

// 3. Track the MediaHeartbeat.Event.ChapterStart event when the chapter starts to play.
_mediaHeartbeat.trackEvent(MediaHeartbeat.Event.ChapterStart, chapterDataInfo, chapterMetadata);

.......
.......

// 4. Track the MediaHeartbeat.Event.ChapterComplete event when the chapter finishes playing.
_mediaHeartbeat.trackEvent(MediaHeartbeat.Event.ChapterComplete, null, null);

.......
.......

// 5. Call trackComplete() when the playback reaches the end, i.e., completes and finishes playing.
_mediaHeartbeat.trackComplete();

........
........

// 6. Call trackSessionEnd() when the playback session is over. This method must be called even
//    if the user does not watch the media to completion.
_mediaHeartbeat.trackSessionEnd();

........
........

iOS

iOS でこのシナリオを表示するには、以下のコードを設定します。

when the user clicks Play
ADBMediaObject *mediaObject =
[ADBMediaHeartbeat createMediaObjectWithName:MEDIA_NAME
                   length:MEDIA_LENGTH
                   streamType:ADBMediaHeartbeatStreamTypeVOD];

NSMutableDictionary *mediaContextData = [[NSMutableDictionary alloc] init];
[mediaContextData setObject:CUSTOM_VAL_1 forKey:CUSTOM_KEY_1];
[mediaContextData setObject:CUSTOM_VAL_2 forKey:CUSTOM_KEY_2];

// 1. Call trackSessionStart when the user clicks Play or if autoplay is used,
//    i.e., when there is an intent to start playback.
[_mediaHeartbeat trackSessionStart:mediaObject data:mediaContextData];
.......
.......

// 2. Call trackPlay when the playback actually starts, i.e., when the
//    first frame of the main content is rendered on the screen.
[_mediaHeartbeat trackPlay];
.......
.......

// Chapter
NSMutableDictionary *chapterContextData = [[NSMutableDictionary alloc] init];
[chapterContextData setObject:CONTEXT_DATA_VALUE forKey:CONTEXT_DATA_KEY];

id chapterInfo =
[ADBMediaHeartbeat createChapterObjectWithName:CHAPTER_NAME
                   position:CHAPTER_POSITION
                   length:CHAPTER_LENGTH
                   startTime:CHAPTER_START_TIME];

// 3. Track the ADBMediaHeartbeatEventChapterStart event when the chapter
//    starts to play.
[_mediaHeartbeat trackEvent:ADBMediaHeartbeatEventChapterStart
               mediaObject:chapterInfo
               data:chapterContextData];
.......
.......

// 4. Track the ADBMediaHeartbeatEventChapterComplete event when the chapter
//    finishes playing.
[_mediaHeartbeat trackEvent:ADBMediaHeartbeatEventChapterComplete
               mediaObject:nil
               data:nil];
.......
.......
// 5. Call trackComplete when the playback reaches the end, i.e., when the
//    media completes and finishes playing.
[_mediaHeartbeat trackComplete];
.......
.......
// 6. Call trackSessionEnd when the playback session is over. This method must
//    be called even if the user does not watch the media to completion.
[_mediaHeartbeat trackSessionEnd];
.......
.......

JavaScript

JavaScript でこのシナリオを表示するには、以下のテキストを入力します。

// Set up mediaObject
var mediaInfo = MediaHeartbeat.createMediaObject(
 Configuration.MEDIA_NAME,
 Configuration.MEDIA_ID,
 Configuration.MEDIA_LENGTH,
 MediaHeartbeat.StreamType.VOD

);

var mediaMetadata = {
  CUSTOM_KEY_1 : CUSTOM_VAL_1,
  CUSTOM_KEY_2 : CUSTOM_VAL_2,
  CUSTOM_KEY_3 : CUSTOM_VAL_3
};

// 1. Call trackSessionStart when Play is clicked or if autoplay is used,
//    i.e., when there's an intent to start playback.
this._mediaHeartbeat.trackSessionStart(mediaInfo, mediaMetadata);

......
......

// Chapter
var chapterMetadata = {
  CUSTOM_KEY_1 : CUSTOM_VAL_1
};

var chapterDataInfo =
MediaHeartbeat.createChapterObject(CHAPTER_NAME,
                                   CHAPTER_POSITION,
                                   CHAPTER_LENGTH,
                                   CHAPTER_START_TIME);

// 2. Track the MediaHeartbeat.Event.ChapterStart event when the chapter
//    starts to play.
this._mediaHeartbeat.trackEvent(MediaHeartbeat.Event.ChapterStart,
                              chapterDataInfo,
                              chapterMetadata);

.......
.......

// 3. Call trackPlay() when the playback actually starts, i.e., when the first
//    frame of the main content is rendered on the screen.
this._mediaHeartbeat.trackPlay();

.......
.......

// 4. Track the MediaHeartbeat.Event.ChapterComplete event when the chapter
//    finishes playing.
this._mediaHeartbeat.trackEvent(MediaHeartbeat.Event.ChapterComplete);

.......
.......

// 5. Call trackComplete() when the playback reaches the end, i.e., when playback
//    completes and finishes playing.
this._mediaHeartbeat.trackComplete();

........
........

// 6. Call trackSessionEnd() when the playback session is over. This method must be
//    called even if the user does not watch the media to completion.
this._mediaHeartbeat.trackSessionEnd();

........
........

チャプターが最初にある場合のサンプルコード sample-code-chapter-at-the-beginning

このシナリオでは、VOD コンテンツは、再生の最初に 1 つのチャプターを再生します。

Android

Android でこのシナリオを表示するには、以下のコードを設定します。

// Set up mediaObject
MediaObject mediaInfo = MediaHeartbeat.createMediaObject(
  Configuration.MEDIA_NAME,
  Configuration.MEDIA_ID,
  Configuration.MEDIA_LENGTH,
  MediaHeartbeat.StreamType.VOD
);

HashMap<String, String> mediaMetadata = new HashMap<String, String>();
mediaMetadata.put(CUSTOM_KEY_1, CUSTOM_VAL_1);
mediaMetadata.put(CUSTOM_KEY_2, CUSTOM_VAL_2);

// 1. Call trackSessionStart() when the user clicks Play or if autoplay is used,
//    i.e., there is an intent to start playback.
_mediaHeartbeat.trackSessionStart(mediaInfo, mediaMetadata);

......
......

// 2. Call trackPlay() when the playback actually starts, i.e., first frame of the
//    main content is rendered on the screen.
_mediaHeartbeat.trackPlay();

.......
.......

// Chapter
HashMap<String, String> chapterMetadata = new HashMap<String, String>();
chapterMetadata.put(CUSTOM_KEY_1, CUSTOM_VAL_1);
MediaObject chapterDataInfo =
MediaHeartbeat.createChapterObject(CHAPTER_NAME,
                                   CHAPTER_POSITION,
                                   CHAPTER_LENGTH,
                                   CHAPTER_START_TIME);

// 3. Track the MediaHeartbeat.Event.ChapterStart event when the chapter starts to play.
_mediaHeartbeat.trackEvent(MediaHeartbeat.Event.ChapterStart, chapterDataInfo, chapterMetadata);

.......
.......

// 4. Track the MediaHeartbeat.Event.ChapterComplete event when the chapter finishes playing.
_mediaHeartbeat.trackEvent(MediaHeartbeat.Event.ChapterComplete, null, null);

.......
.......

// 5. Call trackComplete() when the playback reaches the end, i.e., when the media completes
//    and finishes playing.
_mediaHeartbeat.trackComplete();

........
........

// 6. Call trackSessionEnd() when the playback session is over. This method must be called even
//    if the user does not watch the media to completion.
_mediaHeartbeat.trackSessionEnd();

........
........

iOS

iOS でこのシナリオを表示するには、以下のコードを設定します。

when the user clicks Play
ADBMediaObject *mediaObject =
[ADBMediaHeartbeat createMediaObjectWithName:MEDIA_NAME
                   length:MEDIA_LENGTH
                   streamType:ADBMediaHeartbeatStreamTypeVOD];

NSMutableDictionary *mediaContextData = [[NSMutableDictionary alloc] init];
[mediaContextData setObject:CUSTOM_VAL_1 forKey:CUSTOM_KEY_1];
[mediaContextData setObject:CUSTOM_VAL_2 forKey:CUSTOM_KEY_2];

// 1. Call trackSessionStart when the user clicks Play or if autoplay is used,
//    i.e., there is an intent to start playback.
[_mediaHeartbeat trackSessionStart:mediaObject data:mediaContextData];
.......
.......

// Chapter
NSMutableDictionary *chapterContextData = [[NSMutableDictionary alloc] init];
[chapterContextData setObject:CONTEXT_DATA_VALUE forKey:CONTEXT_DATA_KEY];

id chapterInfo =
[ADBMediaHeartbeat createChapterObjectWithName:CHAPTER_NAME
                   position:CHAPTER_POSITION
                   length:CHAPTER_LENGTH
                   startTime:CHAPTER_START_TIME];

// 2. Call ADBMediaHeartbeatEventChapterStart when the chapter starts.
[_mediaHeartbeat trackEvent:ADBMediaHeartbeatEventChapterStart
               mediaObject:chapterInfo
               data:chapterContextData];
.......
.......

// 3. Call trackPlay when the playback actually starts, i.e., when the
//    first frame of the main content is rendered on the screen.
[_mediaHeartbeat trackPlay];
.......
.......

// 4. Call ADBMediaHeartbeatEventChapterComplete when the chapter starts.
[_mediaHeartbeat trackEvent:ADBMediaHeartbeatEventChapterComplete
               mediaObject:nil
               data:nil];
.......
.......

// 5. Call trackComplete when the playback reaches the end, i.e., when the
//    media completes and finishes playing.
[_mediaHeartbeat trackComplete];
.......
.......

// 6. Call trackSessionEnd when the playback session is over. This method
//    must be called even if the user does not watch the media to completion.
[_mediaHeartbeat trackSessionEnd];
.......
.......

JavaScript

JavaScript でこのシナリオを表示するには、以下のテキストを入力します。

// Set up mediaObject
var mediaInfo = MediaHeartbeat.createMediaObject(
 Configuration.MEDIA_NAME,
 Configuration.MEDIA_ID,
 Configuration.MEDIA_LENGTH,
 MediaHeartbeat.StreamType.VOD

);

var mediaMetadata = {
  CUSTOM_KEY_1 : CUSTOM_VAL_1,
  CUSTOM_KEY_2 : CUSTOM_VAL_2,
  CUSTOM_KEY_3 : CUSTOM_VAL_3
};

// 1. Call trackSessionStart() when Play is clicked or if autoplay is used,
//    i.e., when there's an intent to start playback.
this._mediaHeartbeat.trackSessionStart(mediaInfo, mediaMetadata);

......
......

// Chapter
var chapterMetadata = {
  CUSTOM_KEY_1 : CUSTOM_VAL_1
};

var chapterDataInfo =
MediaHeartbeat.createChapterObject(CHAPTER_NAME,
                                   CHAPTER_POSITION,
                                   CHAPTER_LENGTH,
                                   CHAPTER_START_TIME);

// 2. Track the MediaHeartbeat.Event.ChapterStart event when the chapter starts to play.
this._mediaHeartbeat.trackEvent(MediaHeartbeat.Event.ChapterStart,
                              chapterDataInfo,
                              chapterMetadata);

.......
.......

// 3. Call trackPlay() when the playback actually starts, i.e., when the first
//    frame of the main content is rendered on the screen.
this._mediaHeartbeat.trackPlay();

.......
.......

// 4. Track the MediaHeartbeat.Event.ChapterComplete event when the chapter
//    finishes playing.
this._mediaHeartbeat.trackEvent(MediaHeartbeat.Event.ChapterComplete);

.......
.......

// 5. Call trackComplete() when the playback reaches the end, i.e., when playback
//    completes and finishes playing.
this._mediaHeartbeat.trackComplete();

........
........

// 6. Call trackSessionEnd() when the playback session is over. This method must be
//    called even if the user does not watch the media to completion.
this._mediaHeartbeat.trackSessionEnd();

........
........
recommendation-more-help
c8eee520-cef5-4f8c-a38a-d4952cfae4eb