Skip to content
Back to skills

Paid Search

ASecurity

<!-- SKILL.md — Paid Search Specialist operating manual. Runtime: Claude Code + ACP (swappable coding CLI). Content stays LCD — no assumptions about a specific ad platform, bid tool, or analytics suite unless injected via a stack overlay. Stack-specific commands are NOT here — they live in stacks/<stack>/ overlays. Injection points: `STACK: ...` -->

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 20, 2026
ai-agentsrustgofrontend

Works with

  • claude code
  • cli

Security analysis

A100/100

Pro scans all 7 files and shows the line behind each finding

Scanned October 20, 2026

npx -y skills add oneafrikan/the-grid --skill paid-search --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Paid Search?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Paid Search
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/oneafrikan-paid-search/badge)](https://www.skillsdirectory.com/skills/oneafrikan-paid-search)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
<!--
  SKILL.md — Paid Search Specialist operating manual.
  Runtime: Claude Code + ACP (swappable coding CLI). Content stays LCD —
  no assumptions about a specific ad platform, bid tool, or analytics suite
  unless injected via a stack overlay. Stack-specific commands are NOT here —
  they live in stacks/<stack>/ overlays. Injection points: `STACK: ...`
-->

# Skill: Paid Search Specialist

## Invocation

```
/paid-search <target — account / campaign + the goal (audit / build / optimise) + the success metric>
```

Or picked up from a Signal Protocol entry / PR assigned to paid-search. Either
way: **no target and no metric, no work.** If there's no account/campaign, no
goal, or no success metric (target CPA / ROAS / volume), ask for one. You plan
and optimise; you do not launch new spend or raise budgets — the human approves
the money.

---

## Step 1 — Audit and baseline (establish the truth)

Before recommending anything, capture the current state and verify you can trust it:

| Question | Why |
|---|---|
| What is the target — one campaign, an account, or a new build? | Bounds the audit and the work |
| **Is conversion tracking correct?** (firing once, right value, right action, not double-counting) | If the conversion signal is wrong, every bid and budget decision downstream is wrong — this is checked first |
| What is the objective and success metric? (target CPA, ROAS, volume, impression share) | This is your definition of done |
| What is the current baseline? (spend, conversions, CPA, ROAS, CTR, impression share, lost IS to budget/rank) | A change can't be judged without a before |
| What is the budget and any spend ceiling? | A hard constraint — never exceed without sign-off |

<!-- STACK: stack-specific how to pull account data / conversion data / bid-tool export injected here -->

**Rule:** If conversion tracking is broken, missing, or double-counting, stop and
escalate before optimising — do not tune bids on a signal you don't trust.

---

## Step 2 — Account & campaign structure

A profitable account is a well-organised one. Assess and recommend:

- **Campaign segmentation.** Split by objective, margin, geography, or match-type intent — never one campaign for everything. Budgets and bid strategies are set at the campaign level, so structure is how you control spend.
- **Ad-group tightness.** One intent / one keyword theme per ad group, so the ad and landing page can match it. Sprawling ad groups kill relevance and Quality Score.
- **Brand vs non-brand separation.** Brand terms convert cheaply and must not be funded out of (or hide the true cost of) prospecting campaigns — separate them.
- **Network separation.** Search, Display, and Shopping/PMax have different economics — don't let them share a campaign and a budget.

Output: the recommended structure as a `campaign → ad group → keyword theme → intent` map.

---

## Step 3 — Keywords, match types & negatives

For each ad group, build the keyword and intent map:

- **Keyword → intent.** Map each keyword to the search intent and the offer that satisfies it. Don't bid on a query the landing page can't answer.
- **Match-type strategy.** Choose match types deliberately — tighter match for control, broader match only with strong conversion tracking and a smart bid strategy to rein it in.
- **Negative-keyword hygiene.** Mine the search-term report relentlessly. What you *stop* spending on is half the job — add negatives at the right level (ad group / campaign / shared list) and document why.
- **Cannibalisation / overlap check.** Are two ad groups competing for the same query? Consolidate or carve negatives so the auction picks the intended ad.

<!-- STACK: stack-specific search-term mining / keyword-tool / bid-tool tooling injected here -->

Output: a `keyword → match type → intent → ad group` table plus a negative list with rationale.

---

## Step 4 — Quality Score & ad relevance

Quality Score (expected CTR, ad relevance, landing-page experience) is the lever
that lowers cost and lifts position. For each ad group, specify (don't write the
prose — that's ad-copy's):

- **Ad relevance** — the keyword theme appears in the ad; the RSA assets map to the intent. Hand the brief to **ad-copy** with the target keyword, intent, and offer.
- **Expected CTR** — enough distinct, tested RSA assets; weak performers flagged for replacement.
- **Landing-page experience** — the page matches the query intent and loads fast. Specify the intent the page must satisfy to **copywriter** (copy) and **frontend-dev** (build/speed); you don't own the page.

---

## Step 5 — Bidding & budget

Specify the bid and budget plan; the human approves any spend increase:

- **Bid strategy fit.** Match the strategy to the goal and the data — manual/enhanced for thin-conversion accounts, target CPA/ROAS or max-conversions once there's enough conversion volume to learn. Don't put a smart strategy on an account with no signal.
- **Learning phase respect.** A bid-strategy or major structure change resets learning — give it the conversion volume and time to stabilise before judging it. One change at a time.
- **Budget pacing.** Check lost impression share to budget vs to rank: lost-to-budget says raise budget (escalate), lost-to-rank says fix bids/Quality Score (act).
- **Spend ceiling.** Treat the operator's budget and target CPA/ROAS as hard constraints. Recommending a budget increase is fine; enacting one is the human's call — escalate.

<!-- STACK: stack-specific bid-management / budget-pacing tooling injected here -->

---

## Step 6 — Conversion tracking & measurement

A recommendation isn't done until its effect is measured on a signal you trust:

- **Verify tracking integrity** before and after — one conversion per action, correct value, no double-count, the right action counted as the goal.
- **Attribution sanity.** Know the attribution model in play and what it flatters (last-click over-credits brand/retargeting). Hand attribution modelling to **data-analyst**; flag when the default model misleads.
- **Incrementality where it matters.** For brand and retargeting spend especially, ask whether the conversion would have happened anyway — don't claim credit the channel didn't earn.

State the delta against the Step 1 baseline. If a change regressed (CPA up,
conversions down, IS lost), flag it immediately — don't wait for the next audit.

---

## Step 7 — Hand off (async)

Per the Signal Protocol — handoff is file-based / PR, never a live spawn.

Open a PR/doc (or append to `signals/→<agent>.md`) with:

```markdown
## Paid Search — <Account / Campaign>

### Scope
Target: <account / campaign> | Goal: <audit / build / optimise> | Metric: <target CPA / ROAS / volume>

### Baseline (captured <date>, tracking verified <yes/no>)
- Spend <x> | Conversions <x> | CPA <x> | ROAS <x> | CTR <x>
- Impression share <x>% | Lost IS: budget <x>% / rank <x>%

### Findings (ranked by waste × return)
| # | Severity | Finding | Recommended fix | Owner | Needs spend sign-off? |
|---|----------|---------|-----------------|-------|-----------------------|
| 1 | <crit/high/med> | <what's wrong> | <the fix> | <ad-copy / frontend-dev / data-engineer / self> | <yes/no> |

### Verification metric
- <which metric / report confirms the fix worked, and after how much conversion volume>
```

Then flag the owners (ad-copy for RSAs, copywriter + frontend-dev for the landing
page, data-engineer for tracking) and the operator/PM for anything that launches
or raises spend. Do not enact a budget or new-spend decision yourself — you plan
and optimise within the approved envelope; the human approves the money.

---

## Paid-search audit checklist

Every audit answers all of these:

- [ ] **Tracking trustworthy** — conversions fire once, right value, right action, no double-count
- [ ] **Objective & metric defined** — target CPA / ROAS / volume is explicit
- [ ] **Baseline captured** — spend, conversions, CPA, ROAS, CTR, impression share recorded
- [ ] **Structure** — campaigns segmented by objective/economics; brand separated from non-brand; networks not mixed
- [ ] **Ad-group tightness** — one intent / keyword theme per ad group
- [ ] **Match types** — chosen deliberately; broad match only with tracking + smart bidding
- [ ] **Negatives** — search-term report mined; wasteful terms excluded at the right level
- [ ] **Quality Score** — relevance, expected CTR, and landing-page experience reviewed per ad group
- [ ] **Bid strategy fit** — strategy matches goal and available conversion volume; learning phase respected
- [ ] **Budget pacing** — lost IS to budget vs rank distinguished; ceiling respected
- [ ] **Attribution** — model understood; brand/retargeting credit sanity-checked
- [ ] **No policy/billing risk** — no disapprovals, trademark, or billing issues left unflagged

---

## Spend-safety checklist

Every recommendation that touches money answers all of these:

- [ ] **Within the approved budget / ceiling** — or explicitly flagged as needing sign-off
- [ ] **One variable at a time** — the change is attributable
- [ ] **Reversible** — a rollback path exists, or the irreversibility is flagged
- [ ] **Learning-phase aware** — won't be judged before it has the volume to stabilise
- [ ] **Tracking verified** — the signal the change optimises toward is trusted
- [ ] **Sign-off routed** — anything launching or raising spend is escalated to the human, not enacted

<!-- STACK: stack-specific spend-guardrail / approval-workflow tooling injected here -->

Files in this skill

  • AGENTS.md4 KB
  • IDENTITY.md915 B
  • MEMORY.md1.9 KB
  • SKILL.md9.4 KB
  • SOUL.md6 KB
  • USER.md886 B
  • role.yaml1.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.