이 시나리오에서는 주 컨텐츠 앞에 프리롤 광고가 삽입되었습니다. 명시하지 않은 경우, 네트워크 호출은 광고 없이 VOD 재생 시나리오의 호출과 동일합니다. 네트워크 호출은 동시에 발생하지만 페이로드가 다릅니다.
트리거 | 하트비트 메서드 | 네트워크 호출 | 참고 |
---|---|---|---|
사용자가 재생 클릭 | trackSessionStart |
Analytics 컨텐츠 시작, 하트비트 컨텐츠 시작 | 측정 라이브러리는 프리롤 광고가 있는지 모르므로, 이러한 네트워크 호출은 광고 없이 VOD 재생 시나리오와 동일합니다. |
광고가 시작됨. |
|
Analytics 광고 시작, 하트비트 광고 시작 | |
광고 1의 프레임이 재생됨. | trackPlay |
하트비트 광고 재생 | 광고 컨텐츠는 기본 컨텐츠 전에 재생되며 광고가 시작될 때 하트비트가 시작됩니다. |
광고가 재생됨. | 광고 하트비트 | ||
광고 2 재생이 완료됨. | trackEvent:trackAdComplete |
하트비트 광고 완료 | 광고 끝에 도달했습니다. |
광고 2의 첫 번째 프레임이 재생됨. | trackEvent:AdStart |
Analytics 광고 시작, 하트비트 광고 시작 | |
광고가 재생됨. | 광고 하트비트 | ||
광고 2 재생이 완료됨. |
|
하트비트 광고 완료 | 광고와 pod의 끝에 도달했습니다. |
컨텐츠가 재생됨. | 컨텐츠 하트비트 | 이 네트워크 호출은 광고 없이 VOD 재생 시나리오와 동일합니다. | |
컨텐츠가 완료됨. | trackComplete |
하트비트 컨텐츠 완료 | 이 네트워크 호출은 광고 없이 VOD 재생 시나리오와 동일합니다. |
세션이 끝남. | trackSessionEnd |
SessionEnd |
광고 재생이 시작되면 Heartbeat Ad Start
호출이 전송됩니다. 광고 시작이 10초 타이머와 일치하지 않으면 Heartbeat Ad Start
호출이 몇 초 지연되며, 호출이 다음 10초 간격으로 이동합니다. 이런 경우 Content Heartbeat
가 같은 간격에서 발생하며, 이벤트 유형과 자산 유형을 보고 두 호출을 구별할 수 있습니다.
매개 변수 | 값 | 참고 |
---|---|---|
s:event:type |
start |
|
s:asset:type |
ad |
광고는 Content Heartbeats
와 동일한 기본 모델을 따르므로 Ad Play
호출은 Content Play
호출과 비슷합니다.
매개 변수 | 값 | 참고 |
---|---|---|
s:event:type |
play |
|
s:asset:type |
ad |
이러한 매개 변수는 Content Heartbeats
호출과 유사하지만, Ad Heartbeats
호출에는 몇 가지 추가 매개 변수가 포함됩니다.
매개 변수 | 값 | 참고 |
---|---|---|
s:event:type |
play |
|
s:asset:type |
ad |
|
s:asset:ad_id |
<광고 ID> | |
s:asset:pod_id |
<광고 pod ID> |
광고 재생이 Heartbeat Content Complete
호출과 마찬가지로 완료되고 플레이헤드의 끝에 도달하면 Heartbeat Ad Complete
호출이 전송됩니다. 이 호출은 다른 Heartbeat Ad
호출과 비슷하게 보이지만 다음 두 가지 특정 항목을 포함합니다.
매개 변수 | 값 | 참고 |
---|---|---|
s:event:type |
complete |
|
s:asset:type |
ad |
이 시나리오에서 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> videoMetadata = new HashMap<String, String>();
videoMetadata.put(CUSTOM_KEY_1, CUSTOM_VAL_1);
videoMetadata.put(CUSTOM_KEY_2, CUSTOM_VAL_2);
// 1. Call trackSessionStart() when the user clicks Play or if autoplay is used,
// i.e., there's an intent to start playback.
_mediaHeartbeat.trackSessionStart(mediaInfo, videoMetadata);
......
......
// Pre-roll
MediaObject adBreakInfo =
MediaHeartbeat.createAdBreakObject(ADBREAK_NAME,
ADBREAK_POSITION,
ADBREAK_START_TIME);
MediaObject adInfo =
MediaHeartbeat.createAdObject(AD_NAME,
AD_ID,
AD_POSITION,
AD_LENGTH);
// Context ad data
HashMap<String, String> adMetadata = new HashMap<String, String>();
adMetadata.put(CUSTOM_KEY_1, CUSTOM_VAL_1);
adMetadata.put(CUSTOM_KEY_2, CUSTOM_VAL_2);
// 2. Track the MediaHeartbeat.Event.AdBreakStart event when the pre-roll pod starts
// to play. Note that since this is a pre-roll, call must track the
// "MediaHeartbeat.Event.AdBreakStart" event before you call trackPlay().
_mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdBreakStart, adBreakInfo, null);
.......
.......
// 3. Track the MediaHeartbeat.Event.AdStart event when the pre-roll pod's ad starts
// to play. Note that since this is a pre-roll, you must track the
// "MediaHeartbeat.Event.AdStart" event before you call trackPlay().
_mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdStart, adInfo, adMetadata);
.......
.......
// 4. Call trackPlay() when the playback actually starts, i.e., when the first frame
// of the ad video is rendered on the screen.
_mediaHeartbeat.trackPlay();
.......
.......
// 5. Track the MediaHeartbeat.Event.AdComplete event when the ad reaches the end,
// i.e., when the ad completes and finishes playing.
_mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdComplete, null, null);
.......
.......
// 6. Track the MediaHeartbeat.Event.AdStart event when the pre-roll pod's second ad
// starts to play.
_mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdStart, adInfo, adMetadata);
.......
.......
// 7. Track the MediaHeartbeat.Event.AdComplete event when the second ad reaches the
// end, i.e., the second ad completes and finishes playing.
_mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdComplete, null, null);
.......
.......
// 8. Track the MediaHeartbeat.Event.AdBreakComplete event when all of the ads in the
// pod finish playing.
_mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdBreakComplete, null, null);
.......
.......
// 9. Call trackComplete() when the playback reaches the end, i.e., when the video
// completes and finishes playing.
_mediaHeartbeat.trackComplete();
........
........
// 10. Call trackSessionEnd() when the playback session is over. This method must be
// called even if the user does not watch the video to completion.
_mediaHeartbeat.trackSessionEnd();
........
........
iOS - iOS에서 이 시나리오를 보려면 다음 코드를 설정합니다.
// Set up mediaObject
ADBMediaObject *mediaObject =
[ADBMediaHeartbeat createMediaObjectWithName:MEDIA_NAME
length:MEDIA_LENGTH
streamType:ADBMediaHeartbeatStreamTypeVOD];
NSMutableDictionary *videoContextData = [[NSMutableDictionary alloc] init];
[videoContextData setObject:CUSTOM_VAL_1 forKey:CUSTOM_KEY_1];
[videoContextData 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:videoContextData];
.......
.......
// Pre-roll
ADBMediaObject *adBreakInfo =
[ADBMediaHeartbeat createAdBreakObjectWithName:AD_BREAK_NAME
position:AD_BREAK_POSITION
startTime:AD_BREAK_START_TIME];
ADBMediaObject *adInfo =
[ADBMediaHeartbeat createAdObjectWithName:AD_NAME
adId:AD_ID
position:AD_POSITION
length:AD_LENGTH];
// context ad data
NSMutableDictionary *adDictionary = [[NSMutableDictionary alloc] init];
[adDictionary setObject:@"custom-val1" forKey:@"custom-key1"];
[adDictionary setObject:@"custom-val2" forKey:@"custom-key2"];
// 2. Track the ADBMediaHeartbeatEventAdBreakStart event when the pre-roll pod
// starts to play. Note that since this is a pre-roll, you must track the
// "ADBMediaHeartbeatEventAdBreakStart" event before you call trackPlay.
[_mediaHeartbeat trackEvent:ADBMediaHeartbeatEventAdBreakStart
mediaObject:adBreakObject
data:nil];
.......
.......
// 3. Track the ADBMediaHeartbeatEventAdStart event when the pre-roll pod's
// ad starts to play. Note that since this is a pre-roll, you must track
// the "ADBMediaHeartbeatEventAdStart" event before you call trackPlay.
[_mediaHeartbeat trackEvent:ADBMediaHeartbeatEventAdStart
mediaObject:adObject
data:adDictionary];
.......
.......
// 4. Call trackPlay when the playback actually starts, i.e., when the
// first frame of the main content is rendered on the screen.
[_mediaHeartbeat trackPlay];
.......
.......
// 5. Track the ADBMediaHeartbeatEventAdComplete event when the ad reaches
// the end, i.e., when the video completes and finishes playing.
[_mediaHeartbeat trackEvent:ADBMediaHeartbeatEventAdComplete
mediaObject:nil
data:nil];
.......
.......
// 6. Track the ADBMediaHeartbeatEventAdStart event when the pre-roll pod's
// second ad starts to play.
[_mediaHeartbeat trackEvent:ADBMediaHeartbeatEventAdStart
mediaObject:adBreakObject
data:nil];
.......
.......
// 7. Track the ADBMediaHeartbeatEventAdComplete event when the second ad
// reaches the end, i.e., it completes and finishes playing.
[_mediaHeartbeat trackEvent:ADBMediaHeartbeatEventAdComplete
mediaObject:nil
data:nil];
.......
.......
// 8. Track the ADBMediaHeartbeatEventAdBreakComplete event when all the
// ads in the pod finish playing.
[_mediaHeartbeat trackEvent:ADBMediaHeartbeatEventAdBreakComplete
mediaObject:adBreakObject
data:nil];
.......
.......
// 9. Call trackComplete when the playback reaches the end, i.e., when the
// video completes and finishes playing.
[_mediaHeartbeat trackComplete];
.......
.......
// 10. Call trackSessionEnd when the playback session is over. This method
// must be called even if the user does not watch the video 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 videoMetadata = {
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., there's an intent to start playback.
this._mediaHeartbeat.trackSessionStart(mediaInfo, videoMetadata);
......
......
// Preroll
var adBreakInfo =
MediaHeartbeat.createAdBreakObject(ADBREAK_NAME, ADBREAK_POSITION, ADBREAK_START_TIME);
var adInfo =
MediaHeartbeat.createAdObject(AD_NAME, AD_ID, AD_POSITION, AD_LENGTH);
// Custom ad metadata
var adMetadata = {
CUSTOM_AD_KEY_1 : CUSTOM_AD_VAL_1,
CUSTOM_AD_KEY_2 : CUSTOM_AD_VAL_2
};
// 2. Track the MediaHeartbeat.Event.AdBreakStart event when the preroll pod starts to play.
// Note that since this is a preroll, track the MediaHeartbeat.Event.AdBreakStart
// event before you call trackPlay().
this._mediaheartbeat.trackEvent(MediaHeartbeat.Event.AdBreakStart, adBreakInfo, null);
.......
.......
// 3. Track the MediaHeartbeat.Event.AdStart event when the preroll pod's ad starts to play.
// Note that since this is a preroll, track the MediaHeartbeat.Event.AdStart event before
// you call trackPlay().
this._mediaheartbeat.trackEvent(MediaHeartbeat.Event.AdStart, adInfo, adMetadata);
.......
.......
// 4. Call trackPlay() when the playback actually starts, i.e., the first frame of the
main content is rendered on the screen.
this._mediaHeartbeat.trackPlay();
.......
.......
// 5. Track event MediaHeartbeat.Event.AdComplete when the ad reaches the end,
// i.e., when it completes and finishes playing.
this._mediaheartbeat.trackEvent(MediaHeartbeat.Event.AdComplete);
.......
.......
// 6. Track the MediaHeartbeat.Event.AdStart event when the preroll pod's second
// ad starts to play.
this._mediaheartbeat.trackEvent(MediaHeartbeat.Event.AdStart, adInfo, adMetadata);
.......
.......
// 7. Track the MediaHeartbeat.Event.AdComplete event when the second ad reaches
// the end, i.e., when it completes and finishes playing.
this._mediaheartbeat.trackEvent(MediaHeartbeat.Event.AdComplete);
.......
.......
// 8. Track the MediaHeartbeat.Event.AdBreakComplete event when all the ads
// in the pod finish playing.
this._mediaheartbeat.trackEvent(MediaHeartbeat.Event.AdBreakComplete);
.......
.......
// 9. Call trackComplete() when the playback reaches the end, i.e., when it
// completes and finishes playing.
this._mediaHeartbeat.trackComplete();
// 10. Call trackSessionEnd() when the playback session is over. This method must
// be called even if the user does not watch the video to completion.
this._mediaHeartbeat.trackSessionEnd();
.......
.......
이 시나리오에서 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> videoMetadata = new HashMap<String, String>();
videoMetadata.put(CUSTOM_KEY_1, CUSTOM_VAL_1);
videoMetadata.put(CUSTOM_KEY_2, CUSTOM_VAL_2);
// 1. Call trackSessionStart() when the user clicks Play or if autoplay is used,
// i.e., there's an intent to start playback.
_mediaHeartbeat.trackSessionStart(mediaInfo, videoMetadata);
......
......
// Pre-roll
MediaObject adBreakInfo =
MediaHeartbeat.createAdBreakObject(ADBREAK_NAME,
ADBREAK_POSITION,
ADBREAK_START_TIME);
MediaObject adInfo = MediaHeartbeat.createAdObject(AD_NAME,
AD_ID,
AD_POSITION,
AD_LENGTH);
// Context ad data
HashMap<String, String> adMetadata = new HashMap<String, String>();
adMetadata.put(CUSTOM_KEY_1, CUSTOM_VAL_1);
adMetadata.put(CUSTOM_KEY_2, CUSTOM_VAL_2);
// 2. Track the MediaHeartbeat.Event.AdBreakStart event when the pre-roll pod
// starts to play. Note that since this is a pre-roll, you must track the
// "MediaHeartbeat.Event.AdBreakStart" event before you call trackPlay().
_mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdBreakStart, adBreakInfo, null);
.......
.......
// 3. Track the MediaHeartbeat.Event.AdStart event when the pre-roll pod's ad
// starts to play. Note that since this is a pre-roll, you must track the
// "MediaHeartbeat.Event.AdStart" event before you call trackPlay().
_mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdStart, adInfo, adMetadata);
.......
.......
// 4. Call trackPlay() when the playback actually starts, i.e., when the first
// frame of the main content is rendered on the screen.
_mediaHeartbeat.trackPlay();
.......
.......
// 5. Track the MediaHeartbeat.Event.AdComplete event when the ad reaches the end,
// i.e., when the ad completes and finishes playing.
_mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdComplete, null, null);
.......
.......
// 6. Track the MediaHeartbeat.Event.AdBreakComplete event when all of the ads in
//; the pod finish playing.
_mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdBreakComplete, null, null);
.......
.......
// Mid-roll
MediaObject adBreakInfo =
MediaHeartbeat.createAdBreakObject(mid-roll_BREAK_NAME,
mid-roll_BREAK_POSITION,
mid-roll_BREAK_START_TIME);
MediaObject adInfo =
MediaHeartbeat.createAdObject(mid-roll_AD_NAME,
mid-roll_AD_ID,
mid-roll_AD_POSITION,
mid-roll_AD_LENGTH);
// Context ad data
HashMap<String, String> adMetadata = new HashMap<String, String>();
adMetadata.put(CUSTOM_KEY_1, CUSTOM_VAL_1);
adMetadata.put(CUSTOM_KEY_2, CUSTOM_VAL_2);
// 7. Track the MediaHeartbeat.Event.AdBreakStart event when the mid-roll pod
// starts to play.
_mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdBreakStart, adBreakInfo, null);
.......
.......
// 8. Track the MediaHeartbeat.Event.AdStart event when the mid-roll pod's ad
// starts to play.
_mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdStart, adInfo, adMetadata);
.......
.......
// 9. Track the MediaHeartbeat.Event.AdComplete event when the ad reaches the end,
// i.e., when the adcompletes and finishes playing.
_mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdComplete, null, null);
.......
.......
// 10. Track the MediaHeartbeat.Event.AdBreakComplete event when all the ads in the
// mid-roll pod finish playing.
_mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdBreakComplete, null, null);
.......
.......
// Post-roll
MediaObject adBreakInfo =
MediaHeartbeat.createAdBreakObject(POSTROLL_BREAK_NAME,
POSTROLL_BREAK_POSITION,
POSTROLL_BREAK_START_TIME);
MediaObject adInfo =
MediaHeartbeat.createAdObject(POSTROLL_AD_NAME,
POSTROLL_AD_ID,
POSTROLL_AD_POSITION,
POSTROLL_AD_LENGTH);
// Context ad data
HashMap<String, String> adMetadata = new HashMap<String, String>();
adMetadata.put(CUSTOM_KEY_1, CUSTOM_VAL_1);
adMetadata.put(CUSTOM_KEY_2, CUSTOM_VAL_2);
// 11. Track the MediaHeartbeat.Event.AdBreakStart event when the post-roll pod
// starts to play.
_mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdBreakStart, adBreakInfo, null);
.......
.......
// 12. Track the MediaHeartbeat.Event.AdStart event when the post-roll pod's
// ad starts to play.
_mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdStart, adInfo, adMetadata);
.......
.......
// 13. Track the MediaHeartbeat.Event.AdComplete event when the ad reaches the
// end, i.e., when the ad completes and finishes playing.
_mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdComplete, null, null);
.......
.......
// 14. Track the MediaHeartbeat.Event.AdBreakComplete event when all the ads in
// the post-roll pod finish playing.
_mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdBreakComplete, null, null);
.......
.......
// 15. Call trackComplete() when the playback reaches the end, i.e., when the
// video completes and finishes playing.
_mediaHeartbeat.trackComplete();
........
........
// 16. Call trackSessionEnd() when the playback session is over. This method
// must be called even if the user does not watch the video to completion.
_mediaHeartbeat.trackSessionEnd();
........
........
iOS iOS에서 이 시나리오를 보려면 다음 코드를 설정합니다.
// Set up mediaObject
ADBMediaObject *mediaObject =
[ADBMediaHeartbeat createMediaObjectWithName:MEDIA_NAME
length:MEDIA_LENGTH
streamType:ADBMediaHeartbeatStreamTypeVOD];
NSMutableDictionary *videoContextData =
[[NSMutableDictionary alloc] init];
[videoContextData setObject:CUSTOM_VAL_1 forKey:CUSTOM_KEY_1];
[videoContextData 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:videoContextData];
.......
.......
// Pre-roll
ADBMediaObject *adBreakInfo =
[ADBMediaHeartbeat createAdBreakObjectWithName:AD_BREAK_NAME
position:AD_BREAK_POSITION
startTime:AD_BREAK_START_TIME];
ADBMediaObject *adInfo =
[ADBMediaHeartbeat createAdObjectWithName:AD_NAME
adId:AD_ID
position:AD_POSITION
length:AD_LENGTH];
// Context ad data
NSMutableDictionary *adDictionary =
[[NSMutableDictionary alloc] init];
[adDictionary setObject:@"custom-val1" forKey:@"custom-key1"];
[adDictionary setObject:@"custom-val2" forKey:@"custom-key2"];
// 2. Track the ADBMediaHeartbeatEventAdBreakStart event when the
// pre-roll pod starts to play. Note that since this is a pre-roll,
// you must track the ADBMediaHeartbeatEventAdBreakStart event
// before you call trackPlay.
[_mediaHeartbeat trackEvent:ADBMediaHeartbeatEventAdBreakStart
mediaObject:adBreakObject
data:adDictionary];
.......
.......
// 3. Track the ADBMediaHeartbeatEventAdStart when the pre-roll
// pod's ad starts to play. Note that since this is a pre-roll,
// you must track the ADBMediaHeartbeatEventAdStart before you
// call trackPlay.
[_mediaHeartbeat trackEvent:ADBMediaHeartbeatEventAdStart
mediaObject:adObject
data:adDictionary];
.......
.......
// 4. Call trackPlay when the playback actually starts, i.e., when
// the first frame of the main content is rendered on the screen.
[_mediaHeartbeat trackPlay];
.......
.......
// 5. Track the ADBMediaHeartbeatEventAdComplete event when the ad
// reaches the end, i.e., when it completes and finishes playing.
[_mediaHeartbeat trackEvent:ADBMediaHeartbeatEventAdComplete
mediaObject:nil
data:nil];
.......
.......
// 6. Track the ADBMediaHeartbeatEventAdBreakComplete event when all
// of the ads in the pod finish playing.
[_mediaHeartbeat trackEvent:ADBMediaHeartbeatEventAdBreakComplete
mediaObject:nil
data:nil];
.......
.......
// Mid-roll
ADBMediaObject *adBreakInfo =
[ADBMediaHeartbeat createAdBreakObjectWithName:MIDROLL_BREAK_NAME
position:MIDROLL_BREAK_POSITION
startTime:MIDROLL_BREAK_START_TIME];
ADBMediaObject *adInfo =
[ADBMediaHeartbeat createAdObjectWithName:MIDROLL_AD_NAME
adId:MIDROLL_AD_ID position:MIDROLL_AD_POSITION
length:MIDROLL_AD_LENGTH];
// context ad data
NSMutableDictionary *midrollAdDictionary = [[NSMutableDictionary alloc] init];
[midrollAdDictionary setObject:@"custom-val1" forKey:@"custom-key1"];
[midrollAdDictionary setObject:@"custom-val2" forKey:@"custom-key2"];
// 7. Track the ADBMediaHeartbeatEventAdBreakStart event when the mid-roll pod
// starts to play.
[_mediaHeartbeat trackEvent:ADBMediaHeartbeatEventAdBreakStart
mediaObject:adBreakObject
data:nil];
.......
.......
// 8. Track the ADBMediaHeartbeatEventAdStart event when the mid-roll pod's
// ad starts to play.
[_mediaHeartbeat trackEvent:ADBMediaHeartbeatEventAdStart
mediaObject:adObject
data:midrollAdDictionary];
.......
.......
// 9. Track the ADBMediaHeartbeatEventAdComplete event when the ad reaches
// the end, i.e., when it completes and finishes playing.
[_mediaHeartbeat trackEvent:ADBMediaHeartbeatEventAdComplete
mediaObject:nil
data:nil];
.......
.......
// 10. Track the ADBMediaHeartbeatEventAdBreakComplete event when all the
// ads in the mid-roll pod finish playing.
[_mediaHeartbeat trackEvent:ADBMediaHeartbeatEventAdBreakComplete
mediaObject:nil
data:nil];
.......
.......
// Post-roll
ADBMediaObject *postrollBreakInfo =
[ADBMediaHeartbeat createAdBreakObjectWithName:POSTROLL_BREAK_NAME
position:POSTROLL_BREAK_POSITION
startTime:POSTROLL_BREAK_START_TIME];
ADBMediaObject *adInfo =
[ADBMediaHeartbeat createAdObjectWithName:POSTROLL_AD_NAME
adId:POSTROLL_AD_ID
position:POSTROLL_AD_POSITION
length:POSTROLL_AD_LENGTH];
// Context ad data
NSMutableDictionary *postrollAdDictionary =
[[NSMutableDictionary alloc] init];
[postrollAdDictionary setObject:@"custom-val1" forKey:@"custom-key1"];
[postrollAdDictionary setObject:@"custom-val2" forKey:@"custom-key2"];
// 11. Track the ADBMediaHeartbeatEventAdBreakStart event when the
// post-roll pod starts to play.
[_mediaHeartbeat trackEvent:ADBMediaHeartbeatEventAdBreakStart
mediaObject:adBreakObject
data:nil];
.......
.......
// 12. Track the ADBMediaHeartbeatEventAdStart event when the
// post-roll pod's ad starts to play.
[_mediaHeartbeat trackEvent:ADBMediaHeartbeatEventAdStart
mediaObject:adObject
data:postrollAdDictionary];
.......
.......
// 13. Track the ADBMediaHeartbeatEventAdComplete event when the
// post-roll pod's ad finishes playing.
[_mediaHeartbeat trackEvent:ADBMediaHeartbeatEventAdComplete
mediaObject:nil
data:nil];
.......
.......
// 14. Track the ADBMediaHeartbeatEventAdBreakComplete event when
// all the ads in the post-roll pod finish playing.
[_mediaHeartbeat trackEvent:ADBMediaHeartbeatEventAdBreakComplete
mediaObject:nil data:nil];
.......
.......
// 15. Call trackComplete when the playback reaches the end,
// i.e., when the video completes and finishes playing.
[_mediaHeartbeat trackComplete];
.......
.......
// 16. Call trackSessionEnd when the playback session is over. This method
// must be called even if the user does not watch the video to completion.
[_mediaHeartbeat trackSessionEnd];
.......
.......
JavaScript JavaScript에서 이 시나리오를 보려면 다음 텍스트를 입력합니다.
// Set up mediaObject
MediaObject mediaInfo = MediaHeartbeat.createMediaObject(
Configuration.MEDIA_NAME,
Configuration.MEDIA_ID,
Configuration.MEDIA_LENGTH,
MediaHeartbeat.StreamType.VOD
);
var videoMetadata = {
CUSTOM_KEY_1 : CUSTOM_VAL_1,
CUSTOM_KEY_2 : CUSTOM_VAL_2,
CUSTOM_KEY_3 : CUSTOM_VAL_
};
// 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, videoMetadata);
......
......
// Preroll
var adBreakInfo =
MediaHeartbeat.createAdBreakObject(ADBREAK_NAME,
ADBREAK_POSITION,
ADBREAK_START_TIME);
var adInfo =
MediaHeartbeat.createAdObject(AD_NAME,
AD_ID,
AD_POSITION,
AD_LENGTH);
// Custom ad metadata
var adMetadata = {
CUSTOM_KEY_1 : CUSTOM_VAL_1,
CUSTOM_KEY_2 : CUSTOM_VAL_2
};
// 2. Track the MediaHeartbeat.Event.AdBreakStart event when the preroll pod
// starts to play. Note that since this is a preroll, you must track the
// MediaHeartbeat.Event.AdBreakStart event before you call trackPlay().
this._trackEvent(MediaHeartbeat.Event.AdBreakStart, adBreakInfo, null);
.......
.......
// 3. Track the MediaHeartbeat.Event.AdStart event when the preroll pod's ad
// starts to play. Note that since this is a preroll, you must track the
// MediaHeartbeat.Event.AdStart event before you call trackPlay().
this._heartbeat.trackEvent(MediaHeartbeat.Event.AdStart, adInfo, adMetadata);
.......
.......
// 4. Call trackPlay() when the main content actually starts, i.e., when the
// first frame of the video content is rendered on the screen.
this._mediaHeartbeat.trackPlay();
.......
.......
// 5. Track the MediaHeartbeat.Event.AdComplete event when the ad reaches the end,
// i.e., when the ad completes and finishes playing.
this._heartbeat.trackEvent(MediaHeartbeat.Event.AdComplete, null, null);
.......
.......
// 6. Track the MediaHeartbeat.Event.AdBreakComplete event when all of the ads in
// the pod finish playing.
this._mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdBreakComplete);
.......
.......
// Midroll
var adBreakInfo =
MediaHeartbeat.createAdBreakObject(MIDROLL_BREAK_NAME,
MIDROLL_BREAK_POSITION,
MIDROLL_BREAK_START_TIME);
var adInfo =
MediaHeartbeat.createAdObject(MIDROLL_AD_NAME,
MIDROLL_AD_ID,
MIDROLL_AD_POSITION,
MIDROLL_AD_LENGTH);
// Custom ad metadata
var adMetadata = {
CUSTOM_KEY_1 : CUSTOM_VAL_1,
CUSTOM_KEY_2 : CUSTOM_VAL_2
};
// 7. Track the MediaHeartbeat.Event.AdBreakStart event when the
// midroll pod starts to play.
this._mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdBreakStart, adBreakInfo);
.......
.......
// 8. Track the MediaHeartbeat.Event.AdStart event when the midroll
// pod's ad starts to play.
this._mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdStart,
adInfo,
adMetadata);
.......
.......
// 9. Track the MediaHeartbeat.Event.AdComplete event when the ad
// reaches the end, i.e., when the ad completes and finishes playing.
this._mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdComplete);
.......
.......
// 10. Track the MediaHeartbeat.Event.AdBreakComplete event when all of
// the ads in the midroll pod finish playing.
this._mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdBreakComplete);
.......
.......
// Set up mediaObject
var mediaInfo = MediaHeartbeat.createMediaObject(
Configuration.MEDIA_NAME,
Configuration.MEDIA_ID,
Configuration.MEDIA_LENGTH,
MediaHeartbeat.StreamType.VOD
);
var videoMetadata = {
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, videoMetadata);
......
......
// Preroll
var adBreakInfo =
MediaHeartbeat.createAdBreakObject(ADBREAK_NAME,
ADBREAK_POSITION,
ADBREAK_START_TIME);
var adInfo =
MediaHeartbeat.createAdObject(AD_NAME,
AD_ID,
AD_POSITION,
AD_LENGTH);
// Custom ad metadata
var adMetadata = {
CUSTOM_KEY_1 : CUSTOM_VAL_1,
CUSTOM_KEY_2 : CUSTOM_VAL_2
};
// 2. Track the MediaHeartbeat.Event.AdBreakStart event when the preroll pod
// starts to play. Note that since this is a preroll, you must track the
// MediaHeartbeat.Event.AdBreakStart event before you call trackPlay().
this._mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdBreakStart, adBreakInfo);
.......
.......
// 3. Track the MediaHeartbeat.Event.AdStart event when the preroll pod's
// ad starts to play. Note that since this is a preroll, you must track
// the MediaHeartbeat.Event.AdStart event before you call trackPlay().
this._mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdStart, adInfo, adMetadata);
.......
.......
// 4. Call trackPlay() when the playback actually starts, i.e., when the first
// frame of the main content is rendered on the screen.
_mediaHeartbeat.trackPlay();
.......
.......
// 5. Track the MediaHeartbeat.Event.AdComplete event when the ad reaches
// the end, i.e., when the ad completes and finishes playing.
this._mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdComplete);
.......
.......
// 6. Track the MediaHeartbeat.Event.AdBreakComplete event when all
// of the ads in the pod finish playing.
this._mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdBreakComplete);
.......
.......
// Mid-roll
var adBreakInfo =
MediaHeartbeat.createAdBreakObject(MIDROLL_BREAK_NAME,
MIDROLL_BREAK_POSITION,
MIDROLL_BREAK_START_TIME);
var adInfo =
MediaHeartbeat.createAdObject(MIDROLL_AD_NAME,
MIDROLL_AD_ID,
MIDROLL_AD_POSITION,
MIDROLL_AD_LENGTH);
// Custom ad metadata
var adMetadata = {
CUSTOM_KEY_1 : CUSTOM_VAL_1,
CUSTOM_KEY_2 : CUSTOM_VAL_2
};
// 7. Track the MediaHeartbeat.Event.AdBreakStart event when the midroll
// pod starts to play.
this._mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdBreakStart, adBreakInfo);
.......
.......
// 8. Track the MediaHeartbeat.Event.AdStart event when the midroll pod's
// ad starts to play.
this._mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdStart, adInfo, adMetadata);
.......
.......
// 9. Track the MediaHeartbeat.Event.AdComplete event when the ad reaches
// the end, i.e., when the ad completes and finishes playing.
this._mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdComplete);
.......
.......
// 10. Track the MediaHeartbeat.Event.AdBreakComplete event when all
// of the ads in the midroll pod finish playing.
this._mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdBreakComplete);
.......
.......
// Postroll
var adBreakInfo = MediaHeartbeat.createAdBreakObject(POSTROLL_BREAK_NAME,
POSTROLL_BREAK_POSITION, POSTROLL_BREAK_START_TIME);
var adInfo = MediaHeartbeat.createAdObject(POSTROLL_AD_NAME, POSTROLL_AD_ID,
POSTROLL_AD_POSITION, POSTROLL_AD_LENGTH);
// Custom ad metadata
var adMetadata = {
CUSTOM_KEY_1 : CUSTOM_VAL_1,
CUSTOM_KEY_2 : CUSTOM_VAL_2
};
// 11. Track the MediaHeartbeat.Event.AdBreakStart event when the postroll
// pod starts to play.
this._mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdBreakStart, adBreakInfo);
.......
.......
// 12. Track the MediaHeartbeat.Event.AdStart event when the postroll pod's ad
// starts to play.
this._mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdStart, adInfo, adMetadata);
.......
.......
// 13. Track the MediaHeartbeat.Event.AdComplete event when the ad reaches
// the end, i.e., when the ad completes and finishes playing.
this._mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdComplete);
.......
.......
// 14. Track the MediaHeartbeat.Event.AdBreakComplete event when all of
// the ads in the postroll pod finish playing.
this._mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdBreakComplete);
.......
.......
// 15. Call trackComplete() when the playback reaches the end, i.e., when playback
// completes and finishes playing.
this._mediaHeartbeat.trackComplete();
........
........
// 16. Call trackSessionEnd() when the playback session is over. This method must be called
// even if the user does
not watch the video to completion.
this._mediaHeartbeat.trackSessionEnd();
........
........