Show Menu
TOPICS×

프리롤 광고가 있는 VOD 재생

이 시나리오에서는 주 컨텐츠 앞에 프리롤 광고가 삽입되었습니다. 명시하지 않은 경우, 네트워크 호출은 광고 없이 VOD 재생 시나리오의 호출과 동일합니다. 네트워크 호출은 동시에 발생하지만 페이로드가 다릅니다.
트리거
하트비트 메서드
네트워크 호출  
참고  
사용자가 재생 클릭
trackSessionStart
Analytics 컨텐츠 시작, 하트비트 컨텐츠 시작
측정 라이브러리는 프리롤 광고가 있는지 모르므로, 이러한 네트워크 호출은 광고 없이 VOD 재생 시나리오와 동일합니다.
광고가 시작됨.
  • trackEvent:AdBreakStart
  • trackEvent:AdStart
Analytics 광고 시작, 하트비트 광고 시작
광고 1의 프레임이 재생됨.
trackPlay
하트비트 광고 재생
광고 컨텐츠는 기본 컨텐츠 전에 재생되며 광고가 시작될 때 하트비트가 시작됩니다.
광고가 재생됨.
광고 하트비트
광고 2 재생이 완료됨.
trackEvent:trackAdComplete
하트비트 광고 완료
광고 끝에 도달했습니다.
광고 2의 첫 번째 프레임이 재생됨.
trackEvent:AdStart
Analytics 광고 시작, 하트비트 광고 시작
광고가 재생됨.
광고 하트비트
광고 2 재생이 완료됨.
  • trackEvent:trackAdComplete
  • trackEvent:AdBreakComplete
하트비트 광고 완료
광고와 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(); ........ ........