Revenue

Revenue is where you see what actually made money. Because TrueMetriks tracks server-side, the revenue, ROAS, and profit here include the conversions iOS, ad-blockers, and the pixel miss - so you can judge each source on real numbers.

Set this up with AI

Copy this prompt into ChatGPT, Claude or whichever AI you use. It carries this whole guide, the pages it depends on, and a link to every video, so it can walk you through it one step at a time.

Open as text

Video guide

How the Revenue page works in TrueMetriks

What the Revenue page shows

The page has a row of headline cards, a set of attribution and audience controls, a breakdown table you can drill from channel all the way down to the exact ad, and a duration block that shows how long buyers take to convert. Everything respects the date range at the top.

app.truemetriks.com / revenue
Total Revenue
$299,000.36
Purchases
1,052
AOV
$284.22
LTV
$314.41
Attribution:First-touch ▾
Audience:New + Returning ▾
Conversion events:Lead ×Purchase ×+ Add event
Columns: 8
SourceMediumCampaignContentTerm
Search...
6 rows⇩ Export CSV
SourceVisits ▾UniqueLeadPurchaseRevenueSpendROASProfit
(Direct)67060012014$4,970$0.00--
(Untagged)121131$470$0.00--
IGig480450308$715$4201.70x$295
ffacebook1,5601,40022157$17,030$5,2203.26x$11,810
paid1,5601,40022157$17,030$5,2203.26x$11,810
CAMPAIGNABO Sales Cold 85004506318$4,970$1,8202.73x$3,150
AD SETAdset 1 - Broad 24 - 453122804118$4,970$1,1804.21x$3,790
ADAD 13122804118$4,970$1,1804.21x$3,790
AD SETAdset 2 - Broad 24 - 45188170220$0$6400.00x-$640
CAMPAIGNCBO Sales Cold 25204707014$3,150$1,5002.10x$1,650
CAMPAIGNSummer Glow Launch - ABO5404808825$8,910$1,9004.69x$7,010
Ggoogle88077018062$17,350$3,4005.10x$13,950
ttiktok2401806019$3,470$0.00--
Total3,8423,411614161$44,005.00$9,040.004.87x$34,965.00
The Revenue page: server-side revenue and profit for the period, broken down by source and drilled all the way down to the individual ad. Green rows make money, red rows lose it.

The top cards

  • Total Revenue - all purchase value attributed to this period.
  • Purchases - how many purchases happened.
  • AOV - average order value (Total Revenue divided by Purchases).
  • LTV - average lifetime value per buyer, so you can compare what a customer is worth against what you pay to acquire one.

Attribution and audience controls

These controls decide how the numbers below are calculated. Change one and the whole table recomputes.

  • Attribution - which touch gets the credit for a conversion: First-touch (the source that first brought the visitor in), Last-touch (the most recent source before the purchase), or a linear split. This is how you settle "which channel gets the sale."
  • Audience - whether to count New + Returning, only new, or only returning buyers.
  • Conversion events - which events count as a conversion here. Lead and Purchase are added by default; use + Add event to score on any other event you send.
  • Columns - choose which metric columns the table shows.

The breakdown table

This is the heart of the page. The tabs across the top - Source, Medium, Campaign, Content, Term - group the rows by the matching UTM dimension. Each row carries the full funnel:

  • Visits and Unique - traffic volume.
  • Lead and Purchase - conversions of each type.
  • Revenue - sales attributed to that row.
  • Spend - ad spend we pulled from the connected ad platforms (Facebook, Google).
  • ROAS - revenue divided by spend. Green is profitable, red is below breakeven.
  • Profit - revenue minus spend.

Expand a row with the chevron to drill down a level at a time - source -> medium (paid or organic) -> campaign -> ad set -> ad - so you can see the exact ad that made or lost money, not just the channel total. Paid rows are labelled by level with a small CAMPAIGN, AD SET, or AD tag (Google and TikTok read AD GROUP instead of AD SET) so you always know how deep you are. Traffic with no campaign tags rolls up into (Direct) (no tags and no referrer) and (Untagged) (a referrer but missing UTM tags), so nothing goes uncounted. Green rows are winning, red rows are bleeding spend. Use Search to find a source, the row count to see how many groups matched, and Export CSV to pull whatever is on screen. The Total row at the bottom sums everything in view.

Average first-conversion duration

Below the breakdown table is the duration block: it tells you how long it typically takes for someone to convert after they first find you, so you can see which channels close fast and which run a long sales cycle.

