Executive Summary | June 27, 2026

ChatGPT Ads are built, paused, and URL-gated.

Illume has completed the campaign build, stronger card creative, tracking deployment, visual QA, fresh API verification, and NotebookLM canon update. We should not activate spend until OpenAI approves the `go.inspiredbu.com` destination, David adds billing, and JD gives final approval.

01 | TLDR

What is done versus what still blocks launch

Campaigns
3

Kitchen, Garage, and Whole Home are built as separate click campaigns at $25/day each.

Complete and paused
Approved Cards
9

Final non-archived set includes real project, planning, and real people/team trust cards.

Complete and approved
Launch Status
No-go

Not because the build is weak. Because the current approved ad URLs are not the tracked LPs, and billing/final approval are still open.

Keep paused
02 | Current State

Final prelaunch readback

Service
Campaign
Setup
Status
Kitchen
Kitchen Estimate
SF-Oakland-SJ DMA, $25/day, $5 CPC, 7 context hints
Paused, approved
Garage
Garage Estimate
SF-Oakland-SJ DMA, $25/day, $5 CPC, 7 context hints
Paused, approved
Whole Home
Whole Home Estimate
SF-Oakland-SJ DMA, $25/day, $5 CPC, 7 context hints
Paused, approved

Fresh Ads API audit confirmed this state after cleanup: 3 campaigns, 3 ad groups, 9 ads, all paused, all ads approved, 7 context hints per ad group, click bidding, $25/day budgets, $5 CPC bids, and `lead_created` attached to all 3 campaigns. The strategic choice is still broad first, narrow if needed. The DMA is not perfect, but it is the currently proven usable Bay Area target.

03 | Tracking

Tracking is deployed on the preferred landing pages

What is proven

  • OpenAI Pixel ID `Mi5Eotf7XWaNVJ4jsoMcej` exists.
  • `lead_created` and `page_viewed` event settings exist.
  • All three paused campaigns reference `lead_created`.
  • Production pages on `go.inspiredbu.com` include the OpenAI pixel loader and `page_viewed`.
  • Focused route, CAPI, and tracking tests passed: 5 files, 26 tests.
  • Direct OpenAI CAPI validate-only event returned HTTP 200 with `accepted_events: 1`.
  • Production build and visual smoke passed.

Why we still wait

  • Current approved ad URLs are still same-root `inspiredbu.com/services/...` fallback URLs.
  • The real tracking stack lives on `go.inspiredbu.com`.
  • OpenAI still treats `go.inspiredbu.com` as a different ad destination.
  • Final activation should use the tracked LPs or a same-root tracked equivalent.
  • No-context QA confirmed this URL/tracking mismatch is the core blocker.
04 | Creative QA

We replaced the weak trust cards with real people

Kitchen

David Trust Card

Replaced the old room-only trust card with a real David card. Approved and paused.

Garage

Team Trust Card

Replaced the living-space-only card with a real human trust angle. Approved and paused.

Whole Home

Real Team Card

Replaced the room-only trust card with the Inspired Builders team photo. Approved and paused.

Creative lesson added to canon: do not label room-only images as team trust cards. Use real project photos plus real people/team cues.

05 | Remaining Launch Gates

Only three gates remain before activation

Gate 1

Destination approval

OpenAI must approve `go.inspiredbu.com`, or we must move/install equivalent tracking on an allowed same-root path. A guarded script and prepared payload are ready for the approved-LP moment.

Open
Gate 2

Billing

David needs to add the payment method in Ads Manager. Campaigns remain paused after billing.

Open
Gate 3

Final approval

After the URL and billing gates, re-run readback and one final synthetic test, then JD approves activation.

Open
06 | Recommendation

My CTO call

Keep everything paused. The build is strong enough to launch after the destination and billing gates clear, but the current approved ad destinations are not the tracked LPs. When OpenAI approves `go.inspiredbu.com`, use the prepared URL-switch payload, keep ads paused, re-run readback and synthetic proof, then ask JD to approve activation. Do not run traffic to the fallback service pages unless we add and verify the same OpenAI tracking there.

Safe Dry Run

The guarded helper already passed dry-run: 9 paused approved ads, 3 paused campaigns, `lead_created` attached, and all tracked LPs include OpenAI pixel signals. No ad URLs were changed.

Post-Approval Apply

After explicit OpenAI approval, the helper can update all 9 ads to `go.inspiredbu.com` while keeping them paused. It requires the long approval flag before any mutation can run.