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

# Payouts & analytics

> How you get paid and what your dashboard tracks.

## Revenue model

You earn on every ad impression served. Gravity bills advertisers on **CPM** (cost per 1,000 impressions) — when an ad becomes visible to a user, that's an impression, and you earn a share.

Revenue is **real-time** — your dashboard updates within minutes of the event firing. There's no monthly reporting lag.

## What drives your eCPM

Your **effective CPM** (revenue per 1,000 impressions) isn't a fixed rate — it's bid up by every signal that makes the ad work. The same impression from a publisher with rich context + high CTR + good attribution is worth meaningfully more than a bare-minimum impression. The levers:

* **Match quality (relevancy).** Ads served into tight contextual matches convert better, advertisers bid higher for your inventory, eCPM goes up. Your [relevancy threshold](/ai-platforms/request-ads#relevancy-tradeoff) is a direct input here.
* **CTR.** Publishers with above-average click-through rates get advertiser bids lifted. The SDK's variants + experiments target this automatically.
* **Fill rate.** More ads served = more revenue, all else equal. Placement design and the relevancy knob both affect this.
* **Data quality.** Passing `messages`, a stable `sessionId`, a stable `userId`, and — biggest lever — a **hashed email** when you have one. Hashed email unlocks view-through attribution, which advertisers see and bid up for. See [Data quality](/introduction/concepts#data-quality).
* **Pixel installation.** Cross-surface attribution (clicks that open inside your in-app browser, or users who come back across devices) only works when the Gravity pixel is installed. No pixel = attribution gaps = lower reported advertiser ROAS = advertisers bid you down.

Short version: performance is the knob. The better your integration's quality and data, the higher your eCPM.

## Dashboard

`app.trygravity.ai` → **AI platform** → your app. The main tabs:

<CardGroup cols={2}>
  <Card title="Overview" icon="chart-line">
    Revenue, impressions, eCPM, fill rate — today, this week, this month.
  </Card>

  <Card title="Requests" icon="arrow-right-arrow-left">
    Ad requests by placement, hour, and day. Diagnose low fill rates here.
  </Card>

  <Card title="Experiments" icon="flask">
    Per-arm performance if you've got any [experiments](/ai-platforms/experiments) running.
  </Card>

  <Card title="User insights" icon="users">
    Unique users, repeat rate, country breakdown.
  </Card>
</CardGroup>

## Key metrics

| Metric          | What it measures                                                |
| --------------- | --------------------------------------------------------------- |
| **Requests**    | Ad requests your app sent, by placement.                        |
| **Ads served**  | Requests that returned a filled ad (excludes `204 No Content`). |
| **Fill rate**   | `ads_served / requests` — how often we matched a campaign.      |
| **Impressions** | Ads that fired the impression pixel (i.e. became visible).      |
| **eCPM**        | Effective CPM — revenue per 1,000 impressions.                  |
| **Revenue**     | Your share of ad spend, real-time.                              |

## Payout setup

Payout schedules, minimum thresholds, and payment methods are configured by the Gravity team. Email [support@trygravity.ai](mailto:support@trygravity.ai) to set up or adjust your payout configuration.

## Dashboard API

Pull your dashboard metrics programmatically — revenue, impressions, placements, devices, geography, user insights — using the same API key you already have. See the [full Dashboard API reference](/ai-platforms/dashboard-api).

## Questions

Email [support@trygravity.ai](mailto:support@trygravity.ai) for anything payout- or billing-related. We read it.
