# Create Google Ads Performance Max campaign (adsap_google_create_pmax_campaign)

Creates a full Performance Max campaign in one request: budget, campaign, location and language targeting, and one asset group with text plus images you uploaded earlier.

Canonical: https://adsap.ai/docs/tools/adsap_google_create_pmax_campaign
Updated: 2026-09-13

**Platform:** Google Ads · **Read or write:** Write · **Plan:** Early Access · **Consumes a task:** Yes · **Preview supported:** Yes

## What it does

Creates a full Performance Max campaign in one request: budget, campaign, location and language targeting, and one asset group with text plus images you uploaded earlier. The campaign is always created paused. Ask for a preview first: Google validates the whole plan without creating anything.

## Parameters

Descriptions are shortened from the tool schema. Your assistant sees the full text.

| Name | Type | Required | Description |
|---|---|---|---|
| `ad_account_id` | string | Yes | Bare 10-digit Google Ads customer ID (from adsap_google_list_ad_accounts). No dashes, no act_ prefix. |
| `campaign` | object | Yes |  |
| `campaign.name` | string | Yes |  |
| `campaign.daily_budget` | number | Yes | Daily budget in the ACCOUNT CURRENCY as a plain number (e.g. 12.50): NOT micros, NOT cents. |
| `campaign.bidding_strategy` | one of `auto`, `maximize_conversions`, `maximize_conversion_value` | No | Performance Max supports ONLY these two strategies. 'auto' (default) picks maximize_conversions and warns if the account has no conversion tracking. |
| `campaign.target_cpa` | number | No | Optional target cost-per-action in the account currency. Requires bidding_strategy maximize_conversions. |
| `campaign.target_roas` | number | No | Optional target return on ad spend as a multiplier (3.5 = 350%). Requires bidding_strategy maximize_conversion_value. |
| `campaign.final_url_expansion` | boolean | No | Google's default lets PMax send traffic to more relevant pages on your domain. Set false to opt out (traffic only to the asset group's final_url). |
| `campaign.asset_automation` | object | No | Optional per-type opt-in/out of Google's asset automations at create (e.g. \{GENERATE_IMAGE_ENHANCEMENT: 'OPTED_OUT'\} stops Google AI enhancing images). PMax accepts all five types. Absent = Google defaults. |
| `geo` | object | Yes |  |
| `geo.location_ids` | array of string | Yes | Geo target constant ids to TARGET (from adsap_google_search_geo_targets). |
| `geo.negative_location_ids` | array of string | No | Geo target constant ids to EXCLUDE. |
| `language_ids` | array of string | No | Language constant ids (default ['1000'] = English). |
| `asset_group` | object | Yes |  |
| `asset_group.name` | string | Yes |  |
| `asset_group.final_url` | string | Yes |  |
| `asset_group.path1` | string | No | Display-URL path segment (&lt;=15 chars). |
| `asset_group.path2` | string | No | Second path segment (&lt;=15 chars, requires path1). |
| `asset_group.business_name` | string | Yes | Your business name as shown in ads (&lt;=25 characters). |
| `asset_group.headlines` | array of string | Yes | 3-15 unique headlines, each &lt;=30 characters. |
| `asset_group.long_headlines` | array of string | Yes | 1-5 unique long headlines, each &lt;=90 characters. |
| `asset_group.descriptions` | array of string | Yes | 2-5 unique descriptions, each &lt;=90 characters: AT LEAST ONE must be &lt;=60 characters. |
| `asset_group.logo_asset_ids` | array of string | Yes | 1-5 LOGO-eligible image asset ids from adsap_google_upload_asset (1:1, min 128x128). |
| `asset_group.landscape_image_asset_ids` | array | Yes | 1-20 MARKETING_IMAGE-eligible asset ids (1.91:1, min 600x314). |
| `asset_group.square_image_asset_ids` | array | Yes | 1-20 SQUARE_MARKETING_IMAGE-eligible asset ids (1:1, min 300x300). |
| `asset_group.portrait_image_asset_ids` | array | No | Optional PORTRAIT (4:5, min 480x600) asset ids. |
| `asset_group.youtube_video_ids` | array of string | No | Optional YouTube video ids (created as assets inline). Without a video Google may auto-generate one from your other assets. |
| `asset_group.call_to_action` | one of `LEARN_MORE`, `GET_QUOTE`, `APPLY_NOW`, `SIGN_UP`, `CONTACT_US`, `SUBSCRIBE`, `DOWNLOAD`, `BOOK_NOW` and 9 more | No | Optional CTA button; Google automates it when unset. |
| `signals` | object | No |  |
| `signals.search_themes` | array of string | No | Up to 50 keyword-like search themes steering PMax (hints, not targeting). |
| `signals.audience_ids` | array of string | No | Optional Audience resource ids used as signals. |
| `retail` | boolean | No | true = retail PMax: reads the account's ACTIVE Merchant Center link and attaches shopping_setting.merchant_id (fails with a clear error if no active link). |
| `dry_run` | boolean | No | Preview only: the request is validated and the resolved payload returned, nothing is created or changed. |

## Example prompts

- "Preview a Performance Max campaign for my store at 100 dollars a day targeting the US, using the images I uploaded yesterday."
- "Create a retail Performance Max campaign linked to my Merchant Center with these headlines and descriptions."
- "Create the Performance Max campaign we just previewed."

## Notes

The asset group needs 3 to 15 headlines, 1 to 5 long headlines, 2 to 5 descriptions and a business name. It also needs at least one logo, one landscape image and one square image. Retail mode needs an active Merchant Center link.

## Related tools

- [`adsap_google_create_app_campaign`](/tools/adsap_google_create_app_campaign): Create a complete Google App campaign in ONE atomic request: budget, campaign (ALWAYS created PAUSED: activate later with...
- [`adsap_google_create_demand_gen_campaign`](/tools/adsap_google_create_demand_gen_campaign): Create a complete Google Ads Demand Gen campaign (YouTube, Discover, Gmail, Maps and the Google Display Network) in ONE atomic request...
- [`adsap_google_create_display_campaign`](/tools/adsap_google_create_display_campaign): Create a classic standalone Google Display campaign in ONE atomic request: budget, campaign (ALWAYS created PAUSED: activate later with...
- [`adsap_google_create_search_campaign`](/tools/adsap_google_create_search_campaign): Create a complete Google Ads Search campaign in ONE atomic request: budget, campaign (ALWAYS created PAUSED: activate later with...
- [`adsap_google_create_shopping_campaign`](/tools/adsap_google_create_shopping_campaign): Create a complete standard Google Shopping campaign in ONE atomic request: budget, campaign (ALWAYS created PAUSED: activate later with...
- [`adsap_google_list_campaigns`](/tools/adsap_google_list_campaigns): List Google Ads campaigns in a Google Ads account (cache-first; auto-refreshes from Google when the cache is missing or older than 1 hour).

## Guide

Read [Performance Max campaigns](/guides/google-ads/performance-max) for the workflow around this tool, and the [Tool reference](/tools) for every tool.
