> ## 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 AdRoll data source in Adriel.

## Introduction

AdRoll is a retargeting and performance marketing platform. The connector pulls campaign performance through AdRoll's GraphQL reporting API and walks the advertiser, strategy, campaign, ad group, and ad hierarchy through its REST architecture API, authenticated via OAuth 2.0.

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

To connect this data source, see [How to connect AdRoll to Adriel](/data-sources/a-f/adroll/how-to-connect).

## Data refresh strategy

### Architecture data

Architecture covers the advertiser account and its campaigns, ad sets, and ads. It refreshes twice daily, at **4:00 PM (UTC)** and **5:00 AM (UTC)**.

### Reports data

Reports include daily performance for the ad account, campaigns, ad sets, and ads.

**Real-time.** Report data is fetched from AdRoll on demand when a dashboard loads, so the latest values are always visible. On top of that, scheduled cache refreshes keep historical data consistent across several time windows.

**Refresh schedule.** For the ad account, campaign, ad set, and ad levels, reports refresh on three overlapping schedules:

* **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 set (ad group) → Ad

## Date range limits

The connector reads from AdRoll's GraphQL reporting endpoint and does not enforce an explicit historical ceiling of its own. Reports are aggregated at daily granularity, and long-range historical queries are split internally by date so that wide date ranges resolve without a hard row cap.

## 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 `impressions` is the literal AdRoll API field name. *Italic text* describes how a value is produced when it does not map cleanly to a single API field.
</Note>

### Reach & impressions

| Metric      | Description                     | Data type | API Key       |
| ----------- | ------------------------------- | --------- | ------------- |
| Impressions | Total times the ads were shown. | Number    | `impressions` |

### Click performance

| Metric | Description      | Data type | API Key  |
| ------ | ---------------- | --------- | -------- |
| Clicks | Total ad clicks. | Number    | `clicks` |

### Cost & spend

<Note>
  Currency values are reported in each ad account's configured AdRoll currency.
</Note>

| Metric | Description                    | Data type | API Key |
| ------ | ------------------------------ | --------- | ------- |
| Cost   | Reported spend for the period. | Currency  | `cost`  |

### Conversions & revenue

| Metric                    | Description                                | Data type | API Key         |
| ------------------------- | ------------------------------------------ | --------- | --------------- |
| Conversions               | Total attributed conversions.              | Number    | `conversions`   |
| Click-through conversions | Conversions attributed to a click.         | Number    | `clickThroughs` |
| View-through conversions  | Conversions attributed to an impression.   | Number    | `viewThroughs`  |
| Revenue                   | Total attributed revenue.                  | Currency  | `revenue`       |
| Click revenue             | Revenue from click-attributed conversions. | Currency  | `clickRevenue`  |
| View revenue              | Revenue from view-attributed conversions.  | Currency  | `viewRevenue`   |

### Email engagement

| Metric | Description                              | Data type | API Key |
| ------ | ---------------------------------------- | --------- | ------- |
| Sends  | Email sends from AdRoll email campaigns. | Number    | `sends` |
| Opens  | Email opens from AdRoll email campaigns. | Number    | `opens` |

## Breakdowns

### Standard hierarchy

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

### Time

<Note>
  AdRoll returns daily records; Adriel groups them into these views for reporting. All time breakdowns are Adriel-side aggregations of the same underlying daily data.
</Note>

| Breakdown | Description                      |
| --------- | -------------------------------- |
| Daily     | Split reports by day.            |
| Weekly    | Split reports by week.           |
| Monthly   | Split reports by calendar month. |

## Limitations

* **Null values treated as zero** — any null numeric value returned by the reporting API is parsed as `0`. This keeps roll-ups numerically stable, but a true "no data" cannot be distinguished from a real zero.
* **Active and inactive campaigns are merged** — both active and inactive campaigns are always fetched and combined; there is no way to report on active campaigns only.
* **Architecture covers all entities** — because the connector walks the strategy tree rather than status-filtered list endpoints, the architecture refresh includes every entity the advertiser has, regardless of status.
* **Single-use rotating refresh token** — AdRoll invalidates the refresh token immediately after it is exchanged for a new access token ([AdRoll/NextRoll developer documentation](https://developers.nextroll.com)), and the connector persists the new value on each refresh. If that persistence step fails, the connection becomes permanently broken and must be reconnected via OAuth.
* **Unsupported AdRoll metrics** — visitor-based metrics that AdRoll documents (for example, visitors, new visitors, and engaged visitors) do not return usable data and are excluded from the connector.
* **Future date ranges return no data** — a query whose date range is entirely in the future (UTC) returns an empty result without calling AdRoll.

## API references

* AdRoll reporting is served by the GraphQL Reporting API; architecture is read from AdRoll's REST APIs and traversed through the advertiser strategy tree.
* [AdRoll developer documentation](https://developers.adroll.com/)

## See also

* [How to connect AdRoll to Adriel](/data-sources/a-f/adroll/how-to-connect) (paired how-to)
* [Criteo Retail Media data reference](/data-sources/a-f/criteo-retail-media/data-reference) — for another retargeting and retail-media connector
