Feed the machine (seeds, defaults, the holdout) → make it eight arguments (concepts, teardown, cost line) → put the form and the consent line on your site.
Sunday, 27 September 202610:00 AM – 1:00 PM ISTPart 1 · break · Part 2Faculty: Siddhesh Joglekar
Prompts & Activities
How to use this sheet
Every prompt follows CRISP. Replace everything in [brackets] with your real numbers — Pixel counts, AOV, margin, proof points. The specifics are the skill.
The AI's output is a draft to interrogate. It cannot see your consent trail or your margin. Those calls stay yours.
Today's floor: a seeded ad set with defaults chosen on purpose, a holdout sheet with a start date, a concept map (8) with one static produced and loaded (video by Wednesday), and Ship Log layer 5 (form + WhatsApp button + consent line).
The CRISP framework — how we prompt, every time
C
Context
Budget/month, AOV, net margin, optimisation event, a week of Pixel numbers (visitors, CTA events, buyers), proof points.
R
Role
The expert hat: Meta audience strategist / retargeting strategist / performance creative director / front-end dev.
I
Intent
One job at a time: audience first, holdout second, concepts third, production fourth.
S
Specifics
Seeds and windows, exclusions, the 10–20% holdout and its split mechanism, "no two concepts share an argument", the naming convention.
P
Parameters
Show the math · claim only from my proof points · flag what needs a human (consent, margin) · end with a checklist.
A CRISP prompt is a brief, not a wish. The brief is where the quality is decided.
Part 1 · Activity
Activity 1 — Read your Pixel
Time: 5 min · Events Manager, no AI.
Open Events Manager → your Pixel → last 7 days. Write down three numbers: PageViews (unique people), your custom CTA event count, Purchase/Lead count (if any).
Those three numbers are your seeds, in order of quality. Circle the biggest one that is also an intent action — that's the seed you'll suggest to Advantage+ today.
If the Pixel shows nothing: pair with a neighbour whose Pixel works; fix yours at the break.
Done when: three numbers written down and one seed circled.
Use in: Part 1 live block. · Where: Claude / ChatGPT / Gemini · Time: 10 min, then build for 10.
Founders: real Pixel numbers. Career-builders: the sandbox Pixel numbers from the deck (visitors 5,800 · CTA events 410 · buyers 140).
Act as a Meta audience strategist for an Indian brand.
Budget ₹[budget]/month (Meta share ₹[X]). AOV ₹[Y]. Net margin ₹[Z] after RTO/COD.
Optimisation event: [Purchase / Lead]. Last 7 days the Pixel shows:
[visitors] unique visitors, [CTA events] CTA clicks, [buyers] purchases/leads.
Consented list: [N] contacts who ticked a marketing consent line naming WhatsApp/email.
Job 1 — the prospecting ad set: Advantage+ audience ON, country + age only.
Which seeds do I add as suggestions (from my Pixel numbers), and why those?
Which exclusions? When do I graduate the seed to buyers (give the number)?
Job 2 — retargeting: audience definition, window in days, frequency cap,
and the warm-traffic creative angle. Then the three signs it is fatiguing or
overlapping with prospecting.
Job 3 — the holdout: a 10–20% holdout plan for the retargeting audience.
Ads Manager cannot randomise, so propose the split mechanism (an event
parameter my site sets, or 2–3 low-volume states). Given my volume, will the
held-out arm reach ~30 conversions in 4 weeks? If not, tell me plainly, size
the holdout share and weeks it would take, and size a pause test instead
(how many days for 40–50 orders to land in the off-window at my order rate;
verdict = ₹ saved ÷ orders lost, compared with my prospecting CAC).
Parameters: show every calculation. Flag any list I cannot upload under
India's DPDP rules (purchased lists, order data reused without consent,
anyone under 18). Do not invent conversion rates — use my numbers or say
"unknown". End with a 5-line checklist for Ads Manager.
Watch out
If it recommends five ad sets "to test audiences", re-send Job 1 alone with: "One ad set. Show me how I read audience performance from the breakdown report instead."
The seed gate is last 180 days, ~1,000+ buyers for a sharp lookalike; below ~500, don't build one — seed the broad set. If the AI suggests a lookalike off 140 buyers, it's wrong.
The consent flag is the AI's guess. Under DPDP the proof is your form. Never upload a list you can't trace to a consent line.
Done when: the ad set is built (Advantage+ audience, seeds added, buyers excluded), creative-enhancement generation is OFF, the toggles are screenshotted, and the holdout sheet has a start date.
Part 2 · Live block
Prompt 2 — Performance creative director (eight concepts, not eight versions)
Use in: Part 2 live block. · Where: same chat thread or new · Time: 10 min.
Act as a performance creative director for an Indian D2C brand.
Offer: [X]. Price ₹[Y]. Buyer: [who, where, what they were doing before they saw us].
Proof points — you may ONLY claim these: [list every claim you can prove:
reviews count, ingredient, certification, delivery time, guarantee].
Give me 8 concepts. Each is a different ARGUMENT × FORMAT × HOOK.
No two concepts may share an argument. Arguments to draw from: problem,
proof, price/offer, ritual/how-to, objection killed, comparison, confession,
social proof. Formats: static, UGC video, founder to camera, carousel,
demo/before-after, Reel remix.
For each concept: (1) hook line — the first thing seen or heard;
(2) a 3-beat script (video) or a layout note (static); (3) the proof point
it uses; (4) the objection it answers; (5) the file name in
concept_format_hook_v1_[MMDD] form.
Parameters: flag any line that claims something not in my proof points.
Write in the tone an Indian buyer in [city] would actually hear — Hinglish
is fine if the brand uses it. No superlatives you cannot prove.
Watch out
If two concepts share an argument (e.g. two "proof" ads), kill one and ask for a replacement argument. Variety is the whole point under Andromeda.
The AI flags maybe half its own over-claims. A named human checks every claim before anything is uploaded — this is the QC gate (Sprite's Howrah Bridge rule, applied to your ads).
In-room, produce one static (ChatGPT Go is free in India; Ideogram for the text). The 9:16 video is Wednesday homework — Veo needs Google AI Pro (₹1,950/month; free for a year if you're a college student).
Done when: the SampleData 'Concept map' sheet has 8 rows, none sharing an argument, and one is marked "producing today" (static) and one "by Wednesday" (video).
Part 2 · Production
Prompt 3 — Production (video and static, with the text that spells correctly)
Use in: Part 2 live block, after Prompt 2. · Where: Veo 3.1 (Google AI Pro) or Kling for video; GPT Image 2 / FLUX.2 for the image; Ideogram for text-on-image. · Time: 10 min.
Video (9:16, 8–15 s)
Vertical 9:16 ad, [8/15] seconds, Indian [city] setting, natural daylight.
Scene 1 (0–2 s): [the hook — what we see; on-screen text: "[hook line]"].
Scene 2 (2–8 s): [the demo / the proof — one product action, product clearly visible,
no invented labels or text on the pack].
Scene 3 (last 3 s): [product + price ₹[Y] + CTA "[CTA]"].
Voice-over in [Hinglish/English], warm, unhurried: "[the 3-beat script from Prompt 2]".
No text other than what I specified. No logos other than mine. No people who look
like real celebrities.
Static (1:1 or 4:5)
Product photo of [product] on [surface], [lighting], Indian home setting, space
at the top third for a headline. Do not render any text.
Then in Ideogram: Headline "[hook line]" in Inter Bold, white, top third, on this image. (Ideogram spells; most image models don't.)
Watch out
Keep the source prompt and the seed/settings with the file. Three video models shut down this summer; the prompt is the asset that survives.
Anything synthetic that could be mistaken for real footage gets a visible label. ASCI's draft AI-labelling rules are pending final form — build the habit now.
Name the export exactly as Prompt 2 named the concept. Bad names make Week 6's kill/scale decisions impossible.
Done when: the static exists, named properly, a neighbour has checked every claim, and it is loaded into the S4 ad set (paused). The video follows by Wednesday.
Part 2 · Ship Log layer 5
Prompt 4 — Ship Log layer 5: lead form + WhatsApp click-to-chat + consent line (Netlify static site)
Use in: Part 2 live block if time; otherwise tonight (20 min). · Where: Claude / ChatGPT · then Netlify drag-and-drop.
My static site is on Netlify at [URL]. Here is my index.html: [paste].
Add three things, in plain HTML/CSS matching my existing styles:
1. A lead form using Netlify Forms (form must carry the netlify attribute
and a hidden form-name input). Fields: name, phone (Indian 10-digit
pattern), one dropdown "[question]". Plus TWO consent checkboxes — one per
channel — UNTICKED by default and NOT required (the form must submit without
them), with these exact labels:
"Send me [offer] updates on WhatsApp. Reply STOP to leave." (name=consent_whatsapp)
"Send me [offer] updates by email. One-click unsubscribe." (name=consent_email)
On submit, redirect to /thanks.html, and on /thanks.html fire the Meta Pixel
standard event Lead and a GA4 event 'lead_form_submit'.
2. A WhatsApp click-to-chat button: https://wa.me/91[number]?text=[pre-filled
first message, URL-encoded]. On click, fire fbq('trackCustom','WhatsAppClick')
and a GA4 event 'whatsapp_click'.
3. A /thanks.html page that confirms and repeats the STOP instruction.
Then give me: the exact steps to enable FORM DETECTION in the Netlify dashboard
(Site configuration → Forms — it is off by default) and redeploy, then form
notifications so each submission (both consent fields and a timestamp) lands in
my email or a Google Sheet, and a 3-step test plan.
Watch out
Unticked, and not required. A pre-ticked box is not consent under DPDP — and neither is a form that refuses to submit without the marketing tick. One tick per channel: WhatsApp and email are separate purposes.
Form detection is OFF by default on Netlify. Enable it (Site configuration → Forms), redeploy, then test — or submissions silently drop. The netlify attribute must be on the <form> tag.
A WhatsApp chat is a conversation, not consent. The tick is the consent. Every wa.me click also has a cost: a founder's phone time, or a Business Agent turn (~₹4) — Session 6.
Test with an ad blocker OFF, or the Pixel event won't show in Events Manager → Test Events.
Done when: one test submission appears in Netlify Forms with both consent fields (ticked or not) and a timestamp, the Lead event shows in Test Events, and the WhatsApp click opens a chat with your pre-filled text. Screenshot all three to the group.
Part 2 · Optional
Prompt 4b — Optional: CAPI Lead event via a Netlify Function (lead-gen sites only)
Skip this unless you run lead-gen at volume; at ₹1L the Pixel is enough. Never paste the token into a page.
Write a Netlify Function (Node 18) at /netlify/functions/capi-lead.js that
receives my form submission (name, phone, consent, timestamp) and posts a
Lead event to the Meta Conversions API for Pixel ID [ID], using an access
token stored in the environment variable META_CAPI_TOKEN (never in the HTML).
Hash the phone with SHA-256 before sending. Include event_id so Meta can
de-duplicate against the browser Pixel's Lead event. Give me the wiring
from the Netlify form submission-created event, and the Test Events check.
Part 2 · Activity
Activity 2 — The Ads Library teardown
Time: 15 min · facebook.com/ads/library, India, "All ads" · AI optional for the sort.
Search a D2C brand the room buys from. Count active ads.
Sort into concepts: same argument + format + hook = one concept. Count again.
Note the longest-running active ad (start date) — the one they keep paying for.
Name the gap: an argument they have never tested.
Optional AI assist — paste 20 ad texts and ask: "Cluster these into concepts by argument × format × hook. Name each cluster and count its ads. Which common argument is missing?"
Done when: the SampleData 'Teardown' sheet has the five columns filled for one brand.
The sticky notes (memorise; don't ask the AI each time)
One ad set, one event, one broad audience — seeded. Interests are for exclusions.
Seed gate: 180 days · ~1,000 buyers sharp · below ~500 don't build a lookalike.
Retargeting: 7–30-day windows · frequency cap ~4–5/week · platform ROAS 8–10× usually means 1.5–3× real.
Holdout needs ~30 conversions in the held-out arm: 10% above ~200 orders/month; at ~185, hold out 20% for ~8 weeks. Ads Manager can't randomise — use an event parameter your site sets, or 2–3 low-volume states.
Pause test — 40–50 orders in the off-window (10–14 days at 3–5/day). Count ₹ saved ÷ orders lost = retargeting's real CAC. ₹7K saved and under ~10 orders lost (₹700+) = it was claiming; ~22+ lost (~₹320, your prospecting CAC) = it was real.
Creative: 8–12 concepts, 2–3 variants each. Generation OFF. A named human signs every claim.
Cost line: subscriptions + tokens + making time + human review (~₹26,500 for 16 ads ≈ ₹1,650 each). AI wins on arguments per rupee, not on the bill.
This week (before Session 6)
Un-pause Wednesday with both ads — the static and the video you make this week. Then don't touch it for 7 days. Collect.
Ship Log layer 5 live by Wednesday — one test submission with the consent flag in your sheet. Screenshot to the group.
Holdout / pause test: log the audience size and the exclusion date in the SampleData workbook. Check Events Manager on Friday.
Bring to Session 6: the ads report broken down by ad name, and your WhatsApp Business account (or the sandbox one). We write kill rules before we look.
Session 5 closer — screenshot this one:
The machine chooses the person. You choose the event it learns from, the seed it starts with, and the eight arguments it can make. Everything else in Meta is a toggle.