Convert Smart campaigns to PMax campaigns

In v25 (starting in v25.2), you can use the SmartCampaignSettingService.GeneratePMaxDraftCampaign method to convert a Smart campaign to a Performance Max campaign. This method is not available in v24 and earlier.

How conversion works

When you call SmartCampaignSettingService.GeneratePMaxDraftCampaign, the API generates a draft Performance Max campaign based on the configuration of a Smart campaign.

The generated Performance Max draft campaign is initialized with its status set to PAUSED (and its serving eligibility reflected in primary_status). If all feature converters fail validation for the Smart campaign, the request fails with a SmartCampaignError.GENERATE_PMAX_CONVERTERS_FAIL error.

This lets you inspect, modify, and enhance the generated Performance Max campaign, budget, asset group, and assets before you enable the campaign to serve ads. Generating the draft Performance Max campaign does not modify or pause the original Smart campaign, which remains active until you manually pause it.

Request parameters

The GeneratePMaxDraftCampaignRequest message accepts the following fields:

  • resource_name (Required): The resource name of the SmartCampaignSetting to regenerate for the Smart campaign you want to convert, in the following format:

    customers/customer_id/smartCampaignSettings/campaign_id
    
  • validate_only (Optional): If true, the request is validated but not executed. Only validation errors, warnings, or possible conversion issues are returned in the response's validated_info field without creating draft entities.

  • gbp_enabled (Not supported): Optional. Whether to convert the Google Business Profile (GBP) location linked with the Performance Max campaign. Leave this field unset or false; setting it to true is not implemented in v25 and returns a SmartCampaignError.GBP_ENABLED_GENERATE_PMAX_NOT_SUPPORTED error.

  • image_enabled (Not supported): Optional. Whether to generate required Performance Max campaign images (such as horizontal, square, and logo image types). Leave this field unset or false; setting it to true is not implemented in v25 and returns a SmartCampaignError.IMAGE_ENABLED_GENERATE_PMAX_NOT_SUPPORTED error.

Response details

The GeneratePMaxDraftCampaignResponse message returns the resource names of the generated Performance Max draft campaign and its associated entities:

  • pmax_campaign: The Campaign resource name of the generated draft Performance Max campaign.
  • campaign_budget: The CampaignBudget resource name linked to the generated Performance Max campaign.
  • asset_group: The AssetGroup resource name linked to the generated Performance Max campaign.
  • assets: A list of Asset resource names linked to the generated Performance Max campaign.
  • validated_info: Validation information or possible conversion issues returned by the conversion check (populated both when validate_only is set to true and alongside the generated entity resource names when validate_only is false).

To convert a Smart campaign, use the following workflow:

  1. Generate the draft campaign: Call SmartCampaignSettingService.GeneratePMaxDraftCampaign with only the required resource_name set (leave gbp_enabled and image_enabled unset or set to false). Save the returned pmax_campaign, campaign_budget, asset_group, and assets resource names.
  2. Review and customize the campaign: Because the draft Performance Max campaign is created with status = PAUSED, inspect and configure its budget, asset group, and assets.
  3. Enable the campaign and pause the original: When you are ready to serve ads, update the Performance Max campaign's status to ENABLED, then update the original Smart campaign's status to PAUSED to prevent duplicate serving.