NovoProduct Score, 4T Segmentation, Price War e Broken Size já estão disponíveis.Veja as novidades
Feedance
Artigo

Por que anúncios HTML5 gerados a partir de feed são reprovados no Google Ads, DV360 e Ad Manager

Erros de tamanho de arquivo, clickTag e caminhos que levam anúncios HTML5 gerados por feed à reprovação no Google Ads, DV360 e Ad Manager, e como corrigir.

Cagdas PolatCagdas Polat
11 min de leitura
Por que anúncios HTML5 gerados a partir de feed são reprovados no Google Ads, DV360 e Ad Manager

O Google Ads limita um criativo de display HTML5 enviado a 600 KB e 40 arquivos dentro do arquivo ZIP, de acordo com a própria especificação do Google para anúncios de display enviados. O Display & Video 360 permite até 100 arquivos, mas limita a 5 MB o peso total de download que o navegador baixa quando o anúncio é veiculado, e limita cada criativo a 25 cookies e 100 chamadas HTTP externas, segundo as diretrizes de criativos HTML5 do DV360. Nenhum desses números é segredo. Eles estão publicados nas páginas de especificação de cada plataforma. Ainda assim, um pipeline de criativos baseado em feed esbarra neles o tempo todo, porque o ZIP que um mecanismo de templates monta a partir de alguns milhares de SKUs não se comporta em nada como o ZIP que um designer cria manualmente. Este guia é para quem é responsável pelo controle de qualidade de criativos em uma conta de catálogo: os motivos específicos pelos quais anúncios HTML5 gerados a partir de dados de feed de produtos são reprovados no Google Ads, no DV360 e no Google Ad Manager, e a solução para cada um, para que você os detecte antes da plataforma.

Por que HTML5 gerado a partir de feed é reprovado com mais frequência do que criativos feitos à mão

Um designer que cria um banner manualmente incorpora a foto do produto diretamente no ZIP, escreve um clickTag e confere a contagem de arquivos uma vez. Um mecanismo de templates que gera o mesmo banner para 4.000 SKUs repete cada decisão 4.000 vezes, e um erro que não custa nada com n=1 se multiplica em escala.

Quatro padrões explicam a maior parte dos casos. Primeiro, o template normalmente referencia as imagens dos produtos pela URL de image_link vinda direto do feed, porque esse é o campo que o feed já tem, em vez de baixar e incorporar o arquivo, que é o que o formato ZIP exige. Segundo, um template que dá a cada estado de selo (em estoque, promoção, mais vendido, estoque baixo) seu próprio arquivo de imagem multiplica a contagem de arquivos do pacote antes mesmo de qualquer foto de produto ser adicionada. Terceiro, minificar o resultado do build para ganhar velocidade de entrega remove metadados e ofusca variáveis, incluindo exatamente a meta tag ad.size e a variável clickTag que as plataformas de anúncios leem pelo nome. Quarto, cada ferramenta da stack — a camada de automação de criativos, a tag de analytics, o próprio pixel da rede de anúncios — adiciona seu próprio script ou cookie, e ninguém testa o anúncio montado contra o limite combinado da plataforma até que ele já esteja em revisão.

Os limites técnicos, plataforma por plataforma

Estes são os números que realmente são aplicados. Quando uma plataforma não publicou um número rígido, dizemos isso em vez de chutar.

