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.
- Source
- Google Ads
- Kind
- Write
- Discovery
- Reachable through
search_toolsandrun_tool - Account parameter
customerId- Endpoint
- https:/
/ mcp. getmcpads. com/ google-ads/ mcp
ParametersLink to this section
| Name | Type | Required | Notes |
|---|---|---|---|
customerId | string | Required | Selected Google Ads customer ID, not the manager account. |
currency | string | Required | Actual account currency, mandatory even when only linking assets. |
operations | array | Required | Ordered 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). |
loginCustomerId | string | Optional | Optional MCC ID; defaults to the selected account's inferred manager. |
testAccountOnly | boolean | Optional | Require Google's customer.test_account=true before any mutation. Use true for acceptance tests. |
validateOnly | boolean | Optional | Ask Google to validate without applying. Takes priority over confirm. |
confirm | boolean | Optional | Apply only when true and expectedPlanHash matches the exact preview. |
expectedPlanHash | string | Optional | SHA-256 planHash from the preview of this exact payload, required for application. |
Calling itLink to this section
{
"name": "run_tool",
"arguments": {
"name": "google_ads_apply_plan",
"args": {
"customerId": "<string>",
"currency": "<string>",
"operations": "<array>"
}
}
}