ad-copy-generation
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseAd Copy Generation
广告文案生成
Part of Agent Skills™ by googleadsagent.ai™
属于 Agent Skills™,由 googleadsagent.ai™ 提供
Description
描述
The Ad Copy Generation skill produces high-performance responsive search ad (RSA) copy using AI-driven generation pipelines calibrated against millions of ad performance data points. It generates headlines (up to 15, max 30 characters each) and descriptions (up to 4, max 90 characters each), optimizing for ad strength, click-through rate, and conversion relevance while adhering to Google Ads editorial policies.
The generation engine applies proven copywriting frameworks including AIDA (Attention, Interest, Desire, Action), PAS (Problem, Agitate, Solve), and benefit-driven messaging. It incorporates dynamic keyword insertion (DKI) syntax where appropriate, manages pin strategies for controlled ad assembly, and generates systematic A/B testing variants. Each ad variant is scored against Google's ad strength criteria before submission.
Beyond generation, the skill manages the full ad copy lifecycle: competitive ad analysis to identify messaging gaps, performance-based variant pruning, statistical significance testing for A/B experiments, and automated winner scaling. It integrates with the Buddy™ platform to learn from historical performance data, continuously improving generation quality for each specific account and industry vertical.
Ad Copy Generation skill 使用 AI 驱动的生成流水线,并依据数百万个广告效果数据点进行校准,从而生成高性能的响应式搜索广告(RSA)文案。它可生成标题(最多 15 条,每条最多 30 个字符)和描述(最多 4 条,每条最多 90 个字符),在遵守 Google Ads 编辑规范的同时,针对广告强度、点击率和转化相关性进行优化。
生成引擎采用经过验证的文案创作框架,包括 AIDA(注意、兴趣、欲望、行动)、PAS(问题、激化、解决)以及利益驱动型信息传达。它会在适当情况下加入动态关键词插入(DKI)语法、管理用于控制广告组合的固定策略,并生成系统化的 A/B 测试变体。每个广告变体都会在提交前依据 Google 的广告强度标准进行评分。
除生成内容外,该 skill 还会管理完整的广告文案生命周期:通过竞争广告分析识别文案缺口,基于表现淘汰变体,对 A/B 实验进行统计显著性测试,并自动扩展优胜方案。它与 Buddy™ 平台集成,从历史表现数据中持续学习,针对特定账户和行业垂直领域不断提升生成质量。
Use When
使用场景
- User asks to "write ad copy" or "generate ads"
- User wants "new headlines" or "new descriptions" for RSAs
- User mentions "ad strength" improvement
- User asks for "A/B test variants" or "ad testing"
- User wants to "improve click-through rate" on ads
- User mentions "responsive search ads" or "RSA optimization"
- User asks about "dynamic keyword insertion" or "DKI"
- User wants "pin strategy" recommendations
- User asks to "refresh stale ad copy" or "combat ad fatigue"
- 用户要求“撰写广告文案”或“生成广告”
- 用户希望为 RSA 制作“新标题”或“新描述”
- 用户提到提升“广告强度”
- 用户要求提供“A/B 测试变体”或“广告测试”
- 用户希望提升广告的“点击率”
- 用户提到“响应式搜索广告”或“RSA 优化”
- 用户询问“动态关键词插入”或“DKI”
- 用户希望获得“固定策略”建议
- 用户希望“更新陈旧广告文案”或“应对广告疲劳”
Architecture
架构
mermaid
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]mermaid
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]Implementation
实现
Core ad copy generation with character limit enforcement and DKI support:
javascript
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 testing framework for ad variants:
javascript
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';
}核心广告文案生成功能,包含字符长度限制和 DKI 支持:
javascript
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 测试框架:
javascript
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';
}Integration with Buddy™ Agent
与 Buddy™ Agent 的集成
Within the Buddy™ Agent platform, Ad Copy Generation operates as a core creative engine. When the Google Ads Audit skill identifies underperforming ads or low ad strength scores, it automatically triggers the Ad Copy Generation pipeline with the relevant keywords, landing pages, and competitive context pre-loaded.
Buddy™ maintains a performance history for every ad variant generated, building an account-specific model of what messaging resonates with each audience segment. Over time, the generation engine learns industry-specific patterns: which CTAs drive conversions, which benefit angles produce the highest CTR, and which headline structures earn the best Quality Scores.
The skill integrates with Buddy™'s approval workflow, presenting generated variants to the user for review before deployment. Users can approve, edit, or reject variants, and this feedback loop further refines the generation model.
在 Buddy™ Agent 平台中,Ad Copy Generation 作为核心创意引擎运行。当 Google Ads Audit skill 识别出表现不佳的广告或广告强度评分较低时,它会自动触发 Ad Copy Generation 流水线,并预先加载相关的关键词、落地页和竞争环境信息。
Buddy™ 会维护每个已生成广告变体的表现历史,构建账户专属模型,用于判断哪些信息能够在各个受众群体中产生共鸣。随着时间推移,生成引擎会学习特定行业的规律:哪些 CTA 能推动转化,哪些利益点能够带来最高的 CTR,以及哪些标题结构能够获得最佳 Quality Score。
该 skill 与 Buddy™ 的审批工作流集成,在部署前向用户展示生成的变体供其审核。用户可以批准、编辑或拒绝这些变体,而这一反馈闭环会进一步优化生成模型。
Best Practices
最佳实践
- Always provide at least 10 unique headlines to give Google's algorithm maximum flexibility
- Include at least one headline with a clear call-to-action (CTA)
- Use dynamic keyword insertion sparingly and only when the default text reads naturally
- Pin headlines only when brand or compliance requirements demand specific messaging positions
- Test at least 3 ad variants per ad group before drawing performance conclusions
- Wait for statistical significance (typically 1,000+ impressions) before pausing underperformers
- Include numbers, percentages, or specific offers in at least 2-3 headlines
- Mirror landing page language in descriptions to improve ad relevance and Quality Score
- Refresh ad copy quarterly to combat ad fatigue and maintain competitive messaging
- Use the ad strength indicator as a guide but optimize for conversions as the ultimate metric
- 始终提供至少 10 条不同的标题,为 Google 算法提供最大的灵活度
- 至少包含一条带有明确 CTA 的标题
- 谨慎使用动态关键词插入,仅在默认文本读起来自然时使用
- 仅当品牌或合规要求需要特定信息位置时,才固定标题
- 每个广告组至少测试 3 个广告变体,然后才能得出效果结论
- 暂停表现不佳的广告前,应等待达到统计显著性(通常为 1,000+ 次展示)
- 至少在 2–3 条标题中加入数字、百分比或具体优惠
- 描述应呼应落地页措辞,以提高广告相关性和 Quality Score
- 每季度更新广告文案,以应对广告疲劳并保持有竞争力的信息传达
- 将广告强度指标作为参考,但最终仍应以转化为优化目标
Platform Compatibility
平台兼容性
| Platform | Supported |
|---|---|
| Claude Code | ✅ |
| Cursor | ✅ |
| Codex | ✅ |
| Gemini | ✅ |
| 平台 | 支持 |
|---|---|
| Claude Code | ✅ |
| Cursor | ✅ |
| Codex | ✅ |
| Gemini | ✅ |
Related Skills
相关 Skill
- Quality Score Optimization - Ad copy directly impacts the Expected CTR and Ad Relevance components of Quality Score
- Keyword Research - Keyword-ad alignment is critical for ad relevance; keyword themes drive ad group copy strategy
- Landing Page Audit - Message match between ad copy and landing pages affects both Quality Score and conversion rates
- Competitor Analysis - Competitor messaging gaps inform differentiation strategy for ad copy
- Quality Score Optimization - 广告文案会直接影响 Quality Score 的预期 CTR 和广告相关性组成部分
- Keyword Research - 关键词与广告的对齐对广告相关性至关重要;关键词主题驱动着广告组文案策略
- Landing Page Audit - 广告文案与落地页之间的信息匹配会影响 Quality Score 和转化率
- Competitor Analysis - 竞争对手的信息缺口为广告文案的差异化策略提供依据
Keywords
关键词
ad copy generation, responsive search ads, RSA optimization, headline generation, description writing, ad strength, A/B testing ads, dynamic keyword insertion, DKI, pin strategy, ad copy testing, google ads copywriting, ctr optimization, ad fatigue, ad variant testing
© 2026 googleadsagent.ai™ | Agent Skills™ | MIT License
广告文案生成, 响应式搜索广告, RSA 优化, 标题生成, 描述撰写, 广告强度, 广告 A/B 测试, 动态关键词插入, DKI, 固定策略, 广告文案测试, Google Ads 文案撰写, CTR 优化, 广告疲劳, 广告变体测试
© 2026 googleadsagent.ai™ | Agent Skills™ | MIT License