ChatGPT Ads Readiness Review | My Kitchen Pros | June 17, 2026

Prepare the pilot. Do not launch yet.

My Kitchen Pros is the best first candidate, but only as a blocked pilot. We need account approval, local Raleigh targeting proof, a tracked landing path, and one approved static ad-card creative before any spend.

Recommendation Set up now. Pitch later, after proof.

The short version for JD.

Launch call
No

Do not launch a national US campaign for MKP. That would spend against people outside the Raleigh service area.

Pilot call
Yes

Prepare MKP as the first pilot because the offer, category, and Raleigh market are cleaner than Inspired Builders right now.

Creative call
1+

One static image can launch one ad card. Use three cards only if we want angle testing from day one.

Category Likely eligible

Local services are in OpenAI's early allowed categories, subject to review.

Geo Blocked

Raleigh DMA exists in the geo catalog, but we need paused API readback before launch.

Tracking Blocked

MKP is Meta Instant Form based today. ChatGPT Ads needs web or server-side attribution.

Pitch Not yet

Safe to say we are preparing access. Not safe to promise launch-readiness.

This is not Meta Business Manager yet.

Meta model

Agency portfolio plus shared client assets

Meta has a business portfolio model. Agencies can have their own portfolio, request or receive partner access, and manage client ad accounts and assets without owning them.

OpenAI model

Separate advertiser account per client

OpenAI currently documents one advertiser account per advertiser, one account owner, invited team members, and API keys scoped to one ad account.

Question Current answer MKP operating decision
Do we need a master agency account? Not as the default. OpenAI does not currently document a Meta-style agency umbrella with client subaccounts. Use separate MKP advertiser account. Invite Illume into it.
Can we create client accounts ourselves? Operator reports say the signup flow may ask whether the creator is an agency acting for clients and may block agencies from creating client advertiser accounts directly. Try only if the flow allows truthful delegated setup. If blocked, switch to a Travis/MKP-controlled login.
What does Travis need to do? At minimum, billing. Potentially also owner login approval, EIN/business details, and Persona verification if OpenAI does not allow delegation. Ask Travis for only the hard gates: controlled login if needed, verification details, card entry, and final spend approval.
Can Illume set up campaigns before billing? OpenAI says campaigns will not deliver until all required steps are complete. We can still prepare account, campaign, creative, tracking, and paused API proof once access exists. Get MKP to paused launch-readiness, then wait on card and final approval.
How do API keys work? Each Ads API key is scoped to one ad account by default. OpenAI says to contact them for multiple ad-account API management. Store one API key per client advertiser account.
Can we use marketing@illumedigital.io? Use it as an Illume operator/admin email. Do not treat it as the ideal permanent owner if the flow asks whether we are an agency acting for a client. Start there only as a truthful setup attempt. If agency creation is blocked, move to a Travis-controlled login and invite Illume.

What does an ad card actually need?

Question Answer MKP recommendation
Is a card a single image? One ad uses a `chat_card` creative with title, body, destination URL, and one uploaded asset referenced by `file_id`. Prepare one square kitchen image for the first ad. Prepare two more only if we want creative angle testing.
Do we need multiple images? No for a minimal launch. Yes if we want multiple ads, each with its own card asset and message angle. Recommended first set: three static cards. Package value, Raleigh planning, and complete scope.
Is it video? The current verified API workflow creates `chat_card` ads with images. I did not find a current video ad endpoint for ChatGPT Ads. Do not plan video for the first MKP setup. Use static images unless Ads Manager shows video support inside the approved account.
Do they accept AI images? The policy does not explicitly ban AI-generated images. It reviews copy, media, landing page, truthfulness, and consistency. Prefer real MKP project photos. AI-assisted visuals are acceptable only if they are clearly representative and do not imply fake completed work.
What are the copy limits? API docs list title as 3 to 50 characters and body as 100 characters maximum. Use short, plain copy. No financing, 0 percent APR, zero down, or prior-brand references.
Minimum creative kit
  • One square JPG or PNG image.
  • One title under 50 characters.
  • One body line under 100 characters.
  • One tracked landing URL.
  • Logo or favicon if Ads Manager asks for it.
