新功能Product Score、4T Segmentation、Price War 和 Broken Size 现已上线。查看新功能
Feedance
文章

为什么基于 Feed 生成的 HTML5 广告会被 Google Ads、DV360 和 Ad Manager 拒登

解析 Feed 生成的 HTML5 广告被 Google Ads、DV360 和 Ad Manager 拒登的常见原因:文件大小、clickTag、外部路径等,并逐一给出修复方法。

Cagdas PolatCagdas Polat
阅读时长 2 分钟
为什么基于 Feed 生成的 HTML5 广告会被 Google Ads、DV360 和 Ad Manager 拒登

根据 Google 自己的上传型展示广告规范,Google Ads 将上传的 HTML5 展示广告素材限制为 600 KB,ZIP 压缩包内最多 40 个文件。根据 DV360 的 HTML5 广告素材指南,Display & Video 360 允许最多 100 个文件,但将广告投放时浏览器下载的总量上限设为 5 MB,并将单个广告素材限制为 25 个 Cookie 和 100 次外部 HTTP 调用。这些数字都不是秘密,它们都公布在各平台自己的规范页面上。然而,由 Feed 驱动的创意生产流程仍然频频触碰这些限制,因为模板引擎根据几千个 SKU 组装出来的 ZIP,与设计师手工制作的 ZIP 完全不同。本指南面向负责商品目录账户创意质检的人员:我们将介绍基于商品 Feed 数据生成的 HTML5 广告被 Google Ads、DV360 和 Google Ad Manager 拒登的具体原因,以及每一种问题的解决方法,帮助您在平台发现问题之前先行发现。

为什么基于 Feed 生成的 HTML5 比手工制作的创意更容易审核失败

设计师手工制作一个横幅时,会将商品照片直接嵌入 ZIP,编写一个 clickTag,并检查一次文件数量。而模板引擎为 4,000 个 SKU 生成同样的横幅时,每个决定都会重复 4,000 次,一个在 n=1 时毫无代价的错误,在规模化后会被不断放大。

大部分问题源于四种模式。第一,模板通常直接引用 Feed 中的 image_link URL 作为商品图片,因为这是 Feed 中已有的字段,而不是下载文件并将其嵌入,而 ZIP 格式要求的恰恰是后者。第二,如果模板为每一种角标状态(有货、促销、畅销、库存紧张)都配备单独的图片文件,那么在添加任何一张商品照片之前,压缩包的文件数量就已经成倍增加。第三,为提升交付速度而对构建输出进行压缩混淆,会剥离元数据并混淆变量名,其中包括广告平台按名称解析的 ad.size meta 标签和 clickTag 变量。第四,技术栈中的每个工具(创意自动化层、分析代码、广告网络自己的像素)都会添加自己的脚本或 Cookie,而在广告已经进入审核之前,没有人会将组装好的广告与平台的总体上限进行对照测试。

各平台的技术限制

以下是实际执行的数字。对于平台没有公布硬性数字的情况,我们会如实说明,而不是猜测。

平台ZIP/下载大小上限文件数上限允许的文件类型值得注意的额外规则
Google Ads:标准上传型展示广告600 KB(ZIP)40HTML、CSS、JS、GIF、PNG、JPG、JPEG、SVG只有 Google Fonts、Google 托管的 CreateJS、GSAP 和 jQuery 可以外部引用;其他所有内容都必须包含在 ZIP 内
Google Ads:应用广告系列 HTML5 插页式广告5.2 MB(ZIP)512与上述核心类型相同仅支持两种尺寸:320×480 和 480×320
Display & Video 360总下载量 5 MB(不是 ZIP 大小)100html、htm、css、js、jpg、jpeg、gif、png、svg,以及规定的一组字体文件每个广告素材硬性上限为 25 个 Cookie、100 次外部 HTTP 调用和 30 秒动画;不允许音频自动播放
Google Ad Manager未公布硬性上限,按素材包逐一验证未公开说明与核心类型相同;仅支持固定尺寸,不支持 Fluid要求在 head 中声明未经压缩混淆的 clickTag 变量以及 ad.size meta 标签;硬编码的点击 URL 会破坏点击跟踪

来源:Google Ads 上传型展示广告规范、Google Ads 应用广告系列 HTML5 素材问题排查、DV360 HTML5 广告素材指南、Google Ad Manager HTML5 指南。

在所有平台上反复出现的五个拒登原因及其解决方法

