google-ads-landing

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Setup

设置步骤

Read and follow
../shared/preamble.md
— it handles MCP detection, token, and account selection. If config is already cached, this is instant.
阅读并遵循
../shared/preamble.md
——它负责处理MCP检测、令牌和账户选择。如果配置已缓存,此步骤会立即完成。

Landing Page Scoring + Diagnostic

着陆页评分与诊断

Google Ads campaigns fail on the landing page more often than in the auction. A great RSA that sends traffic to a slow, unfocused, or mismatched page burns budget twice — once on the click, once on the lost conversion. This skill scores landing pages on 5 weighted dimensions and emits concrete fixes.
Only score pages that actually run ad traffic. Don't score random marketing pages. Run this on direct request, on auto-handoff from
/google-ads-audit
(high-CTR / low-CVR ad groups), when QS diagnosis flags "Landing Page Experience: Below Average", or as a preflight before
/google-ads-copy
writes new copy for a page nobody's validated.
Google Ads广告系列的失败原因更多出在着陆页,而非竞价环节。优秀的RSA(响应式搜索广告)如果将流量导向加载缓慢、重点模糊或与广告不匹配的着陆页,会造成双重预算浪费:一次是点击成本,一次是错失转化的机会成本。本技能从5个加权维度对着陆页进行评分,并给出具体的修复方案。
仅对实际承载广告流量的页面进行评分,不要对随机营销页面评分。可在以下场景运行本技能:直接请求时、从
/google-ads-audit
自动移交(高CTR/低CVR广告组)时、质量得分诊断标记“着陆页体验:低于平均水平”时,或是在
/google-ads-copy
为未验证页面撰写新文案前作为预检步骤。

Reference

参考资料

  • references/scoring-rubric.md
    — the 5-dimension weighted rubric, thresholds, and evidence fields. Read before scoring.
  • ../manage/references/quality-score-framework.md
    — only when the user's explicit goal is QS improvement.
  • references/scoring-rubric.md
    ——包含5个维度的加权评分标准、阈值和证据字段,评分前请阅读。
  • ../manage/references/quality-score-framework.md
    ——仅当用户明确目标为提升质量得分时使用。

Phase 1: Resolve the target pages

阶段1:确定目标页面

Figure out which URLs to score. In priority order:
  1. User supplied a URL — score that page, skip discovery.
  2. User supplied an ad group or campaign name
    runScript
    a GAQL query against
    ad_group_ad
    filtered to that ad group; extract unique
    final_urls
    . Normalize (strip tracking params, preserve path + query that affects routing).
  3. Auto-handoff from
    /google-ads-audit
    — the handoff passes the specific ad groups flagged. Pull their final URLs the same way.
  4. No arguments
    runScript
    an
    ad_group_ad
    query across the account ranking final URLs by last-30-day spend, propose the top 3, ask the user to confirm.
De-duplicate aggressively. Many ads point to the same final URL — score each unique URL once, then map back to every ad group that uses it.
明确需要评分的URL,优先级如下:
  1. 用户提供URL——直接对该页面评分,跳过发现步骤。
  2. 用户提供广告组或广告系列名称——通过
    runScript
    执行GAQL查询,筛选对应广告组的
    ad_group_ad
    数据;提取唯一的
    final_urls
    。标准化处理(去除跟踪参数,保留影响路由的路径和查询参数)。
  3. /google-ads-audit
    自动移交
    ——移交时会传递标记的特定广告组,按相同方式提取其最终URL。
  4. 无参数输入——通过
    runScript
    执行
    ad_group_ad
    查询,按过去30天花费对账户内的最终URL排序,推荐前3个,请求用户确认。
严格去重。许多广告指向同一个最终URL——每个唯一URL仅评分一次,之后映射回所有使用该URL的广告组。

Phase 2: Gather signal (parallel)

阶段2:收集信号(并行处理)

Do all of these in a single tool-use turn:
  1. WebFetch the landing page — capture visible headline, subheadline, primary CTA text, form fields, trust signals, body copy tone. Capture the full HTML so we can spot script bloat and above-the-fold content.
  2. PageSpeed Insights API call
    https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url={url}&strategy=mobile&category=performance&category=accessibility&category=best-practices&category=seo
    via WebFetch. No API key needed for single-URL queries. Extract LCP, CLS, INP, TTI, performance score, and the top 3 opportunities from
    lighthouseResult.audits
    .
  3. Pull the referring ad copy and the ad group's conversion metrics — one
    runScript
    call with
    ads.gaqlParallel
    against
    ad_group_ad
    (for headline/description text — the message-match baseline) and
    ad_group
    or
    keyword_view
    (for clicks, conversions, CVR — used to ground the dollar-impact estimate). One call covers both.
  4. Read
    {data_dir}/business-context.json
    — for brand voice, differentiators, offers, target audience. If missing, point the user to
    /google-ads-audit
    first. Don't guess the business.
