Documentation
Attribution reports
How sources, entry pages, model comparisons and lifecycle timelines use spend and outcome evidence
Counts are credits, not people
Source, entry-page, ad and model reports count attributed lifecycle credits. One signed outcome can split its credit across several touchpoints, so a row can show a fraction. A person with several outcomes adds a credit for each outcome. Currencies are never converted or added together.
Spend on sources and entry pages
Imported Meta and Google spend is recorded per ad account, campaign and ad. Realanalytics attaches that spend to a source or an entry page only through identifiers that were recorded on credited touchpoints: the touchpoint must be marked paid and carry the provider source, campaign ID and, where available, ad ID. A source row is the touchpoint's UTM source, medium and campaign. An entry-page row is the landing URL without its query string or fragment.
An ad's spend joins one row only when every credited touchpoint for that ad in the range maps to that same row. Spend is never divided between rows by an estimate. The report keeps the remaining spend in separate, labelled groups for each currency:
| Group | Meaning |
|---|---|
| Shared across entries | The ad's credited touchpoints land on more than one source or page. The full amount stays in this group. |
| Ambiguous spend identity | Only a campaign-level ID was recorded while spend is per ad, or the same ad ID appears in more than one account. The owning ad cannot be proven. |
| No recorded touchpoint | No credited touchpoint in the range recorded this ad or campaign. |
The reconciliation table checks, for each currency, that joined spend plus the three groups equals the imported total.
Cost per signed
Cost per signed divides joined spend by the signed credits of the joined ads. Signed credits from shared or unmatched ads are shown but excluded from that division. The report shows a reason instead of a value when:
- the row has no paid touchpoints, such as direct or organic traffic (not applicable);
- no spend maps only to the row;
- a credited touchpoint could belong to more than one ad;
- the joined spend is in more than one currency;
- any joined account has a missing, partial, stale or failed day import, or imports supported ad rows only;
- the joined ads have no signed credits.
Cost per signed under other models
The model comparison runs first touch, last touch, last non-direct touch, last paid touch, linear, time decay and position based attribution on the same verified signed outcomes and the same imported spend. Time decay and position based use the deployed half-life and weights when they are configured. The deployed model is marked. The models describe different ways to assign credit; the report does not mark any model as correct. Deployed results are not changed.
Spend is the same for every model. Cost per signed uses the same rules as above for each model, account and currency.
Lifecycle timeline
A conversion journey also shows a lifecycle timeline. It lists every recorded lead, qualification, booking, attendance, signing, customer and refund outcome for the identity graph of the selected conversion, with touchpoints and identity links in time order. Each outcome shows its verification status, whether it is active or reversed, its value and currency where recorded, and its own attribution credits for the selected configuration.
Outcomes come only from the selected Live or Test environment. Click identifier values, landing-page query strings and opaque identity values are not shown. The timeline shows the newest records up to fixed limits and states when a list is limited.
Report limits
Each report reads a bounded amount of evidence. When a range exceeds a limit, such as more than 5,000 daily spend rows or more than 200 conversions, the report shows an explicit unavailable reason and asks for a narrower range. It does not show a partial result as complete. Missing touchpoint evidence also makes the spend join unavailable, because exclusivity cannot be proven.