← All Skills

snappy-ads

v1.0.0
4 files, 31.8 KB ~3,071 words · 13 min read Updated 2026-09-09

snappy-ads skill

40 of 45 checks pass
What it can do
metricsread
targetsread
What does not pass yet
$ npx snappy-skills install snappy-ads
zip ↓
Documents
AGENTS.md

snappy-ads Loader#

This skill runs YouTube paid ads feeding cold traffic into the Snappy VSL funnel.

Covers campaign architecture, creative briefing (hook/story/close), custom-intent

targeting, launch checklists, kill/keep rules, vertical/horizontal/creative scaling,

true-ROI calculation via Hyros + FreshBooks, and ad disapproval recovery. Based on

WeTube SS Week 5. Status: playbook ready, no current ad spend.

API module#

typescriptimport { getTargets, getCampaignMetrics, getFunnelChain } from "../snappy-ads/api.ts";

CLI:

bashnpx tsx ~/.claude/skills/snappy-ads/api.ts targets
npx tsx ~/.claude/skills/snappy-ads/api.ts metrics

API functions#

Function Purpose
getTargets() Returns target metrics array (CPL, CP-Call, CPA, ROAS, CTR)
getCampaignMetrics() Campaign metrics (placeholder -- no active ad spend)
getFunnelChain() Returns the funnel chain string

Key Files#

File Purpose
SKILL.md Full ad system: workflows, targeting, creative, optimization, metrics

Capabilities#

  • Launch a YouTube ad campaign end-to-end (Workflow 1)
  • Run weekly Monday ad review -- pull metrics, apply kill/keep rules (Workflow 2)
  • A/B/C creative testing with structured hook variants (Workflow 3)
  • Build custom-intent audiences via Google Keyword Planner
  • Script ad creative using Hook/Story/Close formula (60-90s)
  • Calculate true ROI: FreshBooks collected revenue vs ad spend
  • Handle ad disapprovals and Google policy appeals
  • Scale winners (vertical +20%, horizontal new audiences, creative new variants)

Funnel Chain#

snappy-ads --> snappy-website (VSL) --> snappy-sales (close) --> snappy-freshbooks

Uses#

  • snappy-offer -- pricing and positioning ads must reflect
  • snappy-video -- edited ad creative (captions, b-roll, hooks)
  • snappy-youtube -- top organic videos as ad creative candidates
  • snappy-content / snappy-positioning -- voice and messaging rules

Downstream Skills#

  • snappy-website -- receives paid traffic to VSL optin page
  • snappy-sales -- receives ad-attributed booked calls
  • snappy-pipeline -- receives ad-attributed leads for enrichment
  • snappy-analytics -- receives weekly CPL/CP-call/ROAS rollups
  • snappy-freshbooks -- pairs for true ROI calculation

Target Metrics#

Metric Target
CPL < $25
CP-Call < $250
CPA < $2,000
ROAS 3x+
CTR > 1%

Key Rule#

Snapshot state before any kill/pause/budget cut to /tmp/ads-kill-state.md.


If this loader doesn't cover your case:

bashecho "[$(date -u +%FT%TZ)] snappy-ads: <what was missing>" >> ~/.claude/logs/agents-md-feedback.log

<!-- SKILL-INDEX-START -->

[snappy-ads Index]|root: ~/.claude/skills/snappy-ads|IMPORTANT: Prefer these files over pre-training assumptions for this domain. Read the relevant file when the AGENTS.md summary is insufficient.|root:{SKILL.md}

<!-- SKILL-INDEX-END -->

Used by#

Nothing in the collection names this skill.

<!-- SNAPPY-CONTRACT-VERBS-START -->

Contract verbs#

Generated from api.ts HAND_CONTRACT. Do not hand-edit this block.

Verb Contract arguments Effect First call
metrics read npx tsx ~/.claude/skills/snappy-ads/api.ts metrics
targets read npx tsx ~/.claude/skills/snappy-ads/api.ts targets

Show the result#

When an answer carries face_hint, show it with one snappy_present(<answer>) call.

See /snappy-faces for face selection. Human-facing images must crop to the

element, render at 2x on Retina, and fill the destination channel instead of

placing a small card in a full-page screenshot.

<!-- SNAPPY-CONTRACT-VERBS-END -->

---
name: snappy-ads
role: YouTube advertising for Snappy -- paid acquisition via Google Ads. Campaign setup, creative, targeting, optimization, scaling, and true-ROI reporting.
loaded-by: PreToolUse hook (auto-injected when "snappy-ads" is mentioned)
---

