关于 ad-copy-generation
面向广告团队的技能,用于撰写和测试 Google Ads 响应式搜索广告。它生成遵循政策的标题和描述,并支持变体测试及 Buddy™ 审核流程。
主要功能
- 01生成 RSA 标题和描述
- 02应用 AIDA 与 PAS 文案框架
- 03支持 DKI 和固定策略
- 04创建并测试广告变体
- 05通过 Buddy™ 审核变体
适用场景
- 01撰写新的响应式搜索广告
- 02更新表现欠佳的广告文案
- 03准备 A/B 测试变体
- 04提升广告强度和相关性
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ itallstartedwithaidea/ agent-skills --skill ad-copy-generation安装后在 Claude Code 中输入/ad-copy-generation确认已加载。
详细介绍
广告文案生成
Agent Skills™ 的组成部分,由 googleadsagent.ai™ 提供
描述
广告文案生成技能使用 AI 驱动的生成流水线,根据数百万个广告效果数据点进行校准,生成高性能的自适应搜索广告(RSA)文案。它会生成标题(最多 15 条,每条最多 30 个字符)和描述(最多 4 条,每条最多 90 个字符),在遵循 Google Ads 编辑政策的同时,优化广告效力、点击率和转化相关性。
生成引擎采用经过验证的文案撰写框架,包括 AIDA(Attention、Interest、Desire、Action)、PAS(Problem、Agitate、Solve)和以利益为导向的消息传达。它会在适当情况下加入动态关键字插入(DKI)语法,管理用于控制广告组装方式的固定策略,并系统地生成 A/B 测试变体。提交之前,会根据 Google 的广告效力标准对每个广告变体进行评分。
除了生成文案,该技能还负责管理完整的广告文案生命周期:分析竞争对手广告以发现消息传达方面的差距、根据效果筛选变体、对 A/B 实验进行统计显著性测试,以及自动扩大胜出变体的投放规模。它与 Buddy™ 平台集成,从历史效果数据中学习,不断提升针对每个具体账户和行业领域的生成质量。
使用场景
- 用户要求“撰写广告文案”或“生成广告”
- 用户想要为 RSA 撰写“新标题”或“新描述”
- 用户提到要提升“广告效力”
- 用户要求提供“A/B 测试变体”或“广告测试”
- 用户想要“提高广告的点击率”
- 用户提到“自适应搜索广告”或“RSA 优化”
- 用户询问“动态关键字插入”或“DKI”
- 用户想要获取“固定策略”建议
- 用户要求“更新过时的广告文案”或“应对广告疲劳”
架构
flowchart TD
A[Input: Keywords, Landing Page, USPs] --> B[Context Analysis]
B --> C[Landing Page Scraper]
B --> D[Keyword Intent Classifier]
B --> E[Competitor Ad Analyzer]
C --> F[Message Map Builder]
D --> F
E --> F
F --> G[AI Generation Engine]
G --> H[Headline Generator\nmax 30 chars x 15]
G --> I[Description Generator\nmax 90 chars x 4]
H --> J[Policy Compliance Check]
I --> J
J --> K[Ad Strength Scorer]
K -->|Excellent| L[Final Ad Variants]
K -->|Good| L
K -->|Average| M[Regenerate with Feedback]
K -->|Poor| M
M --> G
L --> N[Pin Strategy Optimizer]
N --> O[A/B Test Plan]
O --> P[Deploy to Google Ads]
实现
支持字符限制和 DKI 的核心广告文案生成:
const HEADLINE_MAX_LENGTH = 30;
const DESCRIPTION_MAX_LENGTH = 90;
const MAX_HEADLINES = 15;
const MAX_DESCRIPTIONS = 4;
const COPYWRITING_FRAMEWORKS = {
AIDA: ['attention', 'interest', 'desire', 'action'],
PAS: ['problem', 'agitate', 'solve'],
BENEFIT: ['primary_benefit', 'secondary_benefit', 'proof', 'cta']
};
async function generateAdCopy(config) {
const { keywords, landingPageUrl, usps, industry, targetAudience } = config;
const landingPageContent = await scrapeLandingPage(landingPageUrl);
const competitorAds = await analyzeCompetitorAds(keywords);
const intentSignals = classifyKeywordIntent(keywords);
const headlines = await generateHeadlines({
keywords,
usps,
competitorAds,
intentSignals,
landingPageContent,
maxLength: HEADLINE_MAX_LENGTH,
count: MAX_HEADLINES
});
const descriptions = await generateDescriptions({
keywords,
usps,
landingPageContent,
maxLength: DESCRIPTION_MAX_LENGTH,
count: MAX_DESCRIPTIONS
});
return buildAdVariants(headlines, descriptions);
}
function applyDynamicKeywordInsertion(headline, defaultText) {
const dkiSyntax = `{KeyWord:${defaultText}}`;
if (dkiSyntax.length <= HEADLINE_MAX_LENGTH) {
return dkiSyntax;
}
return defaultText;
}
function generatePinStrategy(headlines, descriptions) {
return {
position1: headlines.filter(h => h.type === 'brand' || h.type === 'primary_keyword'),
position2: headlines.filter(h => h.type === 'benefit' || h.type === 'usp'),
position3: headlines.filter(h => h.type === 'cta' || h.type === 'offer'),
desc1: descriptions.filter(d => d.type === 'primary'),
desc2: descriptions.filter(d => d.type === 'supporting')
};
}
广告变体的 A/B 测试框架:
function createABTestPlan(adVariants, config) {
const { minImpressions = 1000, confidenceLevel = 0.95 } = config;
return {
controlGroup: adVariants[0],
testGroups: adVariants.slice(1),
evaluationCriteria: {
primaryMetric: 'conversion_rate',
secondaryMetrics: ['ctr', 'cost_per_conversion'],
minImpressions,
confidenceLevel,
testDuration: calculateMinTestDuration(minImpressions)
},
decisionRules: {
winner: 'statistically_significant_improvement',
loser: 'statistically_significant_decline',
inconclusive: 'extend_test_or_increase_budget'
}
};
}
function evaluateAdStrength(headlines, descriptions) {
let score = 0;
const uniqueHeadlines = new Set(headlines.map(h => h.text.toLowerCase()));
if (uniqueHeadlines.size >= 8) score += 25;
if (headlines.some(h => h.includesKeyword)) score += 15;
if (headlines.some(h => h.includesCTA)) score += 15;
if (headlines.some(h => h.includesNumber)) score += 10;
if (descriptions.length >= 4) score += 15;
if (descriptions.some(d => d.includesCTA)) score += 10;
if (descriptions.some(d => d.includesUSP)) score += 10;
if (score >= 80) return 'Excellent';
if (score >= 60) return 'Good';
if (score >= 40) return 'Average';
return 'Poor';
}
与 Buddy™ Agent 集成
在 Buddy™ Agent 平台中,广告文案生成作为核心创意引擎运行。当 Google Ads Audit 技能发现表现不佳的广告或广告效力评分偏低时,会自动触发广告文案生成流水线,并预先载入相关关键字、着陆页和竞争环境信息。
Buddy™ 会记录每个生成广告变体的效果历史,为每个账户建立专属模型,了解哪些消息传达方式能引起各受众群体的共鸣。随着时间推移,生成引擎会学习特定行业的规律:哪些 CTA 能带来转化,哪些利益角度能产生最高的 CTR,以及哪些标题结构能获得最佳质量得分。
该技能与 Buddy™ 的审批工作流集成,在部署前将生成的变体呈现给用户审核。用户可以批准、编辑或拒绝变体;这一反馈循环还会进一步优化生成模型。
最佳实践
- 始终至少提供 10 条不同的标题,让 Google 的算法有最大的灵活性
- 至少包含一条带有明确行动号召(CTA)的标题
- 谨慎使用动态关键字插入,且仅在默认文本读起来自然时使用
- 仅在品牌或合规要求指定特定消息位置时固定标题
- 在得出效果结论前,每个广告组至少测试 3 个广告变体
- 暂停表现不佳的广告前,等待达到统计显著性(通常为 1,000 次以上展示)
- 至少在 2-3 条标题中加入数字、百分比或具体优惠
- 在描述中使用与着陆页一致的措辞,以提高广告相关性和质量得分
- 每季度更新广告文案,以应对广告疲劳并保持消息传达的竞争力
- 将广告效力指标作为参考,但最终应以转化为优化目标
平台兼容性
| 平台 | 支持 |
|---|---|
| Claude Code | ✅ |
| Cursor | ✅ |
| Codex | ✅ |
| Gemini | ✅ |
相关技能
- 质量得分优化 - 广告文案会直接影响质量得分中的预期点击率和广告相关性这两项
- 关键词研究 - 关键词与广告的匹配对于广告相关性至关重要;关键词主题决定广告组文案策略
- 着陆页审查 - 广告文案与着陆页之间的信息匹配会影响质量得分和转化率
- 竞争对手分析 - 竞争对手的信息差距有助于制定广告文案的差异化策略
关键词
广告文案生成、响应式搜索广告、RSA 优化、标题生成、描述撰写、广告强度、广告 A/B 测试、动态关键词插入、DKI、固定策略、广告文案测试、Google Ads 文案撰写、CTR 优化、广告疲劳、广告变体测试
© 2026 googleadsagent.ai™ | Agent Skills™ | MIT License