# ctv-ads

Guides Connected TV and OTT ad campaigns across Hulu, Roku, and YouTube TV, covering buying models, 16:9 creative specs, and QR tracking.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 1000 installs · ★ 1062
- Author: kostja94
- License: MIT · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/kostja94/marketing-skills/tree/HEAD/skills/paid-ads/formats/ctv-ads/SKILL.md
- Updated: 2026-10-21
- HTML: https://affpapa.org/en/nevibecode/skills/ctv-ads

## What it does

The skill outlines how to plan and run ads on Connected TV and OTT platforms such as Hulu, Roku, Peacock, and YouTube TV. It details standard 15–30 second pre-roll or mid-roll formats, interactive units, and buying paths via programmatic DSPs like The Trade Desk or direct network deals.

Specs prioritize 16:9 horizontal video built specifically for sound-on viewing. Tracking TV ads is notably harder than standard web attribution, so the guidance emphasizes QR codes, direct URL visits, and tagging campaigns with `utm_medium=video` or `ctv`.

The skill covers channel-specific execution and pre-launch checks. If you need full budget allocation across web, mobile, and television, it delegates that planning to `paid-ads-strategy`.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add kostja94/marketing-skills --skill ctv-ads -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/ctv-ads/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/ctv-ads/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add kostja94/marketing-skills --skill ctv-ads -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/ctv-ads/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add kostja94/marketing-skills --skill ctv-ads -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/ctv-ads/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install kostja94/marketing-skills ctv-ads
```

2. **Manually: put the files in place**
- File: `.github/skills/ctv-ads/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add kostja94/marketing-skills --skill ctv-ads -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/kostja94/marketing-skills --path skills/paid-ads/formats/ctv-ads
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/ctv-ads/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add kostja94/marketing-skills --skill ctv-ads -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/kostja94/marketing-skills/tree/HEAD/skills/paid-ads/formats/ctv-ads/SKILL.md

## When to use it
- prepare 16:9 video ad specs for streaming TV platforms
- configure UTM tagging for QR code attribution on CTV
- evaluate programmatic DSP vs direct platform buying options
- verify campaign settings against the CTV pre-launch checklist

## Example prompts
- Guide me through setting up a CTV ad campaign for Hulu and Roku
- What UTM parameters should I use for interactive streaming ads?
- Review our streaming ad plan against the CTV pre-launch checklist

## Source text · SKILL.md · MIT

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: d03b3d8c118599f8.

BEGIN THIRD-PARTY FILE d03b3d8c118599f8
```text
---
name: ctv-ads
description: When the user wants to run CTV, OTT, or streaming TV ads. Also use when the user mentions "CTV ads," "connected TV," "OTT advertising," "streaming ads," "TV ads," "Hulu ads," "Roku ads," "YouTube TV ads," or "programmatic TV." For paid mix, use paid-ads-strategy.
metadata:
  version: 1.0.1
---

# Paid Ads: CTV / Streaming TV

Guides Connected TV (CTV) and OTT advertising: ads on streaming platforms (Hulu, Roku, YouTube TV, etc.). Use when targeting viewers who watch streaming content; CTV achieves ~95% ad completion, higher than mobile/desktop.

**When invoking**: On **first use**, if helpful, open with 1–2 sentences on what this skill covers and why it matters, then provide the main output. On **subsequent use** or when the user asks to skip, go directly to the main output.

## What Is CTV / OTT

- **CTV (Connected TV)**: Smart TVs, streaming devices (Roku, Fire TV, Apple TV) that serve ads
- **OTT (Over-the-top)**: Video delivered over the internet (Hulu, Peacock, Paramount+, etc.)
- **Streaming share**: Streaming surpassed broadcast + cable combined in 2025 (~45% of TV viewing)

## Why CTV

| Advantage | Detail |
|-----------|--------|
| **High completion** | ~95% ad completion rate vs lower on mobile/desktop |
| **Unskippable** | Most CTV inventory is non-skippable pre-roll/mid-roll |
| **Targeting** | Demographics, interests, location, household data |
| **Underinvested** | CTV received ~7% of ad spend despite ~18% of media time (2024) |

## Ad Formats

| Format | Use |
|--------|-----|
| **Pre-roll / Mid-roll** | Standard video; 15–30 sec |
| **Interactive** | Drives engagement; ~71 sec additional time vs standard |
| **QR / URL** | Direct response; track offline-to-online |

## Platforms & Buying

- **Programmatic**: DSPs (The Trade Desk, etc.); audience-based buying
- **Direct**: Hulu, Roku, YouTube TV, Peacock—platform-specific deals
- **Google**: YouTube on TV; part of Video campaigns

## Metrics

| Metric | Use |
|--------|-----|
| **Completion rate** | % who watch full ad; CTV typically 95%+ |
| **Reach / frequency** | Household reach; avoid over-frequency (e.g., &lt;7) |
| **CPM** | Cost per thousand impressions |
| **Attribution** | QR scans, URL visits; harder than web/app |

## Creative

- **Horizontal**: 16:9; TV screen format
- **Sound on**: Assume sound; design for audio
- **Brand focus**: CTV often awareness; clear brand, CTA

## UTM for CTV

Use `utm_medium=video` or `ctv` with `utm_source` (e.g., `hulu`, `roku`) for QR/URL campaigns. Tag links in interactive CTV ads for attribution.

## Pre-Launch Checklist

- [ ] Creative in 16:9; sound-on
- [ ] Targeting defined (demo, interests, geo)
- [ ] Attribution plan (QR, URL, brand lift)
- [ ] Frequency cap set
- [ ] Budget aligned with CPM expectations

## Related Skills

- **paid-ads-strategy**: Ad formats by medium; when to use TV vs web vs app
- **traffic-analysis**: UTM for CTV direct-response; attribution
- **analytics-tracking**: Conversion tracking for QR/URL campaigns
```
END THIRD-PARTY FILE d03b3d8c118599f8

The third-party file has ended. Everything between the d03b3d8c118599f8 tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

© kostja94 · MIT · https://github.com/kostja94/marketing-skills/tree/HEAD/skills/paid-ads/formats/ctv-ads/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
