TEMAS×
Video Analytics
Aquí tiene alguna información sobre la medición de vídeo en iOS mediante hitos de vídeo.
Durante la reproducción de vídeo, se envían llamadas frecuentes de monitoreo del funcionamiento a este servicio para medir el tiempo de reproducción. Estas llamadas de monitoreo del funcionamiento se envían cada diez segundos, lo que crea métricas de participación de vídeo granulares e informes de visitas de vídeo más precisos. Para obtener más información, consulte
Medición de audio y vídeo en Adobe Analytics
.
En general, el proceso para medir vídeos es muy similar en todas las plataformas. Este contenido ofrece una visión general básica de las tareas del desarrollador, con ejemplos de código.
Asignación de eventos del reproductor a las variables de Analytics
La siguiente tabla indica los datos multimedia que se envían a Analytics. Utilice reglas de procesamiento para asignar los datos de contexto a una variable de Analytics.
- a.media.name(Obligatoria) Recopila el nombre del vídeo, tal como se especifica en la implementación, cuando un visitante ve el vídeo de alguna manera. Puede agregar clasificaciones para esta variable.(Opcional) La variable Insight personalizada proporciona información de rutas de vídeo.
- Tipo de variable: eVar
- Caducidad predeterminada: visita
- Insight personalizada (s.prop, se utiliza para rutas de vídeo)
- a.media.name(Opcional) Proporciona información sobre la ruta del vídeo. El servicio de atención al cliente debe habilitar las rutas para esta variable.
- Tipo de variable: Custom Insight (s.prop)
- Tipo de evento: Insight personalizada (s.prop)
- a.media.segment(Obligatoria) Recopila datos de segmento del vídeo, incluido el nombre del segmento y el orden en que aparece el segmento en el vídeo. Esta variable se completa al habilitar la variable segmentByMilestones cuando se rastrean eventos de reproductor automáticamente, o al establecer un nombre de segmento personalizado cuando se rastrean eventos de reproductor manualmente. Por ejemplo, cuando un visitante ve el primer segmento de un vídeo, SiteCatalyst podría recopilar lo siguiente en la eVar de Segments 1:M:0-25 .El método personalizado de recopilación de datos de vídeo obtiene datos en los siguientes puntos:
- inicio del vídeo (reproducción)
- comienzo del segmento
- fin del vídeo (parada) Analytics cuenta la primera vista de segmento en el inicio del segmento, cuando el visitante comienza a verlo. El segmento siguiente se visualiza cuando empieza el segmento.
- Tipo de variable: eVar
- Caducidad predeterminada: vista de página
- a.contentTypeRecopila datos sobre el tipo de contenido que un visitante ve. Se asigna un tipo de contenido video a las visitas enviadas por la medición de vídeo. Esta variable no necesita estar reservada exclusivamente para el seguimiento de vídeo. El hecho de disponer de otro tipo de contenido de informe de contenido mediante el uso de esta misma variable le permite analizar la distribución de los visitantes entre los distintos tipos de contenido. Por ejemplo, puede etiquetar otros tipos de contenido usando valores como “artículo” o “página de producto” mediante esta variable. Desde la perspectiva de medición de vídeo, Tipo de contenido le permite identificar visitantes de vídeo y calcular tasas de conversión de vídeo.
- Tipo de variable: eVar
- Caducidad predeterminada: vista de página
- a.media.timePlayedCuenta el tiempo, en segundos, transcurrido en ver un vídeo desde el último proceso de recopilación de datos (solicitud de imagen).
- Tipo de variable: Event
- Tipo: contador
- a.media.viewIndica que un visitante ha visto alguna parte de un vídeo. Sin embargo, no proporciona información sobre qué parte del vídeo ha visualizado el visitante ni sobre cuánto tiempo lo ha visualizado.
- Tipo de variable: Event
- Tipo: contador
- a.media.segmentViewIndica que un visitante ha visto alguna parte de un segmento de vídeo. Sin embargo, no proporciona información sobre qué parte del vídeo ha visualizado el visitante ni sobre cuánto tiempo lo ha visualizado.
- Tipo de variable: Event
- Tipo: contador
- a.media.completeIndica que un usuario ha visto un vídeo completo. De forma predeterminada, el evento completo se mide 1 segundo antes del final del vídeo. Durante la implementación, puede especificar cuántos segundos desde el final de vídeo quisiera considerar como una vista completa. Para vídeo en directo y otras transmisiones sin un fin definido, puede especificar un punto personalizado para medir las visualizaciones completas; por ejemplo, después de un tiempo de visualización especificado.
- Tipo de variable: Event
- Tipo: contador
Configuración de medios
Configure un objeto
ADBMediaSettings
con los ajustes que quiera usar para realizar seguimiento de vídeo:
ADBMediaSettings *mediaSettings = [ADBMobile mediaCreateSettingsWithName:MEDIA_NAME length:MEDIA_LENGTH playerName:PLAYER_NAME playerID:PLAYER_ID]; // milestone tracking. Use either standard milestones (percentage of total length) // or offset milestones (seconds elapsed from the beginning of the video) mediaSettings.milestones = @"25,50,75"; mediaSettings.segmentByMilestones = YES; mediaSettings.offsetMilestones = @"60,120"; mediaSettings.segmentByOffsetMilestones = YES; // seconds tracking - sends a hit every x seconds mediaSettings.trackSeconds = 30; // sends a hit every 30 seconds // open the video [ADBMobile mediaOpenWithSettings:mediaSettings callback:nil]; // You are now ready to play the video, for example, [movieViewController.moviePlayer play]; // Note the mediaPlay, mediaStop and mediaClose methods are called in the // event handlers described in the next section
Seguimiento de eventos del reproductor
Para medir la reproducción de vídeo, es preciso realizar llamadas a los métodos
mediaPlay
,
mediaStop
, y
mediaClose
en los momentos apropiados. Por ejemplo, cuando el reproductor se pone en pausa se emplea
mediaStop
.
mediaPlay
se utiliza cuando la reproducción comienza o se reanuda.
El siguiente ejemplo demuestra el uso de notificaciones de configuración y llamadas a métodos de medios para medir vídeos:
// configure notifications for when the video is finished, and when the media playback state changes - (void) configureNotifications:(MPMoviePlayerController *) movieController { [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(mediaFinishedCallback:) name: MPMoviePlayerPlaybackDidFinishNotification object: movieController]; [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(mediaPlaybackChangedCallback:) name: MPMoviePlayerPlaybackStateDidChangeNotification object: movieController]; } // define your notification callbacks. - (void) mediaFinishedCallback: (NSNotification*) notification { [ADBMobile mediaClose:MEDIA_NAME];} - (void) mediaPlaybackChangedCallback: (NSNotification*) notification { MPMoviePlayerController *mediaController = notification.object; if (mediaController.playbackState == MPMoviePlaybackStatePlaying) { [ADBMobile mediaPlay:MEDIA_NAME offset: isnan(mediaController.currentPlaybackTime) ? 0.0 : mediaController.currentPlaybackTime]; } else if (mediaController.playbackState == MPMoviePlaybackStateSeekingBackward) { [ADBMobile mediaStop:MEDIA_NAME offset:mediaController.currentPlaybackTime]; } else if (mediaController.playbackState == MPMoviePlaybackStateSeekingForward) { [ADBMobile mediaStop:MEDIA_NAME offset:mediaController.currentPlaybackTime]; } else if (mediaController.playbackState == MPMoviePlaybackStatePaused) { [ADBMobile mediaStop:MEDIA_NAME offset:mediaController.currentPlaybackTime]; } else if (mediaController.playbackState == MPMoviePlaybackStateInterrupted) { [ADBMobile mediaStop:MEDIA_NAME offset:mediaController.currentPlaybackTime]; } else if (mediaController.playbackState == MPMoviePlaybackStateStopped) { [ADBMobile mediaStop:MEDIA_NAME offset:mediaController.currentPlaybackTime]; } }
Clases
Clase: ADBMediaSettings
bool segmentByMilestones; bool segmentByOffsetMilestones; double length; NSString *channel; NSString *name; NSString *playerName; NSString *playerID; NSString *milestones; NSString *offsetMilestones; NSUInteger trackSeconds; NSUInteger completeCloseOffsetThreshold; // settings used for ad tracking. For bool isMediaAd; double parentPodPosition; NSString *CPM; NSString *parentName; NSString *parentPod;
Clase: ADBMediaState
bool ad; bool clicked; bool complete; bool eventFirstTime; double length; double offset; double percent; double segmentLength; double timePlayed; double timePlayedSinceTrack; double timestamp; NSDate *openTime NSString *name NSString *playerName NSString *mediaEvent NSString *segment NSUInteger milestone NSUInteger offsetMilestone NSUInteger segmentNum NSUInteger eventType
Referencia de clases y métodos de medición de medios
- mediaCreateSettingsWithName:length:playerName:playerID:Devuelve un objeto ADBMediaSettings con parámetros específicos.
- Esta es la sintaxis para este método:
+(ADBMediaSettings *) mediaCreateSettingsWithName:(NSString *)name length:(double)length playerName:(NSString *)playerName playerID:(NSString *)playerID;
- Este es un ejemplo de código para este método:
ADBMediaSettings *myCatSettings = [ADBMobile mediaCreateSettingsWithName:@"catVideo" length:85 playerName:@"catVideoPlayer" playerID:@"catPlayerId"];
- mediaAdCreateSettingsWithName:length:playerName:parentName:parentPod:parentPodPosition:CPM:Devuelve un objeto ADBMediaSettings para su uso con el seguimiento de un vídeo de anuncio.
- Esta es la sintaxis para este método:
+ (ADBMediaSettings *) mediaAdCreateSettingsWithName:(NSString *)name length:(double)length playerName:(NSString *)playerName parentName:(NSString *)parentName parentPod:(NSString *)parentPod parentPodPosition:(double)parentPodPosition CPM:(NSString *)CPM;
- Este es un ejemplo de código para este método:
ADBMediaSettings *mySettings = [ADBMobile mediaAdCreateSettingsWithName:@"ad" length:30 playerName:@"adPlayer" parentName:@"catVideo" parentPod:@"catCollection" parentPodPosition:2 CPM:nil];
- mediaOpenWithSettings:callback:Abre un objeto ADBMediaSettings para su seguimiento.
- Esta es la sintaxis para este método:
+ (void) mediaOpenWithSettings:(ADBMediaSettings *)settings callback:(void (^)(ADBMediaState *mediaState))callback;
- Este es un ejemplo de código para este método:
[ADBMobile mediaOpenWithSettings:mySettings callback:^(ADBMediaState *mediaState) { // do something with media state if you want}];
- mediaClose:Cierra el elemento de medios llamado nombre .
- Esta es la sintaxis para este método:
+ (void) mediaClose:(NSString *)name;
- Este es un ejemplo de código para este método:
[ADBMobile mediaClose:@"kittiesPlaying"];
- mediaPlay:offset:Reproduce el elemento de medios llamado name con un desplazamiento offset dado (en segundos).
- Esta es la sintaxis para este método:
+ (void) mediaPlay:(NSString *)name offset:(double)offset;
- Este es un ejemplo de código para este método:
[ADBMobile mediaPlay:@"cats" offset:25];
- mediaComplete:offset:Marca de forma manual como completado el elemento de medios en el offset indicado (en segundos).
- Esta es la sintaxis para este método:
+ (void) mediaComplete:(NSString *)name offset:(double)offset;
- Este es un ejemplo de código para este método:
[ADBMobile mediaComplete:@"meowzah" offset:90];
- mediaStop:offset:Notifica al módulo de medios que el vídeo se ha detenido o pausado en el offset indicado.
- Esta es la sintaxis para este método:
+ (void) mediaStop:(NSString *)name offset:(double)offset;
- Este es un ejemplo de código para este método:
[ADBMobile mediaStop:@"toonses" offset:30];
- mediaClick:offset:Notifica al módulo de medios que se ha hecho clic en el elemento de medios.
- Esta es la sintaxis para este método:
+ (void) mediaClick:(NSString *)name offset:(double)offset;
- Este es un ejemplo de código para este método:
[ADBMobile mediaClick:@"soManyCats" offset:47];
- mediaTrack:withData:Envía una llamada de acción de seguimiento (sin visualización de página) al estado de medios actual.
- Esta es la sintaxis para este método:
+ (void) mediaTrack:(NSString *)name withData:(NSDictionary *)data;