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.

DICA

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 mídia de transmissão em Adobe Analytics.

O processo geral para medição de vídeo é bem parecido em todas as plataformas. Este conteúdo oferece uma visão geral das tarefas do desenvolvedor com amostras 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 Insight personalizado fornece informações de definição de caminho de vídeo.

    • Tipo de variável: eVar
    • Expiração padrão: visita
    • Custom Insight (s.prop, usado para definição de caminho de vídeo)
  • a.media.name

    (Opcional) Fornece informações sobre o caminho do vídeo. O caminho deve ser habilitado para esta 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 padrão de coleta de dados de vídeo coleta dados nos seguintes pontos:

    • início do vídeo (reproduzir)
    • início do segmento
    • fim do vídeo (parar)

    O Analytics conta a primeira visualização de segmento no início do segmento, quando o visitante começa a assistir. As visualizações de segmento subsequentes ocorrem conforme 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 avaliação de vídeo recebem um tipo de conteúdo de video. Essa variável não precisa ser reservada exclusivamente para rastreamento de vídeo. Quando outros conteúdos relatam os tipos de conteúdo por meio da mesma variável, é possível analisar a distribuição de visitantes nesses tipos diferentes. 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 de vídeo. No entanto, não fornece informações sobre quanto ou qual parte de um vídeo o visitante visualizou.

    • 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 sobre quanto ou qual parte de um vídeo o visitante visualizou.

    • 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 outros fluxos que não tenham um fim definido, você pode especificar um ponto personalizado para avaliar conclusões, por exemplo, após um tempo de exibição específico.

    • 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;
      

Nesta página