mcpField
S
shopping-ads

shopping-ads

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

关于 shopping-ads

shopping-ads 是用于管理 Google Shopping 广告系列和 Merchant Center 商品 Feed 的 Agent Skills™ 技能,涵盖 Feed 审核与优化、商品分组及广告系列出价结构。

主要功能

  1. 01审核商品 Feed 属性
  2. 02优化商品标题和描述
  3. 03用自定义标签分组商品
  4. 04规划广告系列与出价结构
  5. 05管理补充 Feed 数据

适用场景

  1. 01发现 Feed 错误和商品拒登
  2. 02提升商品标题与搜索的相关性
  3. 03按商品分组以采用差异化出价
  4. 04规划 Shopping 广告系列结构

安装

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

$npx skills add https://github.com/itallstartedwithaidea/agent-skills --skill shopping-ads

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

详细介绍

购物广告

Agent Skills™ 项目的一部分,由 googleadsagent.ai™ 提供

描述

购物广告技能提供 Google 购物广告系列和 Merchant Center 商品 Feed 的端到端管理。购物广告是 Google 生态系统中购买意向最高的广告形式——用户点击前就能看到商品图片、价格和商家名称,因此带来具有强烈购买意向的优质流量。购物广告表现平平与表现出色之间的差距,几乎总是取决于 Feed 质量和广告系列结构。

商品 Feed 优化是基础。该技能会依据 Google 的要求和竞争最佳实践,审核 Feed 的每项属性——标题、描述、商品类型、Google 商品类别、GTIN、自定义标签、图片、定价和库存情况。优化后的标题会将与搜索相关的属性(品牌、颜色、尺寸、材质)前置,以获得最大的曝光度。描述会补充与长尾搜索词匹配的词语。自定义标签可根据表现进行细分(利润等级、畅销商品、季节性商品),为智能出价策略提供支持。

广告系列结构将 Feed 优化延伸至出价管理。该技能通过优先级设置、自定义标签细分和否定关键字优化,设计购物广告系列架构,以控制哪些商品会以何种出价匹配哪些搜索词。对于标准购物广告,这意味着采用分层广告系列,实现搜索词级别的控制。对于 PMax 购物广告,这意味着根据商品表现群组划分素材组。补充 Feed、竞争性定价情报、本地库存广告和免费商品信息,共同构成全面的购物广告策略。

适用场景

  • 用户询问“购物广告”或“购物广告系列”
  • 用户提到“商品 Feed”或“Merchant Center”
  • 用户想要“优化商品标题”或“提升 Feed 质量”
  • 用户询问“自定义标签”或“补充 Feed”
  • 用户提到“商品被拒登”或“Merchant Center 错误”
  • 用户想要“提升购物广告 ROAS”或“降低购物广告 CPA”
  • 用户询问“竞争性定价”或“价格基准”
  • 用户提到“本地库存广告”或“免费商品信息”
  • 用户想要根据表现“细分商品”

架构

flowchart TD
    A[Merchant Center] --> B[Feed Analysis Engine]

    B --> C[Attribute Audit]
    C --> C1[Title Optimization]
    C --> C2[Description Enrichment]
    C --> C3[Category Mapping]
    C --> C4[Image Quality Check]
    C --> C5[GTIN/MPN Validation]

    B --> D[Custom Label Strategy]
    D --> D1[Label 0: Margin Tier]
    D --> D2[Label 1: Best Sellers]
    D --> D3[Label 2: Seasonality]
    D --> D4[Label 3: Price Range]
    D --> D5[Label 4: New vs Existing]

    B --> E[Competitive Intelligence]
    E --> E1[Price Benchmarks]
    E --> E2[Click Share]
    E --> E3[Impression Share]

    C1 --> F[Optimized Feed]
    C2 --> F
    C3 --> F
    C4 --> F
    C5 --> F
    D1 --> F
    D2 --> F
    D3 --> F
    D4 --> F
    D5 --> F

    F --> G[Campaign Structure]
    G --> G1[Standard Shopping\nPriority Tiers]
    G --> G2[PMax Shopping\nAsset Group Segmentation]

    E1 --> H[Bid Strategy]
    E2 --> H
    E3 --> H
    G1 --> H
    G2 --> H

    H --> I[Performance Monitoring]
    I --> J[Product-Level ROAS]
    I --> K[Query-Level Analysis]
    I --> L[Competitive Position Tracking]

