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 medios de transmisión en Adobe Analytics.
El proceso general de medición de vídeos es similar en todas las plataformas. Este contenido ofrece información general básica sobre las tareas del desarrollador, con ejemplos de código.
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
(Obligatorio) 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 de Custom Insight proporciona información de las 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.
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 puede recopilar lo siguiente en la sección 1:M:0-25
eVar de segmentos.
El método de recopilación de datos de vídeo predeterminado recopila datos en los puntos siguientes:
Analytics cuenta la primera vista de segmentos en el inicio del segmento, cuando el visitante empieza a ver. Vistas de segmentos posteriores desde el inicio del segmento.
a.contentType
Recopila datos sobre el tipo de contenido que un visitante ve. Las visitas enviadas por la medición de vídeo tienen asignado un tipo de contenido de video
. Esta variable no necesita estar reservada exclusivamente para el seguimiento de vídeo. El hecho de disponer de otros tipos 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, podría etiquetar otros tipos de contenido con valores como "artículo" o "página de producto" usando 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.
a.media.timePlayed
Cuenta el tiempo, en segundos, transcurrido en ver un vídeo desde el último proceso de recopilación de datos (solicitud de imagen).
a.media.view
Indica que un visitante ha visto alguna parte de un de vídeo. Sin embargo, no proporciona ninguna información sobre qué parte del vídeo ha visualizado el visitante, ni durante cuánto tiempo.
a.media.segmentView
Indica que un visitante ha visto alguna parte de un segmento de vídeo. Sin embargo, no proporciona ninguna información sobre qué parte del vídeo ha visualizado el visitante, ni durante cuánto tiempo.
a.media.complete
Indica 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 el vídeo en directo y otros flujos que no tienen un final definido, puede especificar un punto personalizado para medir las finalizaciones, por ejemplo, después de un tiempo de visualización específico.
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
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];
}
}
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;
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
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;