VOD afspelen met overgeslagen advertenties vod-playback-with-skipped-ads

Scenario scenario

Dit scenario bestaat uit het afspelen van VOD-inhoud met een overgeslagen advertentie.

Eén VOD met een overgeslagen pre-roll advertentie

Dit is het zelfde scenario zoals ​ de playback van VOD met pre-rol advertenties ​, behalve de toepassing heeft een bepaling om de gebruiker te laten overslaan de advertentie, op de klik van een overslaan knoop misschien.

Trigger
Hartslagmethode
Netwerkaanroepen
Notities
Gebruiker klikt Play
trackSessionStart()
Start inhoud analyse, Start inhoud hartslag
De meetbibliotheek is zich er niet van bewust dat er een pre-roll advertentie is. Deze netwerkvraag is nog precies het zelfde als ​ de playback van VOD zonder advertenties ​ scenario.
De advertentie begint.
  • trackEvent:AdBreakStart
  • trackEvent:AdStart
Analyses en begin, hartslag en begin
Het eerste frame van de advertentie wordt afgespeeld.
trackPlay()
Hartslag en Afspelen
Wanneer advertentie-inhoud wordt afgespeeld vóór de hoofdinhoud, worden de hartslagen gestart wanneer de advertentie wordt afgespeeld.
De advertentie speelt.
Hartbeats toevoegen
De advertentie wordt overgeslagen.
trackEvent:trackAdSkip
Er is geen volledig netwerkgesprek.
De inhoud wordt afgespeeld.
Content Heartbeats
Deze netwerkvraag is precies het zelfde als de ​ playback van VOD zonder advertenties ​ scenario.
Het afspelen van de inhoud is voltooid.
trackComplete()
Hartslaginhoud voltooid
Deze netwerkvraag is precies het zelfde als de ​ playback van VOD zonder advertenties ​ scenario.
De sessie is afgelopen.
trackSessionEnd()
SessionEnd

Parameters parameters

De parameters zijn identiek aan de parameters in de ​ playback van VOD met pre-rol advertenties ​ scenario, behalve is er geen volledige en geen a-break volledige vraag.

Voorbeeldcode sample-code

Android

Stel de volgende code in om dit scenario in Android weer te geven:

// 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

Voer de volgende tekst in om dit scenario weer te geven:

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

Voer de volgende tekst in om dit scenario in JavaScript weer te geven:

// 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();

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