The Merchant Reports API lets you programmatically retrieve Universal Commerce Protocol (UCP) checkout and conversion performance metrics across Google surfaces, including AI Mode in Search and Gemini. These reports provide the same performance insights available in the Merchant Center UCP analytics dashboard, helping you monitor conversion funnels, completed orders, cart transfers, and product-level engagement.
The Reporting sub-API provides two views for analyzing UCP performance:
UcpAgenticPerformanceView(ucp_agentic_performance_view): Provides account-level conversion funnel, order, cancellation, and cart transfer metrics segmented by date and customer country.UcpAgenticProductPerformanceView(ucp_agentic_product_performance_view): Provides product-level (offer_id) buy button click metrics segmented by date and customer country.
Before you begin
Before querying the UCP performance views, make sure you meet the following requirements:
- Use the
v1alphaendpoint: Send your MCQL queries to thev1alphaaccounts.reports.searchmethod. For details on executing report requests, see the Merchant Reports API Get started. - Supported account types: Both
ucp_agentic_performance_viewanducp_agentic_product_performance_viewsupport leaf accounts (standalone accounts and individual sub-accounts) as well as advanced accounts (multi-client accounts or aggregator accounts). For details and examples, see Query at the advanced account level. - Required date filter: You must specify a condition on
datein theWHEREclause of every query for both views.
Analyze account-level UCP performance
Use ucp_agentic_performance_view to track your overall UCP conversion funnel,
from buy button clicks and account linking to completed purchases and cart
transfers.
Currency and price metrics
ucp_agentic_performance_view handles currency and Price
metrics in the same way as
performance reports:
Pricemetrics: The following metrics return aPriceobject containing both anamount_microsvalue and acurrency_code:purchase_valueaverage_order_valueaverage_purchase_product_valueaverage_cart_valueaverage_cart_product_value
- Non-price metrics: The following metrics don't have an associated
currency:
buy_button_clicksaccounts_linkedaccount_linking_ratepurchase_countcancellationsaverage_purchase_product_countcart_transfersaverage_cart_product_count
- Overall funnel and count metrics (currency-independent): Select only non-price metrics to get aggregate counts independent of currency.
- Purchase and cart value metrics (by currency): Select
Pricemetrics together with their corresponding order and cart counts to analyze revenue and value per currency.
Query 1: Retrieve overall funnel metrics (currency-independent)
Use the following query to retrieve overall conversion funnel, order count, and
cart transfer metrics independent of currency (with no Price value metrics
included):
SELECT
date,
account_id,
customer_country_code,
buy_button_clicks,
accounts_linked,
account_linking_rate,
purchase_count,
cancellations,
average_purchase_product_count,
cart_transfers,
average_cart_product_count
FROM ucp_agentic_performance_view
WHERE date = '2026-09-20'
The response returns aggregated funnel metrics for each customer country:
{
"results": [
{
"ucpAgenticPerformanceView": {
"date": {
"year": 2026,
"month": 9,
"day": 20
},
"accountId": "123456789",
"customerCountryCode": "US",
"buyButtonClicks": "420",
"accountsLinked": "85",
"accountLinkingRate": 0.68,
"purchaseCount": "64",
"cancellations": "3",
"averagePurchaseProductCount": 1.75,
"cartTransfers": "52",
"averageCartProductCount": 2.1
}
}
]
}
Query 2: Retrieve purchase and cart value metrics (by currency)
Use the following query to retrieve purchase values, average order values, and cart transfer values segmented by currency:
SELECT
date,
account_id,
customer_country_code,
purchase_count,
purchase_value,
average_order_value,
average_purchase_product_count,
average_purchase_product_value,
average_cart_value,
average_cart_product_value
FROM ucp_agentic_performance_view
WHERE date = '2026-09-20' AND purchase_count > 0
The response returns a separate row for each currency present in the purchase or cart value metrics:
{
"results": [
{
"ucpAgenticPerformanceView": {
"date": {
"year": 2026,
"month": 9,
"day": 20
},
"accountId": "123456789",
"customerCountryCode": "US",
"purchaseCount": "64",
"purchaseValue": {
"amountMicros": "5120000000",
"currencyCode": "USD"
},
"averageOrderValue": {
"amountMicros": "80000000",
"currencyCode": "USD"
},
"averagePurchaseProductCount": 1.75,
"averagePurchaseProductValue": {
"amountMicros": "45714285",
"currencyCode": "USD"
},
"cartTransfers": "52",
"averageCartValue": {
"amountMicros": "94500000",
"currencyCode": "USD"
},
"averageCartProductCount": 2.1,
"averageCartProductValue": {
"amountMicros": "45000000",
"currencyCode": "USD"
}
}
}
]
}
Analyze product-level UCP performance
Use ucp_agentic_product_performance_view to see which individual products
receive buy button clicks directly from Google surfaces.
Retrieve buy button clicks by product
Use the following query to retrieve product-level buy button clicks for a specific date:
SELECT
date,
account_id,
customer_country_code,
offer_id,
title,
buy_button_clicks
FROM ucp_agentic_product_performance_view
WHERE date = '2026-09-20'
You can also omit date from the SELECT clause to aggregate clicks across a
date range using BETWEEN:
SELECT
account_id,
customer_country_code,
offer_id,
title,
buy_button_clicks
FROM ucp_agentic_product_performance_view
WHERE date BETWEEN '2026-09-01' AND '2026-09-20'
ORDER BY buy_button_clicks DESC
The response returns the aggregated buy button clicks for each matching offer:
{
"results": [
{
"ucpAgenticProductPerformanceView": {
"accountId": "123456789",
"customerCountryCode": "US",
"offerId": "sku-10042",
"title": "Lightweight Running Shoes - Blue / Size 10",
"buyButtonClicks": "38"
}
}
]
}
Query at the advanced account level
You can query both ucp_agentic_performance_view and
ucp_agentic_product_performance_view by specifying an
advanced account
(multi-client account or aggregator account) in the parent parameter of the
accounts.reports.search
request, such as accounts/{advanced_account_id}.
In both views, the account_id column always holds the leaf
Merchant Center account ID (the individual sub-account ID when querying
under an advanced account, or the standalone account ID when querying a
standalone account). When querying at the advanced account level, whether you
include account_id in the SELECT clause determines how the metrics are
grouped:
- Omit
account_id(aggregated at the advanced account level): Whenaccount_idis not selected, the response aggregates metrics across all sub-accounts belonging to the advanced account. - Select
account_id(broken down by sub-account): Whenaccount_idis selected, the response segments the stats by leafaccount_id, returning separate rows for each sub-account under the advanced account.
Retrieve aggregated metrics across an advanced account
To retrieve total UCP funnel metrics rolled up at the advanced account level,
send the request using your advanced account ID as the parent resource and
omit account_id from the SELECT clause:
SELECT
date,
customer_country_code,
buy_button_clicks,
accounts_linked,
account_linking_rate,
purchase_count,
cancellations
FROM ucp_agentic_performance_view
WHERE date = '2026-09-20'
The response returns a single aggregated row per date and customer country across all sub-accounts of the advanced account:
{
"results": [
{
"ucpAgenticPerformanceView": {
"date": {
"year": 2026,
"month": 9,
"day": 20
},
"customerCountryCode": "US",
"buyButtonClicks": "730",
"accountsLinked": "140",
"accountLinkingRate": 0.65,
"purchaseCount": "110",
"cancellations": "5"
}
}
]
}
Retrieve metrics broken down by sub-account
To break down the results by sub-account when querying an advanced account,
include account_id in the SELECT clause:
SELECT
date,
account_id,
customer_country_code,
buy_button_clicks,
accounts_linked,
account_linking_rate,
purchase_count,
cancellations
FROM ucp_agentic_performance_view
WHERE date = '2026-09-20'
Because account_id always holds the leaf account ID, the response returns a
separate row for each sub-account under the advanced account:
{
"results": [
{
"ucpAgenticPerformanceView": {
"date": {
"year": 2026,
"month": 9,
"day": 20
},
"accountId": "123456789",
"customerCountryCode": "US",
"buyButtonClicks": "420",
"accountsLinked": "85",
"accountLinkingRate": 0.68,
"purchaseCount": "64",
"cancellations": "3"
}
},
{
"ucpAgenticPerformanceView": {
"date": {
"year": 2026,
"month": 9,
"day": 20
},
"accountId": "987654321",
"customerCountryCode": "US",
"buyButtonClicks": "310",
"accountsLinked": "55",
"accountLinkingRate": 0.61,
"purchaseCount": "46",
"cancellations": "2"
}
}
]
}