remove_offers_from_campaign
Remove offers — Lead Gen forms OR Landing Pages — from one or more channels in an existing campaign.
Destructive campaigns
Deletes, archives, launches or moves budget. Do not give an agent this one without a human gate.
What it does
Remove offers — Lead Gen forms OR Landing Pages — from one or more channels in an existing campaign.
Use this tool to detach a named offer from a channel (e.g. remove "Demo Request Form"
from FACEBOOK, or "Pricing LP" from GOOGLE_ADS). The offer type (Lead Gen vs Landing
Page) and its IDs are resolved internally — you only need the channel type and the
offer name. This is the single offer-removal tool (it replaced the Lead-Gen-only
remove_leadgen_offer_from_campaign).
Works on both campaign structures. On a Channel-First / Native (N×N×N) campaign the
offer is cleared from EVERY WizNativeAdContainer native ad that references it
(leadGenFormId / landingPageId), channel-wide — the ad is kept, and any container
then left with no asset at all is dropped. To remove an offer from only ONE
container/row, use add_and_edit_native_campaign_elements.modify_containers instead.
On Precision/METADATA it uses the legacy per-offer delete.
KEYWORDS: remove, delete, offer, lead gen, landing page, form, channel, campaign
WHEN TO USE:
- User wants to remove a specific offer (Lead Gen form or Landing Page) from a channel
- User wants to clean up offers from one or more channels
- Multiple offers 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_offers: Object mapping channel type → list of offer names to remove
CHANNEL TYPES: FACEBOOK, INSTAGRAM, GOOGLE_ADS, LINKEDIN, MICROSOFT_ADS, REDDIT
EXAMPLES:
Remove a Lead Gen form from FACEBOOK and a Landing Page from GOOGLE_ADS:
remove_offers_from_campaign({
"campaign_id": 42545,
"channel_offers": {
"FACEBOOK": ["Demo Request Form"],
"GOOGLE_ADS": ["Pricing LP"]
}
})
INTEGRATION WITH OTHER TOOLS:
- Use get_campaign_by_wizard_id to inspect current offers 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_offers |
object | required | Map of channel type to list of offer names (Lead Gen form or Landing Page) to remove. Example: {"FACEBOOK": ["Demo Form"], "GOOGLE_ADS": ["Pricing LP"]} |
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_offers_from_campaign","arguments":{"campaign_id":0,"channel_offers":{}}}}'
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 campaigns tools: