Skip to Content
Revenue by source

Revenue by source

Revenue by source shows, for each place your visitors come from, how many visits it sent, how many of them converted, and how much revenue those conversions carried. It covers AI engines like ChatGPT and Perplexity, the prompts you track, other websites, and your UTM campaigns, plus the orders your store reports to Voris directly from its server.

You will find it in the left sidebar, in the AI Citations group, as Revenue.

This is being rolled out gradually, so it may not be switched on for your account yet. Once it is released, it is available on every plan, Free included, and it works the same when you upgrade, downgrade, or your trial ends. The number of tracked prompts it lists follows your plan’s prompt allowance.

Before you start: you need a goal

Conversions and revenue are counted against your goals: rules that say “this event counts as a win”, like a signup or an order. A conversion carries revenue when the event that matched the goal includes an amount, such as an order total.

If your site has no goals yet, every table still lists its sources and visits, but conversions read 0 and revenue reads none attributed. You create goals on the Goals page in the sidebar.

Pick a period

Use the period selector at the top of the page to look at the last 7, 30, or 90 days. The page opens on the last 30 days.

What each section shows

The page has five sections, from top to bottom.

Revenue linked to AI engines

The large figure at the top is the revenue on conversions that arrived carrying an AI engine’s referral, in each currency. It is an exact sum, not an estimate.

Expect this to be empty for now. It reads none attributed with a short note explaining why. See Why the AI figures are usually empty below.

AI engines

One row per AI engine that sent you visitors, with its visits, conversions, and revenue.

A conversion counts for an AI engine only when a goal matches the page the AI engine sent the visitor to: the first page view of that visit. For example, if ChatGPT links to your /pricing page, a pageview goal on /pricing counts those visits as conversions. A goal on a later step, such as a checkout page or a signup event that happens afterwards, does not count for the AI engine on this page.

Tracked prompts

One row per prompt you track on the Tracked prompts page that an AI engine cited with a link to your site in this period, with the visits, conversions, and revenue we can link to that prompt. A tracked prompt with no such citation in the period has no row.

These figures are estimates. The revenue cell is marked Est. with a confidence level (high, medium, or low). Revenue shows here only for conversions that are linked to an AI visit, so it is usually none attributed for now.

The est. value column on the AI Citations Analytics page is calculated differently: it multiplies a prompt’s conversions by your site’s average revenue per conversion from AI-referred visits. That average also needs an amount on the AI-referred page view itself, which neither the Voris tag nor the WordPress plugin sends, so the est. value is usually empty too. Only when your own integration sends amounts on those page views can the two figures differ for the same prompt. Both are expected.

Channels

One row per website that sent you visitors, plus two special rows:

  • Direct means visits that arrived with no referrer, for example someone who typed your address or used a bookmark.
  • Reported by your store holds the orders your store integration reports to Voris from your server, rather than from a visitor’s browser. It always sits at the bottom of the table. Its visits column shows a dash (—), because a reported order is not a visit. See Orders your store reports.

UTM campaigns

One row per UTM campaign (the utm_campaign tag on your links), with its visits, conversions, and revenue.

Why the AI figures are usually empty

Voris links revenue to an AI engine only when the conversion itself carries the AI referral. Today that rarely happens:

  • The Voris browser tag records which AI engine sent a visitor, but it does not send order amounts.
  • Store orders, such as those from the WordPress plugin, are reported from your server. They carry the amount, but not the AI referral.

So the top figure, the revenue in the AI engines table, and the revenue for your tracked prompts usually read none attributed. That is not a measured zero: it means Voris cannot link those orders to an AI engine yet. Visits and conversions in the AI engines and Tracked prompts sections still count as described above.

Orders your store reports

The Reported by your store row shows the orders your store integration reports from your server. Today, that is the Voris plugin for WordPress with WooCommerce.

Add a goal on order_created

Store orders are counted like every other conversion, so they need a goal. The WordPress plugin reports each completed order as an order_created event. To count those orders:

  1. Open Goals in the sidebar and choose Create goal.
  2. Give it a name, for example “Store order”, and keep the goal type Custom event.
  3. Set the condition to Event name equals order_created.
  4. Choose Create goal.

Plugin versions before 1.0.0 report orders as purchase instead. Update the plugin, or add a goal on purchase too.

Until a goal matches, the row shows 0 conversions and none attributed, and a note under the table names the goal to add.

Do not include the plugin’s refund event in this goal. See Refunds from the WordPress plugin below.

What Direct leaves out

On this page, Direct leaves out the orders your store integration reports, because they have their own row, and orders from agent commerce tracking, which have their own page. A goal’s By source panel has no Direct row to compare it with: that panel lists only conversions that came with a referrer.

Orders placed by AI shopping agents

If your store uses Voris’s agent commerce tracking, for orders that AI shopping agents place on Shopify or WooCommerce, those orders are shown on the Agent commerce page (Pro and above), not here. They are a different kind of revenue: an AI agent buying directly, not a person who visited your site.

If your WordPress plugin also reports one of those orders, it appears in the Reported by your store row on this page, once.

Currencies and refunds

  • Currencies are never added together. Every figure is shown per currency, for example €1,240.00 and $310.00 on separate lines. Voris does not convert between currencies. An amount sent without a currency is shown with the label currency unknown.
  • Revenue is gross. Refunds that an integration reports as a refund figure show as a separate refunds line under the amount. They are never subtracted.

Refunds from the WordPress plugin

The WordPress plugin reports a refund as a negative amount. This page does not show those as refunds yet. With a goal on order_created only, plugin refunds do not change any figure on this page. A period that holds only refunds still shows the Reported by your store row, with 0 conversions and the note about adding a goal.

If a goal also matches the refund event, each refund counts as a conversion and its negative amount lowers the revenue figure. Keep the goal on order_created only.

When store orders are missing

  • Your site was paused over its plan’s event limit. While event collection is paused, store orders are not recorded, so the store row has no orders for that time. The WordPress plugin lists them in its delivery log on the Tools → Voris screen.
  • The order is not Completed yet. The WordPress plugin reports an order when it reaches Completed, not when it is paid. See WooCommerce revenue tracking.
  • No goal matches. See Add a goal on order_created.

Good to know

  • Don’t add the tables together. Each table answers its own question, so one conversion can appear in more than one table. A visitor sent by ChatGPT appears as chatgpt in AI engines and as chatgpt.com in Channels.
  • Works in every privacy mode. These figures add up events. They need no visitor identifier, so they work the same in Mode A, B, and C. See Privacy modes explained.
  • Reading only. You create goals on the Goals page and manage prompts on the Tracked prompts page. This page only reads them.