实现

商品 Feed 审核与优化引擎:

async function auditProductFeed(merchantId) {
  const products = await getMerchantProducts(merchantId);
  const diagnostics = await getFeedDiagnostics(merchantId);

  const audit = {
    totalProducts: products.length,
    activeProducts: products.filter(p => p.status === 'active').length,
    disapproved: products.filter(p => p.status === 'disapproved'),
    warnings: diagnostics.warnings,
    attributeAnalysis: analyzeAttributes(products),
    titleOptimization: auditTitles(products),
    descriptionQuality: auditDescriptions(products),
    imageQuality: auditImages(products),
    pricingAnalysis: analyzePricing(products),
    customLabelStrategy: designCustomLabels(products)
  };

  return audit;
}

function auditTitles(products) {
  const issues = [];

  for (const product of products) {
    const title = product.title;

    if (title.length < 25) {
      issues.push({ productId: product.id, issue: 'Title too short', current: title });
    }
    if (title.length > 150) {
      issues.push({ productId: product.id, issue: 'Title exceeds optimal length', current: title });
    }
    if (!title.toLowerCase().includes(product.brand?.toLowerCase())) {
      issues.push({ productId: product.id, issue: 'Brand missing from title', current: title });
    }

    const optimizedTitle = buildOptimizedTitle(product);
    if (optimizedTitle !== title) {
      issues.push({
        productId: product.id,
        issue: 'Title can be optimized',
        current: title,
        recommended: optimizedTitle
      });
    }
  }

  return { issues, optimizationRate: issues.length / products.length };
}

function buildOptimizedTitle(product) {
  const components = [
    product.brand,
    product.title.replace(product.brand, '').trim(),
    product.color,
    product.size,
    product.material,
    product.gender
  ].filter(Boolean);

  const optimized = components.join(' - ');
  return optimized.substring(0, 150);
}

function designCustomLabels(products) {
  const performanceData = products.map(p => ({
    id: p.id,
    revenue: p.revenue30d,
    cost: p.cost30d,
    roas: p.revenue30d / Math.max(p.cost30d, 0.01),
    margin: p.margin,
    clicks: p.clicks30d,
    conversions: p.conversions30d
  }));

  return {
    customLabel0: {
      name: 'Margin Tier',
      values: assignMarginTiers(performanceData),
      biddingImplication: 'Higher bids on high-margin products'
    },
    customLabel1: {
      name: 'Performance Tier',
      values: assignPerformanceTiers(performanceData),
      biddingImplication: 'Aggressive bids on top performers, reduced on low performers'
    },
    customLabel2: {
      name: 'Seasonality',
      values: assignSeasonality(products),
      biddingImplication: 'Boost seasonal products during peak periods'
    },
    customLabel3: {
      name: 'Price Competitiveness',
      values: assignPriceCompetitiveness(products),
      biddingImplication: 'Higher bids when price-competitive, lower when overpriced'
    },
    customLabel4: {
      name: 'Product Lifecycle',
      values: products.map(p => ({
        productId: p.id,
        label: p.daysListed < 30 ? 'new_arrival' : p.daysListed > 180 ? 'clearance' : 'established'
      })),
      biddingImplication: 'Promotional bids for new arrivals and clearance'
    }
  };
}

补充 Feed 与竞争性定价:

