What Changed?
Before version v23.0, the advantage_audience parameter inside targeting_automation was completely optional. If you left it out of the targeting spec, your ad set would still be valid and go live.
As of v23.0, here's the new rule:
-
The advantage_audience parameter defaults to 1 (opt-in) — unless you explicitly set it to 1 or 0.
-
This only affects new ad sets.
-
Updating existing ad sets? Nothing changes — behavior remains the same across all API versions.
Who's Affected?
All Marketing API partners that work with ad set creation endpoints:
If your integration creates ad sets without explicitly declaring advantage_audience, your setup will now automatically opt in to Advantage+ audiences — depending on the structure of your targeting.
When Does It Default to Opt-In?
You're automatically opted in when:
You use default values for:
-
Age
-
Gender
-
Custom Audience Inclusion
-
Detailed Targeting Inclusion
You apply a relaxed targeting setup, using individual relaxation settings for those same parameters.
When Will You Get an Error?
If your targeting uses non-default settings for any of those fields without using individual relaxation settings, and you don't specify advantage_audience, you'll trigger an error on ad set creation.
In short: the system now expects you to explicitly declare your intent if you're going custom.
What Should You Do?
- Update your API calls now.
- Test all flows that rely on new ad set creation.
- Explicitly set advantage_audience to 0 or 1 to avoid breaking changes.
- Review how Advantage+ audiences are performing across campaign objectives — Meta claims they outperform business-as-usual setups in many cases.