← Back to Military.com

Meta Audience Architecture — The Expert-Grade Build

Date: June 11, 2026

Author: Mo / GTW (Meta Consultant)

Status: Strategic spec — supersedes earlier audience_structure docs for the data-rich state we're now in


TL;DR

Anthony Kaylor's 7-month PII export changed the game. We're no longer working with a 10-month-old stale seed — we have 195K customer records with revenue tags, by-vertical mapping, and recent recency. This is enough fuel to build a proper Meta-best-practices audience architecture that maps directly to how the algorithm actually wants to be fed:

This doc tells you (1) which seeds we need, (2) which spreadsheets each one maps to, (3) where they go in Ads Manager, and (4) which campaigns they target. Built under the SAC Financial Services restrictions (no Value LALs, no ZIP-narrowing, no age/gender narrowing) — but the workarounds get us ~80% of the value-LAL effect anyway via pre-filtered seed.


Part 1 — The 9 Audiences We're Building

#Audience name in Ads ManagerTypeSource fileEst. sizePurpose
1Custom_Mil_Combined_Fresh_06-11-2026Customer Listmil_combined_seed_90d.csv112,264 raw → ~70-95K matchedMaster seed for combined LAL ladder + warm BAU
2Custom_Mil_Auto_Fresh_06-11-2026Customer Listmil_auto_seed_90d.csv91,871 raw → ~60-80K matchedAuto-specific LAL ladder → Auto ALC
3Custom_Mil_Home_Fresh_06-11-2026Customer Listmil_home_seed_90d.csv21,777 raw → ~14-19K matchedHome-specific LAL ladder → Home ALC
4Custom_Mil_HighValue_06-11-2026Customer Listmil_high_value_seed_7mo.csv62,299 raw → ~40-55K matchedValue-biased LAL — feeds Max Val campaigns
5Custom_Mil_Bundle_06-11-2026Customer Listmil_bundle_customers_7mo.csv2,698 raw → ~1,800-2,400 matchedCross-sell seed (Auto+Home buyers) — informational, not for LAL
6Suppression_Mil_AllCustomers_7mo_06-11-2026Customer Listmil_suppression_all_7mo.csv195,137 raw → ~125-170K matchedExclude from every prospecting ad set
7Suppression_FormSubmitters_30DCustom Audience (Website)Pending LaurenUnknownCooldown for recent submitters
8Warm_PageEngagement_Combined_365DSaved (union of 4 existing)n/a — combine in Ads Manager~1.5MWarm layer ad set in BAU campaigns
9LAL ladders (1% / 3% / 5%) off seeds 1-4Lookalikeseeds aboveAuto-built by MetaTargeting layer for ALC + Max Val

That's 5 customer-list uploads (the spreadsheets), 1 saved-audience union (UI-only, no upload), 1 pending Lauren, and 12 lookalikes (1%/3%/5% × 4 seeds) Meta builds on its own once the seeds process.


Part 2 — The Spreadsheets (Final State)

All in /Users/mo/Downloads/For FB Audiences/output/ after running prep_audience_csvs.py:


output/
├── mil_combined_seed_90d.csv            112,264 rows   Combined Mar-May seed
├── mil_auto_seed_90d.csv                 91,871 rows   Auto-only Mar-May seed
├── mil_home_seed_90d.csv                 21,777 rows   Home-only Mar-May seed
├── mil_high_value_seed_7mo.csv           62,299 rows   Top quartile by value (Nov-May)
├── mil_high_value_auto_seed_7mo.csv      57,544 rows   Top quartile Auto only (informational)
├── mil_high_value_home_seed_7mo.csv       4,755 rows   Top quartile Home only (informational)
├── mil_bundle_customers_7mo.csv           2,698 rows   Auto AND Home customers
└── mil_suppression_all_7mo.csv          195,137 rows   All Mil.com customers, 7 months

Upload 5 of these to Meta (numbered to match audience table above):

The two mil_high_value_*_seed_7mo.csv files are informational (split-out shows you that 92% of high-value records are Auto, only 8% Home — that's why we use the combined high-value seed for Max Val and don't bother building a Home-only Max Val variant yet).


Part 3 — Why Each Seed Exists (the Meta-expert logic)

Seed 1 — Combined (mil_combined_seed_90d.csv)

