Writes (money-moving)

gads_propose_clone_campaign

Clone a whole proven Search campaign into a NEW market/geo in one atomic proposal: a new PAUSED campaign (own budget + the geo you specify + languages) populated with the source's

Clone a whole proven Search campaign into a NEW market/geo in one atomic proposal: a new PAUSED campaign (own budget + the geo you specify + languages) populated with the source's ad groups — their enabled keywords + strongest live RSA — plus the source's campaign-level negatives ported along. Review-tier: always queues for operator approval. Geo is NEVER copied from the source (the new geo is the point). Reconstructs everything from the warehouse; you name the source campaign, the new name, budget, and target geo. Resolve geo target constant ids with runGaqlQuery on geo_target_constant. After approval + apply, QA and go live with proposeCampaignStatus.

Scope: write token required · money-moving. Every write is dry-run validated, then classified by the safe-apply policy — auto-applied when bounded and low-risk, otherwise queued for approval.

Parameters

ParameterTypeRequiredDescription
sourceCampaignIdstringYes
namestringYes
dailyBudgetMicrosintegerYes
biddingStrategy"MAXIMIZE_CONVERSIONS" | "MAXIMIZE_CONVERSION_VALUE" | "MANUAL_CPC"NoDefaults to the closest supported form of the source campaign's strategy.
targetCpaMicrosintegerNo
targetRoasnumberNo
geoTargetsobject[]Yes
languageConstantIdsstring[]No(default: ["1000"])
adGroupIdsstring[]NoSubset of the source's ad groups to clone. Defaults to ENABLED groups ordered by name (cap 20).
enabledKeywordsOnlybooleanNo(default: true)
includeBestRsabooleanNo(default: true)
searchPartnersbooleanNo(default: false)
containsEuPoliticalAdvertisingbooleanNo(default: false)
reasonstringYes
projectIdstringNoTarget account (project id). Required with an org-scoped token for account-scoped tools — call gads_list_ad_accounts to enumerate accounts. Omit with a project-scoped token.

On this page