Ad Set Targeting
When Ads Uploader creates new ad sets, they normally inherit the full audience from your source ad set: locations, demographics, custom audiences, exclusions, and interests all carry over unchanged. You can now override a subset of that audience directly in the interface: countries, cities, age range, and gender. Anything you don't override continues to inherit from the source ad set.
This is a beta feature and it is off by default. Enable it under Account > Defaults, using the Show Ad Set Targeting toggle. Once enabled, an Edit Targeting button appears in Ad Set Options whenever your configuration creates new ad sets.
Enabling Targeting Controls
- Go to Account > Defaults
- Turn on Show Ad Set Targeting
- In the uploader, choose any option that creates new ad sets (new ad set, ad set per upload or group, auto-divide, or custom configuration)
- Click Edit Targeting in Ad Set Options
Targeting applies at the build level: the audience you set is used for every new ad set in that launch. It does not modify existing ad sets, and it is not available when you add ads to an existing ad set.
What You Can Set
| Control | Details |
|---|---|
| Countries | Search and add one or more countries. You can also paste a comma or newline separated list. |
| Cities (optional) | Add individual cities with a radius (10-50 miles, or 17-80 km) around each one. |
| Age range (optional) | Opt in with the Set age range checkbox, then pick a minimum and maximum between 13 and 65. The 65 option means 65+. |
| Gender (optional) | Opt in with the Set gender checkbox, then choose All, Men, or Women. |
| Detailed targeting (optional) | Opt in to add interests, behaviors, or employers as a single "any of these" group. |
Age and gender are opt-in on purpose: if you leave the checkboxes off, the new ad sets keep the source ad set's age and gender settings. Selecting All genders explicitly clears a gender restriction inherited from the source ad set.
If you combine countries and cities, Meta treats them as alternatives: adding Austin on top of United States still targets the whole United States. To target only the city, add the city without its country.
Everything else about the audience - custom audiences, exclusions, languages, saved audiences - still comes from the source ad set and cannot be edited in Ads Uploader. To change those, pick a source ad whose ad set already has the audience you want.
Saved Builds
Targeting is part of the build configuration, so Saved Builds keep it: saving, resuming, forking, and handing a build to the CLI or MCP all preserve the countries, cities, age, and gender you set.
CLI and MCP
The same targeting override is available headlessly, with create parity across the web app, CLI, and MCP.
CLI flags on ads create:
ads create --preset 12345 --location US --location CA --age-min 21 --age-max 45 --gender women
| Flag | Description |
|---|---|
--location <ISO> | Target a country by two-letter ISO code. Repeat for multiple countries. |
--age-min <13-65> | Minimum age for new ad sets |
--age-max <13-65> | Maximum age for new ad sets. 65 means 65+. |
--gender <all|men|women> | all clears a gender restriction inherited from the source ad set |
In a JSON spec (and in MCP ads_create calls), use the top-level targeting block:
{
"targeting": {
"countries": ["US", "CA"],
"ageMin": 21,
"ageMax": 45,
"genders": "women"
}
}
Omit the targeting block entirely to inherit the source ad set's audience unchanged; omitted fields inside the block also inherit. City keys and detailed targeting IDs are Meta identifiers - find them with ads targeting:search rather than guessing. See the CLI Full Reference for the complete spec shape, including cities and detailed targeting groups.
Notes
- Targeting overrides only apply to new ad sets. Adding ads to an existing ad set never changes its audience.
- Special Ad Category campaigns (housing, credit, employment, politics) restrict age, gender, and location targeting on Meta's side. See Meta Platform Limits.
- The XLSX route has no targeting columns; targeting there always comes from the source. Use this panel, the CLI, or MCP instead.