Recommended first MKP test kit
  • Three static image cards, not video.
  • One real kitchen photo if available.
  • One Designer Series approved visual if real photo is weak.
  • Three message angles: package, planning, complete scope.
  • All cards point to the same tracked landing path.

What I decided and why.

MKP has a cleaner package offer, clearer Raleigh service market, and fewer active Google Ads proof-gate complications. Inspired Builders may be category-eligible, but I would not make it the first pilot until MKP proves the local targeting and attribution path.

The normal Ads Manager help docs describe country targeting, which would be wrong for a Raleigh-only contractor. The developer docs and geo catalog expose DMA targeting, including Raleigh. That is promising, but it is not launch proof until the approved account can create and read back a paused campaign with that target.

Official OpenAI docs do not require a domain-matched owner email, but operator reports say agencies may be blocked from creating advertiser accounts for clients. The safest setup is a client-controlled owner login with Illume invited as admin. `marketing@illumedigital.io` is fine as an operator email if the workflow allows it truthfully.

It is not just PPC because the unit is a sponsored card with media. It is not just Meta because intent and attribution matter more than broad interruption. The setup needs campaign structure, context hints, ad-card creative, landing page, and conversion tracking.

OpenAI policy focuses on truthful, non-misleading ads and reviews media plus landing pages. AI images are not explicitly banned in the reviewed policy, but a local remodel ad should not imply fake finished work. Real MKP project photos are the safest first creative source.

The setup I created.

Plan artifact

A human-readable setup plan now lives in the repo. It states the recommendation, blockers, target, offer, copy, tracking, and client steps.

File: `docs/plans/2026-06-17-001-chatgpt-ads-mkp-readiness-plan.md`

Structured artifact

A JSON readiness file now holds the launch logic in a format future agents can reuse without re-reading all notes.

File: `execution/clients/my-kitchen-pros.chatgpt_ads_readiness.json`

Reusable skill

A new onboarding skill documents the proof-gated workflow for any future ChatGPT Ads client.

File: `/Users/jdlee/.claude/skills/chatgpt-ads-onboarding/SKILL.md`

NotebookLM canon

The canon exists locally and is ready for upload after NotebookLM auth is refreshed.

File: `/Users/jdlee/Documents/Obsidian Vault/notebooks/chatgpt-ads/canon.md`

Setup item Current state Launch rule
Local target Raleigh DMA candidate is `3000060`, `Raleigh - Durham (Fayetteville)`. Must prove via paused campaign API readback.
Campaign `MKP - ChatGPT Ads - Designer Series - Raleigh Test` drafted as paused. Do not activate until account, geo, billing, and tracking are green.
Offer Use package framing around cabinets, granite, backsplash, and flooring. Packages typically start around $13,999. No financing claims and no prior-brand references.
Tracking Current MKP tracking is Meta Instant Form oriented. Build a web or server-side OpenAI conversion path before spend.

What needs to happen next.

Client or JD steps
  • Create or approve a Travis/MKP-controlled OpenAI account owner login if the agency setup path is blocked.
  • Enter legal business details, website, address, country, currency, and timezone.
  • Provide EIN, physical address, registered address, and Persona verification if OpenAI requires a non-delegable identity or business check.
  • Add billing payment method.
  • Invite Illume or provide the Ads API key after approval.
  • Approve first budget, landing page, copy, and image assets.
Illume steps
  • Select or make three static ad-card images.
  • Choose or build a tracked MKP landing page.
  • Install OpenAI pixel and CAPI lead event.
  • Create paused campaign and prove Raleigh DMA target.
  • Run synthetic attribution test into GHL/Appointwise.
  • Bring final launch decision back to JD.

Exact approval question

Do we proceed with MKP as a blocked ChatGPT Ads pilot, where Illume prepares the account checklist, static ad cards, tracked landing path, and paused API geo proof, but does not pitch or launch until the Raleigh DMA targeting and attribution are proven?