A maioria dos usos do SDK do IMA exige apenas o gerenciamento de uma única solicitação de anúncio por vez. No entanto, algumas implementações de casos extremos, como o pré-carregamento de dados do anúncio antes que o usuário selecione um vídeo, podem exigir várias solicitações simultâneas. Como as solicitações de anúncio são feitas de forma assíncrona, pode parecer uma tarefa assustadora garantir que o ad manager correto seja associado ao contexto correto.
Para simplificar o processo de diferenciar vários gerenciadores de anúncios, o SDK do IMA para HTML5 permite que os editores transmitam qualquer valor ou objeto ao campo UserContext de qualquer solicitação de anúncio. Esse valor ou objeto pode ser recuperado no gerenciador AdsManagerLoadedEvent usando o método getUserRequestContext().
Exemplo
...
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);
}
...