MMetadata /docs
Docs/Tools/remove_ad_from_campaign

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 ID

Arguments

ArgumentTypeNotes
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.

Other creative tools:

All 160 tools · machine-readable index