gads_propose_create_campaign
Propose a new Search campaign: its own daily budget, the campaign, and its location and language targeting, created together.
Propose a new Search campaign: its own daily budget, the campaign, and its location and language targeting, created together. This records a proposal only: it always waits for a person to approve it, and nothing is created in Google Ads before then. Once approved, the campaign is created enabled (pass startPaused: true to create it paused instead). It has no ad groups or ads yet, so it cannot serve or spend until those are proposed and approved too. An applied create can be reverted, which removes the campaign. Location ids are Google geo target constant ids (2250 = France); a GAQL query on geo_target_constant resolves a place name to its id. Start on MAXIMIZE_CONVERSIONS without a target and add one after about 30 conversions.
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
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Campaign name, as it should read in Google Ads. |
dailyBudgetMicros | integer | Yes | Daily budget in the account's currency, in micros: 1,000,000 micros = 1 unit (50000000 = 50.00 a day). |
biddingStrategy | "MAXIMIZE_CONVERSIONS" | "MAXIMIZE_CONVERSION_VALUE" | "MANUAL_CPC" | No | Bidding strategy. Default MAXIMIZE_CONVERSIONS. (default: "MAXIMIZE_CONVERSIONS") |
targetCpaMicros | integer | No | Optional target cost per conversion, in micros. Leave unset to launch without a target. |
targetRoas | number | No | Optional target return on ad spend as a ratio: 1.4 = 140%. Leave unset to launch without a target. |
geoTargets | object[] | Yes | Locations the campaign targets or excludes. At least one must be targeted. |
languageConstantIds | string[] | No | Google language constant ids. Default 1000 = English. (default: ["1000"]) |
searchPartners | boolean | No | Also serve on Google search partner sites. Default false. (default: false) |
startDate | string | No | Optional first day the campaign may serve, YYYY-MM-DD. |
endDate | string | No | Optional last day the campaign may serve, YYYY-MM-DD. |
startPaused | boolean | No | Create the campaign paused when the approval applies, to enable it later. Default false: approving the proposal is the go-live decision. (default: false) |
reason | string | Yes | Why this change, shown to the approver. |
projectId | string | No | Target account (project id). Optional when exactly one authorized stored account exists. Use gads_list_ad_accounts or gads_get_connection_status to select among multiple accounts. |
gads_propose_create_assets
Create + attach ad assets (extensions) at campaign or account level: sitelinks (2–4 recommended), callouts, structured snippets, price assets (3–8 offerings), promotion assets (per
gads_propose_create_custom_audience
Create a keyword/URL-based CUSTOM SEGMENT (people who searched these terms / browse sites like these).