Create Demand Gen Campaign
create_demand_gen_campaignCreates a Demand Gen campaign (PAUSED) + a daily budget. Ads/assets are added separately. bid_strategy: MAXIMIZE_CONVERSIONS (default) | MAXIMIZE_CLICKS (for a traffic/click objective — this is what a migrated Video Action campaign wants) | TARGET_CPA (target_cpa required, account currency). A CPC ceiling is NOT accepted on Demand Gen: Google rejects it with OPERATION_NOT_PERMITTED_FOR_CONTEXT on this channel (measured), so there is no cpc_bid_ceiling parameter — the cap only exists on Search/Display. To change the strategy after creation use manage_bidding_strategies.
GEOGRAPHY IS NOT SET HERE AND THE DEFAULT IS EVERY COUNTRY. Demand Gen keeps location and language on the AD GROUP, not the campaign, so this call cannot take them: a campaign created here and enabled without a further step runs worldwide. That happened on a live account — 714 clicks in six hours, one of them from the target continent. After creating the ad group, set the targeting with set_ad_group_targeting(ad_group_id=..., locations=...) and verify it with get_campaign_targeting(ad_group_id=...). Connected TV inventory is also on by default; for a traffic objective exclude it with manage_device_targeting(device='CONNECTED_TV', bid_modifier_pct=-100). confirm=false → dry-run.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| confirm | No | ||
| target_cpa | No | ||
| customer_id | Yes | ||
| bid_strategy | No | MAXIMIZE_CONVERSIONS | |
| daily_budget | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||