Show Menu
TÓPICOS×

Análise de vídeo

Estas são algumas informações sobre a medição de vídeos no iOS usando a medição de vídeos por etapas.
Durante a reprodução do vídeo, chamadas "heartbeat" frequentes são enviadas a esse serviço para medir o tempo reproduzido. Essas chamadas de heartbeat são enviadas a cada 10 segundos, o que resulta em métricas granulares de envolvimento com o vídeo e relatórios de repercussão de vídeo mais precisos. Para obter mais informações, consulte Medição de áudio e vídeo no Adobe Analytics .
O processo geral para medição de vídeo é muito parecido em todas as plataformas. Este conteúdo fornece uma visão geral básica das tarefas do desenvolvedor com exemplos de código.

Mapear eventos do player para variáveis do Analytics

A tabela a seguir lista os dados de mídia que são enviados para o Analytics. Usar as regras de processamento para mapear os dados de contexto para uma variável do Analytics.
  • a.media.name
    (Obrigatório) Coleta o nome do vídeo, conforme especificado na implementação, quando um visitante exibe o vídeo. É possível adicionar classificações para essa variável.
    (Opcional) A variável de Insight personalizado oferece informações de caminho de vídeo.
    • Tipo de variável: eVar
    • Expiração padrão: visita
    • Insight personalizado (s.prop, usado para caminhos de vídeo)
  • a.media.name
    (Opcional) Fornece informações sobre o caminho do vídeo. O caminho deve ser habilitado para a variável pelo Atendimento ao cliente.
    • Tipo de variável: Insight personalizado (s.prop)
    • Tipo de evento: Insight personalizado (s.prop)
  • a.media.segment
    (Obrigatório) Coleta dados de segmento do vídeo, incluindo o nome do segmento e a ordem na qual ele ocorre no vídeo. Essa variável é preenchida com a habilitação da variável segmentByMilestones durante o monitoramento de eventos de player de modo automático, ou ao configurar um nome de segmento personalizado durante o monitoramento manual dos eventos do player. Por exemplo, quando um visitante exibe o primeiro segmento em um vídeo, o SiteCatalyst pode coletar as seguintes informações no eVar de segmentos 1:M:0-25 .
    O método de coleção de dados de vídeo coleta os dados dos pontos as seguir:
    • início do vídeo (play)
    • início do segmento
    • término do vídeo (stop) O Analytics conta a primeira exibição de segmento no início, quando o visitante começa a assistir. As exibições de segmento subsequente ocorrem quando o segmento começa.
    • Tipo de variável: eVar
    • Expiração padrão: visualização de página
  • a.contentType
    Coleta dados sobre o tipo de conteúdo que é visualizado por um visitante. Ocorrências enviadas por meio da medição de vídeo recebem um tipo de conteúdo de video . Essa variável não precisa estar reservada exclusivamente para o rastreamento de vídeo. Quando outros conteúdos relatam o tipo por meio da mesma variável, é possível analisar a distribuição de visitantes em tipos diferentes de conteúdo. Por exemplo, é possível marcar outros tipos de conteúdo por meio de valores como “artigo” ou “página do produto” com essa variável. Da perspectiva da avaliação de vídeo, o Tipo de conteúdo permite identificar os visitantes e calcular as taxas de conversão do vídeo.
    • Tipo de variável: eVar
    • Expiração padrão: visualização de página
  • a.media.timePlayed
    Contabiliza o tempo, em segundos, que é gasto com a exibição de um vídeo desde o último processo de coleta de dados (solicitação da imagem).
    • Tipo de variável: Evento
    • Tipo: contador
  • a.media.view
    Indica que um visitante visualizou uma parte de um vídeo. No entanto, não fornece informações algumas sobre quanto ou a que parte de um vídeo o visitante assistiu.
    • Tipo de variável: Evento
    • Tipo: contador
  • a.media.segmentView
    Indica que um visitante visualizou uma parte de um segmento de vídeo. No entanto, não fornece informações algumas sobre quanto ou a que parte de um vídeo o visitante assistiu.
    • Tipo de variável: Evento
    • Tipo: contador
  • a.media.complete
    Indica se o usuário exibiu um vídeo completo. Por padrão, o evento completo é avaliado um segundo antes do fim do vídeo. Durante a implementação, é possível especificar quantos segundos a partir do fim do vídeo são necessários para considerar a visualização como concluída. Para vídeos ao vivo e outras transmissões que não tenham um final definido, é possível especificar um ponto personalizado para avaliar sua conclusão (por exemplo, após um tempo específico de exibição).
    • Tipo de variável: Evento
    • Tipo: contador

