Analysis: D2C Focus - Paid Social Targeting Guide
Executive Summary
This is not a generic strategy deck. It is built on real Shopify order data with state/country-level breakdowns of AOV, LTV, repeat rate, discount rate, email opt-in, and gender split. The data quality is high and the targeting recommendations are specific enough to implement directly into Meta ad sets.
The document's biggest strength: It identifies which markets are premium (low discount, high repeat, high LTV) vs. acquisition-dependent, and tailors messaging accordingly. This is the exact segmentation our automation system needs to enforce.
The document's biggest gap: No performance baselines from the current ad account. All the targeting is built on Shopify customer data, but there's no reference to which campaigns, audiences, or creatives are currently running. We can't tell what's been tested vs. what's hypothetical.
What the Data Actually Says
EU Market Hierarchy (from the doc)
| Priority | Market | Key Signal | Our Automation Action |
|---|---|---|---|
| P1 | Germany | 29.7% of EU orders, 71% male | Separate DE campaigns, German-language creative, Sunday peak |
| P1 | Nordics (SE/NO/DK) | Norway AOV EUR202 (highest EU), multi-pack behavior | No discounts in NO. Michelin creative as-is for EN markets |
| P2 | Ireland | 19.1% repeat rate (best EU loyalty) | Higher CAC justified by LTV. Free shipping as acquisition hook |
| P2 | Italy & Spain | EUR53k combined, untapped | Italian + Spanish language mandatory. Post-dinner scroll window |
| P3 | Portugal, Romania, Finland | High LTV signals | Test at EUR100-200/week, prove ROAS 3+ before scaling |
US Market Hierarchy (from the doc)
| Priority | State | Orders | Revenue | Repeat | Discount | LTV | Key Insight |
|---|---|---|---|---|---|---|---|
| P1 | California | 1,326 | $185,943 | 38.6% | 43.7% | $178 | 343 fish buyers - only state for fish creative |
| P1 | Florida | 571 | $79,218 | 38.5% | 42.2% | $175 | 74.4% email opt-in - highest of top 5 |
| P1 | New York | 560 | $74,987 | 38.4% | 43.6% | $170 | Brooklyn 98 orders - food-culture hub |
| P1 | Texas | 395 | $53,772 | 32.7% | 41.0% | $169 | 64% female - strongest skew. Repeat rate broken |
| P1 | Washington | 370 | $53,196 | 38.1% | 37.0% | $184 | $152 full-price AOV - least price-sensitive |
| Loyalty | Michigan | 205 | $28,596 | 42.0% | 33.2% | $184 | 79.5% email opt-in - exceptional |
| Loyalty | Oregon | 202 | $27,570 | 43.6% | 43.1% | $184 | Highest repeat in entire US |
| P2 | NJ/CO/IL/OH/PA | 1,390 combined | ~$185k | 33-37% | 37-41% | varies | Scale after top 5 optimized |
7 Things the Doc Gets Right
1. No-Discount Rule for Premium Markets
Washington (37% discount rate, $152 full-price AOV), Michigan (33.2%), and Norway (EUR202 AOV) are explicitly flagged as markets where discount offers will corrupt buying behavior. This is correct and critical - our automation must enforce this by excluding these geos from any discount-based campaigns.
2. Language Localization is Non-Negotiable
German and Italian ads in English will underperform. The doc provides actual German and Italian copy lines:
- DE: "Das ist kein Fleisch. Aber Michelin-Koche haben es serviert."
- IT: "Non e carne. Ma i cuochi stellati lo hanno servito."
- ES: "Carne? No. Sabor? Completamente."
Our ad copy generator must be pre-loaded with these as seed copy, not generate from scratch in English.
3. The Michelin Creative as Universal Anchor
The doc repeatedly references a 7.1% CTR Michelin ad ("Michelin-starred chefs served this. It's not meat.") as the universal prospecting creative. Every market section recommends running it as-is before localizing. This is the right approach - don't fragment creative testing across markets before proving the anchor works everywhere.
4. Fish Products Are a West Coast Story
343 fish buyers in California alone. The doc restricts fish-specific creative (Kinda Cod, Kinda Salmon) to CA/WA/OR only. This aligns with our earlier analysis that US fish pricing ($65.99 vs EUR19.99 EU) makes fish ads uneconomic in most US markets. Pacific Northwest seafood culture is the exception.
5. Tuesday Is the Universal US Peak Day
Every US state shows Tuesday as the primary peak. The doc recommends 30-35% of weekly budget on Tuesday alone, with the 11am-2pm ET window as primary. This is an immediately actionable dayparting rule our automation should enforce.
6. Texas Repeat Rate Is Broken
32.7% repeat (lowest top-5 state) despite strong acquisition. The doc correctly identifies this as an email/retention problem, not an acquisition problem. 64% female skew means the acquisition creative is working on women but the post-purchase email flow isn't converting them into repeaters. Klaviyo integration priority should be Texas-first.
7. Email Opt-In as the Hidden Asset
Ohio (78.1%), Michigan (79.5%), Maryland (79.2%), Pennsylvania (74.8%), Florida (74.4%) have exceptional opt-in rates. The doc flags these as being under-served by the current agency's email strategy. Our Shopify RFM export feeding into Klaviyo segments is the exact solution here - no additional ad spend needed.
5 Things Missing or Wrong
1. No Current Campaign Performance Data
The entire doc is built on Shopify order data. There's zero reference to:
- Current Meta campaign structure (how many campaigns, ad sets, active ads?)
- Current ROAS by market or campaign
- Current CPM/CPC by geography
- Which of these targeting recommendations have already been tested
- Which audiences are currently active vs. paused
Why this matters: The targeting is excellent but it's built in a vacuum. When we connect the Meta API, the first thing we need is a campaign-to-geography mapping to see which of Jon's doc recommendations are already running and which are untested.
2. No Attribution Model Discussion
The doc recommends detailed geo and daypart targeting but doesn't address whether Meta's attribution window is set correctly for a $70-140 AOV frozen food product. If campaigns are on 1-day click attribution, the Tuesday budget strategy might be measuring the wrong conversions. Our plan-for-jon.md covers this (Section 1, point 4) but this doc doesn't.
3. Combined Meta Account Creates Structural Risk
Jon confirmed Meta runs EU + US in one combined account. The doc recommends country-level reporting and different creative by market - but if the account structure is flat (single campaign spanning EU + US), Meta's algorithm will optimize for whichever geography converts cheapest, not which converts best by LTV.
Our fix: The audit must check campaign structure first. If campaigns span regions, separating them is step zero before any targeting changes.
4. Discount Code Intelligence Needs Shopify Connection
The doc reveals top discount codes: CHEEKYMARBLS (237 uses), COUNTMARBULA (179), LATETOSCHOOOL (178), FIRSTMARBLES (38). These appear to be influencer/podcast codes. But without Shopify order-level data mapped to these codes, we can't tell:
- Which code users have the highest LTV
- Whether code users repeat at higher or lower rates
- Whether codes cannibalize full-price revenue
Our Shopify export script already has the infrastructure for this. We just need to add a discount_code field to the RFM analysis.
5. Reddit and TikTok Absent
Jon told us he's about to launch Reddit Ads and TikTok Ads. This doc only covers Meta (paid social). The persona and interest targeting data here is Meta-specific - Reddit subreddits and TikTok interest categories would need separate research. Worth noting so we don't blindly copy Meta audiences to new platforms.
Contradictions With Our Existing Plan
| Topic | D2C Focus Says | Our Plan Says | Resolution |
|---|---|---|---|
| Device targeting | Not mentioned | Suppress mobile bids 70-90% | Our plan is correct for Google Ads. For Meta, mobile is often the primary channel - do NOT suppress. Different rules per platform |
| Ireland creative | Mirror US campaigns | Build EU-specific creative | D2C Focus is right - Ireland's behavior is closer to US than EU. Use English US creative in IE |
| Audience building | Use interest stacks from doc | Build lookalikes from Shopify RFM data | Both. Interest stacks for cold prospecting, RFM lookalikes for warm prospecting. Layer them |
| Discount strategy | No % discounts in EU prospecting | Not explicitly addressed | D2C Focus is right. Add as a hard rule: no percentage-off ads in EU prospecting campaigns |
| Reporting | Report by country, not "EU total" | Weekly digest by market | Aligned. Our digest must break EU into DE/SE/NO/DK/IE/IT/ES separately |
What This Changes in Our Automation Build
1. Weekly Digest Must Report by Country/State
Not "EU ROAS 3.2x" - the digest needs Germany, Nordics, Ireland, Italy, Spain as separate line items. Same for US: CA, FL, NY, TX, WA at minimum.
2. Dayparting Rules from Day 1
- US: 30-35% budget on Tuesday, primary window 11am-2pm ET
- EU Germany: 35-40% budget Fri-Sun, peak Sunday, 6-9pm CET
- EU Nordics: 25-30% budget Wed (SE), Thu-Sat broader, 5-8pm local
- Italy: Tuesday 7-10pm local
- Spain: Friday 7-10pm local
3. Creative Fatigue Must Be Market-Specific
The Michelin creative is the universal anchor but will fatigue at different rates in different markets. Our fatigue detector must track frequency per geo, not just per ad. An ad at frequency 2.0 globally might be at 5.0 in Germany and 0.8 in Spain.
4. Suppression Lists
- Discount-only buyers excluded from all prospecting (EU rule 3)
- MI and OR excluded from any discount campaigns (loyalty protection)
- WA excluded from discount campaigns ($152 full-price AOV)
- Norway excluded from discount campaigns (EUR202 AOV)
5. Fish Creative Geo-Fence
Kinda Cod and Kinda Salmon creative runs ONLY in CA, WA, OR (US) and broadly in EU (where pricing is EUR19.99). This is a hard campaign geo-restriction, not a bid adjustment.
6. Shopify Export Enhancement
Add to export-shopify-data.py:
- Discount code field in order export
- Map codes to LTV and repeat rate
- Flag CHEEKYMARBLS / COUNTMARBULA / LATETOSCHOOOL cohorts separately
- Segment B2B/wholesale codes (Custom discounts, 234 uses) out of D2C reporting
Immediate Next Steps
- Connect Meta API - pull campaign structure to see which D2C Focus recommendations are already live vs. untested
- Build geo-segmented digest - implement country/state breakdown in weekly report template
- Code the dayparting rules - Tuesday US, Sunday DE, Wednesday SE as budget concentration rules
- Add discount code analysis to Shopify export
- Create suppression list workflow - discount-only buyers, market-specific exclusions
- Update ad copy generator - pre-load German, Italian, Spanish seed copy from the doc
Data Quality Assessment
What's reliable: Order volumes, revenue, AOV, repeat rates, discount rates, email opt-in rates, gender splits, city-level order counts. This is first-party Shopify data - it's the source of truth.
What's assumption: Target interest lists (Meta audience targeting suggestions), ad timing windows (inferred from order timestamps, not ad engagement data), creative angle recommendations (untested hypotheses until we see Meta performance data).
What's missing: Current ad account performance, competitive benchmark data, historical ROAS by market, creative test history, Klaviyo email performance metrics.
This analysis should be re-read after the first Meta audit completes. Many of the "missing" items will be filled by actual campaign data.