mcpField
P
pmax-optimization

pmax-optimization

github.com/itallstartedwithaidea营销与增长44106 次安装28 周前更新
代码仓库

关于 pmax-optimization

面向 Google Performance Max(PMax)广告活动的优化技能,供广告运营者和营销 Agent 使用。它围绕结构、受众信号、素材表现与流量控制提供诊断和调整指导。

主要功能

  1. 01评估广告系列与素材组结构
  2. 02检查受众信号和搜索主题
  3. 03分析素材评级并建议替换
  4. 04管理品牌排除与否定关键词
  5. 05检查最终网址扩展设置

适用场景

  1. 01拆分不同产品线的素材组
  2. 02排查品牌搜索流量被蚕食
  3. 03替换表现较低的广告素材
  4. 04调整搜索主题与网址扩展

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/itallstartedwithaidea/agent-skills --skill pmax-optimization

安装后在 Claude Code 中输入/pmax-optimization确认已加载。

详细介绍

效果最大化广告系列优化

属于 Agent Skills™,由 googleadsagent.ai™ 提供

描述

效果最大化广告系列优化技能为 Google 自动化程度最高的广告系列类型提供专家级管理。效果最大化(PMax)广告系列利用 AI 驱动的定向,在 Google 的所有广告资源中投放广告——包括搜索、展示广告、YouTube、Discover、Gmail 和 Maps。虽然 Google 会自动完成大部分投放工作,但广告主的策略性输入会显著影响效果:素材质量、受众信号、网址策略、搜索主题和广告系列结构,决定了 PMax 带来的是高效增长还是无效支出。

此技能旨在解决 PMax 的核心难题:优化一个黑盒系统。它会制定结构方面的最佳实践(按照产品线或受众细分规划素材组架构)、配置能加速机器学习且不限制覆盖面的受众信号、管理网址扩展设置以平衡自动化与品牌安全,并利用搜索主题功能影响 PMax 在搜索中的展示位置。

素材效果管理是 PMax 成功的关键。此技能会监控素材效果评级(最佳、良好、较低及其可用组合)、识别表现不佳的创意元素,并生成替换素材。它还会管理经常被忽视的否定性控制措施:品牌排除项(防止蚕食品牌搜索广告系列)、否定关键词(可通过 API 或联系 Google 代表设置),以及展示广告和 YouTube 广告资源的展示位置排除项(维护品牌安全)。

适用场景

  • 用户询问“效果最大化”或“PMax”广告系列
  • 用户想要“优化 PMax”或“提升 PMax 效果”
  • 用户提到“素材组”或“素材效果”
  • 用户询问 PMax 的“受众信号”
  • 用户提到“网址扩展”或“最终到达网址”设置
  • 用户想要为 PMax“添加搜索主题”
  • 用户询问 PMax 是否会蚕食搜索广告系列的流量
  • 用户提到“PMax 否定关键词”或“品牌排除项”
  • 用户想要“规划 PMax 广告系列结构”或“创建素材组”

架构

flowchart TD
    A[PMax Campaign Analysis] --> B[Structural Assessment]
    A --> C[Asset Performance Review]
    A --> D[Signal Quality Evaluation]

    B --> B1[Asset Group Architecture]
    B --> B2[Campaign Segmentation]
    B --> B3[URL Expansion Settings]
    B --> B4[Bidding Configuration]

    C --> C1[Headlines: Best/Good/Low]
    C --> C2[Descriptions: Best/Good/Low]
    C --> C3[Images: Best/Good/Low]
    C --> C4[Videos: Best/Good/Low]
    C --> C5[Ad Strength Rating]

    D --> D1[Custom Segments]
    D --> D2[Your Data Lists]
    D --> D3[Google Audiences]
    D --> D4[Demographics]

    B1 --> E[Optimization Engine]
    B2 --> E
    B3 --> E
    B4 --> E
    C1 --> E
    C2 --> E
    C3 --> E
    C4 --> E
    D1 --> E
    D2 --> E
    D3 --> E
    D4 --> E

    E --> F[Structural Recommendations]
    E --> G[Asset Replacement Queue]
    E --> H[Signal Refinements]
    E --> I[Negative Controls]

    I --> I1[Brand Exclusions]
    I --> I2[Negative Keywords via API]
    I --> I3[Placement Exclusions]
    I --> I4[Search Theme Adjustments]

