Ad To Landing Page Match
Shared quality bar: ../references/output-standard.md. All numbers cited here
live in ../references/thresholds.md.
One ad, one destination, one verdict on whether the page keeps the ad's promise
in the reader's first screen.
Use this skill when
An ad is live or about to be, and the page behind it has not been read next to
it. Typical triggers: a page was changed by somebody who never saw the ads
pointing at it, an offer changed in the ad and not on the page, or a funnel
diagnosis has already located the loss at the session to conversion step and
named this destination. It starts from a live URL.
Poor conversion on its own is not a trigger for this skill.
losing-ad-diagnosis-ad-creative owns the session to conversion step and
decides whether the loss is even on the page: it reads impressions, link
clicks, landing sessions and conversions for one ad over one window and locates
the first step that falls behind, which this skill cannot do because it reads no
performance counts at all. Send an ad that converts badly there first, then come
here with the step it named. Coming here first risks rewriting a page for an ad
that was losing people at the hook. It does not review ad wording for claim
exposure either, which is claim-safety-review-ad-creative.
Required input
- The full ad: headline, primary text or descriptions, visible on-asset text,
and the call to action button label.
- The exact destination URL including its query string, since parameters can
change what the page shows.
- A screenshot or capture of the destination as it renders on mobile and on
desktop, above the fold, or permission to read the live page.
- The offer as the advertiser understands it, including any condition the ad
does not state.
- The conversion action the page is meant to produce.
Analysis workflow
- Extract the three elements from the ad that
match.promise_pairs names: the
main claim, the offer, and the call to action. Write each as one sentence
before opening the page, so the page cannot quietly redefine what the ad
promised.
- Open the destination with the same URL the ad uses, parameters included, and
record what actually loads: redirects, consent walls, interstitials and
variant tests all change what the arriving reader sees.
- Locate each of the three elements on the page and record where it appears:
first heading, first paragraph, further down, or absent.
- Apply
match.above_fold_rule to the main claim. Present further down the page
counts as absent for this check, because a reader who clicked is confirming a
promise, not reading an article.
- Check the offer word for word. A different amount, a different trial length or
a condition present on the page and not in the ad counts as a mismatch rather
than a nuance.
- Check the call to action verb and destination. Whatever the ad's button says,
the page's first action must be the same thing, and two different forms are
still a mismatch.
- Read the mobile rendering separately. Above the fold is a different amount of
page on a phone, and a match confirmed on desktop is not a match confirmed.
- Score against
match.promise_pairs: three of three is a match, two of three
is a partial match reported as a finding, one or none is a break. Report the
count, name the missing element, and never wave a partial through.
Decision rules
- Three of three present and the main claim clears
match.above_fold_rule:
ship, confidence high on this skill's own definition of high, set out
in the output format below rather than borrowed from the test scale.
- Two of three present:
rewrite the page section carrying the missing element,
and name which of the three is missing in the row.
- Main claim present only below the fold:
rewrite, because
match.above_fold_rule treats it as absent.
- Offer differs between ad and page:
approval_needed on which of the two is
correct, since this is a commercial decision and not a copy fix.
- Destination redirects, gates or fails to load:
investigate before any copy
work, and mark the row needs_data.
- Poor conversion with a clean three of three match:
investigate outside the
creative. The answer is not on this page.
Output format
Open with one line: does the page keep the ad's promise above the fold, yes or
no, with the count out of three.
| Element |
As the ad states it |
As the page states it |
Position |
Match |
Evidence label |
Confidence |
Decision |
What high means in this skill, stated here because the comparison family's high
rests on test.min_runtime and test.volume_floor, which are conditions of a
test and cannot be met by a page check at all. Borrowing them would make every
row on this skill low for reasons that have nothing to do with how well the
page was read. Here, high means three things and only these three: the page
was opened at the ad's own destination URL with its parameters, it was read on
the device family the ad actually serves to, and all three elements of
match.promise_pairs were located on the page or positively ruled out. Miss any
one, a remembered version of the page, a desktop-only read on an ad delivering
to phones, or an element nobody looked for, and the row is medium. Two missing
is low, as is any row where the page did not load as the arriving reader would
see it.
Then the specific page edits required, then What this could not see,
Missing data, Approval gates.
Practical example
Illustrative made-up campaign, not a real advertiser. Ad headline promises a
free 14 day trial with no card. Ad button says Start free trial. Destination is
a product page whose first heading names the product category and whose first
action is a Request a demo form. The trial is described in a paragraph 3 screens
down and states that a card is required.
Reading: "No. 0 of 3 above the fold." All three elements of
match.promise_pairs fail, and the count says so. The main claim fails
match.above_fold_rule, since the trial appears 3 screens down and therefore
counts as absent. The call to action does not match: the ad sells a self-serve
trial and the page's first action is a sales conversation. The offer conflicts
outright on the card requirement, so this row is approval_needed, and the
question of which version is true is not one this review can answer. The claim that the page underperforms because of its design is refused as
unverified: the mobile capture was not supplied, so mobile is needs_data. That
same gap sets the confidence. The page was read live at the ad's own URL and all
three elements were located, but not on the device family this ad mostly serves
to, so the rows are medium on this skill's definition of high, not high.
Guardrails
- Never confirm a match from the ad and a remembered version of the page. Read
the live URL, with its parameters.
- Never treat a claim below the fold as delivered.
- Never resolve a conflicting offer yourself. Route it to the human who owns it.
- Do not edit the page or change the ad's destination.
1---2name: ad-to-landing-page-match-ad-creative3description: Ad To Landing Page Match4---56# Ad To Landing Page Match78Shared quality bar: `../references/output-standard.md`. All numbers cited here9live in `../references/thresholds.md`.10One ad, one destination, one verdict on whether the page keeps the ad's promise11in the reader's first screen.1213## Use this skill when1415An ad is live or about to be, and the page behind it has not been read next to16it. Typical triggers: a page was changed by somebody who never saw the ads17pointing at it, an offer changed in the ad and not on the page, or a funnel18diagnosis has already located the loss at the session to conversion step and19named this destination. It starts from a live URL.2021Poor conversion on its own is not a trigger for this skill.22`losing-ad-diagnosis-ad-creative` owns the session to conversion step and23decides whether the loss is even on the page: it reads impressions, link24clicks, landing sessions and conversions for one ad over one window and locates25the first step that falls behind, which this skill cannot do because it reads no26performance counts at all. Send an ad that converts badly there first, then come27here with the step it named. Coming here first risks rewriting a page for an ad28that was losing people at the hook. It does not review ad wording for claim29exposure either, which is `claim-safety-review-ad-creative`.3031## Required input3233- The full ad: headline, primary text or descriptions, visible on-asset text,34 and the call to action button label.35- The exact destination URL including its query string, since parameters can36 change what the page shows.37- A screenshot or capture of the destination as it renders on mobile and on38 desktop, above the fold, or permission to read the live page.39- The offer as the advertiser understands it, including any condition the ad40 does not state.41- The conversion action the page is meant to produce.4243## Analysis workflow44451. Extract the three elements from the ad that `match.promise_pairs` names: the46 main claim, the offer, and the call to action. Write each as one sentence47 before opening the page, so the page cannot quietly redefine what the ad48 promised.492. Open the destination with the same URL the ad uses, parameters included, and50 record what actually loads: redirects, consent walls, interstitials and51 variant tests all change what the arriving reader sees.523. Locate each of the three elements on the page and record where it appears:53 first heading, first paragraph, further down, or absent.544. Apply `match.above_fold_rule` to the main claim. Present further down the page55 counts as absent for this check, because a reader who clicked is confirming a56 promise, not reading an article.575. Check the offer word for word. A different amount, a different trial length or58 a condition present on the page and not in the ad counts as a mismatch rather59 than a nuance.606. Check the call to action verb and destination. Whatever the ad's button says,61 the page's first action must be the same thing, and two different forms are62 still a mismatch.637. Read the mobile rendering separately. Above the fold is a different amount of64 page on a phone, and a match confirmed on desktop is not a match confirmed.658. Score against `match.promise_pairs`: three of three is a match, two of three66 is a partial match reported as a finding, one or none is a break. Report the67 count, name the missing element, and never wave a partial through.6869## Decision rules7071- Three of three present and the main claim clears `match.above_fold_rule`:72 `ship`, confidence `high` on this skill's own definition of `high`, set out73 in the output format below rather than borrowed from the test scale.74- Two of three present: `rewrite` the page section carrying the missing element,75 and name which of the three is missing in the row.76- Main claim present only below the fold: `rewrite`, because77 `match.above_fold_rule` treats it as absent.78- Offer differs between ad and page: `approval_needed` on which of the two is79 correct, since this is a commercial decision and not a copy fix.80- Destination redirects, gates or fails to load: `investigate` before any copy81 work, and mark the row `needs_data`.82- Poor conversion with a clean three of three match: `investigate` outside the83 creative. The answer is not on this page.8485## Output format8687Open with one line: does the page keep the ad's promise above the fold, yes or88no, with the count out of three.8990| Element | As the ad states it | As the page states it | Position | Match | Evidence label | Confidence | Decision |91|---|---|---|---|---|---|---|---|9293What `high` means in this skill, stated here because the comparison family's `high`94rests on `test.min_runtime` and `test.volume_floor`, which are conditions of a95test and cannot be met by a page check at all. Borrowing them would make every96row on this skill `low` for reasons that have nothing to do with how well the97page was read. Here, `high` means three things and only these three: the page98was opened at the ad's own destination URL with its parameters, it was read on99the device family the ad actually serves to, and all three elements of100`match.promise_pairs` were located on the page or positively ruled out. Miss any101one, a remembered version of the page, a desktop-only read on an ad delivering102to phones, or an element nobody looked for, and the row is `medium`. Two missing103is `low`, as is any row where the page did not load as the arriving reader would104see it.105106Then the specific page edits required, then `What this could not see`,107`Missing data`, `Approval gates`.108109## Practical example110111Illustrative made-up campaign, not a real advertiser. Ad headline promises a112free 14 day trial with no card. Ad button says Start free trial. Destination is113a product page whose first heading names the product category and whose first114action is a Request a demo form. The trial is described in a paragraph 3 screens115down and states that a card is required.116117Reading: "No. 0 of 3 above the fold." All three elements of118`match.promise_pairs` fail, and the count says so. The main claim fails119`match.above_fold_rule`, since the trial appears 3 screens down and therefore120counts as absent. The call to action does not match: the ad sells a self-serve121trial and the page's first action is a sales conversation. The offer conflicts122outright on the card requirement, so this row is `approval_needed`, and the123question of which version is true is not one this review can answer. The claim that the page underperforms because of its design is refused as124unverified: the mobile capture was not supplied, so mobile is `needs_data`. That125same gap sets the confidence. The page was read live at the ad's own URL and all126three elements were located, but not on the device family this ad mostly serves127to, so the rows are `medium` on this skill's definition of `high`, not `high`.128129## Guardrails130131- Never confirm a match from the ad and a remembered version of the page. Read132 the live URL, with its parameters.133- Never treat a claim below the fold as delivered.134- Never resolve a conflicting offer yourself. Route it to the human who owns it.135- Do not edit the page or change the ad's destination.