Two campaigns, ten placement units. Prospecting locked on Carla’s first-batch references plus one Gemini-iterated variant. Retargeting half-locked: the reviews angle shipped today, three more angles wait on Carla’s second-batch revisions.
LK_Prospect_2026Q2 · €8/day| Setting | Value |
|---|---|
| Objective | Sales · optimise for Purchase · Lowest cost · 7-day click / 1-day view |
| Targeting | Manual (Advantage+ Audience OFF, Detailed Targeting Expansion OFF) |
| Geo / Demo | Spain (peninsular + Baleares + Canarias) · 18–40 · all genders · Spanish (Spain) language |
| Detailed targeting | Manual interest stacks — see ad-set breakdown below. Detailed Targeting Expansion OFF. Advantage+ Audience OFF forever. |
| Exclusions | LK_Past_Purchase_30d + LK_Past_Purchase_180d + LK_ATC_30d + LK_IG_Engagers_90d |
| Placements | Manual: Feed (FB + IG) + Reels + Stories · drop Audience Network, Marketplace, Right column |
| Destination | lucernaskin.com/products/cubrepezones (UTM-tagged per ad) |
| CTA | Comprar ahora |
Billy pushback 2026-05-20: at €8/day on a niche premium DTC product, broad targeting burns impressions on irrelevant audiences. Manual interest stacks required. Same 6 ads (A1–A6) run inside each ad set — Meta does not double-charge for mutually-exclusive audiences. Full rationale + Phase 2 trigger-gated additions in ops/ads/briefs/2026-05-20-targeting-stacks.md.
LK_Prospect_2026Q2_lingerie_adj · €4/day
Buyers paying €20–50 for invisible/shaping garments are pre-qualified on category AOV.
LK_Prospect_2026Q2_fashion_premium · €4/day
Style-led shoppers at the premium-but-not-luxury band. Where “vestido sin espalda” use-case lands.
LK_Prospect_2026Q2_lal_ig_engagers · +€4/day
LK_IG_Engagers_90d (seed 9.5–11k)Ready to build now — IG engagers seed is the only audience already sized for LAL. Hold for T+7 if budget tight.
| Stack | Trigger | Status check |
|---|---|---|
LK_Prospect_2026Q2_lal_atc — LAL from ATC seed | LK_ATC_30d size ≥ 1k | Weekly via meta-ads wrapper |
LK_Prospect_2026Q2_lal_purchase — LAL from PURCHASE seed | ≥ 100 Pixel Purchase events / 180d (currently 4 lifetime) | Monthly |
LK_Prospect_2026Q2_bodas_events — weddings/events reserve | Wedding season Mar–Sep OR Phase 1 plateaus | Activate manually |
LK_Prospect_2026Q2_verano — summer/festivales | 2026-06-15 + at least 2 summer-themed ads shipped | Calendar-gated |
LK_Prospect_2026Q2_value_lal — value-based LAL | Customer file (email + value) ≥ 1k rows | Defer indefinitely |
Specialist sign-off needed before launch. Billy validates: (1) Spanish interest names map to Meta taxonomy, (2) size floors hold after exclusions, (3) budget split €4/€4 vs consolidate to one €8/day ad set, (4) ship Ad set 3 at T+0 or defer to T+7.
3–7)Each of the 6 ads (A1–A6) below runs inside every active ad set above. Per-ad performance reads cleaner because the creative variable is held constant across audiences.

carla-refs-2026-05-19/3.png
ad-assets/a2/a2-4x5-v3.png · a2-1x1-v2.png · a2-9x16.png
carla-refs-2026-05-19/4.png
carla-refs-2026-05-19/5.png
carla-refs-2026-05-19/6.png
carla-refs-2026-05-19/7.pngLK_Retarget_2026Q2 · €4/day| Setting | Value |
|---|---|
| Objective | Sales · optimise for Purchase · same bidding + attribution as Campaign A |
| Audience | Saved audience LK_Retarget_Union = LK_IG_Engagers_90d ∪ LK_ATC_30d ∪ LK_VC_NotIC_14d ∪ LK_Site_Visitors_30d |
| Exclusions | LK_Past_Purchase_30d + LK_Past_Purchase_180d |
| Placements | Manual: Feed + Reels + Stories · same as Campaign A |
| Creative posture | 3 angles × 2 variants (with-discount / no-discount) + 1 new carousel angle = 4 angles, 7 placement units. Fresh material — never re-used from Campaign A. |
Editorial-typographic. Three verbatim 5☆ reviews from Supabase imports (Pamela A. · Valeria A. · Verónica A. — Cliente verificada). Brand-cream bg, EB Garamond italic quotes, brand-orange stars + CTA. Rendered via gemini-3-pro-image-preview 2026-05-20.