Average First Purchase Duration time from first click to first purchase
Purchase Lead Book a Call
Platforms Campaigns Ad Sets Ads
Name Total Sales Median Duration ROAS
fFacebook Ads 44
19h 13mavg 1d 4h
0.52x
GGoogle Ads 37
11h 02mavg 16h 40m
2.14x
fFacebook Organic 2
- -
Email 19
2d 6havg 3d 1h
-
YouTube 6
1d 9havg 2d 2h
1.03x
Total 108 16h 44mavg 1d 6h 1.31x
Median shown as the headline (outlier-safe); the average is the lighter number beneath. "-" means no attributable conversions at this level (e.g. organic has no ad set / ad). Conversions whose first tracked event is the conversion itself (no preceding click, e.g. imported or server-side conversions) are not counted in the durations.
The first-conversion duration block: median and average time from a buyer's first click to their first conversion, for Purchase, Lead, or Book a Call, split by platform and drillable to campaign, ad set, and ad.

Read the median as the headline number and the lighter avg beneath it as the average. The median is the outlier-safe one to trust, since a single buyer who took months to convert can drag the average up without moving the median. Each buyer contributes exactly one data point: the time from their first tracked visit (their first click) to their first conversion of the selected type. A customer who buys again next month is still one point, measured to that first purchase, so this is your true first-conversion cycle, not a repeat-purchase gap.

Some conversions never had a preceding click - imported, server-side, or webhook events whose first tracked event is the conversion. Those are excluded from the duration math, which is why a row can show sales but a - in the duration column. Durations under a minute display as <1m.

The segmented toggle at the top switches the conversion type: Purchase, Lead, or Book a Call. "Book a Call" counts the standard Schedule event plus any custom event you have mapped to Schedule (Calendly, GHL, webhooks). The count column relabels itself to match - Total Sales, Total Leads, or Total Booked Calls.

The Platforms, Campaigns, Ad Sets, and Ads tabs choose how the rows are grouped. On Platforms each ad platform splits into paid and organic rows - Facebook Ads versus Facebook Organic, and the same for Google and TikTok. Everything you bought through Google Ads sits under the Google Ads row and breaks out by campaign, ad set, and ad in the deeper tabs; the standalone YouTube row is organic YouTube traffic, not Google Ads video.

Each row carries four columns: Name, Total {Sales / Leads / Booked Calls}, Median Duration (bold median plus avg beneath), and ROAS (green at 1x or above, red below, - where there is no spend to compare against). A thin magnitude bar sits under each number, scaled to that column's own largest value - count bars are blue, duration bars orange, and ROAS bars green or red - so you can eyeball the leaders down a column at a glance. Vertical separators divide the columns, and the bar-less Total row at the bottom rolls up everything in view. A - anywhere means there are no attributable conversions at that level (organic platforms have no ad set or ad rows).

The block honors the same date range, attribution (first, last, or any touch), audience (new, returning, or both), and traffic (all, paid, or organic) controls as the breakdown table above, so changing a control recomputes the durations the same way it recomputes the table.

Buyers

Buyers Page 1
BuyerFirst touchLast touchSessionsRevenueDays first to purchase
[email protected]DirectDirect9$29,772.150
[email protected]DirectDirect2$11,761.000
[email protected]DirectDirect1$8,779.000
id_b685a55a55d60225GoogleGoogle11$793.00257
id_94dbf6cf6a7fe1fdGoogleGoogle12$787.00130
[email protected]DirectDirect2$749.950
id_1ec8f8f7b6befd0cGoogleGoogle11$696.00254
id_3e564c972b0d427cGoogleGoogle10$668.0044
id_679fa6bb8d39762dGoogleGoogle11$654.00307
id_ce18e11c57bd8695GoogleGoogle10$623.00301
PrevNext
Buyers: every individual purchaser, with the source that first and last touched them, how many sessions they took, total revenue, and how many days passed from first visit to purchase.

Below the breakdown is the per-buyer table - one row per customer who purchased:

  • Buyer - the customer's email, or an anonymous id if we never captured one.
  • First touch and Last touch - the source that first and last brought them in.
  • Sessions - how many visits they took before buying.
  • Revenue - how much they have spent in total.
  • Days first to purchase - how long from their first visit to their purchase, which tells you how long your sales cycle really is.

Use the Prev and Next controls to page through the full list.

Frequently asked questions

How do I see which exact ad made or lost money?

Expand a row with the chevron to drill down a level at a time, from channel to campaign to ad set to ad, so you can see the exact ad rather than just the channel total.

What does the Attribution control do?

It decides which touch gets credit for a conversion: first-touch, last-touch, or a linear split. Changing it recomputes the whole breakdown table.

How is ROAS calculated and what do the colors mean?

ROAS is revenue divided by spend pulled from your connected ad platforms. Green is profitable, red is below breakeven.

Need help with this?

Reach us instantly on WhatsApp, or send us a message and we will get back to you. On workdays we usually respond in less than 24 hours.

or send us a message