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

# Campaign Analytics

> Campaign-level analytics overview including conversion, revenue, cost, and ROI

<ParamField path="campaignId" type="string" required>
  Campaign identifier
</ParamField>

## Primary endpoint

* `GET /api/campaigns/{campaignId}/analytics/overview`

Query parameters:

* `days` (`1..365`, default `30`)
* `start` (optional)
* `end` (optional)

## Related campaign analytics endpoints

* `GET /api/campaigns/{campaignId}/analytics/timeseries`
* `GET /api/campaigns/{campaignId}/analytics/links`
* `GET /api/campaigns/{campaignId}/analytics/rules`
* `GET /api/campaigns/{campaignId}/analytics/funnel` (revenueTracking)
* `GET /api/campaigns/{campaignId}/analytics/conversions` (revenueTracking)

## Access

* Permission: `analytics:read`
* `funnel` and `conversions` require revenue-tracking feature

## Cost model behavior

Overview/links/timeseries metrics apply campaign cost settings:

* `cpc`: `clicks * costOverride`
* `cpm`: `(clicks / 1000) * costOverride`
* `cpa`: `conversions * costOverride`
* `revshare`: `(revenue * costOverride) / 100`

Monetary output uses campaign display currency when set.

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET "https://api.linquid.io/api/campaigns/campaign_xyz789/analytics/overview?days=30" \
    -H "Authorization: Bearer <token>"
  ```
</RequestExample>

## Common Errors

* `404`: campaign not found
* `500`: analytics backend/query failure
