Audience Build Execution — Jun 11, 2026

The data prep step is done. Four ready-to-upload CSVs are sitting in /Users/mo/Downloads/For FB Audiences/output/. This doc walks through what's in them, the Ads Manager upload sequence, and what to do if match rates underperform.


What just happened

The script prep_audience_csvs.py read both PII files Anthony Kaylor delivered, filtered to Military.com Auto + Home campaigns only (using the campaign-ID mapping from his email), renamed columns to Meta's customer-list spec, and deduplicated on email. Result: 4 clean CSVs in /Users/mo/Downloads/For FB Audiences/output/ ready for direct upload.

Output files

File Use Rows Source window
mil_combined_seed_90d.csv Fresh seed for general LAL ladder (warm layer) 112,264 Mar-May 2026, Auto + Home
mil_auto_seed_90d.csv Auto-specific LAL ladder for Auto ALC 91,871 Mar-May 2026, Auto only
mil_home_seed_90d.csv Home-specific LAL ladder for Home ALC 21,777 Mar-May 2026, Home only
mil_suppression_all_7mo.csv Existing-customer suppression list 195,137 Nov 2025 - May 2026, all Mil.com

Data quality check (from the script run)


Ads Manager upload sequence

Total time: ~60 minutes (mostly waiting for Meta to process).

Step 1 — Upload fresh seed (Combined)

Business Manager → AudiencesCreate AudienceCustom AudienceCustomer ListUse a list of customers → Next

Meta begins processing. Audience size will show "Calculating..." for 30-60 minutes.

Same flow as Step 1.

Step 4 — Upload suppression list

Same flow.

Step 5 — Wait for processing (30-60 min)

Go check on Auto ALC's underutilization in the meantime, or build the Warm Layer ad set (it doesn't depend on these customer-list uploads — see the Audience Structure Spec).

Step 6 — Validate match rates

Once each audience shows "Audience size" instead of "Calculating...", note the size. Match rate is approximate:

Match rate ≈ (Audience size shown by Meta) / (Rows you uploaded)
Audience Rows uploaded Target Audience size (60% match) Target (75% match)
Combined seed 112,264 ≥ 67,000 ≥ 84,000
Auto seed 91,871 ≥ 55,000 ≥ 68,000
Home seed 21,777 ≥ 13,000 ≥ 16,000
Suppression 195,137 ≥ 117,000 ≥ 146,000

If match rate < 60% on any audience: email Anthony Kaylor accepting his phone-number offer. Draft below.

If 60-80% (likely outcome): proceed to build LAL audiences.

If 80%+: even better — proceed normally.


Step 7 — Build LAL ladders (after seeds finish processing)

Per the Audience Structure Spec, Option C (hybrid: Combined LAL for Warm Layer, vertical-specific LALs for ALC) is the recommended approach.

LAL set 1 — Combined LAL ladder (3 audiences)

Audiences → Create → Lookalike → Source: Custom_Recruiting-Leads_06-11-2026_Fresh

Build three at once: - LAL_US_1pct_Custom-Recruiting-Leads_06-11-2026_Fresh (size 1%, ~2M people) - LAL_US_3pct_Custom-Recruiting-Leads_06-11-2026_Fresh (size 3%, ~6M people) - LAL_US_5pct_Custom-Recruiting-Leads_06-11-2026_Fresh (size 5%, ~10M people)

Location: US. Click Create.

LAL set 2 — Auto-specific LAL ladder

Source: Custom_Auto-Leads_06-11-2026_Fresh

LAL set 3 — Home-specific LAL ladder

Source: Custom_Home-Leads_06-11-2026_Fresh

All LAL builds process in 5-15 minutes typically.


Step 8 — Wire into campaigns (per Audience Structure Spec, with updated LAL assignments)

The Audience Structure Spec said "use new LAL ladder in Auto ALC and Home ALC." With vertical-specific LALs now available, use this assignment instead:

