Show Menu
主題×

具有已略過廣告的 VOD 播放

情境

此情境包含的 VOD 內容播放具有已略過的廣告。

具有已略過前段廣告的一個 VOD

此情境等同於 具有前段廣告的 VOD 播放 ,除了應用程式具有可讓使用者略過廣告 (也許是在點擊略過按鈕時) 的佈建。
觸發
心率方法
網路呼叫
附註  
使用者點按播放
trackSessionStart()
Analytics 內容開始、心率內容開始
Measurement Library 不知道有前段廣告。這些網路呼叫仍完全等同於 沒有廣告的 VOD 播放 情境。
廣告開始。
  • trackEvent:AdBreakStart
  • trackEvent:AdStart
Analytics 廣告開始、心率廣告開始
播放廣告的第一個時間格。
trackPlay()
心率廣告播放
當廣告內容在主要內容之前播放,心率會在廣告開始播放時啟動。
廣告播放。
廣告心率
廣告已略過。
trackEvent:trackAdSkip
沒有廣告完成網路呼叫。
內容播放。
內容心率
這些網路呼叫完全等同於 沒有廣告的 VOD 播放 情境。
內容已完成播放。
trackComplete()
心率內容完成
此網路呼叫完全等同於 沒有廣告的 VOD 播放 情境。
工作階段已結束。
trackSessionEnd()
SessionEnd

參數

除了沒有廣告完成和廣告插播完成呼叫之外,這些參數完全等同於 具有前段廣告的 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); ...... ...... // 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, 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, 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.AdSkip event when the user intends to and is able to // skip an ad. For example, this could be tied to a "Skip Ad" button onClick handler. // The application could have the viewer land in main content post ad. _mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdSkip, null, null); ....... ....... // 6. Call trackComplete() when the playback reaches the end, i.e., when the media // completes and finishes playing. _mediaHeartbeat.trackComplete(); ........ ........ // 7. 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 應用程式

若要檢視此情境,請輸入下列文字:
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]; ....... ....... // 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, 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 ADBMediaHeartbeatEventAdSkip event when the user intends to // and is able to skip an ad. For example, this could be tied to a // "skip ad" button onClick handler. The application could have the viewer // land in main content post ad. [_mediaHeartbeat trackEvent:ADBMediaHeartbeatEventAdSkip mediaObject:nil data:nil]; ....... ....... // 6. Call trackComplete when the playback reaches the end, i.e., when the media // completes and finishes playing. [_mediaHeartbeat trackComplete]; ....... ....... // 7. 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., there's an intent to start playback. this._mediaHeartbeat.trackSessionStart(mediaInfo, mediaMetadata); ...... ...... // Preroll var 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 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. // Since this is a preroll, you must track the MediaHeartbeat.Event.AdBreakStart event // before calling trackPlay(). this._mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdBreakStart, adBreakInfo); ....... ....... // 3. Track the MediaHeartbeat.Event.AdStart event when the preroll pod's ad starts to play. // Since this is a preroll, you must track the MediaHeartbeat.Event.AdStart event before // calling 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. this._mediaHeartbeat.trackPlay(); ....... ....... // 5. Track the MediaHeartbeat.Event.AdSkip event when the user intends to (and can) // skip the ad. For example, this could be tied to a "skip ad" button onClick handler. // The application could have the viewer land in the main content post ad. this._mediaHeartbeat.trackEvent(MediaHeartbeat.Event.AdSkip); ....... ....... // 6. Call trackComplete() when the playback reaches the end, i.e., playback completes // and finishes playing. this._mediaHeartbeat.trackComplete(); ........ ........ // 7. 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(); ........ ........