function buildSupplementalFeed(products, enrichmentData) {
  return products.map(product => ({
    id: product.id,
    custom_label_0: enrichmentData[product.id]?.marginTier,
    custom_label_1: enrichmentData[product.id]?.performanceTier,
    custom_label_2: enrichmentData[product.id]?.seasonality,
    custom_label_3: enrichmentData[product.id]?.priceCompetitiveness,
    custom_label_4: enrichmentData[product.id]?.lifecycle,
    sale_price: enrichmentData[product.id]?.promotionalPrice,
    promotion_id: enrichmentData[product.id]?.activePromotion
  }));
}

function analyzeCompetitivePricing(products, benchmarkData) {
  return products.map(product => {
    const benchmark = benchmarkData[product.id];
    if (!benchmark) return { productId: product.id, status: 'no_benchmark_data' };

    const pricePosition = product.price / benchmark.benchmarkPrice;

    return {
      productId: product.id,
      yourPrice: product.price,
      benchmarkPrice: benchmark.benchmarkPrice,
      priceIndex: pricePosition,
      status: pricePosition <= 0.95 ? 'price_leader'
        : pricePosition <= 1.05 ? 'competitive'
        : pricePosition <= 1.15 ? 'slightly_above'
        : 'overpriced',
      clickShareImpact: estimateClickShareImpact(pricePosition),
      recommendation: pricePosition > 1.15
        ? 'Consider price reduction or value-add messaging'
        : 'Maintain current pricing strategy'
    };
  });
}

与 Buddy™ Agent 集成

购物广告是 Buddy™ Agent 的核心电商技能。该平台可直接连接 Merchant Center,持续执行 Feed 审核,实时发现商品被拒登、属性问题和优化机会。商品被拒登时,Buddy™ 会立即通知用户具体违规原因并提供修复建议。

Buddy™ 可自动管理补充 Feed,根据滚动绩效数据更新自定义标签,无需手动上传 CSV。该平台会按照可配置的计划(每日或每周)生成并应用自定义标签分配,确保出价策略始终反映商品的当前表现。

在竞争性定价方面,Buddy™ 会监控价格基准数据,并在商品失去价格竞争力时向用户发出提醒。它将定价情报与出价策略相结合,自动降低定价过高商品的出价,并提高价格具有竞争力商品的出价,以最大限度地提升 ROAS。

最佳实践

  1. 在商品标题开头放置最能提升搜索相关性的属性(品牌、商品类型、关键特性)
  2. 策略性地使用全部五个自定义标签,以便精细管理出价
  3. 至少每周更新一次补充 Feed,以反映当前表现和库存情况
  4. 每天审核并修复 Merchant Center 中被拒批的商品——被拒批的商品无法带来任何收入
  5. 为每件商品添加 GTIN/MPN,以启用增强型商品信息和竞争基准分析
  6. 使用高质量商品图片,背景为白色,且不包含水印或促销文字
  7. 根据自定义标签的表现层级划分 Shopping 广告系列,以实施差异化出价
  8. 每周监控竞争对手的定价,并根据价格竞争力调整出价
  9. 启用免费商品信息,无需成本即可获取额外的自然 Shopping 流量
  10. 如果运营实体店,请设置本地库存广告,以吸引附近的购物者

平台兼容性

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

相关技能

  • PMax 优化 - 商品 Feed 质量会直接影响 Performance Max 中的 Shopping 广告展示位置
  • 竞争对手分析 - 竞争性定价情报可指导 Shopping 出价策略调整
  • 再营销策略 - 动态再营销利用商品 Feed 数据投放个性化商品广告
  • MCP 服务创建 - 通过 MCP 集成 Merchant Center,可启用自动化 Feed 管理工具

关键词

Shopping 广告、商品 Feed、Merchant Center、Feed 优化、自定义标签、补充 Feed、商品标题、Shopping 广告系列、Google Shopping、商品详情广告、竞争性定价、本地库存广告、免费商品信息、Shopping ROAS、商品 Feed 审核


© 2026 googleadsagent.ai™ | Agent Skills™ | MIT License

评论

支持 Markdown