PlataformaTamanho máx. do ZIP / downloadMáx. de arquivosTipos de arquivo permitidosRegra extra relevante
Google Ads — display enviado padrão600 KB (ZIP)40HTML, CSS, JS, GIF, PNG, JPG, JPEG, SVGApenas Google Fonts, CreateJS hospedado pelo Google, GSAP e jQuery podem ser referenciados externamente; todo o resto deve estar dentro do ZIP
Google Ads — intersticial HTML5 de campanha para apps5,2 MB (ZIP)512O mesmo conjunto principal acimaApenas duas dimensões são suportadas: 320×480 e 480×320
Display & Video 3605 MB de peso total de download (não o tamanho do ZIP)100html, htm, css, js, jpg, jpeg, gif, png, svg, além de um conjunto definido de arquivos de fonteLimites rígidos de 25 cookies, 100 chamadas HTTP externas e 30 segundos de animação por criativo; sem reprodução automática de áudio
Google Ad ManagerSem limite rígido publicado — validado por pacoteNão especificado publicamenteO mesmo conjunto principal; apenas dimensões fixas, sem FluidExige uma variável clickTag não minificada no head e uma meta tag ad.size; URLs de clique fixas no código quebram o rastreamento de cliques

Fontes: especificações de anúncios de display enviados do Google Ads, solução de problemas de recursos HTML5 de campanhas para apps do Google Ads, diretrizes de criativos HTML5 do DV360, diretrizes de HTML5 do Google Ad Manager.

Cinco causas de reprovação que se repetem em todas as plataformas, e a solução para cada uma

1. URLs absolutas de imagens em vez de recursos incorporados

O template puxa o image_link direto do feed e o escreve no markup como está:

<img src="https://cdn.example.com/feed/sku-4471-a.jpg">

O próprio validador de recursos HTML5 do Google retorna um erro específico para isso em pacotes de intersticiais de campanhas para apps: "Your HTML5 ad is trying to reference an asset that is external to your .ZIP file. Only internal file references are allowed." (seu anúncio HTML5 está tentando referenciar um recurso externo ao arquivo .ZIP; apenas referências a arquivos internos são permitidas). A mesma regra vale, com uma mensagem de erro menos explícita, para o display padrão e o DV360.

Solução: no momento do build, baixe o arquivo para o qual a URL de image_link aponta, recodifique-o dentro do ZIP em um caminho relativo e referencie esse caminho:

<img src="assets/sku-4471-a.jpg">

2. Contagem de arquivos estourada por selos e ícones por variante

Um template com seis estados de selo em oito tamanhos de criativo soma 48 arquivos antes de qualquer foto de produto ser adicionada — já acima do limite de 40 arquivos do Google Ads para display padrão. Em um catálogo com centenas de promoções ativas, este é o motivo mais comum para uma exportação em lote falhar, enquanto o mesmo template passou no controle de qualidade com um conjunto de teste de cinco produtos.

Solução: consolide os estados de selo em um único spritesheet ou em um <symbol> SVG inline referenciado por classe CSS, para que a contagem de arquivos permaneça estável, independentemente de quantos estados de selo ou tamanhos a campanha usa.

3. Meta tag ad.size ausente ou removida

Etapas de minificação criadas para velocidade, e não para conformidade com ad tech, frequentemente removem ou reordenam o conteúdo do <head>, incluindo a meta tag de dimensão que as plataformas leem pelo nome exato. O erro do validador do Google Ads para isso diz: "Your HTML5 ad is missing a primary .HTML file. Primary .HTML files include an Ad Size tag." (falta ao seu anúncio HTML5 um arquivo .HTML principal; arquivos .HTML principais incluem uma tag de tamanho do anúncio). O Google Ad Manager exige a mesma informação na forma <meta name="ad.size" content="width=300,height=250">.

Solução: faça a verificação da meta tag depois da minificação, e não antes, e inclua-a como uma etapa automática de bloqueio no pipeline de exportação, em vez de uma conferência manual por amostragem.

4. clickTag fixo no código, ausente ou minificado a ponto de ficar irreconhecível

Um minificador transforma um manipulador de clique legível em algo como var a=b(3). As próprias orientações do DV360 são explícitas ao dizer que a click tag "deve ser fácil de ler para o servidor de anúncios" e instruem as equipes a não passá-la por um minificador de código; o Ad Manager exige a mesma variável, declarada exatamente como clickTag, no head.