实现

PMax 广告系列评估与优化引擎:

async function optimizePMax(customerId, campaignId) {
  const campaign = await getPMaxCampaignData(customerId, campaignId);
  const assetGroups = await getAssetGroups(customerId, campaignId);
  const audienceSignals = await getAudienceSignals(customerId, campaignId);
  const searchTermInsights = await getSearchTermInsights(customerId, campaignId);

  return {
    structuralAssessment: assessStructure(campaign, assetGroups),
    assetPerformance: analyzeAssets(assetGroups),
    signalQuality: evaluateSignals(audienceSignals),
    searchAnalysis: analyzeSearchTerms(searchTermInsights),
    recommendations: generateRecommendations(campaign, assetGroups, audienceSignals),
    negativeControls: reviewNegativeControls(campaign)
  };
}

function assessStructure(campaign, assetGroups) {
  const issues = [];

  if (assetGroups.length === 1 && campaign.productCount > 20) {
    issues.push({
      severity: 'high',
      finding: 'Single asset group serving all products',
      recommendation: 'Split into themed asset groups by product category for tailored messaging'
    });
  }

  for (const group of assetGroups) {
    if (group.headlines.length < 5) {
      issues.push({
        severity: 'medium',
        assetGroup: group.name,
        finding: `Only ${group.headlines.length} headlines (minimum 5, recommended 15)`,
        recommendation: 'Add headlines to maximize ad combination options'
      });
    }
    if (!group.videos || group.videos.length === 0) {
      issues.push({
        severity: 'high',
        assetGroup: group.name,
        finding: 'No videos provided — Google will auto-generate low-quality videos',
        recommendation: 'Upload at least one custom video to prevent auto-generation'
      });
    }
    if (group.adStrength !== 'EXCELLENT') {
      issues.push({
        severity: 'medium',
        assetGroup: group.name,
        finding: `Ad strength: ${group.adStrength} (target: Excellent)`,
        recommendation: 'Add more unique, diverse assets to improve ad strength'
      });
    }
  }

  return {
    urlExpansion: campaign.urlExpansionEnabled,
    finalUrlStrategy: campaign.finalUrlStrategy,
    biddingStrategy: campaign.biddingStrategy,
    issues
  };
}

function analyzeAssets(assetGroups) {
  const analysis = [];

  for (const group of assetGroups) {
    const allAssets = [
      ...group.headlines.map(a => ({ ...a, type: 'headline' })),
      ...group.descriptions.map(a => ({ ...a, type: 'description' })),
      ...group.images.map(a => ({ ...a, type: 'image' })),
      ...(group.videos || []).map(a => ({ ...a, type: 'video' }))
    ];

    const lowPerformers = allAssets.filter(a => a.performanceLabel === 'LOW');
    const bestPerformers = allAssets.filter(a => a.performanceLabel === 'BEST');

    analysis.push({
      assetGroup: group.name,
      totalAssets: allAssets.length,
      performanceDistribution: {
        best: bestPerformers.length,
        good: allAssets.filter(a => a.performanceLabel === 'GOOD').length,
        low: lowPerformers.length,
        learning: allAssets.filter(a => a.performanceLabel === 'LEARNING').length
      },
      replacementCandidates: lowPerformers.map(a => ({
        type: a.type,
        content: a.text || a.url,
        performanceLabel: a.performanceLabel,
        action: 'replace_with_new_variant'
      })),
      topPerformers: bestPerformers.map(a => ({
        type: a.type,
        content: a.text || a.url,
        insight: 'Use this as a template for new variants'
      }))
    });
  }

  return analysis;
}

搜索主题和否定关键词管理:

