# Attribution report

> See conversions and revenue by source, campaign, ad platform and short link, under six attribution models, with each customer's path.

Source: https://datacenter.so/docs/attribution-report
Section: Measure

The attribution report answers one question: what brought the people who bought? It lists your conversions and revenue by where those people came from. Open a site, then the **Attribution** tab. It is on paid plans: Solo, Studio, Agency and Custom. Free does not include it.

A conversion is any event or page visit that reaches one of the site's goals. Pick **All goals** or one goal, and a period of 7, 30 or 90 days.

> The attribution report and 90-day tracking are on paid plans: Solo, Studio, Agency and Custom. Free does not include them.

## What it groups by

| Group | Comes from |
|---|---|
| Source | The referrer, or `utm_source` when there is one |
| Campaign | `utm_campaign` |
| Ad platform | The click id on the landing page: `fbclid` for Meta, `gclid`, `gbraid` or `wbraid` for Google |
| Short link | A click on one of your short links |

The ad platform is **Meta ads** for `fbclid`, **Google Ads** for `gclid`, `gbraid` or `wbraid`, and **No ad click** otherwise.

## Attribution models

Most people visit more than once before they buy. A model decides which visits get the credit. Pick one for the site under **Credit** at the top of the report. The dashboard's ad rows, client reports and the Assistant use the same one. The default is **Last touch**.

| Model | Who gets the credit |
|---|---|
| Last touch | The latest visit before they converted gets all of it. |
| First touch | Where they first came from gets all of it. |
| Linear | Every visit gets an equal share. |
| Position based | The first and last visits get 40% each. The visits between share 20%. |
| Time decay | Visits closer to the conversion get more. Credit halves for every 7 days back. |
| Any touch | Every visit gets full credit. Rows then add up to more than the total, and the report says so. |

A conversion is a visit that reached a goal, the same count as the dashboard's **Conversions** and the **Converted** column on the Goals card. A visit that reaches two goals, or one goal twice, counts once, with the value of all of it. A sale with its own order id counts on its own.

Each conversion's credit adds up to one conversion and its full value, except under Any touch. When two visits happen at the same moment, they share the credit equally. Spend and return use last touch when Any touch is picked, so ROAS never counts a sale twice.

A direct visit (no referrer, campaign, click id or short link) never takes the credit from a known source. A server event that carries its own click id counts as a touch at that moment.

### Compare models

**Compare models** shows conversions and revenue by source, campaign or ad platform under all six models side by side, with your model marked. When the columns agree, the choice of model does not matter much. When they differ, first touch usually shows what made people aware of you, and last touch shows what closed the sale.

A seventh column, **Custom**, uses your own weights. Under the table, type three whole numbers that add up to 100: the share for the **First** visit, the visits **Between**, and the **Last** visit. The default is 20, 30 and 50. They are saved for the site. With only two visits there is nothing between, so first and last split in the ratio of their weights (20 and 50 become 29% and 71%). One visit gets all of it. Custom shows in Compare models only; the report's own model stays the one picked under **Credit**.

### Customer journeys

**Customer journeys** lists the most common paths to a conversion, such as "Meta ads, Email, Direct, Converted", with how many conversions took each path, the average days from the first visit and the average number of visits. Repeats in a row count once. A path with more than five steps shows the first step, a count of the hidden ones, then the last four. **Latest** shows the most recent conversions with their paths, and the person when they gave an email.

## How far back it reaches

In Private mode a visitor is only known within one visit: the same daily hash on the same day. A sale tomorrow from today's ad click shows as Direct. In [90-day tracking](https://datacenter.so/docs/tracking-modes) a visitor is known for 90 days on your domain by the first-party id. The report can then link a sale today to a click weeks ago. Pick how far back it looks under **Look back**: 1, 7, 30, 90, 180 or 365 days. The default is 90. The report says which mode and window it is using.

What each window covers:

