Example output: examples/seo-ads-hostinger-com-20260514/ADS.md
Paid-Search Intelligence (Ads)
Map a domain's paid-search footprint and the competitive landscape around its target keywords. Output: a brief on what the brand is bidding on, who else bids on the same terms, ad-copy patterns the leading competitors use, SERP ad+shopping presence per keyword, and a recommended bid-keyword shortlist.
Prerequisites
- SE Ranking MCP server connected.
- User provides: (a) a target domain OR a target keyword (skill detects which), (b) target country (default
us).
Process
-
Validate input & preflight
- Determine: domain mode (analyse a brand's paid footprint) or keyword mode (analyse the bidding landscape for one keyword).
DATA_getCreditBalance— surface remaining credits.
-
Domain mode
DATA_getDomainAdsByDomain- Pull paid keywords the target domain bids on.
- For each: keyword, search volume, CPC, position, ad copy (title + description), URL.
- Sort by traffic-weighted score (
volume × CTR-by-paid-position × bid-share).
-
Keyword mode
DATA_getDomainAdsByKeyword- Pull all domains bidding on the target keyword.
- For each: domain, ad position, ad copy, URL.
- Surface the top 10 advertisers + their copy patterns.
-
Intent enrichment
DATA_getKeywordQuestions- For the keyword(s) in scope, pull related questions.
- Identifies question-phrased intent variants worth bidding on (often cheaper, higher conversion).
-
SERP ad/shopping presence
DATA_getSerpResults- For top 5 keywords (domain mode) or the target keyword (keyword mode):
- Use SERP-feature filters to detect ad-pack composition:
tads(top ads above organic),bads(bottom ads below organic),sads(shopping ads / Google Shopping pack),mads(mobile/map-pack ads). - Top SERP ad slots (positions 1-4 above organic, 1-3 below).
- Shopping pack presence (carousel of product cards).
- Image pack, local pack — these displace ad inventory.
- Use SERP-feature filters to detect ad-pack composition:
- Capture which advertisers occupy those slots.
- For top 5 keywords (domain mode) or the target keyword (keyword mode):
-
Ad copy pattern analysis
- Cluster ad headlines + descriptions by recurring patterns.
- Identify: USP language used by leaders, pricing/discount mentions, audience segmentation, CTA verbs.
- Highlight outliers (advertisers doing something different).
-
Paid-keyword gap (domain mode)
DATA_getDomainKeywordswithtype: 'adv'- Pull the user's domain's paid keywords using the
type: 'adv'switch. - For each top competitor (from step 2 or
DATA_getDomainCompetitorswithtype: 'adv'): pull their paid keywords withtype: 'adv'. - Diff: paid keywords competitors bid on that the user's domain doesn't.
- This becomes the highest-leverage portion of the bid-keyword shortlist (step 8).
- Skip in keyword mode (no domain to gap against).
- Pull the user's domain's paid keywords using the
-
Recommended bid-keyword shortlist
- For domain mode: paid-keyword gap from step 7 + adjacent question-intent variants.
- For keyword mode: question-intent and long-tail variants that are likely cheaper than the head term.
- Each row: keyword, est. CPC, est. volume, who else bids, why-recommended.
-
Synthesise
ADS.md
Output format
Create a folder seo-ads-{target-slug}-{YYYYMMDD}/ with:
seo-ads-{target-slug}-{YYYYMMDD}/
├── ADS.md (synthesised brief — primary deliverable; inlines paid footprint, bidding landscape, SERP ad/shopping pack, ad copy patterns, paid keyword gap)
├── recommended-keywords.csv (bid-keyword shortlist — load-bearing CSV the PPC team pastes into bid tooling)
└── evidence/
├── 01-paid-footprint.md (domain mode: brand's paid keywords — raw step output)
├── 02-bidding-landscape.md (keyword mode: advertisers on the keyword — raw step output)
├── 03-question-variants.md (DATA_getKeywordQuestions enrichment)
├── 04-serp-ad-shopping-pack.md (SERP feature inventory per keyword)
├── 05-ad-copy-patterns.md (clustered headline/description patterns)
└── 06-paid-keyword-gap.md (domain mode: type='adv' diff vs competitors)
Step files 01, 02, 04, 05, 06 are inlined as sections in ADS.md; the copies in evidence/ preserve the raw step outputs for reproducibility.
ADS.md follows this shape:
# Paid-Search Intelligence: {target}
> Snapshot dated {YYYY-MM-DD} · Country: {country} · Mode: {domain | keyword}
## Footprint summary
- Paid keywords: {n}
- Estimated paid traffic: {n}/mo
- Average CPC: ${n}
- SERP slots covered: {n} of top-4 above organic across {n} target keywords
## Top 10 paid keywords (domain mode)
| Keyword | Volume | CPC | Position | Ad copy excerpt |
|---|---|---|---|---|
| {kw} | {n} | ${n} | {pos} | "{headline} — {snippet}" |
| ...
## Bidding landscape (keyword mode — for "{keyword}")
| Advertiser | Position | Ad copy excerpt | URL |
|---|---|---|---|
| {domain} | {pos} | "{headline} — {snippet}" | {url} |
| ...
## Ad copy patterns (top patterns observed)
1. **Pricing-led:** "{N}% off — start at ${X}/mo" — used by {n} advertisers.
2. **Outcome-led:** "Get {specific outcome} in {time}" — used by {n}.
3. **Trust-led:** "Trusted by {n} {audience}" — used by {n}.
4. ...
## SERP feature inventory
| Keyword | Top ads | Shopping pack | PAA | Image pack |
|---|---|---|---|---|
| {kw} | {advertiser list} | {✓/✗} | {✓/✗} | {✓/✗} |
| ...
## Recommended bid-keyword shortlist
See `recommended-keywords.csv`. Top 10:
| Keyword | Volume | Est. CPC | Why |
|---|---|---|---|
| {kw} | {n} | ${n} | Question-intent variant; competitor X bids on head term but not this. |
| ...
## Constraints / caveats
- CPC and volume estimates are directional. Actual costs depend on Quality Score, time of day, audience, etc.
- {Note any ad-copy that's clearly seasonal / promotional and may not represent steady-state.}
## Recommended next step
Cross-reference these paid keywords with `seo-keyword-cluster` output to find under-served paid clusters. For organic content opportunities corresponding to these paid keywords, run `seo-keyword-niche`.
recommended-keywords.csv columns: keyword,volume,cpc_estimate,position_target,intent,competitor_count,why_recommended
Tips
- Respect rate limit. Domain mode: ~3–5 calls. Keyword mode: ~3 calls. Plus a few SERP queries.
- Cost: ~10–20 credits typical for domain mode; ~5–10 for keyword mode.
- CPC estimates lag. SE Ranking's CPC data is not real-time auction data; treat as ±30% directional.
- Ad copy often reveals competitor positioning before product launches do — periodic review (quarterly) catches strategic shifts.
- Question-intent variants often have lower CPC and higher conversion than head terms. The shortlist in step 8 prioritises these.
- Pair with
seo-keyword-nichefor organic content opportunities derived from paid keyword research. - Pair with
seo-competitor-pagesif the bidding landscape reveals "X vs Y" / "alternatives" intent — those keywords convert best as comparison pages, not paid ads. - Ads data via shared DATA_ tools* — beyond the dedicated
DATA_getDomainAdsByDomain/DATA_getDomainAdsByKeyword, thetype: 'adv'enum switch onDATA_getDomainKeywords,DATA_getDomainKeywordsComparison,DATA_getDomainCompetitors,DATA_getDomainPages, and similar tools surfaces the paid view of the same data structures. Combine with thetads/bads/sads/madsSERP-feature filters and the CPC filter on SERP queries to map paid landscape comprehensively. - Don't recommend paid keywords without context. The shortlist is a starting point for the PPC team, not an autopilot.