> ## Documentation Index
> Fetch the complete documentation index at: https://developers.criteo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Performance Report

> POST /reports/performance — flexible campaign performance reporting for Retail Media DSP partners.

This endpoint enables Retail Media DSP partners to request flexible performance reporting across any level of granularity. Provide a scope filter under `filters` to define the data returned — the output granularity is then determined by the dimensions you include in the request.

The endpoint supports asynchronous report generation and provides access to the full set of performance metrics and dimensions, including video, new-to-brand, and keyword data. Submit a request, poll for status, and download the output when ready.

***

## Request

```http theme={null}
POST /2026-07/retail-media/reports/performance
```

### Required fields

`filters` (with exactly one scope filter), `startDate`, `endDate`, `metrics`, and `dimensions` are all required. Requests with no scope filter (or more than one) will return `400 Bad Request`.

| Field                   | Type             | Description                                                                                                     |
| ----------------------- | ---------------- | --------------------------------------------------------------------------------------------------------------- |
| `filters`               | object           | Required. Must contain exactly one of the scope filters below.                                                  |
| `filters.accountIds[]`  | array of strings | Scope the report to all campaigns under this account. Mutually exclusive with `campaignIds` and `lineItemIds`.  |
| `filters.campaignIds[]` | array of strings | Scope the report to all line items under this campaign. Mutually exclusive with `accountIds` and `lineItemIds`. |
| `filters.lineItemIds[]` | array of strings | Scope the report to this line item. Mutually exclusive with `accountIds` and `campaignIds`.                     |
| `startDate`             | string           | Start of the reporting period. ISO 8601 date (`YYYY-MM-DD`).                                                    |
| `endDate`               | string           | End of the reporting period. ISO 8601 date (`YYYY-MM-DD`).                                                      |
| `metrics`               | array of strings | One or more metric names. See [Metrics](#metrics) below.                                                        |
| `dimensions`            | array of strings | One or more dimension names. See [Dimensions](#dimensions) below.                                               |

### Optional fields

| Field                            | Type             | Default        | Description                                                                                     |
| -------------------------------- | ---------------- | -------------- | ----------------------------------------------------------------------------------------------- |
| `timezone`                       | string           | `UTC`          | Timezone for date bucketing. IANA format (e.g. `America/New_York`).                             |
| `format`                         | string           | `json-compact` | Output format: `json`, `json-compact`, `json-newline`, or `csv`.                                |
| `clickAttributionWindow`         | string           | —              | Attribution window for click-based conversions: `none`, `7D`, `14D`, or `30D`.                  |
| `viewAttributionWindow`          | string           | —              | Attribution window for view-based conversions: `none`, `1D`, `7D`, `14D`, or `30D`.             |
| `clickMatchLevel`                | string           | —              | Match level for click attribution.                                                              |
| `viewMatchLevel`                 | string           | —              | Match level for view attribution.                                                               |
| `filters.campaignTypes[]`        | array of strings | —              | Filter by campaign type. Values constrain eligible campaigns and may affect metric eligibility. |
| `filters.salesChannels[]`        | array of strings | —              | Filter by sales channel.                                                                        |
| `filters.mediaTypes[]`           | array of strings | —              | Filter by media type.                                                                           |
| `filters.buyTypes[]`             | array of strings | —              | Filter by buy type.                                                                             |
| `filters.budgetModels[]`         | array of strings | —              | Filter by budget model.                                                                         |
| `filters.activationPlatforms[]`  | array of strings | —              | Filter by activation platform.                                                                  |
| `filters.searchTermTypes[]`      | array of strings | —              | Filter by search term type.                                                                     |
| `filters.searchTermTargetings[]` | array of strings | —              | Filter by search term targeting strategy.                                                       |
| `filters.targetedKeywordTypes[]` | array of strings | —              | Filter by targeted keyword type.                                                                |

### Example request

```http theme={null}
POST /2026-07/retail-media/reports/performance
Authorization: Bearer {token}
Content-Type: application/json

{
  "data": {
    "type": "AsyncPerformanceReport",
    "attributes": {
      "filters": {
        "campaignIds": ["123456"]
      },
      "startDate": "2026-05-01",
      "endDate": "2026-05-07",
      "timezone": "America/New_York",
      "metrics": ["impressions", "clicks", "spend", "roas"],
      "dimensions": ["date", "campaignName", "lineItemName"]
    }
  }
}
```

***

## Response

A successful request returns `200 OK` with a `reportId`. Use this ID to poll for status and retrieve the output.

```json theme={null}
{
  "data": {
    "type": "StatusResponse",
    "id": "3a4f0b7d-f606-47de-8d53-9e1dd8de5b9f",
    "attributes": {
      "status": "pending",
      "rowCount": 0,
      "fileSizeBytes": 0,
      "md5CheckSum": null,
      "createdAt": "2026-05-01T12:00:00Z",
      "expiresAt": null,
      "message": null,
      "id": "3a4f0b7d-f606-47de-8d53-9e1dd8de5b9f"
    }
  }
}
```

Once the report finishes processing, the status response is fully populated:

```json theme={null}
{
  "data": {
    "type": "StatusResponse",
    "id": "3a4f0b7d-f606-47de-8d53-9e1dd8de5b9f",
    "attributes": {
      "status": "success",
      "rowCount": 1520,
      "fileSizeBytes": 84213,
      "md5CheckSum": "b92bf24cd899f172907f8b001b8a5edb",
      "createdAt": "2026-05-01T12:00:00Z",
      "expiresAt": "2026-05-08T12:00:00Z",
      "message": "rows_count=1520",
      "id": "3a4f0b7d-f606-47de-8d53-9e1dd8de5b9f"
    }
  }
}
```

**Poll for status** until `status` is `success` or `failure`:

```http theme={null}
GET /2026-07/retail-media/reports/{reportId}/status
Authorization: Bearer {token}
```

**Download the output** when status is `success`:

```http theme={null}
GET /2026-07/retail-media/reports/{reportId}/output
Authorization: Bearer {token}
```

***

## Metrics

<Note>
  Fields marked **Retailer catalog only** are available only for retailers that provide a product catalog to Criteo. For retailers without a catalog, they are not populated.
</Note>

| Metric                          | Description                                                                                                              |
| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| `impressions`                   | Counted once per ad creative render on a page.                                                                           |
| `clicks`                        | Counted when an ad creative is clicked.                                                                                  |
| `spend`                         | Total media spend. Includes platform fees for Criteo-billed; media only for retailer-billed.                             |
| `roas`                          | Return on ad spend — revenue per unit of currency spent.                                                                 |
| `ctr`                           | Click-through rate: clicks / impressions.                                                                                |
| `cpc`                           | Average cost per click. Sponsored products only.                                                                         |
| `cpm`                           | Average cost per 1,000 impressions. Onsite display only.                                                                 |
| `cpo`                           | Cost per order: spend / attributed orders.                                                                               |
| `attributedSales`               | Sales revenue directly attributed to the campaign per your attribution settings.                                         |
| `attributedUnits`               | Units sold attributed to the campaign. Excludes assisted units.                                                          |
| `attributedOrders`              | Orders attributed per your attribution settings.                                                                         |
| `assistedSales`                 | Revenue from ads that were not the final ad before purchase but contributed to the conversion.                           |
| `assistedUnits`                 | Units sold through assisted conversions. Excluded from `attributedUnits`.                                                |
| `newToBrandAttributedSales`     | Attributed sales from customers who had not purchased from this brand in the prior 12 months. **Retailer catalog only.** |
| `newToBrandAttributedSalesRate` | `newToBrandAttributedSales` / `attributedSales`. **Retailer catalog only.**                                              |
| `newToBrandAttributedUnits`     | Attributed units from new-to-brand customers. **Retailer catalog only.**                                                 |
| `newToBrandAttributedUnitsRate` | `newToBrandAttributedUnits` / `attributedUnits`. **Retailer catalog only.**                                              |
| `frequency`                     | Average number of times the same user saw an impression in the reporting period.                                         |
| `uniqueVisitors`                | Distinct shoppers exposed to an ad in the reporting period.                                                              |
| `winRate`                       | Bids won divided by bids participated. Based on a 25% sample. Sponsored products only.                                   |
| `sampledBidsWon`                | Bids won across auctions. Based on a 25% sample.                                                                         |
| `sampledBidsParticipated`       | Bids participated in auctions. Based on a 25% sample.                                                                    |
| `videosStarted`                 | Count of videos that started playing.                                                                                    |
| `videoStartingRate`             | Percentage of printed videos that started playing.                                                                       |
| `videoViews`                    | Videos meeting the MRC viewability standard (50% visible for 2+ continuous seconds).                                     |
| `videoViewability`              | Percentage of video ads considered viewable per MRC standards.                                                           |
| `videoCompletionRate`           | Percentage of started videos that played to completion.                                                                  |
| `videosPlayedTo25`              | Videos that played at least 25% of their duration.                                                                       |
| `videosPlayedTo50`              | Videos that played at least 50% of their duration.                                                                       |
| `videosPlayedTo75`              | Videos that played at least 75% of their duration.                                                                       |
| `videosPlayedTo100`             | Videos that played to 100% of their duration.                                                                            |
| `videoPlayingRate`              | Average played percentage of a started video.                                                                            |
| `videoMuted`                    | Count of video mute button clicks.                                                                                       |
| `videoUnmuted`                  | Count of video unmute button clicks.                                                                                     |
| `videoPaused`                   | Count of video pause activations.                                                                                        |
| `videoResumed`                  | Count of video resume activations.                                                                                       |
| `videoImpressions`              | Count of video ad impressions.                                                                                           |
| `videoAvgInteractionRate`       | Average interaction rate across video engagements.                                                                       |
| `videoCPC`                      | Average cost per video click.                                                                                            |
| `videoCPCV`                     | Cost per completed video view.                                                                                           |

<Note>
  The `winRate` metric is meaningful only for Sponsored Products campaigns. For accounts that also run other campaign types, include `campaignType` in your `dimensions` (or filter to Sponsored Products) so `winRate` can be attributed to the right campaigns.
</Note>

***

## Dimensions

<Note>
  Fields marked **Retailer catalog only** are available only for retailers that provide a product catalog to Criteo. For retailers without a catalog, they are not populated.
</Note>

| Dimension              | Description                                                                                                                                       |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `date`                 | Date events occurred (`YYYY-MM-DD`).                                                                                                              |
| `hour`                 | Hour events occurred (0–23).                                                                                                                      |
| `accountId`            | Account ID.                                                                                                                                       |
| `accountName`          | Account name.                                                                                                                                     |
| `campaignId`           | Campaign ID.                                                                                                                                      |
| `campaignName`         | Campaign name.                                                                                                                                    |
| `campaignType`         | Campaign type.                                                                                                                                    |
| `lineItemId`           | Line item ID.                                                                                                                                     |
| `lineItemName`         | Line item name.                                                                                                                                   |
| `retailerId`           | Retailer ID where the line item served.                                                                                                           |
| `retailerName`         | Retailer name where the line item served.                                                                                                         |
| `brandId`              | Brand ID of the advertised product. **Retailer catalog only.**                                                                                    |
| `brandName`            | Brand name of the advertised product. **Retailer catalog only.**                                                                                  |
| `productCategory`      | Category of the advertised product. Standardized categories. **Retailer catalog only.**                                                           |
| `productId`            | Advertised product ID. References the Catalogs product ID.                                                                                        |
| `productName`          | Name of the advertised product.                                                                                                                   |
| `salesChannel`         | Purchase channel: `online` or `offline`.                                                                                                          |
| `mediaType`            | Media type of the line item.                                                                                                                      |
| `buyType`              | Buy type of the line item.                                                                                                                        |
| `budgetModel`          | Budget model of the line item.                                                                                                                    |
| `activationPlatform`   | Activation platform of the line item.                                                                                                             |
| `environment`          | Type of environment: `web`, `mobile`, `app`.                                                                                                      |
| `pageType`             | Type of retailer page where the ad rendered: `home`, `search`, `category`, `productDetail`, `merchandising`, `deals`, `checkout`, `confirmation`. |
| `pageCategory`         | Retailer-defined category of the page where ads rendered. **Retailer catalog only.**                                                              |
| `servedCategory`       | Category of the page where the ad was served. Retailer-specific taxonomy. **Retailer catalog only.**                                              |
| `keyword`              | Keyword or phrase used on the search page where the ad rendered.                                                                                  |
| `searchTerm`           | Keyword or phrase searched by the shopper on the retailer site.                                                                                   |
| `searchTermType`       | Match type: `Entered`, `Searched`, or `Null`.                                                                                                     |
| `searchTermTargeting`  | Targeting strategy: `Manual` or `Automatic`.                                                                                                      |
| `creativeId`           | Creative ID. Onsite display only.                                                                                                                 |
| `creativeName`         | Creative name. Onsite display only.                                                                                                               |
| `creativeType`         | Creative type: Commerce Display, Commerce Video, Standard Display, Standard Video. Onsite display only.                                           |
| `creativeTemplateId`   | Creative template ID. Onsite display only.                                                                                                        |
| `creativeTemplateName` | Ad format: Flagship, Showcase, SponsoredProducts, Butterfly, BundleBoost, IAB, DisplayPanel, DigitalShelfTalker, CommerceVideoSpotlight, Custom.  |
| `targetedKeywordType`  | Conquesting strategy: `Conquesting`, `Branded`, `Generic`, or `Unknown`.                                                                          |

***

## Data Retention

This endpoint supports a lookback window of up to **3 years** (36 months). A request with a `startDate` older than that returns `400 Bad Request` — `StartDate cannot be older than 3 years.` Separately, a single report may span at most **100 days** between `startDate` and `endDate`.

***

## Migrating from legacy endpoints

The full legacy → new mapping (all endpoints and every `reportType` value) is documented in the [Analytics Overview — Migrating from the legacy reporting API](/retail-media/docs/demand-side-analytics-overview#migrating-from-the-legacy-reporting-api).