angle-1-reviews/variant-a-no-discount/4x5.png
angle-1-reviews/variant-b-discount/4x5.pngBase = Carla batch−2 ref 8.png (educational, annotations, brand wordmark, footer present). Already correct — ships as Variant A once 4:5-reframed.

carla-refs-2026-05-19/8.png (3:4 master, reframe to 4:5 1440×1800)8 + 28.99€ → 26.10€ bubble (lilac on cream, no double-orange)ops/ads/briefs/2026-05-20-carla-pushback.md §3Base = Carla batch−2 ref 16.png (draped halter/backless scenario). Needs Fix 1 (Waterproof → A prueba de agua) + Fix 2 (per-use footer) + Fix 3 (4:5 reframe).

carla-refs-2026-05-19/16.png (pending all 3 fixes)16 (after fixes) + lilac 10% OFF tu primera compra ribbon top-rightSurfaced from Carla batch−2. Three-card narrative 13 → 14 → 15: home → outfit → tape pain → solution. Ships as no-discount only (per 2026-05-20 user decision: discount overlay would dilute the problem → solution arc). Carousel mandates 1:1 cards at 1440×1440.

13.png → needs footer + 1:1 reframe
14.png → needs footer + 1:1 reframe
15.png → needs footer + 1:1 reframeHeadline (Ads Mgr): Para vivir tu día sin pensar en ellas. Primary text: TBD — surface the narrative arc in 50–150 chars.
Carla batch−2 leftovers after fixes. Hold for the 2026-05-26 T+7 review — rotate in as variant freshness against the slowest-performing Campaign A ads. All need the same 3 systemic fixes from ops/ads/briefs/2026-05-20-carla-pushback.md.

