Audience Structure Spec — Mo's Build Plan

Purpose: Ads Manager-ready spec for the full audience restructure. Mo executes himself.

Goals (under Anthony's growth doctrine): 1. Refresh the 10-month-old customer-list seed → cleaner LAL signal → more positive-return capital deploys in Auto ALC + Home ALC 2. Activate the 1.5M unused page-engagement warm pool → new positive-return ad set in Auto BAU + Home BAU 3. Resolve Auto BAU ↔ Auto ALC overlap → unlock the $7K/day of ALC capacity sitting at 17% utilization 4. Clean up the 28 orphaned placeholder LALs → reduce noise + audience-overlap cannibalization 5. Add disciplined suppression (existing customers + 30-day cooldown) → stop paying for users we already have


Section D — Data dependencies (DO THIS FIRST)

One message to Lauren asking for all three exports at once:

"For the audience refresh I'm about to do — can you (or whoever owns the data) pull three exports for me?

  1. Last-90-day accepted/sold leads from QuoteWizard, hashed PII format (email, phone, first name, last name, ZIP) — for the new LAL seed
  2. All-time accepted/sold leads (cumulative) in same hashed format — for the existing-customer suppression list
  3. Last-30-day form submissions (anyone who submitted a quote form, regardless of QW outcome) — for the cooldown suppression

Once I have these I can build the new seed, the new LAL ladder, and the suppression lists. Should take about 30 minutes to build in Ads Manager once exports are in hand."

Until those land, build what you CAN (the Combined Warm Layer doesn't need an export — it's already there). Once exports arrive, do the seed work.


Section A — Audiences to CREATE

1. Fresh Customer-List Seed ⭐ (the keystone)

Name (in Ads Manager): Custom_Recruiting-Leads_06-11-2026_Fresh

Type: Custom Audience → Customer List

Source data: Lauren's 90-day QW accepted/sold leads export

Required columns in the CSV (in this order, with these exact headers per Meta's spec): - email (hashed SHA-256) - phone (hashed) - fn (first name, hashed) - ln (last name, hashed) - zip (hashed) - Optional but valuable: ct (city), st (state), country (US)

Ads Manager steps: 1. Audiences → Create Audience → Custom Audience → Customer List → "Use a list with customer lifetime value" = No (we're using it for prospecting, not value modeling) 2. Upload CSV 3. Name it Custom_Recruiting-Leads_06-11-2026_Fresh 4. Description: "90-day QW accepted+sold leads. Refreshed 2026-06-11. Replaces 08-05-2025 seed." 5. Origin: "Directly from customers"

Estimated size: 8-20K (depends on Lauren's export volume)

Match rate to watch for: Meta will report a match rate after upload. Anything under 60% suggests data quality issues in the export (bad hashing, missing fields). If under 60%, troubleshoot with Lauren before building LALs off it.

Use: Seed for the new LAL ladder (audiences #4). Also serves as a base for the suppression list (#2).


2. Existing Customers — Suppression List ⭐

Name: Suppression_Existing-Customers_All-Time_06-11-2026

Type: Custom Audience → Customer List

Source data: Lauren's all-time accepted/sold leads export (cumulative since account inception)

Same CSV column spec as #1.

Ads Manager steps: Same as #1 but name differently and add this description:

"All-time customers. EXCLUDE from every prospecting ad set. Refresh monthly."

Estimated size: 100K-500K (cumulative since account launched)

Use: EXCLUDE from every active prospecting ad set across all 6 campaigns. This stops you from paying to re-acquire people you already have.

Refresh cadence: Monthly — Lauren regenerates the export, you re-upload (Meta's UI has an "update audience" flow that preserves the audience ID).


3. Recent Form Submitters — 30-Day Suppression ⭐

Name: Suppression_Form-Submitters_30D_06-11-2026

Type: Custom Audience → Customer List

Source data: Last 30 days of quote-form submissions from the funnel (FunnelFlux DB → CRM → export)

Same hashed CSV column spec.

Ads Manager steps: Same as #1 with description:

"Anyone who submitted a quote form in the last 30 days. EXCLUDE from prospecting. Refresh weekly."

Estimated size: 20-60K (based on ~30K leads/month implied by May data)

Use: EXCLUDE from every prospecting ad set. This gives recent submitters a 30-day cooldown — prevents Meta from wasting impressions retargeting users who just converted.

Refresh cadence: Weekly — Lauren regenerates 30-day rolling window.

Why this matters specifically: Without this, you're spending money on users who literally JUST filled out the form yesterday. Meta sees them as good prospects and keeps showing them ads. Pure waste under Anthony's framework — these aren't incremental positive returns, they're double-counts.


4. New LAL Ladder (3 audiences) ⭐

Names: - LAL_US_1pct_Custom-Recruiting-Leads_06-11-2026_Fresh - LAL_US_3pct_Custom-Recruiting-Leads_06-11-2026_Fresh - LAL_US_5pct_Custom-Recruiting-Leads_06-11-2026_Fresh

Type: Custom Audience → Lookalike Audience

Source seed: Audience #1 (Fresh Customer-List Seed) — BLOCKING DEPENDENCY: audience #1 must finish processing before you build these. Meta usually takes 30-60 min to process a customer-list upload.

Ads Manager steps for each: 1. Audiences → Create Audience → Lookalike 2. Source: select Custom_Recruiting-Leads_06-11-2026_Fresh 3. Location: United States 4. Audience size: select 1% (then repeat for 3%, then 5%) 5. Naming: as above

Estimated sizes: - 1% US LAL: ~1.9M – 2.2M people - 3% US LAL: ~5.3M – 6.3M people - 5% US LAL: ~8.5M – 10M people

Use: Replaces the 3 existing LAL audiences in the Auto ALC and Home ALC campaign targeting (see Section C).


5. Combined Warm Layer Audience ⭐ (the C01 build)

Name: Warm-Layer_Mil.com-Page-Engagement_Combined_06-11-2026

Type: Custom Audience → Engagement → use the "Combined Audiences" pattern

Method (Meta doesn't have a native "union" Custom Audience builder — there are two paths):

In the ad set targeting itself (not as a separate Custom Audience), under "Custom Audiences," include all 4 of these existing audiences. Meta unions them at the ad-set level:

Result: Effective union audience of ~1.5M (after dedup).

Option B: Build a Saved Audience that pre-bundles them

  1. Audiences → Create Audience → Saved Audience
  2. Name: Warm-Layer_Mil.com-Page-Engagement_Combined_06-11-2026
  3. Location: US
  4. Age: 18-65 (per SAC compliance — no narrower)
  5. Custom Audiences → INCLUDE all 4 page-engagement audiences listed above
  6. Detailed Targeting: leave empty (warm signal carries it)
  7. Save

Either approach works. Option A keeps audience inventory smaller; Option B makes the bundle reusable. Recommend Option A.

Use: New "Warm Layer" ad set inside Auto BAU and Home BAU campaigns (see Section C).


Section B — Audiences to DELETE / cleanup

Don't delete yet — wait until new replacements are live and confirmed deploying.

Phase 1 (immediate — these are safe)

28 orphaned placeholder Lookalikes — all sized at 1,000 people, all INACTIVE. List from the audit:

Why safe: They're INACTIVE (not in any active ad set), at placeholder sizes (1,000 = Meta's signature for orphaned audiences), and clutter the audience list.

Phase 2 (after new LAL ladder is live + deploying for 3 days)

Old stale-seed assets: - Custom_Recruiting-Leads_08-05-2025 (the 10-month-old seed) — confirm new seed (#1) has been live and producing positive-ROAS LAL results before deleting - Lookalike (US, 1%) - Custom Audience_08-05-2025 - Lookalike (US, 3%) - Custom_Recruiting-Leads_08-25 - Lookalike (US, 5%) - Custom_Recruiting-Leads_08-05-2025

Sequence: 1) Build new (Section A #1 + #4) → 2) Swap into campaigns (Section C) → 3) Watch 72 hours → 4) Delete old.

Phase 3 — keep as-is


Section C — Per-campaign include/exclude matrix

Reading guide: - CAMPAIGN-LEVEL rows apply to every ad set in that campaign (not changeable at ad-set level) - AD SET rows are configured per ad set - INCLUDE = audience targeting "Include people who match" - EXCLUDE = audience targeting "Exclude people who match" - All campaigns stay on SAC compliance (Financial Services special ad category for Auto/Home insurance lead-gen)


Auto BAU Campaign (objective: Leads — Outcome_Leads)

CAMPAIGN-LEVEL (unchanged): - Special Ad Category: Financial Services - Optimization: Conversions (lead event) - Bid strategy: Lowest Cost (no cap)

Ad Set 1: "Broad" (existing — MODIFY)

Demographic + Geo: - Location: US - Age: 18-65 (max SAC range) - Gender: All - Languages: All

INCLUDE: - NO custom audience (this is the truly broad prospecting layer) - Detailed Targeting Expansion: ON (Meta will expand reach beyond any soft signal) - Advantage+ Audience: ON (let Meta self-optimize the broad pool)

EXCLUDE: - Suppression_Existing-Customers_All-Time_06-11-2026 - Suppression_Form-Submitters_30D_06-11-2026

Why these changes: Currently "Broad" overlaps with Auto ALC's LAL targeting because both layers can hit the same prospecting universe. By keeping Broad as truly LAL-free + adding strong exclusions, we make it the catch-all prospecting layer with a clean lane.

Ad Set 2: NEW "Warm Layer - Page Engagement" (BUILD THIS)

Demographic + Geo: same as Broad

INCLUDE: - FB Mil.com Page Likers/Followers - FB Mil.com Page Engagers (365D) - IG Mil.com Followers - IG Mil.com Account Engagers (365D) - (Meta unions these as "OR" — anyone in any of the 4) - Detailed Targeting Expansion: OFF (warm signal is the targeting) - Advantage+ Audience: OFF (don't let it expand off the warm pool)

EXCLUDE: - Suppression_Existing-Customers_All-Time_06-11-2026 - Suppression_Form-Submitters_30D_06-11-2026

Daily budget: Start at $1,500/day. Let it learn for 5-7 days. Scale up if CPL holds.

Why this matters: This is the C01 ad set — 1.5M warm audience members currently not loaded into any ad set in the account. Even at modest scale ($1.5K/day) this should produce $12-16 CPL based on typical warm-audience benchmarks.

Ad Set 3: "Custom" (existing — MODIFY)

Demographic + Geo: same as Broad

INCLUDE: - Swap out: remove old Custom_Recruiting-Leads_08-05-2025 - Swap in: Custom_Recruiting-Leads_06-11-2026_Fresh (audience #1) - Detailed Targeting Expansion: ON

EXCLUDE: - Suppression_Existing-Customers_All-Time_06-11-2026 - Suppression_Form-Submitters_30D_06-11-2026

Note: Wait until the new seed (Section A #1) has finished processing AND the new LAL ladder is built (Section A #4) before swapping. Don't leave Auto BAU running on no targeting during the transition.

Paused ad sets — leave paused for now

Digital Marketing & Tech, Vehicle Insurance, Young Real Estate & Career, IG/FB Engagers stay paused. Re-activation is a separate decision after the new structure is stable for 7-10 days.


Auto ALC Campaign (objective: Leads)

CAMPAIGN-LEVEL (unchanged): Same as Auto BAU.

Ad Set 1: "Broad 2.O" (existing — MODIFY — this is the overlap fix)

Demographic + Geo: - Location: US - Age: 18-65 - Gender: All

INCLUDE: - LAL_US_1pct_Custom-Recruiting-Leads_06-11-2026_Fresh - LAL_US_3pct_Custom-Recruiting-Leads_06-11-2026_Fresh - LAL_US_5pct_Custom-Recruiting-Leads_06-11-2026_Fresh - (Meta unions these = effective ~10M-person LAL pool) - Detailed Targeting Expansion: OFF (LAL is the precise targeting — let it work) - Advantage+ Audience: OFF (don't expand off the LAL signal)

EXCLUDE: - Suppression_Existing-Customers_All-Time_06-11-2026 - Suppression_Form-Submitters_30D_06-11-2026

Why this fixes the overlap problem: - Before: Auto BAU "Broad" was effectively broad-AND-expanded, while Auto ALC was LAL-from-stale-seed. Meta detected significant overlap because BAU's expansion was hitting LAL-eligible users. - After: Auto BAU "Broad" is genuinely broad with Advantage+ doing its expansion work. Auto ALC is precise LAL-only with NO detailed targeting expansion. The targeting layers are now structurally distinct → Meta no longer self-limits ALC to avoid stepping on BAU.

Watch for: The Auto ALC utilization should rise from 17% toward 50-80% over 5-7 days as Meta gains confidence. If it doesn't move within 3-4 days, the constraint is something other than overlap (likely creative supply or learning-phase volume).


Auto Max Val Campaign (objective: Sales — Outcome_Sales)

CAMPAIGN-LEVEL (unchanged): - Special Ad Category: Financial Services - Optimization: Value (purchase value) - Bid strategy: Lowest Cost or Highest Value (whatever Lauren set)

Ad Set 1: "Broad" (existing — MODIFY)

Demographic + Geo: same as Auto BAU Broad

INCLUDE: - NO custom audience (broad targeting carries it) - Detailed Targeting Expansion: ON - Advantage+ Audience: ON

EXCLUDE: - Suppression_Existing-Customers_All-Time_06-11-2026 - Suppression_Form-Submitters_30D_06-11-2026

Why minimal changes: The Auto Max Val problem isn't audience structure — it's the broken value signal (fbc bug). Audience changes here are about adding suppression to prevent waste. The real unlock is the FunnelFlux fix (CAPI-01), not targeting reshuffling.


Home BAU Campaign (objective: Leads)

CAMPAIGN-LEVEL: Same SAC + Conversions optimization as Auto BAU.

Ad Set 1: "Broad" (existing — MODIFY)

Demographic + Geo: Location US, Age 18-65

INCLUDE: - NO custom audience - Detailed Targeting Expansion: ON - Advantage+ Audience: ON

EXCLUDE: - Suppression_Existing-Customers_All-Time_06-11-2026 - Suppression_Form-Submitters_30D_06-11-2026

Ad Set 2: NEW "Warm Layer - Page Engagement (Home)" (BUILD THIS)

Same construction as the Auto BAU warm layer, but inside Home BAU campaign.

INCLUDE: - All 4 page-engagement audiences (same as Auto BAU's warm layer)

EXCLUDE: - Suppression_Existing-Customers_All-Time_06-11-2026 - Suppression_Form-Submitters_30D_06-11-2026

Daily budget: Start at $500/day. Home market is naturally smaller, so don't over-allocate.

Ad Set 3: "Custom" (existing — MODIFY)

Swap stale seed for Custom_Recruiting-Leads_06-11-2026_Fresh. Same exclusions as everywhere else.

Ad Set 4: "Home Insurance" (existing — keep)

This is a detailed-targeting ad set with Home Insurance interest layered in. Add the same exclusions but otherwise leave it.


Home Max Val Campaign (objective: Sales)

Ad Set 1: "Broad" (existing — MODIFY)

Same as Auto Max Val Broad. Add suppression exclusions. No other changes — fbc fix is the lever.

Also: Anthony's call on raising the daily cap from $1,200 → $1,800-2,000 since this campaign is overpacing at 115%. Worth proposing to Anthony separately.


Home ALC Campaign (objective: Leads)

Ad Set 1: "Broad" (existing — MODIFY)

Same LAL-only structure as Auto ALC's "Broad 2.O":

INCLUDE: - LAL_US_1pct_Custom-Recruiting-Leads_06-11-2026_Fresh - LAL_US_3pct_Custom-Recruiting-Leads_06-11-2026_Fresh - LAL_US_5pct_Custom-Recruiting-Leads_06-11-2026_Fresh - Detailed Targeting Expansion: OFF - Advantage+ Audience: OFF

EXCLUDE: - Suppression_Existing-Customers_All-Time_06-11-2026 - Suppression_Form-Submitters_30D_06-11-2026

Plus: Lauren add more Home creatives to this ad set (currently it's running with very limited creative supply — see comprehensive_growth_audit Recommendation #3 for Home ALC creative supply).


Execution checklist (in order)

Day 1 (today, after Lauren's exports arrive)

Day 1 (while waiting on customer-list audiences to process)

Day 1 (parallel — doesn't depend on exports)

Day 2 (after LALs finish processing)

Day 4-5 (let it stabilize)

Day 7 (cleanup)


Verification (how to confirm this worked)

After 5-7 days the account should show:

  1. Auto ALC utilization: 17% → 50-80%. Meta deploying $4-7K/day instead of $1.4K at similar or better CPL.
  2. Home ALC utilization: 2% → 25-50%. Meta deploying $1-2K/day instead of $70 at $9-14 CPL.
  3. Warm Layer ad sets producing positive ROAS. Target $14-18 CPL. If much higher, debug creative or audience size.
  4. No drop in Auto BAU CPL. It should hold $17-22 even with the structural changes. If it tanks, something in Broad targeting needs investigation.
  5. EMQ score improving. With the freshened seed feeding cleaner signal, Meta's Event Match Quality should tick up over 7-14 days.

Account-level outcome: Daily deployable capital at positive returns rises from ~$25K/day → ~$35-45K/day. That's directionally pointing the account at GP1 territory in July.


ASSUMPTIONS & OPEN QUESTIONS


Spec written 2026-06-11. Source data from Meta Marketing API + comprehensive_growth_audit_2026-06-11.md. Mo executes in Ads Manager.


← Back to Military.com portal