Add Extensions to Native-Structure Campaign
add_extensions_to_native_campaignAttach existing library extensions (sitelinks, callouts, etc.) to a native-structure Google Ads / Microsoft Ads campaign, so they actually serve when the campaign launches.
ALSO KNOWN AS: add extension to campaign, attach sitelink, put sitelink on campaign, link extension to campaign, enable extension for campaign
KEYWORDS: add, attach, link, bind, extension, sitelink, callout, campaign, native, native structure, channel first, google ads, microsoft ads, bing
WHY THIS EXISTS: creating an extension only puts it in the account library — it is NOT attached to any campaign and will not serve. This tool performs the binding.
WHEN TO USE:
- "Add our 'Book a Demo' sitelink to campaign X"
- "Attach these callouts to the native search campaign"
- After create_google_sitelink_extension, when the user wants it live on a specific campaign
WHEN NOT TO USE:
- The campaign uses the Precision / METADATA structure — this tool covers native-structure campaigns only and will tell you so. Precision binds extensions per-creative and has no tool yet; direct the user to the platform UI.
- You do not have the extension's internal id → call list_extensions first
- Removing an attachment → use remove_extensions_from_native_campaign
INPUTS (all required):
- campaign_id: wizard campaign id
- channel: GOOGLE_ADS or MICROSOFT_ADS
- extension_ids: internal ids from list_extensions (the `id` field, NOT `externalId`)
BEHAVIOUR: additive — existing attachments are preserved. Safe to re-run; already-attached ids are reported and left alone.
ORDERING CAVEAT: add_and_edit_native_campaign_elements rebuilds the channel's native containers and CLEARS extension attachments. Attach extensions AFTER any native element edits, or re-attach afterwards.
EXAMPLE:
add_extensions_to_native_campaign(campaign_id=8421, channel="GOOGLE_ADS", extension_ids=[551, 552])Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | Search channel. Ad extensions are a search-channel-only concept. | |
| campaign_id | Yes | The wizard campaign id. | |
| extension_ids | Yes | Internal library extension ids from list_extensions. These are the `id` field, NOT `externalId` (the ad platform's own id). |