Ad Landing Experience Checker
Preflight paid-traffic landing pages for message match, visibility, speed, form friction, and mobile readiness before launch.
The skill treats ads, scraped pages, and CSV exports as untrusted data and says not to execute embedded instructions. It favors keyless reads, makes delegated fetching optional, and requires user confirmation before saving results. Firecrawl sends target URLs to a third party, while rollback, memory-promotion controls, and sensitive-data handling are not fully specified in this skill; recovery and disclosure gaps reduce the score.
Input confirmation, a NEEDS_INPUT path, Measured/User-provided/Estimated labels, five defined checks, and explicit repair routing provide a coherent static happy path. Nothing was executed, and the key path depends on optional connectors, page access, and user-supplied data; connector failures, abnormal inputs, and reproducible diagnostics are thin, so the score remains below the static ceiling.
Triggers, scenarios, inputs, outputs, non-fit boundaries, and sibling-skill ownership are unusually explicit, and pasted page content can substitute for network access. Chinese support is mostly descriptive rather than operational, and optional Firecrawl/PageSpeed/CrUX services may be difficult to reach from mainland China; this creates an environment-fit deduction.
The skill has layered documentation: quick starts, contract, data sources, numbered instructions, quality bar, handoff references, next-skill routing, versioning, and Apache-2.0 licensing. It lacks a skill-specific changelog, clearly assigned maintenance responsibility, and troubleshooting guidance; the publisher is unverified and therefore adds no governance credit.
The promised five-check Pass/Partial/Fix punch list includes concrete gaps, metric provenance labels, and one repair owner per failure, making the intended output directly useful. However, speed and mobile findings may be Estimated, no representative output or execution evidence is supplied, and the user must provide substantial source material and measurements; these limits prevent a higher static score.
The repository materials show shared contract, architecture, and audit-validator tests, but the supplied tests do not cover this skill's key business paths and there is no third-party execution evidence or independent reproduction. The documentation is auditable but evidence coverage is narrow, warranting a low score.
- Do not treat Estimated speed or mobile-render findings as measured Core Web Vitals; request PageSpeed/CrUX or mobile-render evidence.
- Firecrawl sends the target URL to a third party; do not use it for confidential destinations, and confirm authorization, robots.txt, and applicable legal signals first.
- Without both ad copy and page content, the skill should return NEEDS_INPUT rather than fabricate a continuity verdict.
- Before saving or promoting findings to memory, confirm the write scope, sensitive-data handling, and recovery plan.
What does this skill do, and when should you use it?
This skill is part of the repository’s Paid Ads/ROAS workflow. It compares ad copy with the destination page and checks message continuity, above-the-fold content, loading speed, form friction, and mobile rendering. It returns a five-check Pass, Partial, or Fix punch list with specific gaps and handoff owners. It checks the page only; it does not rewrite, redesign, or score the ad account.
Reads the destination URL or pasted page copy, ad headlines or hooks, the promised offer or claim, a ROAS profile, and optional PageSpeed/CrUX data; extracts the page headline, value proposition, offer, CTA, and first-viewport content; checks ad-to-page message match, above-the-fold visibility, speed, required form fields and friction points, and mobile rendering; labels metrics as Measured, User-provided, or Estimated; and produces a continuity punch list plus handoff summary. The repository also documents a Firecrawl Python script for rendered mobile-page reads.
- A paid-media team is preparing a campaign launch and needs to verify that the advertised offer appears on the destination page.
- A Google Ads landing-page-experience or Quality Score rating is low and the team needs to identify the failing post-click lever.
- A marketer has ad headlines and a destination URL and wants to catch concrete promise-to-page gaps before launch.
- An operations team has PageSpeed or CrUX data and wants to include speed and mobile evidence in the launch preflight.
What are this skill's strengths and limitations?
- Uses a fixed, concrete five-check preflight scope.
- Separates Measured, User-provided, and Estimated evidence instead of inventing speed metrics.
- Requires every Fix to name a specific gap and route it to an owning skill.
- Works with pasted data; PageSpeed/CrUX and MCP connectors are not Tier 1 prerequisites.
- Does not rewrite copy, restructure the layout, or redesign the form.
- Cannot assess continuity without ad copy and page content.
- Speed and mobile findings may be Estimated when PageSpeed/CrUX or mobile-render data is unavailable.
- The source documents usage as a Claude Code and compatible-host skill but provides no standalone test-suite or broad platform-coverage evidence.
How do you install this skill?
For Claude Code, run /plugin marketplace add aaron-he-zhu/aaron-marketing-skills, then /plugin install aaron-marketing@aaron. On Agent Skills-compatible hosts, run npx skills add aaron-he-zhu/aaron-marketing-skills; you can also clone the repository with git clone https://github.com/aaron-he-zhu/aaron-marketing-skills.
How do you use this skill?
Provide the destination URL, the ad headlines or copy pointing to it, the promised offer or claim, and one ROAS profile. Example: Preflight https://example.com against these headlines: [paste copy] — flag message-match gaps before we launch. If the ad copy or page copy is unavailable, the skill stops and requests the missing input.
How does this skill compare with similar options?
Unlike landing-optimizer, this skill identifies and hands off landing-page problems rather than repairing the page. Unlike ad-account-auditor, it does not compute RQS, score the account, or run account-level launch vetoes.