1. 使用绝对图片 URL,而不是嵌入的素材

模板直接从 Feed 中提取 image_link,并原样写入标记中:

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

对于应用广告系列插页式广告素材包,Google 自己的 HTML5 素材验证工具会针对这种情况返回特定错误:“您的 HTML5 广告正尝试引用 .ZIP 文件之外的素材。只允许引用内部文件。”同样的规则也适用于标准展示广告和 DV360,只是错误提示没有这么明确。

解决方法:在构建时获取 image_link URL 所指向的文件,将其重新编码后以相对路径放入 ZIP,并改为引用该路径:

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

2. 各变体的角标和图标素材导致文件数量超标

一个包含六种角标状态、八种创意尺寸的模板,在添加任何一张商品照片之前就已有 48 个文件,已经超过了 Google Ads 标准展示广告 40 个文件的上限。对于拥有数百个进行中促销活动的商品目录,这是同一个模板在五个商品的测试集上通过质检、却在批量导出时失败的最常见原因。

解决方法:将角标状态合并到一张精灵图(spritesheet)中,或使用通过 CSS 类引用的内联 SVG <symbol>,这样无论广告系列使用多少种角标状态或尺寸,文件数量都保持不变。

3. ad.size meta 标签缺失或被剥离

为速度而非广告技术合规而设计的压缩步骤,经常会剥离或重新排列 <head> 中的内容,其中包括平台按确切名称解析的尺寸 meta 标签。Google Ads 验证工具针对这种情况的错误提示为:“您的 HTML5 广告缺少主 .HTML 文件。主 .HTML 文件中包含广告尺寸标记。”Google Ad Manager 要求以 <meta name="ad.size" content="width=300,height=250"> 的形式提供同样的信息。

解决方法:在压缩之后(而不是之前)检查 meta 标签,并将其作为导出流程中的自动化关卡,而不是人工抽查。

4. clickTag 被硬编码、缺失,或被压缩混淆得面目全非

压缩工具会把可读的点击处理代码变成类似 var a=b(3) 的内容。DV360 自己的指南明确指出,点击标记“应便于广告服务器读取”,并要求团队不要用代码压缩工具处理它;Ad Manager 也要求在 head 中声明同一个变量,且名称必须严格为 clickTag。

解决方法:只声明一次、不进行压缩,并将这一行排除在压缩处理之外:var clickTag = "https://example.com/product/4471";。切勿在标记的其他位置硬编码目标 URL,因为 Ad Manager 无法归因它没有通过该变量看到的点击。

DV360 将单个广告素材的硬性上限设为 25 个 Cookie 和 100 次外部 HTTP 调用。每个单独的代码(再营销像素、网页字体请求、GA4 调用、创意自动化平台自己的跟踪代码段)单独来看都是合规的。但它们叠加在同一个组装好的广告上时就不再合规了,而且只有当有人测试成品素材包而不是模板时,超限问题才会显现。

解决方法:每个广告通过单一的代码管理器容器来管理跟踪,而不是单独添加像素;在本地加载字体,而不是通过外部请求加载;并在实际渲染出的导出文件(而不是模板)上测试数量,因为模板层面的测试会低估数量。

基于 Feed 生成的 HTML5 创意批量上线前的检查清单

  • 标记中的每个素材引用都是相对于 ZIP 根目录的路径,而不是指回 Feed CDN 的绝对 URL。
  • 在组装好的、针对具体商品的 ZIP(而不是模板)上检查文件数量,并确保低于目标平台的上限。
  • 构建步骤之后(而不仅仅是之前),ad.size meta 标签(或 DV360/Ad Manager 的等效标签)存在且未经压缩混淆。
  • clickTag 变量只声明一次、未经压缩混淆,并且是文件中唯一的点击目标。
  • 在渲染后的广告上测试 Cookie 总数和外部 HTTP 调用总数,对照 DV360 的 25/100 上限,而不是按单个代码估算。
  • 在无缓存状态下测量压缩后的总下载量,并对照平台的实际限制:Google Ads 标准展示广告为 600 KB,DV360 总计为 5 MB。

本文未涵盖的内容

