Abrir o arquivo direto no computador
O guia do IMA pede para servir a página por um servidor web, mesmo que seja local. Abrir o arquivo HTML direto pode fazer o teste falhar.
Guia de implementação
Pre-roll video ads
Anúncio em vídeo que toca dentro do player antes do vídeo que a pessoa escolheu assistir.
Entenda em 1 minuto
Sabe quando você vai ao cinema e, antes do filme começar, passam alguns trailers e propagandas? O vídeo pre-roll é exatamente isso, só que no seu site. A pessoa aperta o play para ver um vídeo e, antes do conteúdo aparecer, toca um anúncio dentro do mesmo player. Player é a caixinha onde o vídeo passa, com os botões de play, pausa e volume. Quando o anúncio acaba, o vídeo escolhido começa.
Para isso funcionar, o player precisa saber pedir o anúncio. O Google oferece um pacote de código chamado IMA SDK, que você coloca junto do player. Ele faz um pedido ao Ad Manager usando uma tag de anúncio, que é um endereço da internet com as informações do espaço, como o bloco de anúncios e o tamanho do player. A resposta vem em VAST, que é um formato padrão, como uma receita que diz qual vídeo tocar e como contar as visualizações. Quando o site usa regras de anúncio de vídeo, a resposta pode vir em VMAP, que é como a grade de horários da TV, dizendo quando entra cada intervalo.
O Google também explica uma coisa importante sobre o vídeo começar sozinho, o chamado autoplay. Os navegadores, como o Chrome e o Safari, têm regras próprias, e muitas vezes o vídeo só pode começar sozinho se estiver sem som. Não existe uma pergunta simples para saber se o navegador deixa: o único jeito é tentar tocar. Por isso o guia do IMA diz que, no celular, a caixa do anúncio deve ser ligada por uma ação da pessoa, como tocar no botão de play. E, se o player for começar sozinho ou sem som, ele deve avisar isso no pedido, para vir só anúncio que pode tocar desse jeito.
O pre-roll vale a pena quando o vídeo é o motivo da visita, como uma aula, uma receita ou uma notícia em vídeo. Na política de vídeo do Google, esse espaço se chama In-stream, que quer dizer dentro do conteúdo que a pessoa escolheu ver, e ele precisa ser declarado do jeito certo. Lembre sempre: a pessoa veio pelo vídeo, então o anúncio não pode atrapalhar os controles nem travar o conteúdo.
Passo a passo
Exemplo implementado
<!-- 1. Carrega o IMA SDK (antes do seu código) -->
<script src="//imasdk.googleapis.com/js/sdkloader/ima3.js"></script>
<!-- 2. O vídeo e, por cima dele, a caixa do anúncio -->
<div style="position:relative;width:640px;height:360px">
<video id="conteudo" width="640" height="360" playsinline controls>
<source src="meu-video.mp4" type="video/mp4">
</video>
<div id="adContainer" style="position:absolute;top:0;left:0"></div>
</div>
<button id="playButton">Assistir</button>
<script>
var video = document.getElementById('conteudo');
var adDisplayContainer = new google.ima.AdDisplayContainer(
document.getElementById('adContainer'), video);
var adsLoader = new google.ima.AdsLoader(adDisplayContainer);
var adsManager;
adsLoader.addEventListener(
google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,
function (e) {
adsManager = e.getAdsManager(video);
adsManager.addEventListener(
google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED,
function () { video.pause(); });
adsManager.addEventListener(
google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED,
function () { video.play(); });
adsManager.addEventListener(
google.ima.AdErrorEvent.Type.AD_ERROR, onAdError);
});
adsLoader.addEventListener(
google.ima.AdErrorEvent.Type.AD_ERROR, onAdError);
function onAdError(e) {
console.log(e.getError());
if (adsManager) { adsManager.destroy(); }
video.play(); // sem anúncio, o vídeo continua
}
// 3. Pedido do anúncio (IDs de exemplo)
var adsRequest = new google.ima.AdsRequest();
adsRequest.adTagUrl = 'https://pubads.g.doubleclick.net/gampad/ads?' +
'iu=/1234567/exemplo&sz=640x480&env=vp&gdfp_req=1&output=vast' +
'&unviewed_position_start=1&vpa=click&vpmute=0&plcmt=1' +
'&description_url=https%3A%2F%2Fwww.exemplo.com%2Fvideo&correlator=';
adsRequest.linearAdSlotWidth = 640;
adsRequest.linearAdSlotHeight = 400;
adsLoader.requestAds(adsRequest);
// 4. Só começa quando a pessoa clica em Assistir
document.getElementById('playButton').addEventListener('click', function () {
adDisplayContainer.initialize();
try {
adsManager.init(640, 360, google.ima.ViewMode.NORMAL);
adsManager.start();
} catch (err) {
video.play();
}
});
</script>O que o Google orienta
Dicas
Cuidado
O guia do IMA pede para servir a página por um servidor web, mesmo que seja local. Abrir o arquivo HTML direto pode fazer o teste falhar.
No celular, a caixa do anúncio precisa ser ligada por uma ação da pessoa, como tocar no play. Sem isso, o anúncio pode não tocar.
Uma resposta VAST com problema pode gerar erro. O exemplo do Google destrói o gerenciador de anúncios e toca o vídeo, para a pessoa não ficar presa numa tela parada.
Quando a janela muda de tamanho, o exemplo do Google chama o redimensionamento do AdsManager com o tamanho do vídeo. Sem isso, o anúncio pode ficar do tamanho errado.
Não. O player pode pedir uma tag VAST pelo IMA. O Google diz que o parâmetro de regras de anúncio (ad_rule) não é obrigatório para servir anúncios, só para usar as regras de anúncio de vídeo.
VAST é a resposta que diz qual anúncio tocar. VMAP é a resposta usada com regras de anúncio, que diz quando entram os intervalos. A tag escolhe o formato pelo parâmetro output, com valores como vast e vmap.
Pode, quando o navegador deixa. O Chrome e o Safari limitam o autoplay, principalmente com som. O player deve testar, avisar no pedido se vai tocar sozinho e sem som, e no celular começar o anúncio pela ação da pessoa.
O guia do Google pede que o vídeo continue tocando quando os anúncios não carregam. No exemplo, o gerenciador de anúncios é destruído e o vídeo toca sem anúncio.
Biblioteca
Tudo nesta página segue a documentação oficial do Google. Leia direto na fonte:
A auditoria lê o site como um visitante, sem clicar em nada, e mostra o que corrigir.