If any single call fails, continue — note the gap in the report rather than blocking. PageSpeed Insights can rate-limit; if it does, fall back to a manual timing annotation ("PSI unavailable — could not score Page Speed") and deflate the final report's confidence rather than skipping the dimension.
在单次工具调用中完成以下所有操作:
  1. WebFetch着陆页——捕获可见标题、副标题、主要CTA文本、表单字段、信任标识、正文文案语气。捕获完整HTML,以便识别脚本冗余和首屏内容。
  2. 调用PageSpeed Insights API——通过WebFetch访问
    https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url={url}&strategy=mobile&category=performance&category=accessibility&category=best-practices&category=seo
    。单URL查询无需API密钥。提取LCP、CLS、INP、TTI、性能得分,以及
    lighthouseResult.audits
    中的前3个优化机会。
  3. 提取来源广告文案和广告组的转化指标——通过一次
    runScript
    调用,使用
    ads.gaqlParallel
    查询
    ad_group_ad
    (获取标题/描述文本——作为信息匹配基准)和
    ad_group
    keyword_view
    (获取点击量、转化量、CVR——用于估算美元影响)。一次调用即可覆盖两者。
  4. 读取
    {data_dir}/business-context.json
    ——获取品牌调性、差异化优势、优惠活动、目标受众。如果缺失,先引导用户运行
    /google-ads-audit
    ,不要猜测业务信息。
如果任一调用失败,继续执行——在报告中注明缺失信息,而非中断流程。PageSpeed Insights可能会限流;若发生限流,退回到手动计时标注(“PSI不可用——无法对页面速度评分”),并降低最终报告的可信度,而非跳过该维度。

Phase 3: Score the page

阶段3:页面评分

Read
references/scoring-rubric.md
and score each dimension 0-100 with evidence. The dimension scores are real measurements (PageSpeed Insights numbers, word-for-word copy comparison, form field counts, etc.) — they're not artificial ratings, they're observations.
Compute the weighted composite only as an internal reference number for the dollar-lift formula below. Do not surface it as a letter grade. The user sees the dimension-level measurements and the estimated dollar lift — the composite is plumbing.
internal_composite = 0.25 * Message Match
                   + 0.25 * Page Speed
                   + 0.20 * Mobile Experience
                   + 0.15 * Trust Signals
                   + 0.15 * Form & CTA
Dollar lift is the headline. If
business-context.json.unit_economics
has
aov_usd
+
profit_margin
, compute the estimated monthly lift from raising the composite by 15 points (see
../shared/ppc-math.md
):
Target lift           = min(+15, 90 - internal_composite)    # cap at 90 internal
Assumed CVR lift      = target_lift / 100 * 0.5              # cap at 50% relative lift
Current conversions   = ad group conversions from last 30d
Additional conversions = current_conversions * assumed_CVR_lift
Additional revenue    = additional_conversions * AOV
Additional profit     = additional_conversions * AOV * profit_margin
Present the lift as
fixing this page is worth ~$X/mo in profit
— never as a guarantee. The 50% cap on CVR lift and the 15-point cap on score improvement keep estimates out of fantasy territory. If
unit_economics
isn't available, skip the dollar line entirely rather than making up a number — the dimension measurements still stand on their own.
阅读
references/scoring-rubric.md
,为每个维度打0-100分并提供证据。维度得分是真实测量值(PageSpeed Insights数据、逐字文案对比、表单字段数量等)——并非人工评级,而是客观观察结果。
仅将加权综合得分作为内部参考数值用于下方的收益提升公式,不要以字母等级形式展示给用户。用户将看到维度级测量值和估算的收益提升——综合得分仅为内部计算参数。
internal_composite = 0.25 * 信息匹配得分
                   + 0.25 * 页面速度得分
                   + 0.20 * 移动端体验得分
                   + 0.15 * 信任标识得分
                   + 0.15 * 表单与CTA得分
收益提升是核心重点。如果
business-context.json.unit_economics
包含
aov_usd
(平均订单价值)和
profit_margin
(利润率),计算综合得分提升15分后的月度估算收益(详见
../shared/ppc-math.md
):
目标提升值           = min(+15, 90 - internal_composite)    # 内部得分上限为90
假设转化率提升幅度      = 目标提升值 / 100 * 0.5              # 相对提升幅度上限为50%
当前转化量   = 过去30天广告组转化量
新增转化量 = 当前转化量 * 假设转化率提升幅度
新增收入    = 新增转化量 * 平均订单价值
新增利润     = 新增转化量 * 平均订单价值 * 利润率
将收益提升表述为“修复该页面每月可带来约$X的利润提升”——绝不要作为保证。转化率提升50%的上限和得分提升15分的上限可避免估算过于夸张。如果
unit_economics
不可用,完全跳过收益估算部分,不要编造数字——维度测量值本身仍具备参考价值。

