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 de anúncios 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 adequado seja associado ao contexto correto.
Para simplificar o processo de diferenciação de vários ad managers, o SDK do IMA para HTML5 permite que os editores transmitam qualquer valor ou objeto para o 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);
}
...