Reproducción de VOD con anuncios previos a la emisión

En esta situación, se han insertado anuncios previos a la emisión antes del contenido principal. Si no se indica lo contrario, las llamadas de red son iguales a las llamadas que se hacen en la Reproducción de VOD sin anuncios. Las llamadas de red se realizan al mismo tiempo, pero la carga útil es distinta.

Activador Método de Heartbeat Llamadas de red Notas
El usuario hace clic en Reproducir. trackSessionStart Inicio del contenido de Analytics, inicio del contenido de Heartbeat La biblioteca de medición no sabe que hay un anuncio previo a la emisión, por lo que estas llamadas de red son idénticas al escenario de Reproducción de VOD sin anuncios.
El anuncio empieza.
  • trackEvent:AdBreakStart
  • trackEvent:AdStart
Inicio del anuncio de Analytics, inicio del contenido de Heartbeat
Se reproduce el fotograma del primer anuncio. trackPlay Reproducción de anuncio de Heartbeat El contenido del anuncio se reproduce antes del contenido principal y el inicio de latidos cuando comienza el anuncio.
Se reproduce el anuncio. Latidos de anuncio
Se termina de reproducir el segundo anuncio. trackEvent:trackAdComplete Finalización de publicidad de Heartbeat Se llega al final del anuncio.
Se reproduce el primer fotograma del segundo anuncio. trackEvent:AdStart Inicio del anuncio de Analytics, inicio del contenido de Heartbeat
Se reproduce el anuncio. Latidos de anuncio
Se termina de reproducir el segundo anuncio.
  • trackEvent:trackAdComplete
  • trackEvent:AdBreakComplete
Finalización de publicidad de Heartbeat Se llega al final del anuncio y del pod.
Se reproduce el contenido. Latidos de contenido Esta llamada de red es idéntica al escenario de Reproducción de VOD sin anuncios.
El contenido termina de reproducirse. trackComplete Finalización de contenido de Heartbeat Esta llamada de red es idéntica al escenario de Reproducción de VOD sin anuncios.
La sesión finaliza. trackSessionEnd SessionEnd

Parámetros

Cuando comienza la reproducción del anuncio, se envía una llamada de Heartbeat Ad Start. Si el principio del anuncio no coincide con el temporizador de 10 segundos, la llamada de Heartbeat Ad Start se retrasa unos segundos y pasa al siguiente intervalo de 10 segundos. Cuando esto sucede, se emite un Content Heartbeat en el mismo intervalo y se puede diferenciar entre las dos llamadas mirando el tipo de evento y el tipo de recurso:

Inicio de anuncio de Heartbeat

Parámetro Valor Notas
s:event:type start
s:asset:type ad

Los anuncios siguen el mismo modelo básico que Content Heartbeats, por lo que Ad Play es similar a la llamada de Content Play.

Llamada de reproducción de anuncio de Heartbeat

Parámetro Valor Notas
s:event:type play
s:asset:type ad

Estos parámetros son similares a la llamada de Content Heartbeats, pero la llamada de Ad Heartbeats contiene ciertos parámetros adicionales:

Latidos de anuncio

Parámetro Valor Notas
s:event:type play
s:asset:type ad
s:asset:ad_id <ID del anuncio>
s:asset:pod_id <ID de pod de anuncios>

Al igual que las llamadas de Heartbeat Content Complete, cuando termina de reproducirse el anuncio y se llega al final del cabezal de reproducción, se envía una llamada de Heartbeat Ad Complete. Esta se parece a otras llamadas de Heartbeat Ad, pero contiene dos elementos específicos:

Llamada de finalización de anuncio de Heartbeat

Parámetro Valor Notas
s:event:type complete
s:asset:type ad

Código de muestra de pausa publicitaria previa a la emisión

En esta situación, el VOD está formado por un anuncio previo a la emisión, un segundo anuncio previo a la emisión y, por último, el contenido.

  • Android Para ver este caso en Android, configure el siguiente código:

    // 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 Para ver este caso en iOS, configure el siguiente código:

    //  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 Para ver esta situación en JavaScript, escriba el siguiente texto:

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

Código de muestra de varias pausas publicitarias

En esta situación, en el contenido de VOD se reproduce un anuncio previo a la emisión, el contenido, un anuncio durante la emisión, el contenido y un anuncio posterior a la emisión.

  • Android Para ver este caso en Android, configure el siguiente código:

    // 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 Para ver este caso en iOS, configure el siguiente código:

    //  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 Para ver esta situación en JavaScript, escriba el siguiente texto:

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

En esta página