Phase 4: Deliver the report

阶段4:交付报告

Max 60 lines. Lead with the dollar lift (when available) and the single biggest fix. No letter grade.
undefined
报告最多60行。优先展示收益提升(若可用)和最关键的修复方案。不要使用字母等级。
undefined

Landing Page — [URL]

着陆页 — [URL]

Ads sending traffic here: [N ad groups] · [X clicks/mo] · [$Y spent/mo] · CVR [Z%] [If unit_economics available] Estimated lift from top 3 fixes: ~$X/mo in profit [If unit_economics is missing] (Dollar lift unavailable — no verified AOV/margin. Confirm unit economics in business-context.json for sharper estimates.)
Biggest leak: [one sentence naming the dimension and the specific observation, e.g. "LCP is 5.8s on mobile — 2.8s slower than the 3s threshold that kills conversion rate."]
引流至此的广告:[N个广告组] · [每月X次点击] · [每月花费$Y] · 转化率 [Z%] [若unit_economics可用] 前3项修复方案的估算收益:每月约$X利润提升 [若unit_economics缺失] (无法估算收益——无已验证的平均订单价值/利润率。请在business-context.json中确认单位经济效益以获取更精准的估算。)
最大问题点: [一句话说明维度和具体观察结果,例如“移动端LCP为5.8秒——比影响转化率的3秒阈值慢2.8秒。”]

Measurements

测量数据

DimensionMeasurementTop Finding
Message Match[word-for-word verdict: Match / Drift / Broken][one line citing ad H1 vs page H1]
Page SpeedLCP Xs · INP Xms · CLS X · PSI perf score X[top blocking audit from Lighthouse]
Mobile ExperiencePSI accessibility X · [mobile-specific issue count][one line: e.g. "No click-to-call, form below fold"]
Trust Signals[review count, years in business, cert count][one line: e.g. "Zero named testimonials, copyright 2023"]
Form & CTA[field count] fields · CTA text: "[button]" · [above/below fold][one line: e.g. "11 fields for a free quote"]
维度测量值核心发现
信息匹配[逐字判断:匹配/偏差/不匹配][一行说明广告标题与页面标题的对比]
页面速度LCP X秒 · INP X毫秒 · CLS X · PSI性能得分X[Lighthouse检测出的首要阻塞问题]
移动端体验PSI可访问性得分X · [移动端特定问题数量][一行说明:例如“无点击呼叫功能,表单在首屏下方”]
信任标识[评论数量、经营年限、认证数量][一行说明:例如“无署名推荐语,版权年份为2023”]
表单与CTA[字段数量]个字段 · CTA文本:“[按钮文案]” · [首屏内/首屏外][一行说明:例如“免费报价表单包含11个字段”]

Fix First (top 3, ranked by estimated $ lift)

优先修复方案(按估算收益排序,前3项)

  1. [Action] — est. +$X/mo ·
    <time_to_fix>
    Evidence: [the actual text/number from the page or PSI audit]
  2. [Action] — est. +$X/mo ·
    <time_to_fix>
    Evidence: [...]
  3. [Action] — est. +$X/mo ·
    <time_to_fix>
    Evidence: [...]
  1. [操作] — 估算收益 +$X/月 ·
    <修复耗时>
    证据:[来自页面或PSI检测的实际文本/数据]
  2. [操作] — 估算收益 +$X/月 ·
    <修复耗时>
    证据:[...]
  3. [操作] — 估算收益 +$X/月 ·
    <修复耗时>
    证据:[...]

Message Match Detail

信息匹配详情

