Revenue Tracking
Revenue tracking lets you see the financial impact of issues, measure revenue per session, and understand which traffic sources drive the most revenue. It's configured per project through a guided revenue setup wizard that picks the right install path for your platform and verifies it live.
Revenue tracking is optional. Issue detection, traffic analytics, and all other features work without it. Enabling revenue tracking adds financial estimates to issues and unlocks revenue-specific analytics.
Setup
Revenue tracking is set up in the revenue setup wizard, reachable from the setup prompts in your dashboard and from Tracking → Track your revenue. The wizard is organized by platform, so you never have to guess which install method fits your store:
- Pick your platform — Shopify, WooCommerce, or Custom / other.
- Follow the recommended path — the wizard leads with the best install method for that platform and tucks any alternatives behind an "other ways to install" link:
- Shopify → an order-paid webhook (server-side, 100% capture).
- WooCommerce → a no-code plugin (with a developer PHP hook as the fallback).
- Custom / other → a JavaScript snippet you paste on your order-confirmation page, mapped to your own event.
- TraceLog verifies it live — once the first real purchase arrives, the wizard turns green and shows the recovered order value. If something's off, it tells you exactly what to fix instead of spinning forever (see When revenue won't verify).
Adding a platform-specific path never changes how the wizard works — every platform runs through the same "pick → install → verify" flow.
Modes
However your store sends purchases, revenue resolves in one of two modes:
Event-based revenue
Best for stores where each transaction has a different value (most e-commerce). The managed Shopify and WooCommerce paths use this automatically.
- Event name — the custom event that represents a purchase (e.g.,
purchase) - Value field — the property in the event payload that holds the transaction amount (e.g.,
value,total,amount)
// Your site sends events with actual transaction values
tracelog.event('purchase', {
value: 149.99,
currency: 'EUR',
orderId: 'ORD-789'
});
TraceLog reads the value field from each event to calculate actual revenue. This gives the highest accuracy.
Manual AOV (Average Order Value)
Best for subscription businesses or stores with consistent pricing where you don't send a per-order value.
- Event name — the custom event that represents a conversion
- AOV — a fixed average order value applied to every conversion
Instead of reading a value from each event, TraceLog multiplies conversion count by your fixed AOV. Simpler to set up, but less precise for stores with variable pricing.
What Revenue Tracking Enables
| Feature | Without Revenue | With Revenue |
|---|---|---|
| Issue detection | Severity + affected sessions | + estimated weekly/monthly revenue impact |
| Revenue per session | Not available | Revenue ÷ sessions metric |
| Source analytics | Traffic volume + engagement | + revenue attribution by source |
| Ask | Answers about traffic and engagement | + answers about revenue and financial impact |
| Reports | Traffic and engagement analysis | + revenue sections in AI reports |
When revenue won't verify
TraceLog only marks revenue verified once it can read a real order value from your events. A green verdict is a promise that the number is real, so the wizard deliberately refuses to turn green on data it can't trust. Two cases it flags instead of faking success:
It's receiving events but can't read the amount
Events are arriving under your configured event name, but the value field never resolves to a number. Usually the value field name is wrong (e.g. the amount is in total but the mapping points at value). The wizard shows the real fields it has seen on your event and lets you pick the right one, then re-verifies — no code change and no fresh test order needed.
Every order reports the same amount (constant-value guard)
If every matched order carries the exact same value, TraceLog will not verify revenue — it names the repeated amount and the number of orders and asks you to send the real order total.
This almost always means a copied snippet was pasted without replacing the example value, so every "purchase" reports the same placeholder number. Showing that as real revenue would be reporting invented data, so the guard blocks it.
Manual AOV is a deliberate choice: you tell TraceLog to apply one fixed value to every conversion because you don't send a per-order amount. The constant-value guard applies to event-based revenue — you are sending a value field, but it never changes, which is the signature of an un-replaced example value.
If your store genuinely charges the same price for every order (a single fixed-price product, a flat-fee service), that's legitimate: confirm "It's a genuine flat price" in the wizard and revenue verifies normally from then on. Support should read the "example value rejected" state as this guard doing its job, not as a bug.
Confidence Levels
Revenue impact estimates include a confidence level based on data quality:
| Level | When | Margin |
|---|---|---|
| High | 100+ conversions in sample | ±15% |
| Medium | 20–99 conversions | ±30% |
| Low | Under 20 conversions | ±50% |
When confidence is too low to produce a meaningful estimate, revenue impact is suppressed (hidden) rather than shown with an unreliable number. Suppression reasons include insufficient conversion sample, missing scoped revenue data, or unmeasured exposure.
Campaign Attribution
When a purchase event is linked to a browsing session (via Shopify session linking, WooCommerce, Stripe, or server-side events with session_id), the revenue inherits the session's UTM parameters. This means:
- Revenue appears under the originating campaign, source, and medium
- Campaign analytics show actual revenue per channel, not just traffic volume
- Ask and AI reports can answer questions like "which campaign generated the most revenue?"
Without session linking, purchases are recorded but revenue is not attributed to any campaign.
Currency
Revenue is tracked in a single currency per project, configured in project settings. The default is EUR. TraceLog does not perform currency conversion — ensure your events send values in the configured currency.
Start with manual AOV if you're unsure. You can switch to event-based revenue at any time without losing historical issue data. Only future revenue estimates will use the new configuration.