Google ads landing
/SKILLScore and diagnose Google Ads landing pages. Use when asked to audit a landing page, check landing page quality, diagnose high-CTR but low-conversion-rate ad groups, improve Quality Score's Landing Pa
--- name: google-ads-landing description: Score and diagnose Google Ads landing pages. Use this when asked to audit a landing page, check landing page quality, diagnose ad groups with high CTR but low conversion rates, improve the Landing Page Experience component of Quality Score, or compare an ad group’s messaging against its landing page. Trigger on "landing page audit," "landing page score," "landing page quality," "why is my conversion rate low," "LPX," "landing page experience," "ad-to-page match," or when /google-ads-audit identifies an ad group with a high CTR and low CVR. argument-hint: "<landing page URL or ad group name>" --- ## Setup Read and follow ../shared/preamble.md (MCP detection, account selection) and ../shared/analysis-principles.md (evidence requirements, guardrails). Both apply throughout this skill : every dimension below is a measurement, not an opinion. # 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 wastes budget twice:once on the click, once on the lost conversion. This skill scores landing pages on 5 weighted dimensions and provides concrete fixes. Only score pages that actually receive ad traffic. Do not score random marketing pages. Run this on direct request, via auto-handoff from /google-ads-audit (for high-CTR/low-CVR ad groups), when the Quality Score diagnosis flags “Landing Page Experience: Below Average,” or as a preflight check before /google-ads-copy writes new copy for a page that hasn’t been validated. When the issue involves ad-to-page fit, high CTR / low CVR, LPX, or testing ads and landing pages together, read references/message-chain-testing.md before scoring. This keeps the diagnosis focused on the paid-search message chain rather than veering into a generic web-design audit. ## Reference - references/scoring-rubric.md : the 5-dimensional weighted rubric, thresholds, and evidence fields. Read before scoring. - references/message-chain-testing.md : query → ad → page message chain diagnosis and ad+LP test design. - ../manage/references/quality-score-framework.md : only when the user’s explicit goal is to improve search quality (QS). ## Phase 1: Identify the target pages Determine which URLs to score. In order of priority: 1. User provided a webURL : score that page; skip discovery. 2. User provided an ad group or campaign name : run a GAQL query (runScript) against ad_group_ad filtered to that ad group; extract unique final_urls. Normalize (strip tracking parameters, preserve path and query that affect routing). 3. **Auto-handoff from /google-ads-audit : the handoff passes the specific ad groups flagged. Retrieve their final URLs in the same way. 4. No arguments**:runScript, an ad_group_ad query across the account, ranking final URLs by spend over the last 30 days, propose the top 3, and ask the user to confirm. Aggressively deduplicate. Many ads point to the same final URL:score each unique URL once, then map it back to every ad group that uses it. ## Phase 2: Gather signals (parallel) Perform all of the following in a single tool run: 1. WebFetch the landing page : capture the visible headline, subheadline, primary CTA text, form fields, trust signals, and the tone of the body copy. Capture the full HTML so we can identify 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 is required 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 : a single runScript call using 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, and target audience. If missing, direct the user to /google-ads-audit first. Don’t guess t