Execution & Cost
Solo-Engineer Sprint Plan — Start 1 Jul 2026
Context: One engineer + AI-powered IDE (Cursor). Timeline cut ~50% vs the original 2–4 engineer plan (
26 weeks → **13 weeks** to Google + Meta + TikTok core loop).Week 0 (VC/board gate) runs first — 24–30 Jun ideal, or 1–2 Jul minimum. Ask W0 questions, get rep intros and creative integration committed, then re-phase dates. W1 build can start 1 Jul in parallel with sandboxes; pilot live ads wait on creative integration (Q2).
Goal (post-gates): For ≥1 pilot client, end-to-end on Google + Meta + TikTok: onboarding → planning → campaign create/execute → rules-based optimization → reporting.
Then (W10–13+): Harden, CAPI basics — then DV360, CRM closed-loop, agentic hardening, relay.
Related: Roadmap · Gameplan MVP cut · Platform access PRE checklist · Executive summary
0. How this plan differs from the original
| Original (2–4 eng) | This plan (1 eng + Cursor) |
|---|---|
| ~26 weeks full module | ~13 weeks to G+M+T core loop; full module ~20+ |
| Parallel workstreams | Serial — one lane; Cursor accelerates code, not Meta rep SLAs |
| Full agentic stack early | Rules-first optimization; thin LLM for plan draft only |
| Full Cost Guard / QC telemetry | Simple per-run token budget + logs |
| Separate System Ops dashboard | Defer — use Cloud Logging + ad-hoc queries |
| Hybrid Python + TS stack | Modular services in monorepo — separate Cloud Run deployables per domain (connectors, orchestrator, BFF, registry); shared types only — maintenance-ready SaaS, not one blob |
Honest constraint: External approvals (Google token backlog, Meta app review, TikTok app Live, Meta 2-Tier) do not compress 50%. Rep-gated items: Emre (A) arranges intros; Arif (R) joins meetings and builds. Self-serve apps: Arif in W1. RACI: §0c.
0c. RACI — named roles
R = Responsible · A = Accountable · C = Consulted · I = Informed
| Role | Name | Notes |
|---|---|---|
| Digital Ads module (engineering) | Arif | R + A for build, GCP, connectors, self-serve apps, ads-module side of creative integration |
| VC / board | Emre | A for W0 gates, rep intros, pilot client, creative program, float/credits |
| Finance / legal | TBD | Entity, billing instruments |
| Creative product | TBD | Provider side of creative API |
| Pilot client | External | UAT |
| Platform reps | External | Via Emre only |
W0 questions — RACI
| # | Topic | R | A | C |
|---|---|---|---|---|
| Q1 | Platform rep intros | Emre | Emre | Arif |
| Q2 | Creative integration | Creative TBD | Emre | Arif |
| Q3 | Pilot client | Emre | Emre | Arif |
| Q4 | Client portal depth | Arif | Emre | — |
| Q5 | Entity / billing | Finance TBD | Finance TBD | Emre, Arif |
| Q6 | Media float | Finance TBD | Emre | Arif |
| Q7 | Cloud credits | Emre | Emre | Arif |
0b. Week 0 — VC/board gate (before or first 2 days of July)
Purpose: Ask every question that re-phases the plan. Emre facilitates (A); Arif presents and records. Ideal: 24–30 Jun; minimum: 1–2 Jul before W1 build.
W0 questions for VC/board (mandatory)
| # | Question | Why it gates | A |
|---|---|---|---|
| Q1 | Emre introduces Arif to Google / Meta / TikTok partner reps (no cold outreach) | PRE-10, PRE-2, TikTok caps | Emre |
| Q2 | Creative tool → this module — owner, API, date live | Live pilot blocked without assets | Emre |
| Q3 | Pilot SMB client | PF-17 | Emre |
| Q4 | Client portal depth (MVP vs product) | W10–12 scope | Emre |
| Q5 | Legal entity + bank instruments | PF-1 | Finance TBD |
| Q6 | Media float policy | B3 | Emre |
| Q7 | Cloud credits (optional) | Cost | Emre |
W0 exit — re-phase the sprint
At W0 exit, fill this table and publish revised dates (replace Section 1 milestones if needed):
| Gate | Status | Effect on plan |
|---|---|---|
| VC rep intros scheduled (Google / Meta / TikTok) | ☐ Yes ☐ No ☐ Date: ___ | If No → Meta 2-Tier + TikTok escalation slide; build continues on sandboxes |
| Creative integration — owner + target date + API sketch | ☐ Committed ☐ TBD | If TBD → pilot live ads blocked; W5+ slips to integration_done + 2w |
| Pilot client named | ☐ Yes ☐ No | If No → use test shells until named; real UAT slips |
| Entity + billing ready | ☐ Yes ☐ No | If No → W1 external track blocked |
Rule: W1 build (GCP, monorepo, connectors against sandboxes) can start 1 Jul even if Q1/Q2 pending. W5 pilot with live ads requires Q2 done + Q3 (or explicit “test shell only” decision).
1. Milestones (calendar)
| Date | Week | Milestone |
|---|---|---|
| 24–30 Jun or 1–2 Jul | W0 | VC/board gate — Q1–Q7 answered; rep intros scheduled; creative integration owner + date; revised phase calendar |
| 1 Jul 2026 | W1 | Build kickoff (post-W0) · GCP live · self-serve developer apps submitted |
| ~21 Jul | W3 | Google connector reads + GA4 reports; registry + approval inbox |
| ~4 Aug | W5 | Google E2E — live ads only if creative integration gate cleared (else test shell + dry-run) |
| ~18 Aug | W7 | Meta E2E (execution; provisioning may be manual until app approved) |
| ~1 Sep | W9 | Google + Meta + TikTok E2E for 1 pilot |
| ~15 Sep | W11 | Hardening + 2nd pilot + basic CAPI |
| ~29 Sep | W13 | Buffer / polish; start CRM interim + DV360 sales track |
| Oct+ | W14+ | DV360 (if contract), CRM loop, agentic hardening, relay |
2. What ships in the 13-week cut vs deferred
In scope (must finish by ~W9)
| Capability | Meta | TikTok | |
|---|---|---|---|
| Onboarding (provision + checklist) | ✅ | ✅ (≤5 BM) | ✅ (if TikTok app Live) |
| Media planning (CRUD + approve) | ✅ | ✅ | ✅ |
| Campaign create / execute | ✅ | ✅ | ✅ |
| Rules-based optimization | ✅ | ✅ | ✅ |
| Reporting (GA4 SoT + platform spend) | ✅ | ✅ | ✅ |
| Human Touch (plan + launch approve) | ✅ | ✅ | ✅ |
Deferred (week 14+)
- DV360, full CRM closed-loop, first-party relay
- Full orchestrator state machine + multi-agent QC loops
- Cost Guard ledger, model promotion, 80% QC floor alerts
- System Ops dashboard (use GCP console + logs)
- Feed/catalog (unless pilot is ecommerce — pull to W10)
- Meta 2-Tier BM (only needed client #6+ — keep requesting in background)
- Automatic LLM optimization agent (rules + optional plan-draft LLM only)
0a. Terminology (read this first)
| Term | Meaning |
|---|---|
| Pilot client | A real SMB business to run the first end-to-end test with (onboard → ads → report). Ask VC/board for a customer intro — not ad creatives, not something you invent in code. |
| Ad creatives | Images, video, ad copy. Pilot blocked until parent creative production tool is integrated (API/webhook into campaign execution). W0 assigns owner + date — not an engineer-side guess. |
| TikTok app "Live" | TikTok for Developers production approval so Marketing API works on real advertiser accounts. Sandbox = test only. Not TikTok live streaming. |
3. Week-by-week plan (build + external interleaved)
Each week: External/Ops (accounts, apps, verify) runs every morning / while waiting on approvals; Build is the main thread.
Week 0 — 24–30 Jun or 1–2 Jul 2026 · VC/board gate (no build)
| Track | Tasks | Done when | A |
|---|---|---|---|
| VC/board | Emre hosts; Arif walks through Q1–Q7 + RACI §0c | Meeting held | Emre |
| Q1: Schedule rep intros (Google / Meta / TikTok) | Dates on calendar | Emre | |
| Q2: Creative integration — owner TBD, date, API sketch | Written commitment | Emre | |
| Q3–Q7: Pilot client, portal depth, entity, float, credits | Answers recorded | per RACI | |
| Output | Arif updates milestone dates; Emre signs off revised calendar | Shared doc | Emre |
Week 1 — 1–7 Jul 2026 · Kickoff & self-serve external (post-W0)
| Track | Tasks | Done when |
|---|---|---|
| External (engineer self-serve) | Confirm legal entity + bank (W0 Q5) | Finance sign-off |
| GCP projects, billing, alerts (PF-2) | Projects + IAM | |
| Google Ads Basic token (PF-4) | Submitted | |
| MCC + business verify (PRE-7); Google OAuth (PF-6) | MCC + OAuth | |
| Meta app + Advanced Access (PF-9); BM verify (PRE-8) | Submitted | |
| TikTok sandbox app + BC verify (PRE-9) | Sandbox app | |
| External (Emre-owned — W0 Q1) | Meta 2-Tier (PRE-10), extended credit (PRE-2) | Intro meetings |
| TikTok rep — BC headroom + Live escalation | Intro meetings | |
| Build | Monorepo + modular Cloud Run; registry; mock creative client | CI green |
Week 1 exit: GCP deploys; self-serve apps submitted; Emre rep intros scheduled; Q2 owner + date on record.
Week 2 — 8–14 Jul · Foundations + Google read path
| Track | Tasks | Done when |
|---|---|---|
| External | Chase Google Basic token approval; if delayed, use test MCC accounts for dev | Token or test-only path |
| If MCC API creation untested: create 1 shell account via UI + small spend (B11 seed) | Account exists | |
| Meta: chase Advanced Access; create system user in BM when app allows | System user or waiting | |
| TikTok: complete sandbox OAuth; document BC → app advertiser assignment | Sandbox token works | |
| Build | Google Ads connector: SearchStream read (campaigns, metrics) | Pull from test/shell account |
| GA4 Analytics Data API: sessions, conversions by campaign (UTM) | Report for test property | |
| Pub/Sub + job stub for async work | Event publish/consume | |
| Human Touch v0: login (IAP or simple auth), tenant list | Dashboard loads | |
| Onboarding checklist UI (manual status + API hooks) | Checklist per tenant |
Week 2 exit: Read Google + GA4 for one account; tenant + checklist in UI.
Week 3 — 15–21 Jul · Google write + planning v1
| Track | Tasks | Done when |
|---|---|---|
| External | Google token Basic approved (if not, escalate / use break-glass UI for pilot) | Prod mutations unblocked |
| Pilot client GA4 access (when client confirmed by board) | Link confirmed | |
| Meta: if Advanced Access approved → assign system user to test ad account | Token in Secret Manager | |
| Build | Google Ads: CreateCustomerClient or UI fallback + registry update |
New shell in registry |
| Google Ads: campaign / ad group / ad mutate (Search + optional PMax template) | Test campaign created | |
| Planning v1: plan JSON schema, CRUD, version, submit for approval (A2) | Plan in DB | |
| Human Touch: plan diff viewer + approve/reject | Approval logged | |
| Onboarding Google: automate steps 1–4 from provisioning spec where API allows | Checklist auto-updates |
Week 3 exit: Approved plan → Google campaign created (test account).
Week 4 — 22–28 Jul · Google execution + reporting v1
| Track | Tasks | Done when |
|---|---|---|
| External | Google Ads → BigQuery export OR API cost pull for reporting | Spend visible |
Meta: create pilot ad account on BM (POST .../adaccount if app ready) |
Meta account in registry | |
| Start Meta API call volume (reads/writes on pilot) toward Full tier (PF-10) | Calls logged | |
| Build | Execution v1: map approved plan → Google mutate (idempotent by plan_version_id) |
Execute job works |
| Reporting v1: weekly view — GA4 metrics + Google spend vs plan | PDF or dashboard page | |
| Rules optimization v1 (Google only): if GA4 CPA > target → pause or −20% budget (configurable) | Rule fires in dry-run then live | |
| Implementation guide generator (tracking checklist for client) | PDF/markdown per tenant |
Week 4 exit: Google loop: plan → approve → execute → report → optimize (rules).
Week 5 — 29 Jul – 4 Aug · Design partner #1 live on Google
| Track | Tasks | Done when |
|---|---|---|
| External | Onboard pilot client on Google when VC/board provides one; else Kobi test shell | Partner or test shell live |
| Meta business verify complete if pending (PRE-8) | BM verified | |
| TikTok: submit App Review for Live (production Marketing API) if not done (PF-14) | Review submitted | |
| Build | Run full Google onboarding for pilot (or test shell) | Checklist green |
| First real approved plan → execute → monitor | Campaign live | |
| Reporting for partner; optimization rules with HITL gate on spend increases (A4) | Ops comfortable | |
| Meta connector: campaign read (if token ready) | Meta data in UI | |
| Optional: thin LLM plan draft (Gemini Flash-Lite) behind "Suggest plan" button | Draft only; human approves |
Week 5 exit: 🎯 Design partner live on Google with reporting + rules optimization.
Week 6 — 5–11 Aug · Meta execution path
| Track | Tasks | Done when |
|---|---|---|
| External | Meta Advanced Access approved (if not, manual campaign ops + sync job — don't block) | App production or fallback |
| Meta Full tier — continue API volume 500 calls/15d | Tier upgrade or planned date | |
| Partner Page/IG: portal OAuth or partner invite | Page linked | |
| Meta extended credit path confirmed with finance (PRE-2) | Billing works | |
| Build | Meta connector: campaign / ad set / ad mutate | Test campaign |
| Execution: apply approved plan to Meta (same plan object, platform slice) | Meta execute job | |
| Onboarding Meta: ad account + pixel + CAPI endpoint stub | Meta checklist | |
| Cross-platform report: Google + Meta spend + GA4 | Single dashboard | |
| Rules optimization: extend to Meta (GA4 SoT; degraded if no GA4) | Meta rules live |
Week 6 exit: 🎯 Partner on Google + Meta — create, report, optimize (rules).
Week 7 — 12–18 Aug · TikTok unblock + connector
| Track | Tasks | Done when |
|---|---|---|
| External | TikTok app Live = production Marketing API approved (if review slow, Week 9 slips for TikTok only) | Live token |
| Create TikTok advertiser for pilot in BC; assign to app | Advertiser in registry | |
| Confirm BC advertiser headroom with TikTok rep (B11) | OK for ≥5 tenants | |
| Build | TikTok connector: OAuth, advertiser read, campaign mutate | Test campaign |
| Onboarding TikTok checklist | Automated where Live | |
| Execution: TikTok slice from approved plan | Execute job | |
| Reporting: add TikTok spend | 3-platform report | |
| Optimization rules: TikTok slice | 3-platform rules |
Week 7 exit: TikTok works in dev/staging (sandbox or Live).
Week 8 — 19–25 Aug · Three-platform integration + polish
| Track | Tasks | Done when |
|---|---|---|
| External | Design partner TikTok access (if in scope) | BC/advertiser linked |
| Meta CAPI: pixel + test event | Events received | |
| Build | Plan templates — channel mix presets (Google-heavy / Meta-heavy / balanced) | Planner UX |
| Plan update v1 — revise + re-approve + diff | Version chain works | |
| Idempotency hardening on all execute jobs | Re-run safe | |
| Simple spend guardrail — block execute if over plan cap | Guard works | |
| End-to-end test script for 1 tenant | CI or runbook |
Week 8 exit: All three connectors integrated in code; partner onboarding path documented.
Week 9 — 26 Aug – 1 Sep · 🎯 Major platforms milestone
| Track | Tasks | Done when |
|---|---|---|
| External | Partner fully live on Google + Meta + TikTok (TikTok waivable if app not Live — document gap) | Sign-off |
| Build | Fix blockers from partner UAT | No P1 bugs |
| Human Touch: launch approval (A3), budget change approval (A4) | Full HITL path | |
| Weekly auto-report job (email or dashboard) | Report scheduled | |
| Runbook: onboarding / execute / rollback | Ops doc done |
Week 9 exit: 🎯 Core module live — onboarding, planning, create, optimize (rules), report — G + M + T for ≥1 client.
Week 10 — 2–8 Sep · Harden + second pilot
| Build + external | Tasks |
|---|---|
| Second pilot client if board provides one | Onboard; ≤5 Meta accounts still OK |
| Meta CAPI basic server events | Dedupe with event_id |
| Google offline conversion import stub | File upload interim |
| Error handling, rate-limit backoff on all connectors | No silent failures |
| Logging / alerting to email or Slack | P2 alerts |
Week 11 — 9–15 Sep · Optimization + planning depth
| Build | Tasks |
|---|---|
| Optimization: GA4 vs platform divergence freeze | Safeguard from optimization.md |
| Plan flight / budget pacing rules | No overspend without approval |
| Meta + TikTok reporting reconciliation tolerances | Flags in report |
| Optional: ecommerce feed only if pilot needs Shopping | Else defer |
Week 12 — 16–22 Sep · Buffer & pre-scale prep
| External | Meta Full tier confirmed; 2-Tier BM status check (for client #6+) | | Build | Performance pass; min-instances 0 on async services (cost §4.1) | | | Tenant #2–3 onboarding self-serve test | ≤5 Meta cap OK |
Week 13 — 23–29 Sep · Release candidate + start "others"
| Build | Staging → prod promotion checklist | | Start track B (week 14+): | CRM file/webhook interim · DV360 sales follow-up · agentic hardening backlog |
4. Week 14+ — Continue with others (not in 50% cut)
| Block | When | Depends on |
|---|---|---|
| CRM closed-loop (webhook + offline import hardening) | W14–18 | CRM schema / stub |
| CAPI maturity + match-rate monitoring | W14–18 | W10 stub |
| Feed / catalog (ecommerce) | When SKU requires | Merchant Center PRE-4 |
| Meta 2-Tier BM (client #6+) | External — weeks–months | PRE-10 |
| DV360 | W19+ | GMP contract PRE-6 |
| Agent orchestrator + QC telemetry + Cost Guard | W16–24 | Core loop stable |
| First-party relay | When client IT requires | Phase 2+ SKU |
| System Ops dashboard | When >3 eng or ops pain | Defer |
5. Daily rhythm (solo + Cursor)
| Block | Focus |
|---|---|
| Morning (1–2 h) | VC-owned: chase rep intro meetings (Q1). Engineer: self-serve app status, PRE checklist |
| Core (5–6 h) | One build milestone only — no context switching |
| Late (1 h) | Docs, checklist update, tomorrow's single priority |
Cursor use: connector boilerplate, test fixtures, API client stubs, Human Touch UI — not for replacing VC warm intros to platform reps or the creative integration workstream.
Rule: If blocked on rep-gated external → build on sandboxes + mock creative client; escalate to VC, don't cold-call Meta/TikTok enterprise paths alone.
6. External checklist — must be green for W9
| ID | Item | R | A |
|---|---|---|---|
| W0-Q1 | Rep intros (Google / Meta / TikTok) | Emre | Emre |
| W0-Q2 | Creative tool integrated | Creative TBD + Arif | Emre |
| W0-Q3 | Pilot client | Emre | Emre |
| PF-2 | GCP projects + billing | Arif | Arif |
| PF-4 | Google Ads Basic token | W3 (test MCC OK until then) | |
| PF-5 / PRE-7 | MCC + business verify | W4 | |
| PF-6 | Google OAuth internal | W1 | |
| PF-8 / PRE-8 | Meta app + BM verify | W6 | |
| PF-9 | Meta Advanced Access | W6 (manual fallback if late) | |
| PF-14 / PRE-5 | TikTok app Live (production API) | W7–9 (sandbox OK until then) | |
| PRE-2 | Meta extended credit | W6 | |
| PRE-3 / PRE-9 | TikTok BC + verify | W7 | |
| PF-17 | Pilot SMB client (VC/board) | W5 ideal; test shell OK until then | |
| PRE-10 | Meta 2-Tier | Not needed until client #6 — keep chasing |
7. Risks specific to solo + 50% cut
| Risk | Likelihood | Mitigation |
|---|---|---|
| Google token >2 weeks | Medium | Test MCC + UI account creation; don't idle |
| Meta app review >4 weeks | Medium | Manual Meta ops + registry sync; Google-first partner |
| TikTok app Live slips past W9 | High | Ship Google + Meta at W9; TikTok W10 — Live = API approval, not streaming |
| No pilot client from board yet | Medium | Use Kobi test shell for W5–W9; real UAT slips |
| Creative integration not committed at W0 | High | Live pilot blocked; build continues with mock assets |
| No VC rep intros (Q1) | High | Meta 2-Tier / TikTok escalation stall; engineer on sandboxes only |
| Creative integration not committed at W0 | High | Live pilot blocked; build continues with mock assets |
| No VC rep intros | High | Meta 2-Tier / TikTok escalation stall; sandboxes only |
| One engineer sick / blocked | High | Week 12 is buffer; cut LLM polish before cut reporting |
| Partner won't grant GA4 Admin | Medium | Degraded optimization mode; soft gate |
| Scope creep (agents, relay, DV360) | High | This doc is the scope lock — backlog only |
8. Definition of done (W9 sign-off)
For ≥1 pilot tenant, demonstrated in staging or prod:
- Onboarding checklist completed (Google + Meta + TikTok or documented TikTok exception)
- Media plan created, versioned, approved in Human Touch
- Campaigns created/updated on Google + Meta (+ TikTok if Live)
- Weekly report shows GA4 + platform spend vs plan
- Rules-based optimization ran at least one cycle with HITL on spend increase
- Audit log shows approver + plan version on every mutation
- Runbook exists for ops handoff
Related documents
Plan owner: solo engineer · Start 1 Jul 2026 · Review weekly every Friday — adjust W10+ based on external status.