function configureSearchThemes(campaign, searchTermInsights) {
  const topConvertingTerms = searchTermInsights
    .filter(t => t.conversions > 0)
    .sort((a, b) => b.conversionValue - a.conversionValue);

  const missingCoverage = searchTermInsights
    .filter(t => t.impressionShare < 0.3 && t.conversions > 0);

  return {
    recommendedThemes: topConvertingTerms.slice(0, 25).map(t => ({
      theme: t.searchTerm,
      rationale: `${t.conversions} conversions, ${formatCurrency(t.conversionValue)} value`,
      searchVolume: t.estimatedVolume
    })),
    expansionOpportunities: missingCoverage.map(t => ({
      theme: t.searchTerm,
      currentImpressionShare: t.impressionShare,
      potentialGain: `Up to ${((1 - t.impressionShare) * t.conversions).toFixed(0)} additional conversions`
    })),
    maxThemes: 25
  };
}

async function manageNegativeKeywords(customerId, campaignId) {
  const searchTerms = await getSearchTermInsights(customerId, campaignId);

  const negatives = searchTerms.filter(term =>
    term.clicks > 5 && term.conversions === 0 && term.cost > 50
  );

  return {
    recommendedNegatives: negatives.map(n => ({
      term: n.searchTerm,
      clicks: n.clicks,
      cost: n.cost,
      matchType: 'EXACT'
    })),
    implementation: {
      method: 'google_ads_api',
      note: 'PMax negative keywords require API access or Google rep assistance',
      apiEndpoint: 'CampaignCriterionService',
      criterionType: 'KEYWORD',
      negativeType: 'campaign_level'
    },
    brandExclusions: {
      enabled: true,
      excludedBrands: [],
      recommendation: 'Exclude own brand if running separate branded Search campaigns'
    }
  };
}

与 Buddy™ Agent 集成

效果最大化广告系列优化是 Buddy™ Agent 中的高优先级技能,因为 PMax 广告系列在 Google Ads 账户支出中的占比日益增加。Buddy™ 每天监控 PMax 素材效果评级,自动标记评级为“较低”的素材,并利用广告文案生成技能生成替换建议。

Buddy™ 通过关联搜索字词洞察与转化数据,应对 PMax 的透明度难题,从而更清晰地了解 PMax 正在哪些位置找到转化。它会监控品牌查询的归因情况,检测对搜索广告系列流量的蚕食;当 PMax 以高于专用搜索广告系列的每次点击费用获取品牌流量时,Buddy™ 会建议设置品牌排除项。

该平台会管理受众信号的生命周期,按计划刷新客户匹配名单,并在转化模式发生变化时建议更新信号。对于电子商务账户,Buddy™ 会与购物广告技能协调,优化会直接影响 PMax 购物广告展示的商品 Feed 数据。

最佳实践

  1. 为不同的产品类别或受众群体创建单独的素材组
  2. 每个素材组至少提供 15 条标题、4 条说明、15 张图片和 1 个以上的自定义视频
  3. 上传自定义视频,避免 Google 自动生成低质量视频素材
  4. 添加搜索主题,引导 PMax 的搜索广告库存投放至高意向查询
  5. 如果单独投放品牌搜索广告系列,请启用品牌排除功能,避免流量蚕食
  6. 每周检查素材表现,并在 2 周内替换评级为“低”的素材
  7. 从强有力的受众信号(客户匹配、再营销名单)开始,加快学习
  8. 如果需要严格控制接收流量的落地页,请停用网址扩展
  9. 预留 4–6 周,让 PMax 退出学习阶段后再进行结构性更改
  10. 每周监控搜索字词洞察,并通过 API 为不相关的查询添加否定关键词

平台兼容性

平台支持情况
Claude Code✅
Cursor✅
Codex✅
Gemini✅

相关技能

  • 受众定向 - 受众信号是关键输入,可加快 PMax 机器学习
  • 购物广告 - 产品 Feed 质量会直接影响 PMax 购物广告投放
  • 广告文案生成 - 为 PMax 标题、说明和创意生成及替换素材
  • 持续学习 - 根据 PMax 广告系列表现数据自动发现优化模式

关键词

效果最大化,PMax 优化,素材组,受众信号,搜索主题,PMax 素材,网址扩展,PMax 否定关键词,品牌排除,素材表现,PMax 广告系列结构,PMax 最佳实践,Google PMax,效果最大化广告系列,PMax 流量蚕食


© 2026 googleadsagent.ai™ | Agent Skills™ | MIT 许可证

评论

支持 Markdown