本文讨论的是技术合规层面,而不是完整的创意策略。它不涵盖基于同一个 Feed 构建的社交和原生动态目录广告(Meta 和 Instagram 版位、TikTok 目录广告),因为这些广告是通过平台自己的目录广告管理工具,以图片和视频素材的形式投放的,而不是上传 HTML5 ZIP。对于这类特定任务,专门打造的工具确实比通用的 HTML5 流程更合适:Confect 专门围绕 Meta 和 Google 目录广告模板打造,支持每小时同步商品;Hunch 则围绕社交和视频动态创意打造,包括超本地化的变体。两者都不生成符合 IAB 规范的 HTML5 展示横幅,而这恰恰是本指南要解决的空白,但在各自的领域中,它们值得按其自身优势进行评估。

本文也不涵盖创意测试或效果衡量(某个模板的转化效果是否优于另一个模板,与它能否通过技术审核是两个不同的领域),并且不能替代平台的内容政策审核。修复上述清单中的每一项可以避免技术性拒登,但无法让实质上违反平台广告政策的创意通过审核。

常见问题

对于标准上传型展示广告,ZIP 文件必须不超过 600 KB,且内部文件不超过 40 个。应用广告系列的 HTML5 插页式素材遵循另一套规范:最大 5.2 MB、512 个文件,但仅支持 320×480 或 480×320 两种尺寸。

为什么 DV360 衡量的是总下载量而不是 ZIP 大小?

因为 ZIP 在浏览器渲染时可能解压为体积大得多的一组文件。DV360 将广告投放时访问者浏览器实际下载的量上限设为 5 MB,这比压缩包大小更能准确反映对实际加载的影响。

基于 Feed 生成的 HTML5 广告可以引用外部字体或图片吗?

通常不可以。Google Ads 标准展示广告只允许外部引用 Google Fonts 和一小部分列入许可名单的 Google 托管库(CreateJS、GSAP、jQuery);其他所有内容,包括每一张商品图片,都必须以相对路径嵌入 ZIP 中。

为什么 HTML5 广告在本地测试中通过了,却在平台审核中失败?

本地测试通常针对的是压缩混淆和打包之前的源代码,而不是实际上传的那个 ZIP。压缩混淆可能在本地测试通过之后剥离 ad.size 标签或破坏 clickTag 变量,因此检查需要针对最终的构建产物进行。

40 个文件的限制是按商品计算还是按广告系列计算?

按单个广告素材 ZIP 计算。如果批量导出为每个 SKU 生成一个 ZIP,那么每个 ZIP 都必须各自低于上限,该限制不会在整个广告系列的文件总数中平均分摊。

应用广告系列 HTML5 规范与标准展示广告 HTML5 规范有什么区别?

它们是两套独立的规范,限制不同,针对的广告资源也不同。标准上传型展示广告上限为 600 KB 和 40 个文件,尺寸灵活;应用广告系列 HTML5 插页式广告允许最大 5.2 MB 和 512 个文件,但仅支持两种固定的竖屏/横屏尺寸。将一套规范的假设套用到另一套规范的版位上,是素材包被拒的常见原因。

这些文件和 clickTag 规则适用于基于同一 Feed 生成的视频创意吗?

不适用。视频素材遵循各平台的视频广告规范(编码、时长、宽高比),而不是本指南中的 HTML5 ZIP 规则。同时产出视频和 HTML5 的 Feed 驱动流程,需要分别对两者进行质检。

在打开开发者工具的浏览器中渲染组装好的广告素材,在独立的标签页中加载广告,然后在网络面板中统计实际设置的 Cookie 数量和发出的请求数量。如果在构建时注入跟踪代码之前单独测试模板,两项数量都会被低估。

如果手动维护这一合规层并不是团队时间的最佳用途,不妨了解 Feedance 的 Creative Suite 如何直接根据您的商品 Feed 生成可直接用于各渠道的创意(静态图片、视频和 HTML5 横幅),并结合 Feed 数据丰富功能优化底层商品数据。Karaca 正是采用了同样的 Feed 到创意的方法,在两小时内制作了 10,000 个品牌化黑色星期五创意。欢迎与我们聊聊您的商品目录和当前的拒登率。

想请人帮您把把关?我们会与您一起审查 feed,并在下次提交前指出其中的缺口。
免费诊断
Cagdas Polat
作者
Cagdas Polat

Feedance 联合创始人,凭借计算机工程师与营销人的双重背景推动数据分析洞察。他专注于将数据转化为可落地的策略,致力于帮助品牌在数字化领域实现显著增长。

LinkedIn

看看哪些
商品真正带来收益。

连接您的 feed 和 GA4,我们会在您自己的商品目录上展示 Product Score、4T、Price War 和 Broken Size。