Analyze UCP agentic performance (Alpha)

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 v1alpha endpoint: Send your MCQL queries to the v1alpha accounts.reports.search method. For details on executing report requests, see the Merchant Reports API Get started.
  • Supported account types: Both ucp_agentic_performance_view and ucp_agentic_product_performance_view support 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 date in the WHERE clause 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:

  • Price metrics: The following metrics return a Price object containing both an amount_micros value and a currency_code:
    • purchase_value
    • average_order_value
    • average_purchase_product_value
    • average_cart_value
    • average_cart_product_value
  • Non-price metrics: The following metrics don't have an associated currency:
    • buy_button_clicks
    • accounts_linked
    • account_linking_rate
    • purchase_count
    • cancellations
    • average_purchase_product_count
    • cart_transfers
    • average_cart_product_count
  1. Overall funnel and count metrics (currency-independent): Select only non-price metrics to get aggregate counts independent of currency.
  2. Purchase and cart value metrics (by currency): Select Price metrics 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): When account_id is not selected, the response aggregates metrics across all sub-accounts belonging to the advanced account.
  • Select account_id (broken down by sub-account): When account_id is selected, the response segments the stats by leaf account_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"
      }
    }
  ]
}