Lidar com lacunas que aparecem entre anúncios
Criado para:
- Usuário
- Administrador
- Desenvolvedor
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:
-
Chame
trackEvent(MediaHeartbeat.Event.AdComplete);
NOTE
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
NOTE
Se o aplicativo souber que se trata do último anúncio no ad break, chametrackEvent:AdComplete
aqui e ignore a configuração detrackEvent:AdComplete
notrackEvent:AdBreakComplete
Ao ignorar o anúncio:
- Chame
trackEvent(MediaHeartbeat.Event.AdSkip);
.
Na conclusão do ad break:
-
Chame
trackEvent(MediaHeartbeat.Event.AdComplete);
NOTE
Se esta etapa já tiver sido realizada como parte da última chamadatrackEvent:AdComplete
, isso poderá ser ignorado. -
Chame
trackEvent(MediaHeartbeat.Event.AdBreakComplete);
.