Google Ads 文案
你编写的搜索广告文案需要同时与三件事保持一致:用户输入的内容、落地页的内容以及产品能够诚实宣称的内容。然后将文案填入用户的 Google Ads 复制模板中。你需要交付两样东西:
- 已填充的工作簿副本。 原始文件不会被修改。
- 每个广告组的简短聊天摘要: 广告角度、广告测试内容以及用户在上线前需要了解的所有标记。
大部分质量来自步骤 0 到 3。没有这些背景信息编写的标题与竞争对手的标题毫无区别。有了这些背景,标题才能足够具体,从而赢得点击并经受住广告审核。
用户已选择的默认设置。无需再次询问。
- 产品事实来自产品技能的文件,在运行时读取。绝不依赖记忆。
- 简短输入可以来自模板的“关键词与意图”标签页、Google Ads 连接器或聊天记录。综合使用它们。
- 输出是已填充的
.xlsx文件。 - 仅在围绕该竞争对手(替代品、对比、定价、评价)构建的广告组中,才在广告文案中使用竞争对手名称。在其他所有地方,文案中不出现名称。
在首次填充之前,请阅读 references/template-map.md。其中包含工作簿布局、负载模式和脚本用法。
步骤 0:加载产品上下文
产品事实来自用户自己的产品上下文,绝不来自记忆。按以下列表顺序查找,在第一个能提供上下文包的来源处停止:
- 对话中是否已存在? 用户运行了产品技能、粘贴了简报或附上了定位文档。直接使用它。
- 配置。 如果此技能文件夹中存在
config/product-context.md,它会将细分市场映射到产品技能或文件,并说明在哪里找到它们。使用用户命名的细分市场。否则,从广告组、关键词和落地页推断。如果存在歧义或广告组混合了细分市场,请询问一次。切勿将一个广告中混合两个细分市场。 - 项目文件。 在项目中查找
.agents/product-marketing.md、.claude/product-marketing.md或product-marketing-context.md(即product-marketing技能写入的文件)。 - 询问。 请用户指向一个产品技能、一个文件或一个 URL,或者粘贴一份简报:产品做什么、为谁做、证据点、禁止提及的主张、竞争对手是谁。明确说明文案仅基于该简报。
通过路径读取产品技能的 SKILL.md。不要依赖 Skill 工具:产品技能通常是仅手动调用的(disable-model-invocation: true),且工具会拒绝这些调用。
然后提取上下文包(references/context-pack.md):此广告组的待完成工作、用户画像、安全的证据点、带有等级的主张护栏、竞争框架、信息传递支柱。记录你计划使用的证据点。备注单元格稍后会引用它们。
应用产品上下文中陈述的任何限定性测试或排除条件。如果某个广告组针对的是产品上下文排除的买家,请说明情况并在为其撰写文案前询问。
步骤 1:收集广告组简报
每个广告组你需要:广告系列名称、广告组名称、关键词(带有匹配类型、意图、优先级)、最终到达网址。 有用的补充信息:优惠、号召性用语、地理位置、受众、现有广告、涉及到的竞争对手。
来源,综合使用:
- 模板。 如果用户提供了工作簿,运行
scripts/read_template.py <xlsx>。“关键词与意图”行就是简报。相同的输出也显示已存在的广告文案,这样你就不会重复。空白副本包含在assets/Google_Ads_Copy_Template.xlsx中;当用户没有工作簿时使用它。 - Google Ads 连接器(当
ads_search工具可用时)。只读。拉取广告组、关键词、搜索词以及带有资产效果标签的现有 RSA。查询和注意事项见references/google-ads-connector.md。如果你没有客户 ID,请询问。切勿向账号写入数据。 - 聊天记录。 用户粘贴或描述的任何内容。
使用在账号或表格中出现的准确名称。不要发明广告系列或广告组名称。如果缺少关键信息,一次询问,用一条消息列出所有你需要的内容。
关键词意图和优先级:如果用户没有设置,根据关键词措辞提出建议,并说明你推断的依据。意图决定了广告角度(见 references/rsa-playbook.md)。
步骤 2:读取落地页和网站
实时获取每个最终到达网址。WebFetch 返回的是小模型摘要,其“未找到”答案不可靠,因此用它来阅读页面,然后对照原始 HTML(curl -sL <url> | grep -i -o '.\(40\).*<claim>.\(40\).*')确认广告文案将依赖的每一个主张。对于需要 JavaScript 的页面,使用浏览器。如果无法获取页面,请用户粘贴其文本。切勿凭记忆编写页面内容。
捕捉 H1、副标题、主要 CTA 标签、优惠及其条款、定价可见性、页面上的证明、表单或预订流程以及页面做出的每一个主张。然后阅读网站的导航或站点地图,找到附加链接的目标页面以及支持每个标注和结构化摘要值的页面。在该行的备注单元格中记录每个链接或摘要对应的页面。
页面能改变和不能改变的内容:
- 信息匹配。 广告的承诺、CTA 和关键术语必须出现在页面上。页面不支持标题会损害质量得分和信任度。
- 主张上限。 不要在广告中提出比页面更多的主张。当产品技能允许页面缺少的主张时,仅在你标记该差距时使用(“上线前将此添加到页面”)。
- 优惠来自页面。 产品技能很少列出优惠。仅当页面明确说明时,才使用免费试用、演示时长或价格。如果其条款或受众不在页面上,请标记该差距,而不是猜测。
- 页面上的被阻止主张。 如果页面包含产品技能护栏阻止的主张,不要重复它,并告知用户。他们的网站与自己的规则相矛盾。
- 比用户可能使用的更弱的页面。 如果用户的 URL 不包含关键词,且存在更好的页面,请保留他们的 URL,标记差距,并命名更好的页面。如果他们同意,一起更改
final_url和每个关键词的landing_page。
在简报中列出落地页差距:广告中有但页面没有的优惠、CTA 不匹配、证据不足。
步骤 3:竞争对手上下文
从产品技能的竞争框架开始:竞争对手是谁、在哪里竞争、在哪里让步。对于围绕竞争对手名称构建的广告组,还需获取该竞争对手自己的定价或落地页(一到两个页面),以便广告文案回应他们当前的声称。不要抓取 Google 搜索结果页面。
使用竞争对手研究来选择广告角度(切换理由、成本透明度、你能做而他们不能做的事),并避免提出无法证明的主张。它绝不是复制文案的来源。
竞争对手名称:
- 允许在针对该竞争对手构建的广告组的标题、描述和显示路径中使用。在负载中将
competes_with设置为广告。 - 不允许在通用广告组或附加链接、标注和结构化摘要中使用。
- 未经证明,绝不使用“#1”、“最佳”或“比 X 更便宜”。绝不贬低。
- 每次指名使用都存在商标投诉风险。检查脚本会记录每条名称;将其带入备注单元格和聊天简报中。
步骤 4:在动笔之前先规划
针对每个广告组,编写一个简短计划:主要意图、它要解决的一个任务、三到四个角度(关键词呼应、结果、证明、差异化、优惠、风险降低因素)以及哪些关键词必须逐字出现。原因:Google 会重新组合 RSA,因此重要的是覆盖不同角度,每条文案能独立成句,而不是一句话拆成 15 个片段。
也要规划资产:四个或更多附加链接目标(来自步骤 2 的真实页面)、四个或更多标注事实及其支持的页面,以及一个可以诚实填充值的摘要标题。
注意关键词还吸引了哪些人(学习者、学生、爱好者、错误细分市场)。在有用的情况下添加限定性标题,并在简报中建议否定关键词。不要自行添加否定关键词。
决定一个广告还是两个。仅当测试不同角度时,才在广告组中运行第二个 RSA。混合意图的广告组仍然只用一个主导广告:其 CTA 组合遵循优先级最高的关键词,在直接标题 CTA 旁边使用柔和的描述 CTA 是可以接受的。
步骤 5:撰写
遵循 references/rsa-playbook.md 获取标题和描述配方、意图到角度的映射、路径、固定和假设单元格。遵循 references/assets-playbook.md 获取附加链接、标注和结构化摘要。遵循 references/policy-checklist.md 了解 Google 拒绝批准的内容以及如何处理主张。
简要版本:
- 主导广告 15 个标题和 4 个描述。每个标题与其他任何标题组合在一起都能正确阅读。
- 在高优先级关键词的标题中设置呼应。选择最长的变体,以便较短的兄弟关键词能包含在其中。呼应标题不受“不要以相同词语开头”规则的限制。可读性优先于模板的“在标题中?”检查:如果关键词读起来像拼写错误(例如“multi cloud”),则写出自然形式(例如“Multi-Cloud”),并在备注中说明检查会显示为否。
- 主张仅来自产品技能的安全列表,且在其护栏范围内。D 级或 HIGH 风险的主张绝不出现。中等风险的主张仅当落地页重复它们时才出现。
- 附加链接 URL 是你获取过的真实页面。绝不发明路径。
- 使用产品技能的语气编写。使用平实的词语、具体的名词,避免使用“解锁”、“无缝”、“简化”。
继续之前,如果 stop-slop 技能可用,请将文案通过它运行。对每一行应用其填充词和结构规则,将描述作为一个整体进行评分;在低于 35/50 分时进行修改。在 30 个字符的标题中,限制、政策和信息匹配优先于其副词和被动语态规则。如果替代方案会导致更差的标题,保留“受到...信赖”,但在不增加成本的情况下,优先使用主动形式。
步骤 6:检查,然后填充
将负载 JSON 写入临时位置(不是技能文件夹,也不是用户的仓库)。模式见 references/template-map.md;一个通过的示例是 references/example-payload.json。根据产品技能的表构建护栏列表:blocked_claims 或 hedged_claims 中每行一个正则表达式。当产品技能自相矛盾时,护栏表优先。将证据点中的每个命名客户放入 customers。
python3 <skill>/scripts/check_copy.py payload.json --template <template.xlsx> --verify-urls
修复每个 ERROR。阅读每个 WARN,要么修复它,要么保留它并给出理由。INFO 行(竞争对手名称使用、命名客户、不在标题中的关键词)放入简报中。然后:
python3 <skill>/scripts/fill_template.py --template <template.xlsx> --payload payload.json \
--out "<template stem> - filled.xlsx"
将输出保存到用户工作簿旁边,或者在使用捆绑模板时保存到工作目录。切勿保存到技能文件夹内。脚本会再次验证,写入第一个空闲行,清除示例行,并验证保存的文件。如果脚本非零退出,不要交出文件;修复原因。如果 Python 不可用,按照模板列顺序提供相同行的制表符分隔块。
步骤 7:交付
给出填充文件的路径,每个广告组一个块,广告系列资产一个块。保持简短;文案在文件中。
**AD-001 · rivalapp alternative** 就绪,15 个标题,4 个描述
角度:切换和迁移,以成本作为测试臂。
测试内容:H3、H4、D2 对比 H8、H14、D4。一旦离开学习阶段,请阅读资产标签。
标记:H1、D1、路径2中的竞争对手名称(投诉风险)。H11 提到客户名称(需要签署)。
落地页差距:免费导入尚未在页面上。
**资产 · 搜索 | 项目管理 | 竞争对手替代品** 4 个附加链接,5 个标注,1 个摘要(类型)
页面:每个附加链接已获取并可加载。标注由首页和 /import 支持。
标记:附加链接“客户故事”提到了 Fabrikam(需要签署)。
然后是一个简短的需要你决策列表:更好的落地页、页面未提及条款的优惠、你排除的未经批准的声明、需要确认的客户、需要添加的否定关键词、任何标题都无法容纳的关键词、你建议拆分的广告组、你做出的任何假设。说明你验证了什么(检查脚本、URL 获取、在原始 HTML 中 grep 的主张)以及你没有验证什么(工作簿未在 Excel 中打开;连接器查询未运行,除非你运行了它们)。
刷新现有广告
如果连接器显示广告组中存在现有 RSA,则将任务视为刷新。保留标记为 BEST 或 GOOD 的资产,替换 LOW 的资产,保留 LEARNING 的资产不变,除非错误否则保持固定设置,并在备注单元格和简报中列出你替换的内容。不要从头重写一个正在运行的广告。