How to Exclude Existing Customers From Meta Advantage+ Campaigns
How to exclude existing customers from an Advantage plus shopping campaign now that new campaigns lack the customer budget cap: ad set exclusions, list hygiene and a reporting check.
On this page
To exclude existing customers from an Advantage plus shopping campaign today, add the custom audience that holds your customers as an exclusion on the ad set. The existing customer definition in your ad account settings labels people for reporting, and the budget cap that once acted on that label is not available for new Advantage+ campaigns. Our position, after reading Meta's current developer documentation: the account setting is a measurement input, the ad set exclusion is the control, and most of the effort belongs in the customer list that feeds both.
What Meta means by an existing customer
The "Advantage+ shopping campaigns" exclusion that people look for in account settings is a definition, and Meta leaves the defining to you. The Ad Account reference from Meta for Developers describes the existing_customers field as "The custom audience ids that are used by advertisers to define their existing customers. This definition is primarily used by Automated Shopping Ads." Automated Shopping Ads is the API's name for Advantage+ shopping campaigns. Reporting reads from the same place. The Insights API breakdowns page from Meta describes its user_segment_key breakdown this way: "User segment (ex: new, existing) of Advantage+ Shopping Campaigns (ASC). Existing user is specified by the custom audience in ASC settings."
By that description, anyone missing from those audiences falls outside the existing segment, however many orders they have placed. And in the pages we read, the definition feeds reporting and the legacy budget cap; we found no statement that nominating an audience there withholds ads from it. Meta's Business Help Center pages on the Ads Manager screens did not load for us, so the field names below are the API's and the menu labels are yours to confirm.
The budget cap most walkthroughs still describe
Older advice to exclude existing customers from Advantage shopping campaigns on Facebook points to the existing customer budget cap, which the API calls existing_customer_budget_percentage. The Advantage+ campaign guide from Meta for Developers is direct about its status: "The existing_customer_budget_percentage field is not available for new Advantage+ campaigns." Legacy Advantage+ shopping campaigns that carry the field stay functional until v26.0, the guide says, when they will be paused. The Graph API changelog from Meta lists v26.0 as introduced on July 29, 2026. We have not inspected a legacy campaign since, so we report the pause as Meta's stated plan. If one of those campaigns still sits in your account, the guide says it cannot be migrated through the Marketing API. It has to be opened in Ads Manager, where you are prompted to duplicate it into the new structure.
Where the exclusion goes now
How to exclude audiences from Advantage shopping campaigns on Facebook is covered in that same guide, in a section on replicating the old cap. The recipe uses two ad sets under one campaign budget:
- Build a custom audience that defines your existing customers.
- Set the budget at campaign level with Advantage campaign budget.
- Create an ad set that includes that audience and carries a spend limit (
daily_min_spend_targetanddaily_spend_cap). Meta's instruction for the inclusion: "Make sure this is not a suggestion or relaxed by ensuring thattargeting_relaxation_typesis set to0for custom audiences." - Duplicate the ad set and edit the copy so that it carries a custom audience exclusion for the same people.
- Use the same creative settings in both ad sets.
The guide closes the section with "You have created a new ad campaign with a spending limit on existing customers." Our reading is that a prospecting-only campaign needs just the second ad set, and that the exclusion field is the place for any other custom audience you want kept out, such as subscribers or recent purchasers.
The guide's criteria for advantage_audience_state mention custom audience inclusion, and we found no line covering an ad set that only excludes an audience. After saving, confirm in Ads Manager that the campaign still shows "Advantage+ On".
Audience controls, exclusions and the customer audience are separate settings
In Meta Advantage+ sales campaigns, audience controls, exclusions and the existing customers audience are separate settings in the 2026 documentation, even though they get discussed as one. The table sorts them by where each one lives.
| Setting | Level | What Meta's documentation says |
|---|---|---|
Existing customer definition (existing_customers) | Ad account | Lists the custom audiences that define existing customers; the new and existing reporting segments read from it |
Existing customer budget cap (existing_customer_budget_percentage) | Legacy campaign | Not available for new Advantage+ campaigns; legacy campaigns to be paused with v26.0 |
Custom audience exclusion (excluded_custom_audiences) | Ad set | Keeps the people in that audience out of the ad set |
Audience controls (account_controls) | Ad account | Minimum age and excluded locations for Advantage+ shopping campaigns; since v22.0, an employer exclusion applied to all active campaigns |
The last row comes from the Ad Account reference and the v22.0 changelog that Meta for Developers released on January 21, 2025. That version limited new detailed targeting exclusions to the audience control exclusions set at account level, deprecated custom audiences inside the exclusions field, and left a pointer that still applies: "You can still continue using custom audience exclusions by using the excluded_custom_audiences field instead." We found no account-level setting in these pages that removes a customer audience from every campaign at once.
The exclusion is only as tight as the list
A Meta Advantage plus shopping campaign customer list exclusion in 2026 can only remove the people Meta manages to match. The Customer File Custom Audiences guide from Meta for Developers sets the formatting rules: trim and lowercase emails before SHA256 hashing, strip symbols, letters and leading zeroes from phone numbers, and prefix the country code when no COUNTRY field is sent. It also recommends sending multiple keys per record to increase the match rate. Each upload request takes up to 10,000 records and returns num_invalid_entries, described as "Number of entries sent with incorrect hashing. Those entries did not return a match and are not added to the custom audience." The description adds that this is not an exact number, so read it as an estimate. Timing matters before a launch too: "Changes to your Custom Audiences don't happen immediately and usually take up to 24 hours."
For a match rate check, the Custom Audience reference from Meta offers no percentage that we could find. It flags a weak upload through operation_status code 411, "Low match rate. Low rate of matched people", and it returns approximate_count_lower_bound and approximate_count_upper_bound. Dividing each bound by the number of unique customers you uploaded gives a rough range. The same reference says retention_days on a customer file audience "Defaults to forever, if not specified." Leave it there for an exclusion list, because someone who bought three years ago is still a customer.
Checking the new customer share
The worked example below uses hypothetical figures, and every number in the table is invented for illustration.
| Check (hypothetical store) | Figure |
|---|---|
| Unique customers uploaded (one row each) | 40,000 |
| Invalid entries reported across the upload requests (an estimate) | 1,200 |
| Approximate audience bounds a day later | 22,000 to 25,000 |
| Implied match range | 55% to 62.5% |
| New segment share of purchases in Meta reporting | 86% |
| First-time buyer share in the store's own orders from the campaign | 62% |
The roughly 1,200 invalid rows are a formatting defect to fix before anything else. With a little over half the list matched, a large minority of real customers can still be served prospecting ads, and each one who buys lands outside Meta's existing segment. The 24-point gap between 86% and 62% is that leak made visible: Meta's segment can only be as accurate as the audience behind it, so the store's first-order flag is the number we trust.
Pull the campaign with the user_segment_key breakdown; when the same audience serves as both the definition and the exclusion, spend in the existing segment on the excluded ad set should sit near zero by our logic, and anything else suggests the two settings point at different audiences. Then divide spend by the store's first-time buyers to get new-customer CAC, the figure the exclusion exists to protect. None of this shows that the ads caused those first orders, which is a question for incrementality testing.
What a 2026 setup looks like
Meta Advantage plus shopping campaign audience exclusion best practices changed between 2025 and 2026: v25.0, introduced on February 18, 2026, ended the creation of legacy Advantage+ shopping campaigns through the API, and the cap is withheld from the new structure. Use one customer audience, built from a synced list, for both the account definition and the ad set exclusion, so that reporting and delivery describe the same people. Automate the sync, allow a day before any promotion, and treat invalid entries as defects. Reported ROAS may fall once repeat buyers leave the campaign. We accept that as the cost of a cleaner prospecting number, and our ROAS calculator is a further resource for the break-even arithmetic.
Once the store-side share holds steady, we would scale the budget. If you want help with the list plumbing, it is part of what our paid media team works on. Meta supplies the exclusion field and the reporting segment, and both rest on a list that only the advertiser can keep current.
Sources
- Meta for Developers: Advantage+ Campaign Experience for Sales, App, and Leads
- Meta for Developers: Ad Account reference
- Meta for Developers: Insights API Breakdowns
- Meta for Developers: Customer File Custom Audiences
- Meta for Developers: Custom Audience reference
- Meta for Developers: Graph API changelog (v26.0 introduced July 29, 2026)
- Meta for Developers: Graph API v22.0 changelog (January 21, 2025)
