Gestione degli spazi tra annunci resolving-main-play-appearing-between-ads
PROBLEMA
In alcuni scenari di tracciamento degli annunci, si potrebbero verificare chiamate main:play inaspettate tra la fine di un annuncio e l’inizio di quello successivo. Se il ritardo tra la chiamata di completamento e la chiamata di inizio dell’annuncio successivo è superiore a 250 millisecondi, Media SDK tornerà a inviare chiamate main:play. Se si verifica il fallback su main:play durante l’interruzione pubblicitaria pre-roll, la metrica di inizio contenuto può essere impostata in anticipo.
Un gap tra annunci come descritto in precedenza viene interpretato da Media SDK come contenuto principale, perché non vi è sovrapposizione con alcun contenuto di annunci. Media SDK non dispone di informazioni sugli annunci e il lettore è in stato di riproduzione. Se non sono presenti informazioni sull’annuncio e lo stato del lettore è in riproduzione, per impostazione predefinita Media SDK attribuisce la durata del gap al contenuto principale. Non può attribuire la durata della riproduzione a informazioni sull’annuncio nulle.
IDENTIFICAZIONE
Quando utilizzi Adobe Debug o uno sniffer di pacchetti di rete come Charles, se visualizzi le seguenti chiamate Heartbeat in questo ordine durante l’interruzione pubblicitaria pre-roll:
-
Avvio sessione:
s:event:type=startes:asset:type=main -
Avvio annuncio:
s:event:type=startes:asset:type=ad -
Riproduzione annuncio:
s:event:type=playes:asset:type=ad -
Annuncio completato:
s:event:type=completees:asset:type=ad -
Riproduzione contenuto principale:
s:event:type=playes:asset:type=main(imprevisto) -
Avvio annuncio:
s:event:type=startes:asset:type=ad -
Riproduzione annuncio:
s:event:type=playes:asset:type=ad -
Annuncio completato:
s:event:type=completees:asset:type=ad -
Riproduzione contenuto principale:
s:event:type=playes:asset:type=main(previsto)
RISOLUZIONE
Ritarda l’attivazione della chiamata Annuncio completato.
Gestisci il gap all’interno del lettore effettuando la chiamata trackEvent:AdComplete in ritardo per il primo annuncio, seguita immediatamente da trackEvent:AdStart per il secondo annuncio. L’app deve rimandare la chiamata dell’evento AdComplete, effettuandola dopo il termine del primo annuncio. Assicurati di effettuare una chiamata trackEvent:AdComplete per l’ultimo annuncio nell’interruzione pubblicitaria. Se il lettore è in grado di identificare che la risorsa dell’annuncio corrente è l’ultima dell’interruzione pubblicitaria, effettua immediatamente la chiamata trackEvent:AdComplete. Con questa risoluzione, meno di 1 secondo di tempo aggiuntivo trascorso sull’annuncio viene attribuito all’unità annuncio precedente.
All’inizio dell’interruzione pubblicitaria, incluso pre-roll:
-
Crea l’istanza dell’oggetto
adBreakper l’interruzione pubblicitaria, ad esempio:adBreakObject. -
Effettua la chiamata
trackEvent(MediaHeartbeat.Event.AdBreakStart, adBreakObject);
A ogni avvio di risorse annuncio:
-
Effettua la chiamata
trackEvent(MediaHeartbeat.Event.AdComplete);note note NOTE Effettua questa chiamata solo se l’annuncio precedente non è stato completato. Considera un valore booleano per mantenere uno stato “ isinAd” per l’annuncio precedente. -
Crea l’istanza dell’oggetto annuncio per la risorsa, ad esempio:
adObject -
Popola i metadati dell’annuncio,
adCustomMetadata -
Effettua la chiamata
trackEvent(MediaHeartbeat.Event.AdStart, adObject, adCustomMetadata); -
Effettua la chiamata
trackPlay()se questo è il primo annuncio in un’interruzione pubblicitaria pre-roll.
Per ogni risorsa annuncio completata:
-
Non effettuare chiamate
note note NOTE Se l’applicazione sa che si tratta dell’ultimo annuncio nell’interruzione pubblicitaria, effettua una chiamata trackEvent:AdCompletee non impostaretrackEvent:AdCompleteintrackEvent:AdBreakComplete
Quando l’annuncio viene saltato:
- Effettua la chiamata
trackEvent(MediaHeartbeat.Event.AdSkip);
Al completamento dell’interruzione pubblicitaria:
-
Effettua la chiamata
trackEvent(MediaHeartbeat.Event.AdComplete);note note NOTE Se questo passaggio è già stato eseguito in precedenza nell’ambito dell’ultima chiamata trackEvent:AdCompleteallora può essere saltato. -
Effettua la chiamata
trackEvent(MediaHeartbeat.Event.AdBreakComplete);