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

# Reporting & activity

> Read delivery by advertiser, campaign, media buy and package, and see who did what.

Delivery rolls up from packages to media buys, campaigns and advertisers. Read it in the
**Reporting** view, in the campaign workspace, with `get_delivery`, or from the REST API.

## Metrics

| Metric            | Meaning                                      |
| ----------------- | -------------------------------------------- |
| Impressions       | Ads served.                                  |
| Spend             | Money spent, in the buy's currency.          |
| Clicks, CTR       | Clicks and clicks per impression.            |
| eCPM, CPC         | Cost per thousand impressions and per click. |
| Views, completion | Video views and completion rate.             |

A metric a seller did not report is shown as **unavailable**, never as zero.

## The Reporting view

Choose a period (7 days by default, 14, 30, all time or a custom range). Summary tiles sit above an
expandable table: advertiser → campaign → media buy → package, each with a status chip. **Show
percentages** switches values to each row's share of its parent. **Export CSV** downloads the rows.

When a report mixes currencies, monetary totals are left out with a note rather than added across
currencies.

## The campaign workspace

Each campaign shows **Spend**, **Budget** and **Pacing** (delivered spend against the spend expected by
today), the outcome against its primary goal (for example "Impressions: 1.2M of 3M target"), each media
buy with a progress bar, and creative readiness.

## From an agent

```json get_delivery theme={null}
{
  "report": "campaign_delivery",
  "metrics": ["impressions", "spend", "clicks", "ctr"],
  "dimensions": ["date", "media_buy"],
  "range": { "startDate": "2026-11-15", "endDate": "2026-11-30" },
  "filters": { "campaignId": "cmp_01JB7P3K9Q2W5E8R1T4Y6U0I3O" }
}
```

Ranges can span up to 90 days, or pass `{ "lifetime": true }`. Page with `limit` and `cursor`.

## Activity

Every change is recorded with who made it: **Person** (a user), **Agent** (Semi, a storefront agent or
an external agent), or **Automation** (for example the nightly delivery sync). The campaign workspace
lists recent activity with these tags, such as "Reallocated \$1,200 to hold pacing · Agent · 2h ago".
