Page Summary
-
Google Ads Service allows retrieving product status and performance data for Shopping products using
SearchStream. -
Four dedicated reports are available for campaigns supporting products: Shopping Performance View, Product Group View, Asset Group Product Group View, and Shopping Product.
-
Shopping Performance View provides historical product performance data, while Shopping Product provides the current product state and can identify issues preventing ad serving.
-
Product Group View offers aggregated reporting statistics for Shopping listing groups.
-
Retail advertisers can access various sales and profit metrics using cart data, available in reports like
shopping_performance_viewandcampaign.
As with other ad types, you can use GoogleAdsService.SearchStream to
retrieve product status and performance data for Shopping products.
Campaigns that support products from a Google Merchant Center feed have the following dedicated reports:
- Shopping Performance View
- Product Group View
- Asset Group Product Group View
- Shopping Product
- Cart Data Sales View (available in v24 and later)
The Shopping Performance View
The Shopping Performance View provides aggregated historical reporting
statistics for products by attributes such as product_item_id.
It supports all campaign types that utilize product feeds from Google Merchant Center, including Shopping, Performance Max, Demand Gen, Video, App, and Display campaigns.
The Shopping Performance View captures the state of the product at the time the
relevant metrics were recorded. This includes segments such as
product_title, which might have changed since the metric was recorded.
shopping_performance_view also supports the following segments and metrics:
segments.ad_sub_network_type(also supported inproduct_group_viewandasset_group_product_group_view).- Conversion-date segmented metrics:
metrics.conversions_by_conversion_date,metrics.all_conversions_by_conversion_date,metrics.conversions_value_by_conversion_date,metrics.all_conversions_value_by_conversion_date,metrics.value_per_conversions_by_conversion_date, andmetrics.value_per_all_conversions_by_conversion_date. - Competitive impression share metrics:
metrics.search_budget_lost_impression_share,metrics.search_rank_lost_impression_share,metrics.search_budget_lost_absolute_top_impression_share, andmetrics.search_rank_lost_absolute_top_impression_share. - Available in v24 and later: The
segments.conversion_attribution_event_typesegment and themetrics.all_*cart data metrics (which report cart data across all conversions, including non-biddable conversions).
Here is an example query that retrieves impressions, clicks, cost, conversions,
and all conversions for products by product_item_id with clicks in the last 30
days (sorted in descending order by all conversions, then conversions, then
clicks, then cost, then impressions):
SELECT
segments.product_item_id,
metrics.clicks,
metrics.cost_micros,
metrics.impressions,
metrics.conversions,
metrics.all_conversions
FROM shopping_performance_view
WHERE 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
Attribution logic for product reporting
Product-level reports use a specific attribution framework to credit performance to individual products when multiple products appear in a single ad.
Financial metrics
Financial metrics, such as metrics.cost_micros and metrics.conversions, are
calculated to ensure their sum across all products doesn't exceed the
campaign-level reports.
- Direct interactions
- When user intent is clear and tied to a single product (such as a click directly on a product), 100% of the associated cost and conversion credit is attributed to that specific product.
- Indirect interactions
- When user intent is directed at the ad as a whole (for example, if the user clicks a headline, Call-to-Action button, or a video), the associated cost and conversion credit is distributed uniformly across all products served in that particular ad.
Interaction metrics
Interaction metrics, such as metrics.impressions and metrics.clicks, measure
product-specific engagement.
For impressions, the count is incremented for every product included in the ad when the event occurs, regardless of whether the product was visible in the user's viewport. Because of this, the sum of impressions across all products in a report may be significantly higher than the corresponding campaign-level totals.
Conversely, metrics.clicks only measures clicks that occurred on that
specific product. In the Google Ads UI, the metrics.clicks field is explicitly
labeled as Product Clicks.
Product Group View
The Product Group View provides aggregated reporting statistics for Shopping listing groups (referred to as product groups in the UI). See the Performance Max reporting guide for Asset Group Product Group View examples.
Here is an example query that retrieves impressions, clicks, conversions, and all conversions for Shopping listing groups by campaign with impressions in the last 30 days (sorted in descending order by all conversions, then conversions, then clicks, then impressions):
SELECT
campaign.name,
metrics.impressions,
metrics.clicks,
metrics.conversions,
metrics.all_conversions
FROM product_group_view
WHERE segments.date DURING LAST_30_DAYS
AND metrics.impressions > 0
ORDER BY
metrics.all_conversions DESC,
metrics.conversions DESC,
metrics.clicks DESC,
metrics.impressions DESC
The Shopping Product report
The Shopping Product report provides the attributes and reporting
statistics for products that exist in Google Merchant Center accounts linked to
the Google Ads account. This report can be used to inspect statistics at a
customer, campaign, and ad group level. It supports Shopping, Performance Max,
Demand Gen, Video, and (in v24 and later) App campaigns. You can also query
shopping_product.product_image_uri to retrieve the URI of the product
image provided by the merchant.
Here is an example query that retrieves impressions, clicks, conversions, and all conversions for the last 30 days (sorted in descending order by all conversions, then conversions, then clicks, then impressions) for all Shopping products from all linked Google Merchant Center accounts:
SELECT
shopping_product.resource_name,
shopping_product.item_id,
shopping_product.feed_label,
shopping_product.merchant_center_id,
metrics.clicks,
metrics.impressions,
metrics.conversions,
metrics.all_conversions
FROM shopping_product
WHERE segments.date DURING LAST_30_DAYS
ORDER BY
metrics.all_conversions DESC,
metrics.conversions DESC,
metrics.clicks DESC,
metrics.impressions DESC
See the Reporting guide for more details on queries.
Performance considerations
The Shopping Product report can return a significant amount of data when an account is linked to a large number of products. The following recommendations can assist with improving the performance of your GAQL queries:
- Queries at the campaign and ad group level are usually quicker than those at the account level, as they are likely to contain fewer products and require access to less data.
- The more fields and metrics in the
SELECTclause, the slower the response time. Select only the fields and metrics you require in the query. - Products with one or more issues return more data. You can filter by
shopping_product.statusin theWHEREclause to understand which products are likely to return issues that have caused the relevant status.
Common use cases for the Shopping Product report
The Shopping Product report provides flexible access to product information for campaigns that utilize product feeds. It can give you insights into the status of products from Google Merchant Center accounts, as well as ads-specific information such as performance metrics and issues that are preventing products from serving ads.
This section covers some typical use cases similar to those possible in the Products view in the Google Ads UI.
The issues field for shopping_product is similar to ProductStatus in
the Merchant API, with the addition of issues that are specific to Google Ads.
To check if the issue needs to be solved in Google Merchant Center or Google
Ads, first check the shopping_product.issues.documentation field of the
response, which includes a Help Center article to assist.
Product statuses (Account level)
Specifying the report without filters for campaign or ad group returns all products at the account level.
It supports metrics, status, and issues from all campaigns in the account of type:
- Shopping
- Performance Max
This query lets you see the status of the product, for example NOT_ELIGIBLE,
and a list of issues specific to the product that have resulted in the given
status:
SELECT
shopping_product.resource_name,
shopping_product.merchant_center_id,
shopping_product.channel,
shopping_product.language_code,
shopping_product.feed_label,
shopping_product.item_id,
shopping_product.status,
shopping_product.issues
FROM shopping_product
Product statuses (Campaign level)
Specifying the report with a campaign resource as part of the WHERE clause
returns all products included in the selected campaign.
It is supported by the following campaign types that can utilize product feeds:
- Shopping
- Performance Max
- Demand Gen
- Video
- App (available in v24 and later)
This query lets you see the status of each product included in a given campaign, including the issues that are causing the status. For example, a paused campaign affects the product status:
SELECT
shopping_product.resource_name,
shopping_product.campaign,
campaign.name,
shopping_product.merchant_center_id,
shopping_product.channel,
shopping_product.language_code,
shopping_product.feed_label,
shopping_product.item_id,
shopping_product.status,
shopping_product.issues
FROM shopping_product
WHERE
shopping_product.campaign = 'customers/<CUSTOMER_ID>/campaigns/<CAMPAIGN_ID>'
Product statuses (Ad group level)
Specifying the report with both an ad group resource and a campaign resource
as part of the WHERE clause returns all products included in the selected
campaign. The metrics, status, and issues of the product reflect whether it is
included or excluded from the selected ad group.
It is supported by the following campaign types:
- Shopping
- Demand Gen
- Video
- App (available in v24 and later; supports
impressions,clicks, andctrmetrics only, and does not supportstatusorissues)
This query lets you see the status of the product with respect to that ad group. It lets you confirm product group filters (at the ad group level) are being applied correctly and check the status of each product:
SELECT
shopping_product.resource_name,
shopping_product.campaign,
campaign.name,
shopping_product.ad_group,
ad_group.name,
shopping_product.merchant_center_id,
shopping_product.channel,
shopping_product.language_code,
shopping_product.feed_label,
shopping_product.item_id,
shopping_product.status,
shopping_product.issues
FROM shopping_product
WHERE
shopping_product.campaign = 'customers/<CUSTOMER_ID>/campaigns/<CAMPAIGN_ID>'
AND shopping_product.ad_group =
'customers/<CUSTOMER_ID>/adGroups/<AD_GROUP_ID>'
Product metrics, filtered by date (Account level)
Specifying the report with a date or date range in the WHERE clause returns
metrics for all products at the account level for the specified time period,
regardless of whether the metrics are non-zero.
You cannot select segments.date; doing so results in an
UNSUPPORTED_DATE_SEGMENTATION error.
This query lets you see the performance of each product for a given day or other compatible date range, aggregated across all campaigns:
SELECT
shopping_product.resource_name,
shopping_product.merchant_center_id,
shopping_product.channel,
shopping_product.language_code,
shopping_product.feed_label,
shopping_product.item_id,
metrics.clicks,
metrics.impressions,
metrics.cost_micros
FROM shopping_product
WHERE
segments.date DURING LAST_30_DAYS
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 across Shopping campaigns and are compatible with the following reports:
ad_groupad_group_adcampaigncart_data_sales_view(available in v24 and later)customer(Aggregated for all campaigns)product_group_viewshopping_performance_viewshopping_product(formetrics.all_*cart data metrics in v24 and later)
The following cart data metrics can be used in reports, such as the
shopping_performance_view, for Shopping campaigns:
metrics.average_cart_sizemetrics.average_order_value_microsmetrics.cost_of_goods_sold_microsmetrics.cross_sell_cost_of_goods_sold_microsmetrics.cross_sell_gross_profit_microsmetrics.cross_sell_revenue_microsmetrics.cross_sell_units_soldmetrics.gross_profit_marginmetrics.gross_profit_microsmetrics.lead_cost_of_goods_sold_microsmetrics.lead_gross_profit_microsmetrics.lead_revenue_microsmetrics.lead_units_soldmetrics.ordersmetrics.revenue_microsmetrics.units_sold
In v24 and later, the following cart data metrics are also available to report across all conversions (including non-biddable conversions):
metrics.all_average_cart_sizemetrics.all_average_order_value_microsmetrics.all_cost_of_goods_sold_microsmetrics.all_cross_sell_cost_of_goods_sold_microsmetrics.all_cross_sell_gross_profit_microsmetrics.all_cross_sell_revenue_microsmetrics.all_cross_sell_units_soldmetrics.all_gross_profit_marginmetrics.all_gross_profit_microsmetrics.all_lead_cost_of_goods_sold_microsmetrics.all_lead_gross_profit_microsmetrics.all_lead_revenue_microsmetrics.all_lead_units_soldmetrics.all_ordersmetrics.all_revenue_microsmetrics.all_units_sold
The following example shows how cart data metrics can be used to analyze product-level performance for Shopping 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 = 'SHOPPING'
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 = 'SHOPPING'
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