remove_ad_from_campaign
Remove specific ads (ad groups) from one or more channels in an existing campaign.
Destructive creative
Deletes, archives, launches or moves budget. Do not give an agent this one without a human gate.
What it does
Remove specific ads (ad groups) from one or more channels in an existing campaign.
Use this tool when you need to detach a named ad from a particular channel
(e.g. remove "Pixel Ads in Minutes_v2_LI" from LINKEDIN).
Channel and ad group IDs are resolved internally — you only need the
human-readable channel type and ad name.
Works on both campaign structures. On a Channel-First / Native (N×N×N) campaign the
ad is removed from its WizNativeAdContainer's native ads (resolved by ad name via the
ads library); any container then left with no asset at all is dropped.
KEYWORDS: remove, delete, ad, creative, ad group, channel, campaign
WHEN TO USE:
- User wants to remove a specific ad from a channel
- User wants to clean up ad groups from one or more channels
- Multiple ads across multiple channels can be removed in a single call
RESPONSE:
- Returns the refreshed campaign state plus a removal_results list with one
entry per requested removal recording its success or error. ALWAYS check
removal_results — a partial failure (e.g. one of two names not found) still
returns normally, so report only what actually came back successful.
REQUIRED PARAMETERS:
- campaign_id: Campaign ID (numeric identifier)
- channel_ads: Object mapping channel type → list of ad names to remove
CHANNEL TYPES: FACEBOOK, INSTAGRAM, GOOGLE_ADS, LINKEDIN, MICROSOFT_ADS, REDDIT, TWITTER
EXAMPLES:
Remove one ad from LINKEDIN:
remove_ad_from_campaign({
"campaign_id": 42546,
"channel_ads": {
"LINKEDIN": ["Pixel Ads in Minutes_v2_LI"]
}
})
Remove ads from multiple channels at once:
remove_ad_from_campaign({
"campaign_id": 42546,
"channel_ads": {
"LINKEDIN": ["Ad A", "Ad B"],
"FACEBOOK": ["Ad C"]
}
})
INTEGRATION WITH OTHER TOOLS:
- Use get_campaign_by_wizard_id to inspect current ads per channel before removing
- Use search_campaigns_by_names to find the campaign IDArguments
| Argument | Type | Notes | |
|---|---|---|---|
campaign_id |
integer | required | The unique identifier of the campaign |
channel_ads |
object | required | Map of channel type to list of ad names to remove. Example: {"LINKEDIN": ["Ad A"], "FACEBOOK": ["Ad B"]} |
Request
curl
curl -s -X POST https://mcp-server.metadata.io/mcp \
-H "Authorization: $METADATA_PAT" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "MCP-Protocol-Version: 2025-11-25" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"remove_ad_from_campaign","arguments":{"campaign_id":0,"channel_ads":{}}}}'
Response
No recorded response. This tool can delete, archive, launch or move budget, so it is never executed to build these docs.
The request above is still the exact shape to send. Nothing on this page is invented.
Related
Other creative tools: