MMetadata /docs
Docs/Tools/duplicate_negative_keywords_list

duplicate_negative_keywords_list

Duplicate (copy) a negative keyword list from one search channel to the other: Google Ads to Microsoft Ads (Bing), or Microsoft Ads to Google Ads.

Writes search

Creates or changes something in the account. Put it behind whatever review your agent uses.

What it does

Duplicate (copy) a negative keyword list from one search channel to the other:
                Google Ads to Microsoft Ads (Bing), or Microsoft Ads to Google Ads.

                KEYWORDS: duplicate, copy, clone, replicate, negative keywords, Bing, Microsoft Ads, Google Ads

                PURPOSE:
                Users who run the same campaigns on Google and Bing keep the two negative keyword
                libraries in sync by hand. This tool copies an existing negative keyword list to the
                other search channel in one call: the platform reads the source list's keywords,
                adapts match types for the target channel, and creates a new list there.

                WHAT IT DOES (server-side, automatic):
                - Reads every keyword in the source list.
                - Remaps match types for the target: Microsoft Ads does not support BROAD negative
                  keywords, so BROAD (and untyped) keywords become PHRASE when the target is
                  Microsoft Ads. EXACT and PHRASE are kept as-is. Google-bound copies keep all
                  match types unchanged.
                - Creates a NEW list on the target channel. The source list is never modified.

                DRY RUN (preview):
                Call with dryRun=true first when the source list may contain BROAD keywords.
                Nothing is created; the response reports keywordsCopied and broadRemappedToPhrase
                so you can tell the user "N broad keywords will become phrase match on Microsoft"
                and let them confirm. Then repeat the call with dryRun=false to actually create.

                PARAMETERS:
                - sourceListId: Required. The id of the negative keyword list to copy, as returned
                  by list_negative_keywords_list.
                - sourceChannel: Channel the source list lives on. Default GOOGLE_ADS.
                - targetChannel: Channel to create the copy on. Default MICROSOFT_ADS.
                  Must differ from sourceChannel - only cross-channel copies are supported.
                - name: Optional name for the new list. When omitted the platform derives
                  "<source name> (<target>)", e.g. "Competitor Brands (Microsoft)".
                - dryRun: Optional, default false. When true, preview without creating.

                RESPONSE FORMAT:
                {
                  "id": 456,                    // new list id on the target channel; null on dry run
                  "name": "Competitor Brands (Microsoft)",
                  "keywordsCopied": 32,
                  "broadRemappedToPhrase": 5,   // 0 when target is Google Ads
                  "dryRun": false
                }

                WORKFLOW:
                1. Find the source list id with list_negative_keywords_list (or ask the user).
                2. Optional: duplicate_negative_keywords_list(sourceListId=..., dryRun=true) to
                   preview the match-type conversion and confirm with the user.
                3. duplicate_negative_keywords_list(sourceListId=...) to create the copy.
                4. The new list exists on the target channel; attach it to campaigns like any
                   other negative keyword list.

                ERROR CASES:
                - Source list not found (or empty) on the source channel: the platform rejects the
                  copy with a not-found error - re-check the id and sourceChannel.
                - Same source and target channel: rejected; use the platform UI's same-channel
                  duplicate instead.
                - Accounts are capped at 20 negative keyword lists per channel; if the target
                  channel is at the cap the creation fails - delete a list there first.

                EXAMPLES:
                - "Copy my Google negative list to Bing":
                  duplicate_negative_keywords_list(sourceListId=123)
                - Preview first:
                  duplicate_negative_keywords_list(sourceListId=123, dryRun=true)
                - Custom name, Microsoft to Google:
                  duplicate_negative_keywords_list(sourceListId=77, sourceChannel="MICROSOFT_ADS",
                                                   targetChannel="GOOGLE_ADS", name="Brand Safety (Google)")

                RELATED TOOLS:
                - list_negative_keywords_list / get_negative_keywords_list_details: find the source
                  list and inspect its keywords (currently Google Ads only).
                - create_negative_keywords_list: build a brand-new list from scratch instead.

Arguments

ArgumentTypeNotes
sourceListId integer required Id of the negative keyword list to copy, as returned by list_negative_keywords_list.
sourceChannel string Channel the source list lives on. Default GOOGLE_ADS.
one of: GOOGLE_ADS, MICROSOFT_ADS
targetChannel string Channel to create the copy on. Must differ from sourceChannel. Default MICROSOFT_ADS.
one of: GOOGLE_ADS, MICROSOFT_ADS
name string Optional name for the new list. Defaults to "<source name> (<target>)", e.g. "Competitor Brands (Microsoft)".
dryRun boolean When true, preview the copy (keyword count + BROAD-to-PHRASE conversions) without creating the list.

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":"duplicate_negative_keywords_list","arguments":{"sourceListId":0}}}'

Response

No recorded response. This tool writes to the account, 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 search tools:

All 160 tools · machine-readable index