Campaign Ad Set Include Exclude
Auto BAU Broad (existing — modify) (no custom audience — broad targeting + Advantage+ ON) Suppression list
Auto BAU Custom (existing — modify) Custom_Recruiting-Leads_06-11-2026_Fresh (combined seed) Suppression list
Auto BAU NEW Warm Layer 4 page-engagement audiences (FB Likers + Engagers + IG Followers + Engagers) Suppression list
Auto Max Val Broad (modify) (broad + Advantage+) Suppression list
Auto ALC Broad 2.O (modify) Auto-specific LALs: LAL_US_1pct_Auto-Leads_06-11-2026_Fresh + 3% + 5% Suppression list
Home BAU Broad (modify) (broad + Advantage+) Suppression list
Home BAU Custom (modify) Custom_Recruiting-Leads_06-11-2026_Fresh Suppression list
Home BAU Home Insurance (existing) (keep as is, add suppression) Suppression list
Home BAU NEW Warm Layer 4 page-engagement audiences Suppression list
Home Max Val Broad (modify) (broad + Advantage+) Suppression list
Home ALC Broad (modify) Home-specific LALs: LAL_US_1pct_Home-Leads_06-11-2026_Fresh + 3% + 5% Suppression list

Plus the Auto ALC overlap fix from the Audience Structure Spec: Auto ALC's targeting must have Detailed Targeting Expansion OFF and Advantage+ Audience OFF. Auto BAU has both ON. This makes the two campaigns structurally distinct so Meta no longer self-limits.


Step 9 — Cleanup (after 72hr stability check)

Once new LAL ladders are deploying at positive ROAS for 3 days:

  1. Delete the 28 orphaned placeholder LALs (all sized 1,000, INACTIVE — bulk select in Audiences filter)
  2. Delete the old stale LAL ladder: - 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
  3. Delete the old stale seed: Custom_Recruiting-Leads_08-05-2025

Don't delete before the new structure has been stable for 72 hours — rolling back is harder once the source data is gone.


What's still missing

1. 30-day form-submitter cooldown list

Anthony Kaylor's delivery only includes ACCEPTED + SOLD leads. The Audience Structure Spec also calls for a 30-day form-submitter cooldown — all users who hit the quote form, regardless of QW outcome. This data lives in FunnelFlux / Iron Corp's funnel database, not in QW.

Email draft for Lauren:

Lauren — for the audience cleanup I'm doing in Ads Manager, I have the QW accepted/sold leads (Anthony Kaylor sent those). I'm also looking to build a 30-day form-submitter suppression list — all users who hit the quote form in the last 30 days, whether or not they ended up accepted by QW.

Is that data accessible from FunnelFlux or wherever your funnel submission events land? Same format as Anthony's exports would be ideal (email + fn + ln + zip + dob + state + country + gender, raw — Meta auto-hashes on upload). Last 30 days rolling window. Want to use this to give recent submitters a cooldown before retargeting them again — prevents wasting impressions on users who just submitted.

If easier I can pull it myself once you point me at the right access. Thanks!

2. Phone numbers (only if match rate <60%)

Email draft for Anthony Kaylor (only send if first match rate comes in below 60%):

Hey Anthony — thanks again for the PII exports. The combined seed matched at [X]% which is below the 60% threshold Meta uses for confident audience targeting. Want to take you up on your offer to pull phone numbers from QW and re-export — based on Meta's docs that should lift match rates by 10-15% which would put us comfortably in the deploy-confidently range.

Same campaign ID filters as last time (Auto: C20188, C32405, C32535, C32533, C31885, C31476, C32381, C31701; Home: C20259, C32454, C31886, C31633). Just add a phone column to the existing schema.

No urgency — first match rate is workable for the immediate build, but the phone-augmented version would help us scale the LAL ladder more confidently. Thanks!

3. Recurring refresh cadence

After this build is live, set a calendar reminder to ask Anthony Kaylor for a fresh export every 30 days. Re-run the prep script, re-upload to Meta (Meta's UI has an "Update audience" flow that preserves the audience ID — just replace the data behind it).


The Python script (for reference)

Lives at /Users/mo/Desktop/military.com/deliverables/audit_2026-06-04/prep_audience_csvs.py.

Re-run anytime by running:

python3 /Users/mo/Desktop/military.com/deliverables/audit_2026-06-04/prep_audience_csvs.py

It auto-creates /Users/mo/Downloads/For FB Audiences/output/ if it doesn't exist and overwrites any prior CSVs.

To use it for the next monthly refresh: 1. Drop the new file into /Users/mo/Downloads/For FB Audiences/ (same naming convention or update the script's MAR_MAY / NOV_FEB constants) 2. Re-run the script 3. Re-upload the resulting CSVs to Meta


Verification (after Step 6)

The audience build is working when:

If Auto ALC utilization doesn't move within 4 days of the build, the constraint isn't audience overlap — investigate other gating factors (bid strategy, optimization event volume, learning phase).


ASSUMPTIONS & OPEN QUESTIONS


← Back to Military.com portal