Reporting, optimization, and troubleshooting

As with other campaign types, you can use GoogleAdsService.SearchStream to retrieve attributes and performance metrics for Performance Max campaigns.

SELECT
  campaign.id,
  campaign.url_expansion_opt_out,
  campaign.status,
  campaign.bidding_strategy_type,
  metrics.clicks,
  metrics.cost_micros,
  metrics.impressions,
  metrics.conversions,
  metrics.all_conversions
FROM campaign
WHERE campaign.advertising_channel_type = 'PERFORMANCE_MAX'
  AND metrics.clicks > 0

Asset and asset group reporting

In addition to campaign reporting, reporting is available for asset_group and asset_group_asset resources linked to your Performance Max campaigns.

On the asset_group resource, the ad_strength field indicates the relevance and range of your ad creative combinations. Having more relevant and unique content can help you get the right ad in front of your customers and improve your ad's performance.

SELECT
  asset_group.id,
  asset_group.ad_strength
FROM asset_group
WHERE asset_group.status = 'ENABLED'

On the asset_group_asset resource, the performance_label field ranks the asset against other assets of the same type. For more details, see About asset reporting in Performance Max.

SELECT
  asset_group_asset.asset,
  asset_group_asset.performance_label,
  asset_group_asset.status
FROM asset_group_asset
WHERE asset_group_asset.asset_group = ASSET_GROUP
  AND asset_group_asset.status != 'REMOVED'

Campaign criterion reporting

Campaign criterion reports are only populated for supported criterion types, which you can find in the Performance Max guide for creating campaign criteria. For example, Performance Max location criteria data can be found in the location_view report:

SELECT
  campaign.id,
  campaign.name,
  metrics.clicks,
  metrics.impressions,
  campaign_criterion.location.geo_target_constant
FROM location_view
WHERE campaign.status != 'REMOVED'

Campaign optimization

For the different business objectives that can be achieved through Performance Max campaigns, check out our optimization tips for Performance Max. These tips are equally applicable to Performance Max campaigns created by the Google Ads API.

Campaign issues

If your Performance Max campaign isn't performing as expected, it may be due to specific problems with your ads, bidding, targeting, conversion tracking, or campaign settings. See Performance Max campaign setup issues for troubleshooting steps.

Conversion values from new customer acquisition goal

Reported conversion values will be higher than those you manually upload if you've set up new customer acquisition in your Performance Max or Search campaigns. If you've selected New Customer Value mode (Bid higher), your all-new-customer lifetime value is added to your conversion action's conversion value. The all-new-customer lifetime value is currently available only through the UI.

If you need to calculate conversion values omitting the all-new-customer lifetime value, refer to the following pseudo code. The all-new-customer lifetime value can be downloaded from the UI.

nonNewCustomerAcquisitionConversionValueTotal = 0;
// For each campaign that has that conversion...
for (campaign in campaigns) {
  // If the new customer acquisition value is 'Bid higher', then subtract.
  if (bidHigher == true) {
    nonNewCustomerAcquisitionConversionValueTotal += campaign.allConversionsValue - campaign.allNewCustomerLifetimeValue;
  }
  // If the new customer acquisition value is 'Only bid' or not set, then do not subtract.
  else {
    nonNewCustomerAcquisitionConversionValueTotal += campaign.allConversionsValue;
  }
}