---
title: "Daily GMV Max campaign metrics"
method: GET
path: "/gmv-max/campaigns/{campaign_id}/metrics"
tags: ["GMV Max"]
---

# Daily GMV Max campaign metrics

`GET /gmv-max/campaigns/{campaign_id}/metrics`

## Request

- Base URL: `https://api.reacherapp.com/public/v1`
- URL: `https://api.reacherapp.com/public/v1/gmv-max/campaigns/{campaign_id}/metrics`
- Auth: API key in header `x-api-key` and API key in header `x-shop-id`

Daily performance metrics (spend, impressions, clicks, orders, gross_revenue, ROAS, CPC, CPM, CTR) for one campaign over a date range. Date range may not exceed 90 days (inclusive). Defaults to the last 30 days. Multi-shop is supported — when multiple shops are addressed via `x-shop-id` (a comma-separated list or `all`), the campaign's owning shop is resolved automatically and metrics are returned for that shop.

## Path parameters

- `campaign_id` string, required

## Query parameters

- `start_date` string, date, nullable
- `end_date` string, date, nullable

## Response `200`

Successful Response

- GmvMaxCampaignMetricsResponse
  - `campaign_id` string, required
  - `shop_id` integer, required
  - `data` GmvMaxCampaignMetricItem[], required
    - `date` string, required: ISO 8601 date (YYYY-MM-DD) for this metric row.
    - `spend` number, nullable
    - `impressions` integer, nullable
    - `clicks` integer, nullable
    - `orders` integer, nullable
    - `gross_revenue` number, nullable
    - `cpc` number, nullable
    - `cpm` number, nullable
    - `ctr` number, nullable
    - `roas` number, nullable: GMV Max ROAS for this day, computed by Reacher's sync as gross_revenue / spend (rounded to 4dp). At this grain this equals `ad_roi`.
    - `ad_roi` number, nullable: Ad ROI = gross_revenue (GMV) / spend (GMV Max spend) for this day, computed directly from this row and rounded to 4dp. Null when spend is 0 or missing (no divide-by-zero). Explicitly named for discoverability (CORE-6538); at the campaign-daily grain it is the same figure as `roas` — use whichever name is clearer. Distinct from a manual GMV/spend done against a different GMV source: both numerator and denominator here are the campaign's own GMV Max attributed values.
  - `start_date` string, required
  - `end_date` string, required
  - `currency` string, required

## Other responses

- `422`: Validation Error

## Changes

> 76 revisions in range; 1 not diffed.

- **2026-09-19** `291230805105`: 1 info
  - api operation id `campaign_metrics_gmv_max_campaigns__campaign_id__metrics_get` removed and replaced with `gmv_max_campaign_metrics`

[Operation history](https://skmtc.dev/reacherapp/apis/reacher-data-api/changes/gmv-max/campaigns/:campaign_id/metrics/get.md)

---

[API](https://skmtc.dev/reacherapp/apis/reacher-data-api.md) - [All operations](https://skmtc.dev/reacherapp/apis/reacher-data-api/llms.txt) - [OpenAPI document](https://skmtc.dev/reacherapp/apis/reacher-data-api/revisions/63ce74b30b5a?raw)