Ad headline: "[actual headline from top-spending ad]" Page H1: "[actual H1 from landing page]" Observation: [Match / Drift / Broken] — [one-line rationale citing the specific words that match or don't]
广告标题:“[花费最高的广告的实际标题]” 页面H1: “[着陆页的实际H1标题]” 观察结果:[匹配/偏差/不匹配] — [一行说明匹配或不匹配的具体文字依据]

Handoff

移交建议

[Pick one:]
  • Page speed dominates the problem → "Share these fixes with your developer: [list]"
  • Message mismatch dominates → "Run /google-ads-copy to rewrite ads to match the page, or update the page to match the ads"
  • Form friction dominates → "Reduce form to [specific fields]. Every removed field is ~10% more conversions"
undefined
[选择一项:]
  • 页面速度为主要问题 → “将以下修复方案分享给你的开发人员:[列表]”
  • 信息不匹配为主要问题 → “运行/google-ads-copy重写广告以匹配页面,或更新页面内容以匹配广告”
  • 表单阻力为主要问题 → “将表单字段减少至[具体数量]。每减少一个字段可提升约10%的转化率”
undefined

Writing back to history

写入历史记录

Append the score to
{data_dir}/landing-page-history.json
so re-audits can show deltas:
json
{
  "pages": {
    "https://example.com/services/roofing": {
      "history": [
        {
          "date": "2026-04-14",
          "internal_composite": 67,
          "dimensions": {
            "message_match": 72,
            "page_speed": 45,
            "mobile": 80,
            "trust": 70,
            "form_cta": 65
          },
          "psi_mobile_lcp_s": 4.2,
          "psi_mobile_cls": 0.15,
          "psi_mobile_inp_ms": 320,
          "estimated_lift_usd_per_month": 380,
          "ad_groups": ["Tukwila Search - Roofing"],
          "monthly_spend": 1240.50,
          "monthly_cvr": 2.1,
          "biggest_leak": "Page Speed — LCP 4.2s on mobile"
        }
      ]
    }
  }
}
internal_composite
is stored for trend tracking only — it's the internal reference number used by the dollar-lift formula, never shown to the user as a letter grade. On subsequent runs against the same URL, diff the raw dimension measurements and the dollar lift:
LCP 4.2s → 2.1s · Page Speed 45 → 78 · estimated lift $380/mo → $120/mo remaining
. Three measurements moved, no artificial grade flip.
将评分结果追加到
{data_dir}/landing-page-history.json
,以便后续审核展示变化:
json
{
  "pages": {
    "https://example.com/services/roofing": {
      "history": [
        {
          "date": "2026-04-14",
          "internal_composite": 67,
          "dimensions": {
            "message_match": 72,
            "page_speed": 45,
            "mobile": 80,
            "trust": 70,
            "form_cta": 65
          },
          "psi_mobile_lcp_s": 4.2,
          "psi_mobile_cls": 0.15,
          "psi_mobile_inp_ms": 320,
          "estimated_lift_usd_per_month": 380,
          "ad_groups": ["Tukwila Search - Roofing"],
          "monthly_spend": 1240.50,
          "monthly_cvr": 2.1,
          "biggest_leak": "Page Speed — LCP 4.2s on mobile"
        }
      ]
    }
  }
}
internal_composite
仅用于趋势跟踪存储——它是收益提升公式使用的内部参考数值,绝不会以字母等级形式展示给用户。后续对同一URL运行评分时,对比原始维度测量值和收益提升:
LCP 4.2秒 → 2.1秒 · 页面速度得分45 → 78 · 估算收益$380/月 → 剩余可提升$120/月
。展示具体测量值的变化,而非人工等级的变动。

Rules

规则

  1. Never score a page without WebFetch'ing it. The rubric demands evidence. No WebFetch = no score. Ask the user to help if the page is gated or requires auth.
  2. Never report a PSI number you didn't measure. If PSI failed, say "PSI unavailable" — don't estimate.
  3. One page at a time unless the user asks for multiple. Scoring three pages in one turn creates unreadable reports. Batch only when explicitly requested.
  4. Don't rewrite copy here. This skill diagnoses the page. Handoff to
    /google-ads-copy
    for new headlines or
    /google-ads
    for bid/negative/budget moves.
  5. Margin-aware dollar impact requires verified unit economics. If
    unit_economics.source == "inferred_from_template"
    , append
    _(using industry defaults — confirm your AOV/margin for sharper estimates)_
    to the lift line.
  6. Always persist. Every scored page goes into
    landing-page-history.json
    , even if the user doesn't ask — future audits depend on the baseline.
  1. 未通过WebFetch获取页面时,绝不对页面评分。评分标准要求提供证据。没有WebFetch结果=无法评分。如果页面需要登录或受权限限制,请请求用户协助。
  2. 绝不报告未测量的PSI数据。如果PSI调用失败,注明“PSI不可用”——不要估算。
  3. 除非用户要求,否则一次仅处理一个页面。一次评分三个页面会导致报告难以阅读。仅在明确请求时批量处理。
  4. 不要在此处重写文案。本技能仅负责诊断页面。如需撰写新标题,移交至
    /google-ads-copy
    ;如需调整出价/否定词/预算,移交至
    /google-ads
  5. 基于利润率的美元影响估算需要已验证的单位经济效益。如果
    unit_economics.source == "inferred_from_template"
    ,在收益提升行末尾追加
    _(使用行业默认值——请确认你的平均订单价值/利润率以获取更精准的估算)_
  6. 始终留存记录。每个已评分的页面都要存入
    landing-page-history.json
    ,即使用户未要求——未来的审核依赖于基线数据。