Why: Recency-weighted. 90-day window means Meta builds LALs from fresh signal — strongest predictor of who's in-market now. Includes both Auto and Home in one pool because Meta's LAL algorithm doesn't care about vertical purity at this scale — it cares about behavioral pattern density.

Feeds: General-purpose LAL ladder + warm BAU campaigns.

Seed 2 — Auto-only (mil_auto_seed_90d.csv)

Why: Vertical-pure signal. When Meta builds a LAL off this, every "look-alike" is modeled on Auto-converting behavior specifically — not diluted by Home patterns. Auto ALC needs this because the campaign objective is Auto leads.

Feeds: Auto ALC campaign LAL stack.

Seed 3 — Home-only (mil_home_seed_90d.csv)

Why: Same logic, vertical-pure for Home. Smaller seed (22K) but well above the 10K Meta minimum for stable LAL — and the signal purity is worth more than seed size at this volume.

Feeds: Home ALC campaign LAL stack.

Seed 4 — High-Value (mil_high_value_seed_7mo.csv) — THE STRATEGIC WIN

Why: Under SAC Financial Services, Meta blocks the "Value-Based Lookalike" feature outright. The workaround that gets us ~80% of the same effect: pre-filter the seed CSV to only top-quartile customers by conversion_value, then build a standard LAL off that filtered seed. Meta doesn't see the value field, but every record in the seed is a $78+ customer — so the LAL it builds is structurally biased toward high-value users. We're using 7 months (not 90 days) here because high-value customers are rarer and we need volume — 62K is the right balance.

This is the single biggest unlock for Max Val campaigns. Auto Max Val has been underperforming partly because (a) the fbc bug is poisoning the value signal feeding back to Meta, and (b) the audience layer treats all customers as equal. This seed fixes (b) directly even if (a) takes weeks. Top quartile only = Meta optimizes toward the customers we'd kill to acquire more of.

Feeds: Auto Max Val + Home Max Val LAL stacks.

Seed 5 — Bundle Customers (mil_bundle_customers_7mo.csv)

Why: People who bought BOTH Auto and Home from us. 2,698 of them. Highest LTV in the entire database — proven cross-sellable. Too small (sub-10K) to build a stable LAL off, but worth uploading for two reasons: (1) baseline for cross-sell value benchmarking, (2) if it scales past 10K in 6 months from new data, we get a premium LAL seed nobody else in the category has.

Feeds: Informational for now. Eventually a Bundle Max Val LAL when we hit 10K threshold.

Seed 6 — All Customers Suppression (mil_suppression_all_7mo.csv)

Why: Don't pay to re-acquire users we already converted. 195K names of existing customers excluded from every prospecting ad set saves a measurable % of CPL that was previously wasted on duplicates.

Feeds: Exclusion layer on all 6 campaigns' prospecting ad sets.

Seed 7 — Recent Form Submitters 30D (pending Lauren)

Why: Even tighter cooldown — people who submitted a quote form in the last 30 days but didn't accept/convert yet. Don't spam them — they're in workflow. Lauren has access to FunnelFlux for this; needs a CSV pull.

Feeds: Exclusion layer on all 6 campaigns' prospecting ad sets.

Audience 8 — Warm Page-Engagement Pool

Why: Pre-existing untouched ~1.5M people who engaged with the Military.com FB page, IG account, or related properties in the last 365 days. These are people who already know the brand — softer ad. Highest-engagement, lowest-objection, lowest-CPC audience available.

Feeds: Warm Layer ad sets in Auto BAU + Home BAU (NOT ALC — keep ALC clean for LAL signal).

Lookalikes (12 total) — built by Meta after seeds process

Build them as ranges (1-3%, 3-5%) not stacks if you want smoother delivery; build as overlapping individual percentages (1%, 3%, 5%) if you want to A/B which size delivers best (recommended for first 30 days).


Part 4 — Per-Campaign Assignment Matrix

This is where the architecture lands in production. Six campaigns, each with explicit ad-set targeting:

Campaign 1: Auto BAU

Campaign 2: Auto Max Val

Campaign 3: Auto ALC

Campaign 4: Home BAU

Campaign 5: Home Max Val

Campaign 6: Home ALC


Part 5 — Where Each Spreadsheet Goes (Ads Manager Path)

For each customer-list seed:

Then build the lookalikes:

For each processed seed, in Audiences:

