La plupart des utilisations du SDK IMA ne nécessitent de gérer qu'une seule demande d'annonce à la fois. Toutefois, certaines implémentations de cas particuliers, comme le préchargement des données publicitaires avant que l'utilisateur ne sélectionne une vidéo, peuvent nécessiter d'envoyer plusieurs requêtes simultanées. Étant donné que les demandes d'annonces sont envoyées de manière asynchrone, s'assurer que le bon gestionnaire d'annonces est associé au bon contexte peut sembler une tâche ardue.
Pour simplifier le processus de différenciation de plusieurs gestionnaires d'annonces, le SDK IMA pour HTML5 permet aux éditeurs de transmettre n'importe quelle valeur ou n'importe quel objet au champ UserContext de toute demande d'annonce. Cette valeur ou cet objet peut ensuite être récupéré dans le gestionnaire AdsManagerLoadedEvent à l'aide de la méthode getUserRequestContext().
Exemple
...
adsLoader.addEventListener(
google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,
onAdsManagerLoaded,
false);
adsLoader.addEventListener(
google.ima.AdErrorEvent.Type.AD_ERROR,
onAdsManagerError,
false);
const contextA = {id: "Request A", element: videoElementA};
const contextB = {id: "Request B", element: videoElementB}
adsLoader.requestAds(adsRequestA, contextA);
adsLoader.requestAds(adsRequestB, contextB);
...
function onAdsManagerLoaded(adsManagerLoadedEvent) {
const context = adsManagerLoadedEvent.getUserRequestContext();
adsManager = adsManagerLoadedEvent.getAdsManager(context.element);
console.log("Successfully loaded ID: " + context.id);
}
function onAdsManagerError(adsManagerErrorEvent) {
const context = adsManagerErrorEvent.getUserRequestContext();
console.log("Error with AdRequest ID: " + context.id);
}
...