Show Menu
TÓPICOS×

Resolver a ocorrência de main:play entre anúncios

PROBLEMA

Em alguns cenários de rastreamento de anúncios, você pode encontrar chamadas main:play que ocorrem inesperadamente entre o fim de um anúncio e o início do próximo anúncio. Se o atraso entre a chamada de conclusão do anúncio e a chamada de início do próximo anúncio for maior que 250 milissegundos, o SDK do Media recorrerá ao envio de chamadas main:play . Se esse recurso a main:play ocorrer durante um ad break precedente, a métrica de início de conteúdo poderá ser definida antecipadamente.
Uma lacuna entre anúncios, como descrito acima, é interpretada pelo SDK do Media como conteúdo principal porque não há sobreposição a nenhum conteúdo de anúncio. O SDK do Media não tem nenhuma informação de anúncio definida nele e o reprodutor está no estado de execução. Se não houver informações de anúncio e o reprodutor estiver no estado de execução, o SDK do Media creditará a duração da lacuna em relação ao conteúdo principal por padrão. Ele não poderá creditar a duração da reprodução em relação às informações de anúncio nulas.

IDENTIFICAÇÃO

Ao usar o Adobe Debug ou um farejador de pacotes de rede, como o Charles, se você vir as seguintes chamadas de heartbeat nesta ordem durante um ad break precedente:
  • Início da sessão: s:event:type=start & s:asset:type=main
  • Início do anúncio: s:event:type=start & s:asset:type=ad
  • Reprodução do anúncio: s:event:type=play & s:asset:type=ad
  • Anúncio concluído: s:event:type=complete & s:asset:type=ad
  • Reprodução do conteúdo principal: s:event:type=play & s:asset:type=main   (inesperado)
  • Início do anúncio: s:event:type=start & s:asset:type=ad
  • Reprodução do anúncio: s:event:type=play & s:asset:type=ad
  • Anúncio concluído: s:event:type=complete & s:asset:type=ad
  • Reprodução do conteúdo principal: s:event:type=play & s:asset:type=main (esperado)

RESOLUÇÃO

Atrasar o acionamento da chamada de Anúncio concluído.
Lide com a lacuna no reprodutor, chamando trackEvent:AdComplete um pouco depois para o primeiro anúncio, seguido imediatamente por trackEvent:AdStart para o segundo anúncio. O aplicativo deve esperar para chamar o evento AdComplete após a conclusão do primeiro anúncio. Certifique-se de chamar trackEvent:AdComplete para o último anúncio no ad break. Se o reprodutor identificar que o ativo de anúncio atual é o último no ad break, chame trackEvent:AdComplete imediatamente. Essa resolução resultará em menos de 1 segundo de tempo adicional gasto com o anúncio para a unidade de anúncio anterior.
No início do ad break, incluindo precedente:
  • Crie a instância de objeto adBreak para o ad break; por exemplo, adBreakObject .
  • Chame trackEvent(MediaHeartbeat.Event.AdBreakStart, adBreakObject); .
Em cada início de ativo de anúncio:
  • Chama trackEvent(MediaHeartbeat.Event.AdComplete);
    Chame isso somente se o anúncio anterior não tiver sido concluído. Considere um valor booleano para manter um estado " isinAd " para o anúncio anterior.
  • Crie a instância do objeto de anúncio para o ativo de anúncio: por exemplo, adObject .
  • Preencha os metadados do anúncio, adCustomMetadata .
  • Chame trackEvent(MediaHeartbeat.Event.AdStart, adObject, adCustomMetadata); .
  • Chame trackPlay() se este for o primeiro anúncio em um ad break precedente.
Em cada conclusão de ativo de anúncio:
  • Não faça uma chamada
    Se o aplicativo souber que se trata do último anúncio no ad break, chame trackEvent:AdComplete aqui e ignore a configuração de trackEvent:AdComplete no trackEvent:AdBreakComplete
Ao ignorar o anúncio:
  • Chame trackEvent(MediaHeartbeat.Event.AdSkip); .
Na conclusão do ad break:
  • Chame trackEvent(MediaHeartbeat.Event.AdComplete);
    Se esta etapa já tiver sido realizada como parte da última chamada trackEvent:AdComplete , isso poderá ser ignorado.
  • Chame trackEvent(MediaHeartbeat.Event.AdBreakComplete); .