meta_ads_excluded_placements_set
Replace an ad set's excluded publisher lists, categories, or brand safety content types, preserving geo, audiences, and interests. Reverses via rollback if delivery drops to zero.
Instructions
Sets one ad set's delivery-surface exclusions. Returns ad_set_id, the applied facets, and Meta's update result. Mutating and delivery-affecting — excluding too much can take an ad set to zero delivery. Each supplied facet REPLACES its current value (Meta has no append here); an omitted facet is left untouched. The rest of the targeting spec (geo, audiences, interests) is preserved by a read-modify-write merge. Recorded in STATE.json's action_log with an observation window and reversible via rollback_apply, which restores the prior lists.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ad_set_id | Yes | Ad set ID whose exclusions to read or write (e.g. '23851234567890123'). Exclusions live on the ad set, not on the campaign — set them per ad set. | |
| account_id | No | Ad account ID in 'act_XXXXXXXXXX' form. Optional — falls back to META_ADS_ACCOUNT_ID from the configured credentials. | |
| excluded_publisher_list_ids | No | Complete new value for targeting.excluded_publisher_list_ids — numeric ids of Audience Network publisher block lists to apply. Replaces the current list; an empty array clears the facet. | |
| excluded_publisher_categories | No | Complete new value for targeting.excluded_publisher_categories — Audience Network publisher/app categories to exclude. Replaces the current list rather than appending, so read the current value with meta_ads_excluded_placements_get first and send the full intended set. An empty array clears the facet. | |
| excluded_brand_safety_content_types | No | Complete new value for targeting.excluded_brand_safety_content_types — content types to exclude. Replaces the current list; an empty array clears the facet. |