Gérer les écarts qui apparaissent entre les publicités resolving-main-play-appearing-between-ads
Problème
Dans certains scénarios de suivi des publicités, vous pouvez rencontrer des appels main:play qui se produisent inopinément entre la fin d’une publicité et le début de la publicité suivante. Si le délai entre l’appel de fin de publicité et l’appel de démarrage de la publicité suivante est supérieur à 250 millisecondes, le SDK Media retourne à l’envoi d’appels main:play. Si ce retour à main:play survient au cours d’une coupure publicitaire preroll, la mesure de début du contenu peut être définie de façon précoce.
Un écart entre les publicités telles que décrites ci-dessus est interprété par le SDK des médias comme du contenu principal, car il n’y a aucun chevauchement avec du contenu publicitaire. Aucune information publicitaire n’est définie sur le SDK Media et le lecteur est en cours de lecture. S’il n’existe aucune information sur l’annonce publicitaire et que l’état du lecteur est en cours de lecture, Media SDK crédite la durée de l’écart par rapport au contenu principal par défaut. Il ne peut pas créditer la durée de l’écart en faveur d’informations de publicité nulles.
IDENTIFICATION
Pendant que vous utilisez Adobe Debug ou un renifleur de paquets réseau tel que Charles, si les appels Heartbeat suivants apparaissent dans cet ordre pendant une coupure publicitaire preroll :
-
Démarrage de la session :
s:event:type=start&s:asset:type=main -
Démarrage de publicité :
s:event:type=start&s:asset:type=ad -
Lecture de la publicité :
s:event:type=play&s:asset:type=ad -
Fin de la publicité :
s:event:type=complete&s:asset:type=ad -
Lecture du contenu principal :
s:event:type=play&s:asset:type=main(inattendu) -
Démarrage de publicité :
s:event:type=start&s:asset:type=ad -
Lecture de la publicité :
s:event:type=play&s:asset:type=ad -
Fin de la publicité :
s:event:type=complete&s:asset:type=ad -
Lecture du contenu principal :
s:event:type=play&s:asset:type=main(attendu)
RÉSOLUTION
Retardez le déclenchement de l’appel de fin de publicité.
Gérez l’écart à partir du lecteur en appelant trackEvent:AdComplete pour la première publicité, suivi immédiatement de trackEvent:AdStart pour la deuxième publicité. L’application doit attendre d’appeler l’événement AdComplete après la fin de la première publicité. Assurez-vous d’appeler trackEvent:AdComplete pour la dernière publicité dans la coupure publicitaire. Si le lecteur peut identifier que la ressource publicitaire actuelle est la dernière dans la coupure publicitaire, appelez trackEvent:AdComplete immédiatement. Cette résolution entraîne l’attribution de moins d’une seconde de temps publicitaire supplémentaire à l’entité publicitaire précédente.
Au début de la coupure publicitaire, y compris le preroll :
-
Créez l’instance d’objet
adBreakpour la coupure publicitaire ; par exemple,adBreakObject. -
L’appel
trackEvent(MediaHeartbeat.Event.AdBreakStart, adBreakObject);.
À chaque démarrage de ressource publicitaire :
-
Appelez
trackEvent(MediaHeartbeat.Event.AdComplete);note note NOTE Appelez cette méthode uniquement si la publicité précédente n’était pas complète. Pensez à une valeur booléenne pour conserver l’état " isinAd" de la publicité précédente. -
Créez l’instance d’objet publicitaire pour la ressource publicitaire : par exemple,
adObject. -
Renseignez les métadonnées de publicité,
adCustomMetadata. -
L’appel
trackEvent(MediaHeartbeat.Event.AdStart, adObject, adCustomMetadata);. -
Appelez
trackPlay()s’il s’agit de la première publicité dans une coupure publicitaire preroll.
À chaque fin de ressource publicitaire :
-
Ne pas effectuer d’appel
note note NOTE Si l’application sait qu’il s’agit de la dernière publicité dans la coupure publicitaire, appelez trackEvent:AdCompleteici et ne définissez pastrackEvent:AdCompletedanstrackEvent:AdBreakComplete.
Lorsque la publicité est ignorée :
- L’appel
trackEvent(MediaHeartbeat.Event.AdSkip);.
À la fin de la coupure publicitaire :
-
Appelez
trackEvent(MediaHeartbeat.Event.AdComplete);note note NOTE Si cette étape est déjà effectuée ci-dessus dans le cadre du dernier appel trackEvent:AdComplete, elle peut être ignorée. -
L’appel
trackEvent(MediaHeartbeat.Event.AdBreakComplete);.