Docs › Use the dashboard
Revenue
Send an amount with an event and see revenue next to your visitors, per source, campaign, page, country, device, goal and funnel, in your own currency.
Send an amount with an event
A shop or a SaaS sends an amount and a currency with the event of a sale, for example a purchase or a new subscription. Nothing else is needed: no order number, no products, no customer.
From your own code:
window.nvivio?.track('purchase', { revenue: { amount: 49.95, currency: 'EUR' } });
Without code, on the button or the thank-you page’s element that sends the event:
<button data-event="purchase" data-event-revenue="49.95 EUR">Pay now</button>
revenueis a reserved property: an object withamountandcurrency, a number, or a text such as"49.95 EUR","EUR 49.95"or"49,95 EUR".- Without a currency, the amount is in your site’s currency:
{ revenue: 49.95 }. - The amount is between 0 and 1,000,000, with at most two decimals (more are rounded).
- The currency is EUR or one of the 29 currencies the European Central Bank publishes a reference rate for: AUD, BRL, CAD, CHF, CNY, CZK, DKK, GBP, HKD, HUF, IDR, ILS, INR, ISK, JPY, KRW, MXN, MYR, NOK, NZD, PHP, PLN, RON, SEK, SGD, THB, TRY, USD and ZAR. The signs € and £ work too; $ does not, because several currencies use it.
- An amount that breaks these rules is left out; the event itself still counts.
revenuedoes not count as one of the 20 properties of an event, and only custom events carry it (not pageviews, outbound links or downloads).
The script does not grow for this: it sends properties as they are, and Nvivio reads the amount.
A thank-you page opened twice
A visitor who reloads the thank-you page, or comes back to it, sends the purchase again. The same event with the same amount, in the same visit within 30 minutes, counts its amount once, so no order number is needed to keep revenue right.
Shops: WooCommerce and Shopify
- WooCommerce: the WordPress plugin counts every order once as the event
purchase, with its total and currency. Nothing to set up. - Shopify: a custom pixel does the same at the end of the checkout; copy it from Shopify.
Your currency
Choose the currency of your reports in Settings › Revenue (the default is EUR). Every amount is kept as it was sent, in its own currency, and shown in yours, converted with the European Central Bank’s euro reference rate of the day the event happened. The ECB publishes its rates around 16:00 CET on working days; a weekend or holiday uses the latest rate before it, and today uses yesterday’s until today’s is out.
Choose another currency and every amount, also from before, is shown in it. API: PATCH /v1/sites/{site} with {"currency": "USD"}.
Where you see revenue
- Overview: a tile Revenue next to your visitors, with the change against the previous period. Click it and the chart shows revenue per day. The tile appears once your site sends amounts; leave it out with Customize.
- Goals and funnels: a column Revenue per goal, with the average order on hover. A funnel whose last step carries amounts says how much the visits that completed it brought in, from how many orders, and the average order.
- Reports: every report gets the columns Revenue, Orders and Avg. order once anything in the period carried an amount: channels, sources, campaigns, UTM, pages (entry and exit pages too), events, countries, regions, cities, languages, devices, browsers and systems, and for apps the app version, system version and device model. Sort on any of them, and download them with CSV. Pick a goal under Conversions for and the columns show that goal’s amounts.
- Revenue by currency: in Reports, the amounts per currency as they were sent, and what they make in yours.
- Visits: in the route of a visit, the amount next to its event, as it was sent.
Which source gets the revenue
Revenue belongs to the visit it happened in. A source, campaign, country or device gets the amounts of the visits it brought; an entry page the amounts of the visits that started there, so those rows add up to the total. In All pages, a page gets the amounts of the visits that viewed it; a visit that viewed three pages counts for each of them, as conversions do. An event gets its own amounts.
Nvivio does not follow anyone across days or devices, so a purchase two days after the first visit belongs to the visit of the purchase.
Older data
The amounts of days older than your plan keeps visits are kept in the daily totals, in euro, and converted to your currency with each day’s rate. As for every number, filters and goals only split the days that still have visits (Data retention).
Privacy
Only an amount and a currency are stored, apart from the other properties. Do not put an order number, an email address or a customer number in an event’s properties: Nvivio does not need them, and they would make a visit traceable to a person. A visitor who asks for their data gets the amounts of their visits with the rest.
API and AI assistants
GET /v1/sites/{site}/stats:revenue,orders,aov(average order value),revenue_per_visitorandcurrency, also for the previous period.GET /v1/sites/{site}/timeseries:revenueandordersper bucket.GET /v1/sites/{site}/breakdown:revenue,ordersandaovon every row;sort=revenueputs the values with the most revenue first;dimension=currencygives the amounts per currency as sent (amount) and converted (revenue).GET /v1/sites/{site}/goalsandGET /v1/sites/{site}/funnels/{id}: revenue per goal and per funnel.
The MCP server answers the same questions, such as “which channels brought the most revenue last month?”. See the API.