Skip to content

Metrics & counting rules

If your numbers don’t match your traffic source or your network, the answer is almost always on this page.

How a visit is recorded

Roitrack writes one row per event, not one row per visitor:

EventWhat creates it
VisitSomeone hits your campaign link
Lander clickA visitor clicks the CTA on a hosted lander
ConversionYour network fires the S2S postback

A visitor who lands, clicks through, and converts produces three rows. This matters because it explains why the raw row count is never the number you want, and why each metric filters differently.

What each metric counts

MetricCounted as
ClicksVisits only — lander clicks and postbacks excluded
LP viewsUnique visits that landed on a lander (direct-to-offer traffic excluded)
LP clicksCTA clicks on a lander
LP CTRLP clicks ÷ LP views
ConversionsRows flagged as a conversion by the postback
RevenueSum of payout across conversions
CostSum of cost across visits
CVRConversions ÷ clicks
EPCRevenue ÷ clicks
ROI(Revenue − cost) ÷ cost
ProfitRevenue − cost

Direct-to-offer traffic has no lander, so LP views, LP clicks and LP CTR are all zero for those campaigns. That’s correct, not a bug.

Click mode vs performance mode

This is the setting most likely to make two reports of “the same” data disagree, and it exists because a conversion happens later than the click that produced it.

  • Click mode (default) buckets everything by when the click happened. A conversion that arrives today for yesterday’s click is reported yesterday.
  • Performance mode buckets conversions by when the conversion happened. That same conversion is reported today.

Neither is wrong; they answer different questions.

Use click mode to judge traffic quality — “of the clicks I bought on Tuesday, how many converted?” This is the number that tells you whether a placement is worth keeping, and it’s the one to compare against your own spend.

Use performance mode to reconcile with your network — “how much revenue landed on Tuesday?” Networks report by conversion time, so this is the mode that matches their invoice.

Uniqueness

A returning visitor inside the uniqueness window counts as a repeat rather than a new unique. The window is configurable in Settings → Performance, separately for visits and for lander clicks. Raising it makes uniqueness stricter across longer sessions; lowering it counts more returns as new.

Changing the window doesn’t rewrite history — it applies from that point on.

Reporting tools

  • Grouping and drill-down — group by campaign, flow, offer, lander, country, device, OS, browser, traffic source, or any of your sub IDs, then drill into a row without losing the filters above it.
  • Custom columns let you define your own calculated metrics from existing ones.
  • Column presets save a set of visible columns and their order, per report.
  • Saved filters store a filter set you use often.
  • Events 1–10 are extra counters your network can populate through the postback — upsells, rebills, whatever you map them to. See Postbacks & conversions.

Why your numbers differ from the network’s

Ranked by how often it’s actually the cause:

  1. Mode mismatch. You’re in click mode, they report by conversion time. Switch to performance mode before concluding anything.
  2. Timezone. Reports render in the timezone you select. If the network reports in UTC and you’re on Europe/Moscow, days boundaries differ by three hours and every daily total near a boundary looks wrong.
  3. Postbacks that never arrived. A conversion the network recorded but never fired to you doesn’t exist in Roitrack. Check Postbacks & conversions.
  4. Rejected or reversed conversions. If the network reverses a conversion without firing an update, Roitrack keeps counting it.
  5. A few seconds of lag. Aggregated totals are eventually consistent and can trail live data briefly. If two views of the same range differ by a handful of clicks and reconcile a moment later, that’s this — not lost data.

Why your numbers differ from your traffic source’s

Almost always tracking loss rather than a reporting bug: bots and scanners filtered on the way in, visitors who abandoned before the redirect completed, and ad-blockers. A gap in the low single-digit percent is normal. A gap above roughly 10% is worth investigating — start with Common issues.