Solução: declare-a uma única vez, sem minificar, e exclua essa linha da etapa de minificação: var clickTag = "https://example.com/product/4471";. Nunca fixe a URL de destino em outro ponto do markup — o Ad Manager não consegue atribuir cliques que não vê passar pela variável.

5. Limite de cookies e chamadas HTTP excedido por rastreamentos empilhados

O DV360 limita rigidamente cada criativo a 25 cookies e 100 chamadas HTTP externas. Cada tag individual — um pixel de retargeting, uma requisição de fonte web, uma chamada do GA4, o snippet de rastreamento da própria plataforma de automação de criativos — está em conformidade isoladamente. Empilhadas em um único anúncio montado, não estão, e o excesso só aparece quando alguém testa o pacote final, e não o template.

Solução: encaminhe o rastreamento por um único contêiner de gerenciador de tags por anúncio, em vez de adicionar pixels individualmente, carregue as fontes localmente em vez de por uma requisição externa e teste a contagem em uma exportação real renderizada — e não no template —, já que os testes no nível do template subestimam a contagem.

Checklist antes de um lote de criativos HTML5 gerados a partir de feed entrar no ar

  • Toda referência a recursos no markup é relativa à raiz do ZIP, e não uma URL absoluta de volta para a CDN do feed.
  • A contagem de arquivos é verificada no ZIP montado e específico do produto — e não no template — e fica abaixo do limite da plataforma de destino.
  • A meta tag ad.size (ou o equivalente do DV360/Ad Manager) está presente e não minificada depois da etapa de build, e não apenas antes dela.
  • A variável clickTag é declarada uma única vez, sem minificação, e é o único destino de clique no arquivo.
  • A contagem combinada de cookies e chamadas HTTP externas é testada no anúncio renderizado, contra o limite de 25/100 do DV360, e não estimada por tag.
  • O peso total de download é medido a frio, após a compressão, contra o limite real da plataforma — 600 KB para display padrão do Google Ads, 5 MB no total para o DV360.

O que este guia não cobre

Esta é uma camada de conformidade técnica, e não uma estratégia criativa completa. Ela não cobre anúncios de catálogo dinâmicos sociais e nativos — posicionamentos na Meta e no Instagram, anúncios de catálogo do TikTok — criados a partir do mesmo feed, porque esses rodam com recursos de imagem e vídeo pelo próprio gerenciador de anúncios de catálogo da plataforma, e não por upload de um ZIP HTML5. Para essa tarefa específica, ferramentas criadas para esse fim são realmente mais adequadas do que um pipeline genérico de HTML5: o Confect foi criado especificamente em torno de templates de anúncios de catálogo da Meta e do Google, com sincronização de produtos a cada hora, e o Hunch foi criado em torno de criativos dinâmicos para redes sociais e vídeo, incluindo variantes hiperlocalizadas. Nenhum dos dois produz banners de display HTML5 no padrão IAB, que é exatamente a lacuna que este guia aborda, mas, em sua própria área, vale avaliá-los por seus próprios méritos.

Este guia também não cobre testes de criativos nem mensuração de desempenho — saber se um template converte mais do que outro é uma disciplina diferente de saber se ele passa na revisão técnica — e não substitui a revisão de políticas de conteúdo de uma plataforma. Corrigir todos os itens do checklist acima evita uma reprovação técnica. Não libera um criativo que viole a política de publicidade de uma plataforma por motivos de conteúdo.

Perguntas frequentes

Qual é o tamanho máximo de arquivo para um anúncio de display HTML5 no Google Ads?

Para anúncios de display enviados padrão, o arquivo ZIP deve ter 600 KB ou menos, com no máximo 40 arquivos dentro dele. Os recursos de intersticiais HTML5 de campanhas para apps seguem uma especificação separada: até 5,2 MB e 512 arquivos, mas apenas nas dimensões 320×480 ou 480×320.

Por que o DV360 mede o peso total de download em vez do tamanho do ZIP?