Build all 12 LALs at once (4 seeds × 3 percentages) — Meta builds them in parallel, ~30-60 min each.

Finally, build the saved warm-pool union:


Part 6 — SAC Compliance Notes (what you CAN'T do)

Working under Special Ad Category — Financial Services restrictions:

FeatureAllowed?Workaround
Customer-list Custom Audiences✅ YesUse as-is
Standard Lookalike Audiences (1/3/5%)✅ YesUse as-is
Value-Based Lookalikes❌ BlockedPre-filter the seed (what we're doing with high-value seed)
Engagement Custom Audiences (page, video)✅ YesWarm pool union
Detailed Targeting (interests)⚠️ Restricted listDon't use insurance interests — they're blocked anyway
ZIP-code targeting❌ Blocked (15-mile radius minimum)State-level only
Age narrowing❌ Blocked (18-65 default)Locked at 18-65
Gender narrowing❌ BlockedAll genders
Custom Audience EXCLUSIONS✅ YesHeavy use of suppression layer
Advantage+ Audience suggestions✅ YesUse in BAU and Max Val for broad ad sets

Everything in this architecture is SAC-compliant. The high-value LAL workaround is the most sophisticated thing we can do legally under these restrictions.


Part 7 — Build Sequence (Mo's day-of execution order)

Day 1 (today, ~90 min in Ads Manager):

Day 2 (after seeds process, ~60 min):

Day 3 (after LALs build, ~45 min in Ads Manager edit mode):

Day 4+ (the growth deploy):


Part 8 — What This Architecture Unlocks (the doctrine framing)

Under Anthony Paolucci's "deploy maximum capital at positive incremental returns" doctrine:

None of these recommendations cap, pause, or reallocate. Every one is a capacity unlock. The architecture itself is what removes the constraints.


Part 9 — What's Missing / Open Loops


Appendix — File reference quick-card


Local files:
  Script:           /Users/mo/Desktop/military.com/deliverables/audit_2026-06-04/prep_audience_csvs.py
  Inputs:           /Users/mo/Downloads/For FB Audiences/mar26-may26 PII data.csv
                    /Users/mo/Downloads/For FB Audiences/nov25-feb26 PII data.csv
  Outputs:          /Users/mo/Downloads/For FB Audiences/output/*.csv (8 files)
  This doc:         /Users/mo/Desktop/military.com/deliverables/audit_2026-06-04/meta_audience_architecture_2026-06-11.md

Meta upload (Audiences):
  Custom_Mil_Combined_Fresh_06-11-2026             ← mil_combined_seed_90d.csv
  Custom_Mil_Auto_Fresh_06-11-2026                 ← mil_auto_seed_90d.csv
  Custom_Mil_Home_Fresh_06-11-2026                 ← mil_home_seed_90d.csv
  Custom_Mil_HighValue_06-11-2026                  ← mil_high_value_seed_7mo.csv
  Custom_Mil_Bundle_06-11-2026                     ← mil_bundle_customers_7mo.csv
  Suppression_Mil_AllCustomers_7mo_06-11-2026      ← mil_suppression_all_7mo.csv

  LAL_Combined_US_{1,3,5}%_Jun26    ← built from Custom_Mil_Combined
  LAL_Auto_US_{1,3,5}%_Jun26         ← built from Custom_Mil_Auto
  LAL_Home_US_{1,3,5}%_Jun26         ← built from Custom_Mil_Home
  LAL_HighValue_US_{1,3,5}%_Jun26    ← built from Custom_Mil_HighValue

  Warm_PageEngagement_Combined_365D ← saved-audience union of 4 page-engagement audiences

Campaign assignments (see Part 4 for full matrix):
  Auto BAU       → Broad (Adv+ ON) + Warm Layer
  Auto Max Val   → Broad Value (Adv+ ON) + LAL_HighValue stack
  Auto ALC       → LAL_Auto stack only
  Home BAU       → Broad (Adv+ ON) + Warm Layer
  Home Max Val   → Broad Value (Adv+ ON) + LAL_HighValue stack
  Home ALC       → LAL_Home stack only

  Suppressions applied to EVERY prospecting ad set:
    Suppression_Mil_AllCustomers_7mo + Suppression_FormSubmitters_30D (when avail)

End of architecture spec. Execute Day 1 sequence when you're ready to upload — script already produced the spreadsheets clean.


← Back