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

## Introduction

Simpli.fi is a programmatic advertising platform specializing in addressable, geo-fence, and site-list campaigns across display, video, CTV, and audio inventory. The connector exposes campaign-level performance — impressions, clicks, spend, conversions, and audience reach — from a Simpli.fi organization through its REST API.

Two report modes are chosen when the data source is created and fixed thereafter. **Campaign Stats** returns a structured, paginated response across the campaign hierarchy. **Custom Reports** submits an asynchronous snapshot job and polls until a CSV result is ready. Each mode exposes a different metric and breakdown shape, so the exact fields available depend on the mode selected.

As a marketing connector, metrics, breakdowns, and currency are standardized so widgets can aggregate alongside other ad-platform sources without additional configuration.

To connect this data source, see [How to connect Simpli.fi to Adriel](/data-sources/o-z/simplifi/how-to-connect).

## Data refresh strategy

### Architecture data

Organization, campaign, ad group, and ad metadata refresh alongside report data on the daily cache cycle. There is no separate architecture-only sync; the campaign hierarchy is rebuilt from the latest report snapshot.

### Reports data

Simpli.fi is a daily-cache connector with a fixed warm window. Dashboard queries are served from the daily cache rather than fetched live on each load.

* **Initial fetch** — after connection, the last **60 days** of daily data are pulled into the cache.
* **Daily refresh** — at **6:15 PM UTC**, the latest **30 days** of data are re-fetched and the cache is rewritten over that window.

Data older than the rolling 30-day window remains in the cache from earlier syncs and is not re-pulled. Late-arriving conversions or restated metrics that fall outside that window will not appear without a manual rebuild.

## Architecture levels

Organization → Ad account → Campaign → Ad group → Ad / Creative

## 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 Simpli.fi field name. *Italic text* describes how a value is produced when it doesn't map cleanly to a single API field (for example, an Adriel-computed ratio or a column defined by a Custom Report).
</Note>

### Delivery & cost

| Metric      | Description                               | Data type  | API Key                                |
| ----------- | ----------------------------------------- | ---------- | -------------------------------------- |
| Impressions | Ad impressions served.                    | Number     | `impressions`                          |
| Clicks      | Total ad clicks.                          | Number     | `clicks`                               |
| Spend       | Amount spent, in the campaign's currency. | Currency   | `total_spend`                          |
| CTR         | Click-through rate.                       | Percentage | *derived (clicks / impressions)*       |
| CPM         | Cost per thousand impressions.            | Currency   | *derived (spend / impressions × 1000)* |
| CPC         | Cost per click.                           | Currency   | *derived (spend / clicks)*             |

### Conversions

| Metric          | Description                                                                 | Data type  | API Key                          |
| --------------- | --------------------------------------------------------------------------- | ---------- | -------------------------------- |
| Conversions     | Attributed conversion actions.                                              | Number     | `weighted_actions`               |
| Conversion rate | Conversions as a share of clicks (or impressions, depending on the report). | Percentage | *derived (conversions / clicks)* |
| CPA             | Cost per conversion.                                                        | Currency   | *derived (spend / conversions)*  |

### Video & engagement

<Note>
  Video and viewability metrics populate only when the underlying campaign runs video, CTV, or audio creative. Display-only campaigns leave these columns empty.
</Note>

| Metric                | Description                                                        | Data type  | API Key          |
| --------------------- | ------------------------------------------------------------------ | ---------- | ---------------- |
| Video completion rate | Share of video plays reaching each quartile (25%, 50%, 75%, 100%). | Percentage | *derived*        |
| Completed views       | Video views that reached 100% completion.                          | Number     | *report-defined* |
| Viewability           | Share of measured impressions that met viewability standards.      | Percentage | *report-defined* |

### Addressable & geo

<Note>
  Geo-fence metrics populate only for addressable or geo-fence campaign types that track them.
</Note>