Porque um ZIP pode se descompactar em um conjunto de arquivos muito maior quando o navegador o renderiza. O DV360 limita a 5 MB o peso real que o navegador do visitante baixa quando o anúncio é veiculado, o que é um indicador mais preciso do impacto real no carregamento do que o tamanho do arquivo compactado.

Um anúncio HTML5 gerado a partir de feed pode referenciar fontes ou imagens externas?

Em geral, não. O display padrão do Google Ads só permite referências externas a Google Fonts e a uma pequena lista de bibliotecas hospedadas pelo Google (CreateJS, GSAP, jQuery); todo o resto, incluindo cada imagem de produto, deve estar incorporado ao ZIP com um caminho relativo.

Por que um anúncio HTML5 passa nos testes locais, mas é reprovado na revisão da plataforma?

Os testes locais normalmente são feitos com o código-fonte antes da minificação e da compressão, e não com o ZIP exato que é enviado. A minificação pode remover a tag ad.size ou desfigurar a variável clickTag depois que o teste local já passou, então as verificações precisam ser feitas no artefato final do build.

O limite de 40 arquivos vale por produto ou por campanha?

Por ZIP de criativo individual. Uma exportação em lote que gera um ZIP por SKU precisa que cada um, individualmente, fique abaixo do limite — o limite não é calculado pela média da contagem total de arquivos de uma campanha.

Qual é a diferença entre a especificação HTML5 de campanhas para apps e a especificação HTML5 de display padrão?

São especificações separadas, com limites diferentes, voltadas para inventários diferentes. Os anúncios de display enviados padrão são limitados a 600 KB e 40 arquivos, com dimensões flexíveis; os intersticiais HTML5 de campanhas para apps permitem até 5,2 MB e 512 arquivos, mas apenas em duas dimensões fixas, retrato e paisagem. Aplicar as premissas de uma especificação à superfície da outra é uma fonte comum de pacotes reprovados.

Essas regras de arquivos e clickTag se aplicam a criativos de vídeo gerados a partir do mesmo feed?

Não — os recursos de vídeo seguem as especificações de anúncios em vídeo de cada plataforma (codificação, duração, proporção), e não as regras de ZIP HTML5 deste guia. Um pipeline baseado em feed que produz saídas em vídeo e HTML5 precisa de etapas de controle de qualidade separadas para cada uma.

Como testar a contagem de cookies e chamadas HTTP antes de enviar ao DV360?

Renderize o criativo montado em um navegador com as ferramentas de desenvolvedor abertas, carregue o anúncio em uma aba isolada e conte os cookies realmente definidos e as requisições disparadas no painel de rede. Testar o template isoladamente, antes que as tags de rastreamento sejam injetadas no momento do build, vai subestimar as duas contagens.

Se manter essa camada de conformidade manualmente não for um bom uso do tempo da sua equipe, veja como o Creative Suite da Feedance gera criativos prontos para cada canal diretamente a partir do seu feed de produtos — banners estáticos, em vídeo e HTML5 —, junto com o enriquecimento de feed para os dados de produto subjacentes. A Karaca usou a mesma abordagem do feed ao criativo para produzir 10.000 criativos de Black Friday com a identidade da marca em duas horas. Fale com a gente sobre o seu catálogo e sua taxa atual de reprovação.

Quer uma segunda opinião sobre o seu feed? Vamos revisá-lo com você e mostrar onde estão as lacunas antes do próximo envio.
Faça uma auditoria gratuita
Cagdas Polat
Escrito por
Cagdas Polat

Cofundador da Feedance, onde aproveita sua formação como engenheiro de computação e profissional de marketing para gerar insights analíticos. Com um forte foco em transformar dados em estratégias acionáveis, ele se dedica a ajudar marcas a alcançar um crescimento significativo no cenário digital.

LinkedIn

Descubra quais
produtos dão retorno.

Conecte seu feed e o GA4. Mostramos Product Score, 4T, Price War e Broken Size no seu próprio catálogo.