Show Menu
TOPICS×

Résolution des appels main:play apparaissant entre les publicités

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 tel que décrit ci-dessus est interprété par le kit SDK Media comme du contenu principal, car il n’y a à ce niveau aucun chevauchement avec un contenu publicitaire. Le SDK Media ne contient aucune information de publicité définie, et le lecteur est à l’état de lecture. S’il n’y a aucune information de publicité et que le lecteur est à l’état de lecture, le kit SDK Media crédite la durée de l’écart en faveur du 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 aura pour résultat moins de 1 seconde de temps publicitaire supplémentaire passé attribué à l’unité de publicité précédente.
Au démarrage de la coupure publicitaire, y compris preroll :
  • Créez l’instance d’objet
    adBreak
    pour la coupure publicitaire ; par exemple,
    adBreakObject
    .
  • L’appel
    trackEvent(MediaHeartbeat.Event.AdBreakStart, adBreakObject);
    .
À chaque démarrage de ressource publicitaire :
  • appelez
    trackEvent(MediaHeartbeat.Event.AdComplete);
    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
    Si l’application sait qu’il s’agit de la dernière publicité dans la coupure publicitaire, appelez
    trackEvent:AdComplete
    ici et ne définissez pas
    trackEvent:AdComplete
    dans
    trackEvent:AdBreakComplete
    .
Lorsque la publicité est ignorée :
  • L’appel
    trackEvent(MediaHeartbeat.Event.AdSkip);
    .
À la fin de la coupure publicitaire :
  • appelez
    trackEvent(MediaHeartbeat.Event.AdComplete);
    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);
    .