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

# Data reference

> Metrics, breakdowns, refresh cadence, and limits for the The Trade Desk data source in Adriel.

## Introduction

The Trade Desk (TTD) is a leading demand-side platform (DSP) for programmatic display, video, audio, native, and connected TV (CTV) advertising. This connector uses the TTD GraphQL API to fetch campaign and ad-set performance.

Ad-level (creative) data and custom conversions are not available through this connector's GraphQL query path. For ad-level analysis and custom conversion events, use the companion The Trade Desk MyReport connector instead.

As a marketing connector, metrics, breakdowns, and currencies are standardized so widgets can aggregate across sources without additional configuration.

<Note>
  The Trade Desk connector is currently in **beta**.
</Note>

To connect this data source, see [How to connect The Trade Desk to Adriel](/data-sources/o-z/the-trade-desk/how-to-connect).

## Data refresh strategy

### Architecture data

Architecture covers ad accounts, campaigns, and ad sets. It refreshes twice daily at **4:00 PM UTC** and **5:00 AM UTC**.

### Reports data

Reports include daily performance metrics for ad accounts, campaigns, and ad sets.

**Real-time.** Report data is fetched from The Trade Desk on demand when a dashboard loads, so the latest values are always visible. On top of that, scheduled background syncs keep historical data consistent across multiple time windows.

**Refresh schedule.** Reports refresh on three overlapping schedules, each covering ad account, campaign, and ad set:

* **5:00 PM UTC daily** — syncs the last **9 days**
* **11:40 PM and 6:40 AM UTC daily** — syncs the last **3 days**
* **7:30 AM UTC on the 1st and 15th of each month** — syncs the last **30 days**

## Architecture levels

Ad account (advertiser) → Campaign → Ad group (ad set)

Ad-level reporting is not exposed by the TTD GraphQL API.

## Date range limits

Historical data can be fetched for at most **365 days** in the past. This is a cap set by the Adriel connector, not a TTD API restriction: the connector does not fetch data older than one year, so requests outside this window return no data.

## Metrics

<Note>
  **How to read the columns**
  **Data type** uses this vocabulary: Number, Currency, Percentage, Ratio, Duration, Date, Text, URL, Array, Boolean.
  **API Key** in code style like `metrics.clicks` is the literal TTD GraphQL field name. *Italic text* describes how a value is produced when it doesn't map cleanly to a single API field.
</Note>

### Performance

| Metric          | Description                                                                               | Data type  | API Key                                |
| --------------- | ----------------------------------------------------------------------------------------- | ---------- | -------------------------------------- |
| Clicks          | Ad clicks.                                                                                | Number     | `metrics.clicks`                       |
| Clicks (all)    | Same value as Clicks; exposed under multiple names for cross-platform widget consistency. | Number     | `metrics.clicks`                       |
| Impressions     | Ad displays.                                                                              | Number     | `metrics.impressions`                  |
| Spend           | Spend in advertiser currency.                                                             | Currency   | `metrics.spend.advertiserCurrency`     |
| Advertiser cost | Same value as Spend.                                                                      | Currency   | `metrics.spend.advertiserCurrency`     |
| Media cost      | Media cost in advertiser currency.                                                        | Currency   | `metrics.mediaCost.advertiserCurrency` |
| Bid CPM         | Effective bid CPM in advertiser currency; non-aggregable.                                 | Currency   | `metrics.bidCpm.advertiserCurrency`    |
| Bids            | Bid count.                                                                                | Number     | `metrics.bids`                         |
| Win rate        | Auction win rate; non-aggregable.                                                         | Percentage | `metrics.winRate`                      |

### Video

| Metric          | Description                            | Data type  | API Key                  |
| --------------- | -------------------------------------- | ---------- | ------------------------ |
| Ad plays        | Video play count.                      | Number     | `metrics.adPlays`        |
| Completion rate | Video completion rate; non-aggregable. | Percentage | `metrics.completionRate` |

### Conversion

| Metric           | Description                           | Data type | API Key           |
| ---------------- | ------------------------------------- | --------- | ----------------- |
| Revenue          | Conversion revenue.                   | Currency  | `metrics.revenue` |
| Pixel revenue    | Same value as Revenue; used for ROAS. | Currency  | `metrics.revenue` |
| Conversion value | Same value as Revenue.                | Currency  | `metrics.revenue` |

<Note>
  **Non-aggregable metrics**
  Bid CPM, Win rate, and Completion rate cannot be summed across days or breakdowns. They are point-in-time weighted averages or percentages, so dashboards do not display totals for them.
</Note>

<Note>
  **Multiple names, one source**
  Spend and Advertiser cost map to the same TTD spend field, and Revenue, Pixel revenue, and Conversion value all map to the same TTD revenue field. They are surfaced under multiple names so cross-platform widgets work consistently regardless of which name a customer is used to.
</Note>

## Breakdowns

### Structure

| Breakdown  | Description                 | API Key     |
| ---------- | --------------------------- | ----------- |
| Ad account | Group by advertiser.        | `adAccount` |
| Campaign   | Group by campaign.          | `campaign`  |
| Ad group   | Group by ad group (ad set). | `adSet`     |

### Audience and geography

| Breakdown | Description   | API Key   |
| --------- | ------------- | --------- |
| Country   | Country code. | `country` |
| Device    | Device type.  | `device`  |

### Time

| Breakdown       | Description           | API Key |
| --------------- | --------------------- | ------- |
| Daily breakdown | Split reports by day. | `date`  |

## Limitations

* **No ad-level (creative) data** — this connector's GraphQL query path does not expose creative-level metrics. Use the The Trade Desk MyReport connector for ad-level analysis.
* **No custom conversions** — custom conversion events are not exposed through this connector's GraphQL query path. Use the The Trade Desk MyReport connector for custom conversions.
* **No monthly reports** — only daily and full-range (aggregated) reporting is supported; monthly grouping is not available.
* **365-day history** — data older than one year cannot be fetched (see [Date range limits](#date-range-limits)).
* **Non-aggregable metrics** — Bid CPM, Win rate, and Completion rate cannot be totaled across days or breakdowns.

## API references

* The Trade Desk GraphQL API (`api.gen.adsrvr.org/graphql`) — the connector authenticates with a static TTD-issued API token and pages through results with cursor-based pagination.

## See also

* [How to connect The Trade Desk to Adriel](/data-sources/o-z/the-trade-desk/how-to-connect) (paired how-to)
* [The Trade Desk: My Report data reference](/data-sources/o-z/the-trade-desk-my-report/data-reference) — for ad-level data and custom conversions
* [Yahoo DSP data reference](/data-sources/o-z/yahoo-dsp/data-reference) — for a comparable programmatic DSP integration
