As with other campaign types, you can use [`GoogleAdsService.SearchStream`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService#searchstream)
to retrieve attributes and performance metrics for Performance Max campaigns.
See the [Google Ads API reporting guide](https://developers.google.com/google-ads/api/docs/reporting/overview) to learn about reporting more generally
with the Google Ads API.

Performance Max campaigns use a different structure compared to Search, Display,
and other campaign types. They don't have standard `AdGroup` and `AdGroupAd`
entities. Instead, Performance Max campaigns organize assets and targeting
through [`AssetGroup`](https://developers.google.com/google-ads/api/fields/v26/asset_group) resources. Consequently, querying resources such as
[`ad_group`](https://developers.google.com/google-ads/api/fields/v26/ad_group) or [`ad_group_ad`](https://developers.google.com/google-ads/api/fields/v26/ad_group_ad) won't return any data for your Performance
Max campaigns.

The following table outlines the options for reporting on Performance Max
campaigns organized by objective. Always use the appropriate resources listed in
this table for Performance Max reporting.

| Measurement objective | Associated resources | Examples |
|---|---|---|
| [Campaign level performance and placements](https://developers.google.com/google-ads/api/performance-max/campaign-reporting) | - [`campaign`](https://developers.google.com/google-ads/api/fields/v26/campaign) - [`performance_max_placement_view`](https://developers.google.com/google-ads/api/fields/v26/performance_max_placement_view) | - [All Performance Max campaign performance](https://developers.google.com/google-ads/api/performance-max/campaign-reporting#performance-max-campaign-performance) - [Performance Max campaign performance by channel](https://developers.google.com/google-ads/api/performance-max/campaign-reporting#pmax-campaign-channel-performance) - [Performance Max campaign placements](https://developers.google.com/google-ads/api/performance-max/campaign-reporting#pmax-placements) - [Performance Max campaign feed types](https://developers.google.com/google-ads/api/performance-max/campaign-reporting#pmax-feed-types) |
| [Asset group level performance](https://developers.google.com/google-ads/api/performance-max/asset-group-reporting) | [`asset_group`](https://developers.google.com/google-ads/api/fields/v26/asset_group) | - [Asset group ad strength](https://developers.google.com/google-ads/api/performance-max/asset-group-reporting#asset-group-ad-strength) - [Asset group performance](https://developers.google.com/google-ads/api/performance-max/asset-group-reporting#asset-group-performance) - [Asset group performance by channel](https://developers.google.com/google-ads/api/performance-max/asset-group-reporting#asset-group-channel-performance) - [Recommendations to improve asset group strength](https://developers.google.com/google-ads/api/performance-max/asset-group-reporting#asset-group-strength-recommendations) |
| [Asset performance](https://developers.google.com/google-ads/api/performance-max/asset-reporting#example-query-primary-status) | - [` asset_group_asset `](https://developers.google.com/google-ads/api/fields/v26/asset_group_asset) - [` asset_group_top_combination_view `](https://developers.google.com/google-ads/api/fields/v26/asset_group_top_combination_view) | - [Asset performance with `asset_group_asset`](https://developers.google.com/google-ads/api/performance-max/asset-reporting#example-query-detailed-asset-metrics) - [Top asset combinations](https://developers.google.com/google-ads/api/performance-max/asset-reporting#top-asset-combinations) |
| [Retail campaign performance](https://developers.google.com/google-ads/api/performance-max/retail-reporting#retail-campaign-performance) | - [`asset_group_product_group_view`](https://developers.google.com/google-ads/api/fields/v26/asset_group_product_group_view) - [`campaign`](https://developers.google.com/google-ads/api/fields/v26/campaign) - [`shopping_performance_view`](https://developers.google.com/google-ads/api/fields/v26/shopping_performance_view) - [`shopping_product`](https://developers.google.com/google-ads/api/fields/v26/shopping_product) | - [All retail campaigns performance](https://developers.google.com/google-ads/api/performance-max/retail-reporting#retail-campaign-performance) - [Campaign performance for a `feed_label`](https://developers.google.com/google-ads/api/performance-max/retail-reporting#campaign-feed-label-performance) - [Retail campaign performance by channel](https://developers.google.com/google-ads/api/performance-max/retail-reporting#retail-channel-performance) - [Product performance](https://developers.google.com/google-ads/api/performance-max/retail-reporting#product-performance) - [Product performance with cart data](https://developers.google.com/google-ads/api/performance-max/retail-reporting#product-performance-cart-data) - [Campaign performance with cart data](https://developers.google.com/google-ads/api/performance-max/retail-reporting#campaign-performance-cart-data) - [Campaign performance by asset group and product group](https://developers.google.com/google-ads/api/performance-max/retail-reporting#campaign-performance-asset-product-group) - [Asset group performance by product group](https://developers.google.com/google-ads/api/performance-max/retail-reporting#asset-group-product-performance) - [Listing group filter dimension performance](https://developers.google.com/google-ads/api/performance-max/retail-reporting#listing-group-filter-performance) - [Shopping product performance](https://developers.google.com/google-ads/api/docs/shopping-ads/reporting#shopping-product) |
| [Campaign criterion performance](https://developers.google.com/google-ads/api/performance-max/campaign-criterion-reporting) | [`location_view`](https://developers.google.com/google-ads/api/fields/v26/location_view) | - [Location criterion performance](https://developers.google.com/google-ads/api/performance-max/campaign-criterion-reporting#location-criterion-performance) |
| [Search terms performance](https://developers.google.com/google-ads/api/performance-max/campaign-criterion-reporting#search-terms-performance) | [`campaign_search_term_view`](https://developers.google.com/google-ads/api/fields/v26/campaign_search_term_view) |

## Best practices

We recommend these best practices when reporting on your Performance Max
campaigns in the Google Ads API. These include:

- Using the API efficiently.

- Using [Recommendations](https://developers.google.com/google-ads/api/docs/recommendations) to optimize your campaigns.

- Looking at real-time data and not just historic reporting data.

- Adding as many assets as possible up to the limit for each asset type, and
  then waiting and letting Google Ads optimize for you.