| Metric           | Description                                                                 | Data type | API Key          |
| ---------------- | --------------------------------------------------------------------------- | --------- | ---------------- |
| Geo-fence visits | Visits to addressable geo-fenced locations, where the campaign tracks them. | Number    | *report-defined* |

### Custom Report columns

| Metric                | Description                                                                                                                                                                 | Data type | API Key          |
| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | ---------------- |
| Custom Report columns | When the data source is configured against a Simpli.fi Custom Report, the report's column list defines the available metrics. Free-format columns are passed through as-is. | Number    | *report-defined* |

## Breakdowns

### Account structure

| Breakdown     | Description                                                                    | API Key          |
| ------------- | ------------------------------------------------------------------------------ | ---------------- |
| Organization  | Group by the top-level Simpli.fi organization.                                 | `organizationId` |
| Ad account    | Group by advertiser/account inside the organization.                           | `accountId`      |
| Campaign      | Group by campaign — site, addressable, geo-fence, or other targeting strategy. | `campaignId`     |
| Ad group      | Group by targeting group within a campaign (Campaign Stats mode).              | `adGroupId`      |
| Ad / Creative | Group by individual ad or creative.                                            | `adId`           |

### Delivery & geography

| Breakdown                   | Description                                                                        | API Key  |
| --------------------------- | ---------------------------------------------------------------------------------- | -------- |
| Geo (DMA / state / country) | Group by geography, where the campaign or Custom Report exposes it.                | `geo`    |
| Device                      | Group by device type — mobile, desktop, CTV, tablet — when surfaced by the report. | `device` |

### Time & date grouping

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

| Breakdown           | Description                                                  |
| ------------------- | ------------------------------------------------------------ |
| No Grouping         | Do not break down; return one aggregated row.                |
| Auto Time Breakdown | Automatically picks the best granularity for the date range. |
| Daily               | Split reports by day.                                        |
| Weekly              | Split reports by week.                                       |
| Monthly             | Split reports by calendar month.                             |
| Quarterly           | Split reports by calendar quarter.                           |
| Yearly              | Split reports by calendar year.                              |

### Custom Report columns

<Note>
  In Custom Reports mode, any non-metric column declared in the report definition is exposed as a breakdown for grouping.
</Note>

| Breakdown             | Description                                     |
| --------------------- | ----------------------------------------------- |
| Custom Report columns | Group by any report-defined, non-metric column. |

## Limitations

* **Two report modes, fixed per data source** — Campaign Stats and Custom Reports are mutually exclusive and chosen at creation. Switching requires a new data source. Campaign Stats returns a structured paginated response; Custom Reports submits an asynchronous job and polls until the CSV snapshot is ready.
* **30-day rolling refresh window** — the daily 6:15 PM UTC sync only rewrites the most recent 30 days. Restatements and late-attributed conversions outside that window are not picked up on later runs; a manual rebuild is required to refresh deeper history.
* **60-day historical backfill** — only the last 60 days of daily data are loaded when a data source is created. Earlier dates are not available from the initial fetch; historical analysis beyond that range requires a Simpli.fi-side export.
* **Campaign-dependent metrics** — geo-fence visit counts, viewability, and video completion metrics populate only when the underlying campaign type produces them.
* **API keys never expire** — the App Key / User Key pair has no refresh lifecycle. Revoking the keys in Simpli.fi fails subsequent requests immediately until the connection is re-saved with replacement values.

## API references

* [Simpli.fi platform](https://www.simpli.fi/) — programmatic advertising platform
* Simpli.fi REST API base URL: `https://app.simpli.fi/api/` (Campaign Stats endpoint and Custom Report snapshot endpoints)

## See also

* [How to connect Simpli.fi to Adriel](/data-sources/o-z/simplifi/how-to-connect) (paired how-to)
* [The Trade Desk data reference](/data-sources/o-z/the-trade-desk/data-reference) — another programmatic DSP with a comparable campaign hierarchy
* [StackAdapt data reference](/data-sources/o-z/stackadapt/data-reference) — programmatic platform with similar report-mode separation
