Product Requirements Doc (PRD)
This PRD defines the zero-to-one scope for Ad Copilot: an AI co-pilot for performance marketers that generates ad creative, monitors live campaign performance, and routes every AI action through confidence-based human review lanes.
Thesis: the product isn’t valuable because it uses AI — it’s valuable because it makes a trust boundary explicit: what the AI can do autonomously, what it must escalate, and how a marketer builds confidence in it over time.
1. Goals
- Primary: ≥40% suggestion acceptance rate by month 3 of beta (sustained, not a one-week spike).
- Product north-star: Incremental ROAS improvement attributable to accepted AI suggestions.
- Trust: Every budget-impacting action leaves a visible paper trail (audit log + optional rollback).
- Cost: LLM spend stays under a fixed ceiling as % of managed ad spend per account.
2. Non-goals (v1)
- No autonomous spend above configured thresholds — Auto-apply is Phase 3 only and opt-in.
- No custom multi-touch attribution engine — platform-native numbers only.
- Text-only creative in v1 — no image/video generation.
- No multi-language support (English-only prompts).
- No sub-minute real-time recommendations — hourly refresh is intentional.
3. Personas
Primary — In-house Performance Marketer. Manages $50K–$500K/mo paid social & search; team of 1–4; no dedicated data scientist. Distrusts black-box automation; will not adopt anything that spends money without a paper trail. Biggest time sink is creative production, not analysis.
Secondary — Marketing Lead. Cares about Incremental ROAS from the tool and LLM cost as % of managed spend — not engagement vanity metrics inside the product.
Admin / Compliance. Needs brand-safety filtering, configurable lane thresholds (bounded by hard platform ceilings), and immutable audit history.
4. Solution summary
- Creative Generation — variants from product feed + past top performers, each with a confidence score.
- Performance Monitoring & Recommendation — watches ROAS/CPA/CPL targets; proposes budget/bid changes on drift.
- Human Review Queue — every AI action lands in Auto-apply, Suggest, or Escalate based on confidence + blast radius + account trust tier.
5. Core user flows
Flow 1 — Connect ad account
Marketer connects Meta (v1) via OAuth → last 90 days of campaign/ad set/ad data syncs → sync-status shown until ready.
Flow 2 — Set targets & monitor
Per campaign, set target ROAS or CPA (not both). Drift monitoring compares live metrics to targets hourly and generates recommendations with reasoning.
Flow 3 — Generate & review creative
On-demand (and later scheduled) generation → brand-safety filter → confidence score → Suggest/Escalate queue → approve / edit / reject.
Flow 4 — Act & audit
Approved/auto-applied actions execute via platform APIs; all lanes write to an immutable audit log; Auto-apply supports a 5-minute rollback window.
6. Functional requirements
| ID | Requirement |
|---|---|
| FR-1 | Generate 3–5 ad copy variants (headline / primary text / CTA) for a selected ad set from product feed + historical top performers. |
| FR-2 | Display a confidence score (bucketed High/Medium/Low) on every generated variant and recommendation. |
| FR-3 | Support on-demand generation; optionally schedule auto-refresh when creative fatigue signals fire (CTR decline). |
| FR-4 | Run deterministic brand-safety wordlist screening before any variant reaches a reviewer; log suppressions for admin audit. |
| FR-5 | Detect performance drift by comparing live metrics to campaign targets on an hourly cadence. |
| FR-6 | Allow target ROAS or target CPA per campaign; campaigns without a target are excluded and marked “no target set.” |
| FR-7 | Surface recommendations with triggering metric, current vs target, proposed action, confidence, and plain-language reasoning. |
| FR-8 | Classify every AI action into exactly one lane: Auto-apply, Suggest, or Escalate. |
| FR-9 | New / low-data accounts cannot land in Auto-apply regardless of model confidence. |
| FR-10 | Reviewers can approve, reject, or edit Suggest-lane items before execution. |
| FR-11 | Immutable audit log of all AI actions across lanes; rollback for Auto-apply within 5 minutes. |
| FR-12 | Admins can configure lane thresholds per account within hard platform-level blast-radius ceilings. |
| FR-13 | Enforce per-account monthly LLM generation caps before the model call is made; notify at 80%. |
| FR-14 | Tiered model routing: lower-cost model for first-pass candidates; higher-capability model only for top-N refinement. |
| FR-15 | Cache generation outputs for unchanged product-feed inputs (keyed by feed hash + prompt template version). |
7. Non-functional requirements
| ID | Requirement |
|---|---|
| NFR-1 | Performance data refreshed hourly; rate-limit aware with backoff; stale data flagged in UI rather than acted on blindly. |
| NFR-2 | Auto-apply rollback available within 5 minutes of execution. |
| NFR-3 | Audit log is append-only and not user-editable. |
| NFR-4 | Every LLM call logs token count, model tier, and prompt-template version for cost control and regression tracing. |
8. Phased scope
- Phase 1 (MVP): Meta only; creative generation + Suggest/Escalate review; cost caps; no Auto-apply.
- Phase 2: Google Ads + budget/bid recommendations; still Suggest-lane only; P1 stories (auto-refresh, threshold config, caching) considered from Phase 1 learnings.
- Phase 3: Opt-in Auto-apply for trust-tier-eligible accounts; hard blast-radius ceilings enforced and non-configurable.
Detailed entry/exit gates and feature flags live in the Release Plan. Story-level mapping lives in User Stories.
More in this series