SJ
IITK · AI-POWERED DIGITAL MARKETING · BATCH 002

Session 5 — Build the Machine

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 2026 10:00 AM – 1:00 PM IST Part 1 · break · Part 2 Faculty: Siddhesh Joglekar
Prompts & Activities

How to use this sheet

The CRISP framework — how we prompt, every time

CContextBudget/month, AOV, net margin, optimisation event, a week of Pixel numbers (visitors, CTA events, buyers), proof points.
RRoleThe expert hat: Meta audience strategist / retargeting strategist / performance creative director / front-end dev.
IIntentOne job at a time: audience first, holdout second, concepts third, production fourth.
SSpecificsSeeds and windows, exclusions, the 10–20% holdout and its split mechanism, "no two concepts share an argument", the naming convention.
PParametersShow 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.
  1. 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).
  2. 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.
  3. 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.
Part 1 · Live block

Prompt 1 — Meta audience strategist (stack, seeds, exclusions, holdout, DPDP flag)

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.
  1. Search a D2C brand the room buys from. Count active ads.
  2. Sort into concepts: same argument + format + hook = one concept. Count again.
  3. Note the longest-running active ad (start date) — the one they keep paying for.
  4. Name the gap: an argument they have never tested.
  5. 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)

This week (before Session 6)

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.