There are a variety of ways to measure Performance Max retail campaigns based on
your reporting objectives.

## Performance for all retail campaigns

The most basic example is retrieving the performance of all Performance Max
retail campaigns using the methodology of the [All Performance Max campaign
performance example](https://developers.google.com/google-ads/api/performance-max/campaign-reporting#performance-max-campaign-performance). To create a Performance Max retail campaign, you must
populate the [`shopping_setting`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#shopping_setting) field in your campaign with the
[`merchant_id`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign.ShoppingSetting#merchant_id) of your Merchant Center account. Adding the condition
`campaign.shopping_setting.merchant_id IS NOT NULL` to the `WHERE` clause then
filters the result set to include only retail campaigns.

    SELECT
      metrics.impressions,
      metrics.clicks,
      metrics.conversions,
      metrics.cost_micros
    FROM campaign
    WHERE campaign.advertising_channel_type = 'PERFORMANCE_MAX'
      AND campaign.shopping_setting.merchant_id IS NOT NULL
      AND segments.date DURING LAST_30_DAYS

## Campaign performance for a `feed_label`

The [`campaign.shopping_setting.feed_label`](https://developers.google.com/google-ads/api/fields/v26/campaign#campaign.shopping_setting.feed_label) field can be used to target
specific product feeds in your Merchant Center account. You can filter on this
field to get reporting metrics for all campaigns associated with a specific
product feed. For example, the following query demonstrates how to retrieve
metrics for all Performance Max campaigns that target products intended to be
promoted during the winter season.

> [!NOTE]
> **Note:** If you previously used the `sales_country` field to select products for a campaign, you can retrieve metrics for those products by filtering on the [`campaign.shopping_setting.feed_label`](https://developers.google.com/google-ads/api/fields/v26/campaign#campaign.shopping_setting.feed_label) field and setting the operand to a two-letter country code (`XX`).

    SELECT
      metrics.impressions,
      metrics.clicks,
      metrics.conversions,
      metrics.cost_micros
    FROM campaign
    WHERE campaign.advertising_channel_type = 'PERFORMANCE_MAX'
      AND campaign.shopping_setting.merchant_id IS NOT NULL
      AND campaign.shopping_setting.feed_label = 'WINTER-PRODUCTS'
      AND segments.date DURING LAST_30_DAYS

## Retail campaign performance by channel

Available in Google Ads API v23 and later.

To analyze the performance of your Performance Max retail campaigns across
different channels, you can segment by [`segments.ad_using_product_data`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.ad_using_product_data) and
[`segments.ad_network_type`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.ad_network_type). This lets you break down metrics for your
retail campaigns based on where the ads were served, and whether product data
was used in the ad.

    SELECT
      campaign.name,
      segments.ad_network_type,
      segments.ad_using_product_data,
      metrics.impressions,
      metrics.clicks,
      metrics.conversions,
      metrics.cost_micros
    FROM campaign
    WHERE campaign.advertising_channel_type = 'PERFORMANCE_MAX'
      AND campaign.shopping_setting.merchant_id IS NOT NULL
      AND segments.date DURING LAST_30_DAYS
      AND segments.ad_using_product_data = true

## Product performance

You can use the [`shopping_performance_view`](https://developers.google.com/google-ads/api/fields/v26/shopping_performance_view) to retrieve product-level
metrics across all of your Performance Max retail campaigns, as shown in the
following query. Filtering on [`campaign.advertising_channel_type`](https://developers.google.com/google-ads/api/fields/v26/campaign#campaign.advertising_channel_type) limits
the results to Performance Max campaigns, and including
[`segments.product_item_id`](https://developers.google.com/google-ads/api/fields/v26/shopping_performance_view#segments.product_item_id) provides product-level metrics. This implicitly
filters for retail campaigns because non-retail campaigns don't have associated
products.

> [!NOTE]
> **Note:** Starting **June 15, 2026** , the Shopping Performance View includes data from **all Performance Max networks** (such as YouTube, as the Display Network has always been included). You may see a one-time increase in reported metrics for Performance Max campaigns as this extra data is incorporated.

    SELECT
      segments.product_item_id,
      metrics.clicks,
      metrics.cost_micros,
      metrics.impressions,
      metrics.search_budget_lost_impression_share,
      metrics.search_rank_lost_impression_share,
      metrics.search_budget_lost_absolute_top_impression_share,
      metrics.search_rank_lost_absolute_top_impression_share,
      metrics.conversions,
      metrics.all_conversions,
      campaign.advertising_channel_type
    FROM shopping_performance_view
    WHERE campaign.advertising_channel_type = 'PERFORMANCE_MAX'
      AND segments.date DURING LAST_30_DAYS
      AND metrics.clicks > 0
    ORDER BY
      metrics.all_conversions DESC,
      metrics.conversions DESC,
      metrics.clicks DESC,
      metrics.cost_micros DESC,
      metrics.impressions DESC

## Product performance with cart data

Retail advertisers can access relevant sales and profit metrics such as Revenue,
Gross Profit, Gross Profit Margin, and Units sold. These metrics are available
to all advertisers who implement [Conversions with cart data](https://support.google.com/google-ads/answer/9028254) across
Performance Max campaigns and are compatible with the following reports.

- [`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)
- [`customer`](https://developers.google.com/google-ads/api/fields/v26/customer) (Aggregated for all campaigns)
- [`shopping_performance_view`](https://developers.google.com/google-ads/api/fields/v26/shopping_performance_view)

The following cart data metrics can be used in reports, such as the
[`shopping_performance_view`](https://developers.google.com/google-ads/api/fields/v26/shopping_performance_view), for Performance Max for retail campaigns.
[`metrics.average_cart_size`](https://developers.google.com/google-ads/api/fields/v26/shopping_performance_view#metrics.average_cart_size)  
[`metrics.average_order_value_micros`](https://developers.google.com/google-ads/api/fields/v26/shopping_performance_view#metrics.average_order_value_micros)  
[`metrics.cost_of_goods_sold_micros`](https://developers.google.com/google-ads/api/fields/v26/shopping_performance_view#metrics.cost_of_goods_sold_micros)  
[`metrics.cross_sell_cost_of_goods_sold_micros`](https://developers.google.com/google-ads/api/fields/v26/shopping_performance_view#metrics.cross_sell_cost_of_goods_sold_micros)  
[`metrics.cross_sell_gross_profit_micros`](https://developers.google.com/google-ads/api/fields/v26/shopping_performance_view#metrics.cross_sell_gross_profit_micros)  
[`metrics.cross_sell_revenue_micros`](https://developers.google.com/google-ads/api/fields/v26/shopping_performance_view#metrics.cross_sell_revenue_micros)  
[`metrics.cross_sell_units_sold`](https://developers.google.com/google-ads/api/fields/v26/shopping_performance_view#metrics.cross_sell_units_sold)  
[`metrics.gross_profit_margin`](https://developers.google.com/google-ads/api/fields/v26/shopping_performance_view#metrics.gross_profit_margin)  
[`metrics.gross_profit_micros`](https://developers.google.com/google-ads/api/fields/v26/shopping_performance_view#metrics.gross_profit_micros)  
[`metrics.lead_cost_of_goods_sold_micros`](https://developers.google.com/google-ads/api/fields/v26/shopping_performance_view#metrics.lead_cost_of_goods_sold_micros)  
[`metrics.lead_gross_profit_micros`](https://developers.google.com/google-ads/api/fields/v26/shopping_performance_view#metrics.lead_gross_profit_micros)  
[`metrics.lead_revenue_micros`](https://developers.google.com/google-ads/api/fields/v26/shopping_performance_view#metrics.lead_revenue_micros)  
[`metrics.lead_units_sold`](https://developers.google.com/google-ads/api/fields/v26/shopping_performance_view#metrics.lead_units_sold)  
[`metrics.orders`](https://developers.google.com/google-ads/api/fields/v26/shopping_performance_view#metrics.orders)  
[`metrics.revenue_micros`](https://developers.google.com/google-ads/api/fields/v26/shopping_performance_view#metrics.revenue_micros)  
[`metrics.units_sold`](https://developers.google.com/google-ads/api/fields/v26/shopping_performance_view#metrics.units_sold)

> [!NOTE]
> **Note:** Cart data metrics are not available until all conversions have been recorded for the associated products. Queries against the [`shopping_performance_view`](https://developers.google.com/google-ads/api/fields/v26/shopping_performance_view) could take longer to execute for accounts with a large number of products, even with filters applied.

The following example demonstrates how these cart data metrics can be used to
understand product-level performance for Performance Max campaigns in the last
30 days.

    SELECT
      segments.product_item_id,
      segments.product_title,
      metrics.average_cart_size,
      metrics.average_order_value_micros,
      metrics.conversions,
      metrics.conversions_value,
      metrics.gross_profit_micros,
      metrics.gross_profit_margin,
      metrics.revenue_micros,
      metrics.units_sold,
      campaign.advertising_channel_type
    FROM shopping_performance_view
    WHERE campaign.advertising_channel_type = 'PERFORMANCE_MAX'
      AND segments.date DURING LAST_30_DAYS
      AND metrics.conversions > 0
    ORDER BY
      metrics.gross_profit_margin DESC,
      metrics.revenue_micros DESC,
      metrics.conversions_value DESC

## Campaign performance with cart data

Cart data metrics can be used at the campaign level and can be combined with
other performance metrics such as impressions, clicks, and cost.

    SELECT
      campaign.id,
      campaign.name,
      campaign.advertising_channel_type,
      metrics.impressions,
      metrics.clicks,
      metrics.conversions,
      metrics.cost_micros,
      metrics.average_order_value_micros,
      metrics.gross_profit_micros,
      metrics.gross_profit_margin
    FROM campaign
    WHERE campaign.advertising_channel_type = 'PERFORMANCE_MAX'
      AND campaign.shopping_setting.merchant_id IS NOT NULL
      AND segments.date DURING LAST_30_DAYS
    ORDER BY
      metrics.gross_profit_margin DESC,
      metrics.average_order_value_micros DESC,
      metrics.cost_micros DESC,
      metrics.conversions DESC,
      metrics.clicks DESC,
      metrics.impressions DESC

## Campaign performance by asset group and product group

The following example demonstrates how [`asset_group_product_group_view`](https://developers.google.com/google-ads/api/fields/v26/asset_group_product_group_view)
can be used to retrieve performance metrics by [`asset_group`](https://developers.google.com/google-ads/api/fields/v26/asset_group) and
[`asset_group_listing_group_filter`](https://developers.google.com/google-ads/api/fields/v26/asset_group_listing_group_filter). The example segments the results by
product partition tree node for each `asset_group` in the specified campaign.

    SELECT
      asset_group.id,
      asset_group_listing_group_filter.id,
      metrics.impressions,
      metrics.clicks,
      metrics.conversions,
      metrics.cost_micros
    FROM asset_group_product_group_view
    WHERE campaign.id = CAMPAIGN_ID
      AND segments.date DURING LAST_30_DAYS

## Asset group performance by product group

Alternatively, you can use the [`asset_group_product_group_view`](https://developers.google.com/google-ads/api/fields/v26/asset_group_product_group_view) to get
performance metrics by [`asset_group_listing_group_filter`](https://developers.google.com/google-ads/api/fields/v26/asset_group_listing_group_filter) but limit the
results to a single [`asset_group`](https://developers.google.com/google-ads/api/fields/v26/asset_group) by adding an `asset_group` filtering
condition to the `WHERE` clause.

    SELECT
      asset_group_listing_group_filter.id,
      metrics.impressions,
      metrics.clicks,
      metrics.conversions,
      metrics.cost_micros
    FROM asset_group_product_group_view
    WHERE asset_group.id = ASSET_GROUP_ID
      AND segments.date DURING LAST_30_DAYS

## Listing group filter dimension performance

Taking the previous example a step further, you can segment performance metrics
by the [`asset_group_listing_group_filter`](https://developers.google.com/google-ads/api/fields/v26/asset_group_listing_group_filter) dimension. The following example
demonstrates how to retrieve performance metrics by product brand, which is done
by adding
[`asset_group_listing_group_filter.case_value.product_brand.value`](https://developers.google.com/google-ads/api/fields/v26/asset_group_listing_group_filter#asset_group_listing_group_filter.case_value.product_brand.value) to the
`SELECT` clause. This also filters the results to include only
`asset_group_listing_group_filter` entities that have a product brand dimension.

You can perform a similar analysis by replacing
`asset_group_listing_group_filter.case_value.product_brand` with a different
dimension, such as
[`asset_group_listing_group_filter.case_value.product_condition.condition`](https://developers.google.com/google-ads/api/fields/v26/asset_group_listing_group_filter#asset_group_listing_group_filter.case_value.product_condition.condition).

    SELECT
      asset_group_listing_group_filter.case_value.product_brand.value,
      metrics.impressions,
      metrics.clicks,
      metrics.conversions,
      metrics.cost_micros
    FROM asset_group_product_group_view
    WHERE asset_group.id = ASSET_GROUP_ID
      AND segments.date DURING LAST_30_DAYS