9INVISIBLES ALL-CAPS (single word, allowed for hierarchy). Strong thumb-stop variant. Tests headline-led prospecting vs. annotation-led.
10
12¿Tu primer alivio del día…? question. Same composition as 11 (killed) but cleaner vertical-left icons. Tests question-led hook.Brief: ops/ads/briefs/2026-05-20-carla-pushback.md · Refs source: ops/ads/creative/carla-refs-2026-05-19/8.png–16.png
Waterproof → A prueba de agua on 9/10/11/12/16; (2) per-use footer added on 10/11/12/13/14/15/16; (3) 3:4 (1080×1440) → 4:5 (1440×1800) reframe on all 9, plus 1:1 (1440×1440) for the 13·14·15 carousel cards.11 (layout-sibling of 12); lowercase the question body on 12.8 + price-slash 28.99€ → 26.10€ bubble (Angle 2 B); 16 + 10% OFF tu primera compra lilac ribbon (Angle 3 B).8 revised, 9 revised, 10 revised, 12 revised — for Campaign A bonus pipeline)16 revised — Angle 3 Variant A)8-vb price-slash · 16-vb ribbon)13 · 14 · 15 revised, for Angle 4)Priority order: (1) 8 + 8-vb and 16 + 16-vb unblock retargeting Angles 2 + 3 with both variants — ship first. (2) Carousel 13/14/15 unblocks Angle 4. (3) 9 / 10 / 12 — bonus prospecting pipeline for T+7.
LK_ prefix: PAST_PURCHASE (30 DAYS) → LK_Past_Purchase_30d; ADD TO CART (30D) → LK_ATC_30d; ENGAGED_IG(90D) → LK_IG_Engagers_90d; ENGAGED_FB(90D) mark as deprecated (below floor).LK_Past_Purchase_180d (Custom audience → Website → event = Purchase, retention = 180d).LK_Retarget_Union = LK_IG_Engagers_90d ∪ LK_ATC_30d ∪ LK_VC_NotIC_14d ∪ LK_Site_Visitors_30d, excluding both past-purchase audiences.meta-ads wrapper: 9 audiences with LK_* prefix, LK_Past_Purchase_180d Ready-for-use.LK_Prospect_2026Q2 — objective Sales, ad-set budget (no CBO).LK_Prospect_2026Q2_broad_es18-40. Settings per the Campaign A card above. Set the 4 exclusion audiences.Comprar ahora, Destination = lucernaskin.com/products/cubrepezones with UTM utm_source=meta&utm_medium=cpc&utm_campaign=LK_Prospect_2026Q2&utm_content=A1 (etc).LK_Retarget_2026Q2. Same Sales objective, separate budget.LK_Retarget_2026Q2_union. Audience = LK_Retarget_Union saved. Exclude both past-purchase audiences. Placements + per-ad enhancements identical to Campaign A.LK_Funnel_CR1-CR3: CR1 = Link Clicks + Link CTR · CR2 = Adds to Cart + Checkouts Initiated · CR3 = Purchases + Cost per Purchase + Purchase ROAS · plus Spend, Impressions, Frequency, Quality Ranking, Engagement Rate Ranking, Conversion Rate Ranking. Save and set as default for both campaigns.Supersedes the v1 stacks doc and the menu framing. Two ad sets ship at T+0 under Campaign A — same 6 ads (A1–A6) run in each. Stacks 3–6 are pre-specified with trigger conditions, not "decide later". This section is the canonical upload spec; the markdown file (ops/ads/briefs/2026-05-21-launch-targeting.md) is a mirror.
LK_Prospect_2026Q2 envelope (applies to all ad sets)| Objective | Sales · optimise for Purchase |
| Budget control | Ad-set budget (no CBO) · Lowest cost bidding |
| Attribution | 7-day click / 1-day view |
| Geo | Spain (peninsular + Baleares + Canarias) |
| Language | Spanish (Spain) — not the generic "Spanish" toggle (spills into LATAM) |
| Gender | Women |
| Placements | Manual: Feed (FB + IG) + Reels + Stories. Drop: Audience Network, Marketplace, Right column. |
| Detailed Targeting Expansion | OFF (every ad set, invariant) |
| Advantage+ Audience | OFF (every ad set, forever) |
| Total Campaign A budget | €8/day at T+0 (€4/€4). Scales per trigger schedule below. |
LK_Prospect_2026Q2_lingerie_adj · €4/day · Age 22–40Wedge: already pays €20–50 for invisible/shaping garments — AOV pre-qualified.
| # | Interest (upload-name) | Meta ID | Audience size |
|---|---|---|---|
| 1 | Spanx | 6003090472301 | 3.6M–4.2M |
| 2 | SKIMS | hand-verify in UI | — |
| 3 | Wolford | 6003391746154 | 323k–380k |
| 4 | Calvin Klein Underwear | hand-verify in UI (Graph returns Calvin Klein parent — too broad) | — |
| 5 | Intimissimi | 6003247379299 | 11M–13M |
| 6 | women'secret | 6003102473578 | 2.2M–2.5M |
| 7 | Oysho | 6009374462295 | 7.8M–9.2M |
| 8 | TEZENIS | 6003170033702 | 3.6M–4.2M |
| 9 | La Perla NEW | 6002991665859 | 522k–613k |
| 10 | COSABELLA NEW | 6003148971549 | 778k–915k |
Behavior overlay: Engaged Shoppers 6071631541183 · Diff vs v1: dropped Pretty You London + Étam (smaller / less premium); added La Perla + Cosabella (verified premium-AOV signal). Expected CPM: €6–12. Estimated reach (Meta will confirm at upload): 2–4M.
LK_Prospect_2026Q2_fashion_premium · €4/day · Age 18–40Wedge: style-led shoppers at the premium-but-not-luxury fast-fashion band — where "vestido sin espalda" lives.
| # | Interest (upload-name) | Meta ID | Audience size |
|---|---|---|---|
| 1 | Massimo Dutti | 6003779753852 | 9.2M–10.8M |
| 2 | Mango (clothing) | 6003132162739 | 46M–54M |
| 3 | Zara Woman | hand-verify in UI (Graph returns generic Zara parent — too broad) | — |
| 4 | Sandro | hand-verify in UI (Graph returns near-zero variant — brand exists, normalization issue) | — |
| 5 | Ganni | 6003038366329 | 677k–797k |
| 6 | Reformation | 6003013562293 | 1.4M–1.7M |
| 7 | COS | 6012762926489 | 2.9M–3.4M |
| 8 | BIMBA Y LOLA NEW | 6012367282363 | 1.6M–1.8M |
| 9 | Sézane NEW | 6008848678164 | 1.3M–1.5M |
| 10 | Maje NEW | 6003146996868 | 1.4M–1.7M |
Behavior overlay: Online shopping 6003346592981 · Diff vs v1: dropped Free People (US-skewed) + "Vestidos de cóctel" + "Moda femenina" (failed verification); added Bimba y Lola + Sézane + Maje. Expected CPM: €5–10. Estimated reach: 4–6M.
| When | Condition | Action |
|---|---|---|
| T+7 · 2026-05-28 | Per ad set: CTR < 0.5% at ≥1k impressions | Kill underperformer, replace with Stack 4 (Bodas) at €4/day. Pre-specified below. |
| T+14 · 2026-06-04 | Campaign A has ≥10 Purchases in trailing 7d | Add Stack 5 (Verano) at €4/day — festival season is live. Total Campaign A €12/day. |
| If T+0 both fail | Both ad sets < CR1 thresholds | Pause Campaign A — not an audience problem. Rework creative. |
| Held indefinitely | Campaign A plateaus AND need reach AND can't activate Stack 4/5 first | Stack 3 (Beauty) · AOV-analogue argument weak for body-product specifically. |
| Held indefinitely | Same as above + Stack 3 also exhausted | Stack 6 (Body confidence / media) · high-engagement low-purchase risk. |
LK_Prospect_2026Q2_bodas_events · trigger-ready (T+7)Wedge: highest-intent narrow stack. Wedding/engagement/formal-event life-signal correlates directly with backless/strapless/halter dress purchase. Geo Spain · Women 25–38 · es_ES · same envelope settings as Ad sets 1/2.
| # | Interest | Meta ID | Audience size |
|---|---|---|---|
| 1 | Wedding planning | 6003069898229 | 5.1M–5.9M |
| 2 | Gala | 6003616498687 | 4.8M–5.6M |
| 3 | Cocktail party | 6003320213294 | 2.4M–2.9M |
| 4 | Vera Wang | 6003381526743 | 1.7M–2M |
| 5 | Pronovias | 6003282869002 | 1.2M–1.4M |
| 6 | Bodas.net | 6003359354221 | 438k–515k |
| 7 | Rosa Clará | 6003202087086 | 353k–415k |
| 8 | Monique Lhuillier | 6003257275301 | 248k–292k |
| 9 | Vestido de novia | hand-verify in UI | — |
| 10 | Despedida de soltera | hand-verify in UI | — |
Behavior: Engaged Shoppers 6071631541183
Life events overlay: Newly engaged (1 year) 6003050210972 · Newlywed (3 months) 6013133420583 · Anniversary within 30 days 6017476616183
LK_Prospect_2026Q2_verano · trigger-ready (T+14)Wedge: seasonal — Spanish festivales, beach holidays, resort wear. Activated mid-June through August. Geo Spain · Women 18–32 · es_ES.
| # | Interest | Meta ID | Audience size |
|---|---|---|---|
| 1 | Mykonos | 6003222090276 | 6.9M–8.1M |
| 2 | Calzedonia | 6003326031941 | 5.6M–6.6M |
| 3 | Crucero | 6015068466099 | 4.5M–5.3M |
| 4 | Formentera | 6003697967183 | 1.6M–1.9M |
| 5 | Primavera Sound | 6003372662140 | 891k–1M |
| 6 | Ushuaïa Ibiza Beach Hotel | 406865796146660 | 759k–893k |
| 7 | Bilbao BBK Live | 6005430973159 | 294k–345k |
| 8 | Festival Internacional de Benicàssim (FIB) | 6003288316351 | 140k–165k |
| 9 | Arenal Sound | 6003335987448 | 111k–130k |
Behavior: Beach Travellers 6014648415813 (narrower than Frequent Travelers — better fit for AOV band)
Life events (optional, skip unless under-pacing): Away from family 6003053857372 · Away from hometown 6003053860372
| LAL ad set | Seed | Status / trigger |
|---|---|---|
LK_Prospect_2026Q2_lal_ig_engagers | 1–3% LAL from LK_IG_Engagers_90d (9.5–11k, exceeds 1k min) | Ready to build now — deferred only because T+0 budget is fully allocated. Activate at T+14 alongside Stack 5 if scale gate clears. |
LK_Prospect_2026Q2_lal_atc | 1–3% LAL from LK_ATC_30d | Trigger: ATC audience size ≥1k members. Status-check weekly via meta-ads wrapper. |
LK_Prospect_2026Q2_lal_purchase | 1% LAL from Purchase seed | Trigger: ≥100 Pixel Purchase events / 180 days (currently 4 lifetime — far from threshold). Monthly check. |
LK_Prospect_2026Q2_value_lal | Value-based LAL from customer file | Trigger: same as LAL Purchase + customer-file upload built. |
LK_Past_Purchase_30d + LK_Past_Purchase_180d (once built) — never advertise to known buyers.LK_ATC_30d — push to Campaign B retargeting instead.LK_IG_Engagers_90d — also pushed to Campaign B (Union audience).All toggles OFF (matches 2026-05-19-campaign-structure.md §4):
| Rank | Stack | Launch slot | Confidence | Reason |
|---|---|---|---|---|
| 1 | Lingerie adjacency | T+0 | High | Cleanest AOV-band overlap. €20–50 lingerie buyer → €28.99 product is a direct AOV step, not an analogue. Best verified IDs (Spanx, Cosabella, La Perla, Intimissimi). |
| 2 | Fashion premium | T+0 | High | "Vestido sin espalda" use-case + editorial register match. Spanish premium fast-fashion buyer (Bimba y Lola, Massimo Dutti, Mango) is the volume play. |
| 3 | Bodas / events | T+7 trigger | High | Highest intent but narrowest reach + most CPM-volatile. Held back so it doesn't compete with Stacks 1/2 for budget at T+0. Verified bridal + life-event coverage is excellent. |
| 4 | Verano / festivales | T+14 trigger | Medium-high | Seasonal — festival season ramps June 1. Holding for scale gate so spend isn't wasted while T+0 stacks are still in learning. |
| 5 | Beauty / skincare | Indefinitely | Medium-low | AOV-analogue argument weak for a body product specifically. Only 5 verified high-confidence brands. |
| 6 | Body confidence / lifestyle media | Indefinitely | Low | Softest wedge. Premium-media readers are high-engagement, not necessarily high-purchase on intimate-apparel-adjacent. |
Why €4/€4 not €8 on one or €2.67×3: €8 on one stack kills the test (no comparison data). €2.67 across 3 ad sets is below Lowest-cost-bid's learning floor (consensus €4–5/day) — all three stay in learning indefinitely. €4/€4 across 2 stacks is the cleanest A/B with enough budget per ad set to exit learning.
On hand-verify rows: a handful of universally-known brands (SKIMS, Calvin Klein Underwear, Zara Woman, Sandro, plus the ES wedding category terms Vestido de novia / Despedida de soltera / Vestido de cóctel) don't surface cleanly via Meta's public Graph adinterest endpoint — either empty or matched to a too-broad parent. They exist in the Ad Set UI autocomplete. Type the name directly in the in-app search at upload — it will find them. Normal Meta behavior, not a data issue.
Canonical spec: ops/ads/briefs/2026-05-19-campaign-structure.md ·
Launch checklist: ops/ads/briefs/2026-05-19-launch-checklist.md ·
Carla pushback brief: ops/ads/briefs/2026-05-20-carla-pushback.md ·
Carla refs: ops/ads/creative/carla-refs-2026-05-19/ ·
Rendered assets: ops/ads/creative/drafts-2026-05-19/ ·
Targeting (locked): ops/ads/briefs/2026-05-21-launch-targeting.md ·
Verification receipts: ops/ads/briefs/2026-05-21-targeting-research.md ·
Plan file: ~/.claude/plans/session-handoff-jiggly-abelson.md.