Writes (money-moving)

gads_propose_clone_campaign

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

Clone a whole proven Search campaign into a NEW market/geo in one atomic proposal: a new 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, and on approval the clone GOES LIVE and starts spending, because it arrives complete with ad groups and ads. Pass startPaused: true to stage it for QA and enable later with proposeCampaignStatus. 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.

Type: money-moving write. 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)
startPausedbooleanNoStage the clone PAUSED instead of launching it on approval. Default false. A clone arrives complete with ad groups and ads, so live-on-approval means it starts spending immediately — set true when you want a QA pass first. (default: false)
reasonstringYes
projectIdstringNoTarget account (project id) — required on account-scoped tools. Call gads_list_ad_accounts to enumerate accounts.

On this page