| Look back | Counts |
|---|---|
| 1 to 90 days | Every tracked visit with the same first-party id |
| 180 or 365 days | Every visit in the last 90 days. Before that, only people with a [profile](https://datacenter.so/docs/customer-profiles): their first visit, and visits from an ad, a campaign or a short link |

Visit detail is kept for 90 days. For longer windows Datacenter keeps a short list per profile: the first visit and up to 50 visits from ads, campaigns and short links, for 460 days. This list started on Oct 31, 2026. Before then, only each person's first visit is known, so a 365 day window fills in as time passes. A plain referrer or Direct visit older than 90 days is not kept.

Server events join a visit when you send the visitor's IP and user agent (same day), or their first-party id as `visitor.id` (90-day tracking). See [Events API](https://datacenter.so/docs/events-api).

## Short link pages

Each short link that points to one of your sites shows **Visits after**, the visits that arrived from the link, and **Conversions after**, the conversions credited to those visits under the site's model.

## Revenue

Revenue comes from the `value` and `currency` you send with an event, from the browser or from the [Events API](https://datacenter.so/docs/events-api). It also comes from the [Stripe](https://datacenter.so/docs/stripe-connector) and [Shopify](https://datacenter.so/docs/shopify-connector) connectors. Their sales count as the `Purchase` event, on the date they happened. A sale sent both ways, with the same `event_id` or `order_id`, is counted once.

With Stripe connected, **Revenue** beside **Conversions** at the top of the tab shows new revenue, MRR, lifetime value and refunds by source and campaign. See [Revenue and MRR](https://datacenter.so/docs/revenue-and-mrr).

## Lifetime value per ad

**Lifetime** beside **Conversions** and **Revenue** credits every later sale to what first brought the customer: repeat orders, Stripe renewals and rebills, and CRM deals won, with refunds taken off. Group it by **Ad**, **Campaign** or **Short link**. It counts customers who bought, whose first visit in the last 24 months came from that ad, campaign or link.

| Column | What it is |
|---|---|
| Customers | Customers whose first visit came from it |
| Spend | What it cost over the 24 months |
| Revenue to date | Everything those customers have paid, as on their profiles |
| Per customer | Revenue to date divided by customers |
| ROAS, 30 days | Sales in each customer's first 30 days, divided by spend. Both count only what is at least 30 days old, so a new ad reads **Too new**, not a low number |
| ROAS, 90 days and 365 days | The same, for 90 and 365 days |
| ROAS to date | Revenue to date divided by all spend |
| Pays back in | Days after the first visit until the customers' sales add up to the spend |

Ads are matched to spend the way **Spend and return** matches them: by id first, then by name. The day columns need sales with a date, from Stripe, Shopify or a CRM. A sale sent only from your site adds to revenue to date. Money is in one currency, before costs; customers who pay in another are counted and left out. Sort by any column. **Download CSV** gives the same table as a file, to anyone who can see the site, since it holds no one's details.

## Ad spend

Add your ad spend, and **Spend and return** shows spend, Datacenter revenue, return on ad spend (ROAS) and cost per purchase by platform, campaign, ad set and ad, with what the platform itself reports beside it. It follows the period, the goal and the site's model.

- Meta Ads connects in one click. See [Meta ad spend and ROAS](https://datacenter.so/docs/meta-ads-spend).
- Google Ads, TikTok, Microsoft and any other platform import spend from a file. See [Import ad spend from a file](https://datacenter.so/docs/csv-spend-import). Connecting Google Ads in one click is next (when shipped).

Spend with no tracked visit shows as spend we could not match to tracked links, with a tip to fix it. This report keeps each currency on its own line; the dashboard adds them up in your reporting currency.

## What people told us

When the site asks [How did you hear about us](https://datacenter.so/docs/how-did-you-hear), the report adds **What people told us**: each answer, how many people gave it and where Datacenter tracked them from. It says how many who answered came in as Direct, which is where word of mouth usually hides. The answers sit beside the tracked numbers and never change them.