Definir as configurações de mídia

Configure um objeto ADBMediaSettings com as configurações que deseja usar para rastrear vídeos:
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

Rastrear eventos de vídeo

Para avaliar a reprodução de vídeo, os métodos mediaPlay , mediaStop , e mediaClose devem ser chamados em momentos apropriados. Por exemplo, quando o reprodutor está pausado, mediaStop . mediaPlay é chamado quando a reprodução começa ou é retomada.
O seguinte exemplo demonstra como configurar as notificações e chamar os métodos de mídia para avaliar o vídeo:
// 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]; 
 } 
}

Classes

Classe: 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; 

Classe: 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

Referência de método e classe de medição de mídia

  • mediaCreateSettings​WithName:​length:​playerName:​playerID:
    Retorna um objeto ADBMediaSettings com parâmetros especificados.
    • Esta é a sintaxe para este método:
      +(ADBMediaSettings *) mediaCreateSettingsWithName:(NSString *)name
                                                 length:(double)length
                                              playerName:(NSString *)playerName
                                               playerID:(NSString *)playerID;
      
      
    • Esta é a amostra de código para este método:
      ADBMediaSettings *myCatSettings =
            [ADBMobile mediaCreateSettingsWithName:@"catVideo"                                               length:85
                                        playerName:@"catVideoPlayer"
                                          playerID:@"catPlayerId"]; 
      
      
  • mediaAdCreateSettings​WithName:​length:​playerName:​parentName:​parentPod:​parentPodPosition:​CPM:
    Retorna um objeto ADBMediaSettings a ser utilizado no rastreamento de um vídeo de anúncio.
    • Esta é a sintaxe 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; 
      
      
    • Esta é a amostra 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 um objeto ADBMediaSettings para rastreamento.
    • Esta é a sintaxe para este método:
      + (void) mediaOpenWithSettings:(ADBMediaSettings *)settings
                            callback:(void (^)(ADBMediaState *mediaState))callback; 
      
      
    • Esta é a amostra de código para este método:
      [ADBMobile mediaOpenWithSettings:mySettings callback:^(ADBMediaState *mediaState) {
           // do something with media state if you want}];
      
      
  • mediaClose:
    Fecha o item de mídia com nome .
    • Esta é a sintaxe para este método:
       + (void) mediaClose:(NSString *)name; 
      
      
    • Esta é a amostra de código para este método:
      [ADBMobile mediaClose:@"kittiesPlaying"];
      
      
  • mediaPlay:​offset:
    Reproduz o item de mídia com o nome nome no deslocamento em questão (em segundos).
    • Esta é a sintaxe para este método:
       + (void) mediaPlay:(NSString *)name offset:(double)offset;
      
      
    • Esta é a amostra de código para este método:
      [ADBMobile mediaPlay:@"cats" offset:25];
      
      
  • mediaComplete:​offset:
    Marca manualmente o item de mídia como concluído no offset em questão (em segundos).
    • Esta é a sintaxe para este método:
       + (void) mediaComplete:(NSString *)name offset:(double)offset;
      
      
    • Esta é a amostra de código para este método:
       [ADBMobile mediaComplete:@"meowzah" offset:90]; 
      
      
  • mediaStop:​offset:
    Notifica ao módulo de mídia que o vídeo foi interrompido ou pausado no offset em questão.
    • Esta é a sintaxe para este método:
      + (void) mediaStop:(NSString *)name offset:(double)offset; 
      
      
    • Esta é a amostra de código para este método:
      [ADBMobile mediaStop:@"toonses" offset:30]; 
      
      
  • mediaClick:​offset:
    Notifica ao módulo de mídia que o item de mídia foi clicado.
    • Esta é a sintaxe para este método:
      + (void) mediaClick:(NSString *)name offset:(double)offset;
      
      
    • Esta é a amostra de código para este método:
      [ADBMobile mediaClick:@"soManyCats" offset:47];
      
      
  • mediaTrack:​withData:
    Envia uma chamada de ação de rastreamento (sem exibição de página) para o estado de mídia atual.
    • Esta é a sintaxe para este método:
      + (void) mediaTrack:(NSString *)name withData:(NSDictionary *)data;