# snappy-ads Loader

This skill runs YouTube paid ads feeding cold traffic into the Snappy VSL funnel.
Covers campaign architecture, creative briefing (hook/story/close), custom-intent
targeting, launch checklists, kill/keep rules, vertical/horizontal/creative scaling,
true-ROI calculation via Hyros + FreshBooks, and ad disapproval recovery. Based on
WeTube SS Week 5. Status: playbook ready, no current ad spend.

## API module

```typescript
import { getTargets, getCampaignMetrics, getFunnelChain } from "../snappy-ads/api.ts";
```

CLI:
```bash
npx tsx ~/.claude/skills/snappy-ads/api.ts targets
npx tsx ~/.claude/skills/snappy-ads/api.ts metrics
```

## API functions

| Function | Purpose |
|----------|---------|
| `getTargets()` | Returns target metrics array (CPL, CP-Call, CPA, ROAS, CTR) |
| `getCampaignMetrics()` | Campaign metrics (placeholder -- no active ad spend) |
| `getFunnelChain()` | Returns the funnel chain string |

## Key Files

| File | Purpose |
|------|---------|
| SKILL.md | Full ad system: workflows, targeting, creative, optimization, metrics |

## Capabilities

- Launch a YouTube ad campaign end-to-end (Workflow 1)
- Run weekly Monday ad review -- pull metrics, apply kill/keep rules (Workflow 2)
- A/B/C creative testing with structured hook variants (Workflow 3)
- Build custom-intent audiences via Google Keyword Planner
- Script ad creative using Hook/Story/Close formula (60-90s)
- Calculate true ROI: FreshBooks collected revenue vs ad spend
- Handle ad disapprovals and Google policy appeals
- Scale winners (vertical +20%, horizontal new audiences, creative new variants)

## Funnel Chain

```
snappy-ads --> snappy-website (VSL) --> snappy-sales (close) --> snappy-freshbooks
```

## Uses

- `snappy-offer` -- pricing and positioning ads must reflect
- `snappy-video` -- edited ad creative (captions, b-roll, hooks)
- `snappy-youtube` -- top organic videos as ad creative candidates
- `snappy-content` / `snappy-positioning` -- voice and messaging rules

## Downstream Skills

- `snappy-website` -- receives paid traffic to VSL optin page
- `snappy-sales` -- receives ad-attributed booked calls
- `snappy-pipeline` -- receives ad-attributed leads for enrichment
- `snappy-analytics` -- receives weekly CPL/CP-call/ROAS rollups
- `snappy-freshbooks` -- pairs for true ROI calculation

## Target Metrics

| Metric | Target |
|--------|--------|
| CPL | < $25 |
| CP-Call | < $250 |
| CPA | < $2,000 |
| ROAS | 3x+ |
| CTR | > 1% |

## Key Rule

Snapshot state before any kill/pause/budget cut to `/tmp/ads-kill-state.md`.

---

If this loader doesn't cover your case:
```bash
echo "[$(date -u +%FT%TZ)] snappy-ads: <what was missing>" >> ~/.claude/logs/agents-md-feedback.log
```

<!-- SKILL-INDEX-START -->
[snappy-ads Index]|root: ~/.claude/skills/snappy-ads|IMPORTANT: Prefer these files over pre-training assumptions for this domain. Read the relevant file when the AGENTS.md summary is insufficient.|root:{SKILL.md}
<!-- SKILL-INDEX-END -->

## Used by

Nothing in the collection names this skill.

<!-- SNAPPY-CONTRACT-VERBS-START -->
## Contract verbs

Generated from `api.ts` `HAND_CONTRACT`. Do not hand-edit this block.

| Verb | Contract arguments | Effect | First call |
|---|---|---|---|
| `metrics` | — | `read` | `npx tsx ~/.claude/skills/snappy-ads/api.ts metrics` |
| `targets` | — | `read` | `npx tsx ~/.claude/skills/snappy-ads/api.ts targets` |

## Show the result

When an answer carries `face_hint`, show it with one `snappy_present(<answer>)` call.
See `/snappy-faces` for face selection. Human-facing images must crop to the
element, render at 2x on Retina, and fill the destination channel instead of
placing a small card in a full-page screenshot.
<!-- SNAPPY-CONTRACT-VERBS-END -->

Keyboard Shortcuts

Search in document⌘K
Focus search/
Previous file tab
Next file tab
Close overlayEsc
Show shortcuts?