seranking/seo-ads
Paid-search competitive landscape for a domain or keyword. Pulls SE Ranking's PPC data — domain ad keyword footprint, ad copy patterns, who else bids on the same keywords, SERP shopping/ad-pack visibility — and produces a competitive ads brief plus a recommended bid-keyword shortlist. Use when the user asks "paid search analysis", "competitor ads", "PPC competitive", "ad copy intelligence", "shopping pack", "who bids on this keyword", or "paid keyword footprint".
npx skills add https://github.com/seranking/seo-skills --skill seo-ads
> Example output: examples/seo-ads-hostinger-com-20260514/ADS.md
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.
us).DATA_getCreditBalance — surface remaining credits.DATA_getDomainAdsByDomainvolume × CTR-by-paid-position × bid-share).DATA_getDomainAdsByKeywordDATA_getKeywordQuestionsDATA_getSerpResultstads (top ads above organic), bads (bottom ads below organic), sads (shopping ads / Google Shopping pack), mads (mobile/map-pack ads).DATA_getDomainKeywords with type: 'adv'type: 'adv' switch.DATA_getDomainCompetitors with type: 'adv'): pull their paid keywords with type: 'adv'.ADS.mdCreate 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
seo-keyword-niche for organic content opportunities derived from paid keyword research.seo-competitor-pages if the bidding landscape reveals "X vs Y" / "alternatives" intent — those keywords convert best as comparison pages, not paid ads.DATA_getDomainAdsByDomain / DATA_getDomainAdsByKeyword, the type: 'adv' enum switch on DATA_getDomainKeywords, DATA_getDomainKeywordsComparison, DATA_getDomainCompetitors, DATA_getDomainPages, and similar tools surfaces the paid view of the same data structures. Combine with the tads/bads/sads/mads SERP-feature filters and the CPC filter on SERP queries to map paid landscape comprehensively.Take seranking/seo-ads from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.