meta_ads_excluded_placements_set
Sets an ad set's delivery-surface exclusions by replacing specified facets while preserving other targeting, so you can control Audience Network and brand-safety blocking.
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 |
|---|---|---|---|
| reason | No | Why this change is being made: one or two sentences naming the evidence and the expected effect. Stored in the journal and on the action_log entry this call produces, for the operator and the next session. | |
| approval | No | External approval this change carries out (recorded and shown, never verified) | |
| expected | No | Expected effects [{metric, direction, target?, horizon_days?, primary?}], exactly one primary:true when several; metric cpa/cpc/cpl/cpm/conversions/cvr/ctr/roas/cost/spend/clicks/impressions; direction up/down/hold. | |
| 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. | |
| decision_id | No | A proposed decision this change carries out. | |
| 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. |