Skip to content
Get MCP AdsGet MCP Ads, home
Start free

google_ads_apply_plan

Preview, validate and atomically apply a Google Ads v25 build/change plan: campaigns, budgets, ad groups, RSA/Display/Demand Gen ads, image/text/YouTube…

Preview, validate and atomically apply a Google Ads v25 build/change plan: campaigns, budgets, ad groups, RSA/Display/Demand Gen ads, image/text/YouTube assets, PMax asset groups and links, keywords, geographic/language targeting listing groups and conversion action configuration (no conversion event uploads). Native REST camelCase fields; amounts are integer micros of the explicitly stated currency. Supports temporary negative resource IDs for ordered creation in one transaction. No VIDEO campaign creation (Google API restriction), billing, account access changes, customer lists or conversion uploads. New campaigns/groups/ads are always PAUSED. Call first without confirm to inspect the plan and get planHash; validateOnly asks Google without applying; execution requires confirm and the matching expectedPlanHash. Read back results with google_ads_run_gaql. Never retry a creation after an uncertain network result before checking its name/IDs.

Kind
Write
Discovery
Reachable through search_tools and run_tool
Account parameter
customerId
Endpoint
https://mcp.getmcpads.com/google-ads/mcp

ParametersLink to this section

NameTypeRequiredNotes
customerIdstringRequiredSelected Google Ads customer ID, not the manager account.
currencystringRequiredActual account currency, mandatory even when only linking assets.
operationsarrayRequiredOrdered operations. kind is a native MutateOperation field; create/update contains native REST fields; remove is the full owned resource name. Images use imageAsset.data base64 bytes; videos use youtubeVideoAsset.youtubeVideoId (already uploaded on YouTube).
loginCustomerIdstringOptionalOptional MCC ID; defaults to the selected account's inferred manager.
testAccountOnlybooleanOptionalRequire Google's customer.test_account=true before any mutation. Use true for acceptance tests.
validateOnlybooleanOptionalAsk Google to validate without applying. Takes priority over confirm.
confirmbooleanOptionalApply only when true and expectedPlanHash matches the exact preview.
expectedPlanHashstringOptionalSHA-256 planHash from the preview of this exact payload, required for application.

Calling itLink to this section

jsonThrough run_tool, since it is not announced
{
  "name": "run_tool",
  "arguments": {
    "name": "google_ads_apply_plan",
    "args": {
      "customerId": "<string>",
      "currency": "<string>",
      "operations": "<array>"
    }
  }
}
Esc

Type to search