Measure results4 min read

Campaign report

See which ad campaigns actually made money - revenue, orders and average order by utm_campaign - and export a hashed customer audience for Meta.

The Marketing → Campaign report screen answers one question: which ad is making money? It groups your orders by marketing campaign and shows revenue, order count and average order value for each.

Requires the Business plan

The campaign report is available on the Business plan and above. See Billing to change your plan.

How an order gets attributed

A campaign is recognised from the utm_campaign tag on the address the customer arrived through. So tag your ad links:

https://yourshop.com/?utm_source=facebook&utm_campaign=spring-sale

A customer arriving on that link is recorded against the "spring-sale" campaign with source "facebook". We record the first touch, and only when the customer accepted tracking cookies.

Name campaigns consistently

Grouping is by exact text match - spring-sale and Spring-Sale become two separate rows. Pick one naming scheme and stick to it.

The columns

  • Campaign - the utm_campaign value. Orders with no campaign fall into a single Direct row, which always sits last.
  • Source - the utm_source for that campaign. When the customer came from a Meta ad with no UTM tags, the source reads Meta (recognised from the click marker). The most frequent source for the campaign is shown.
  • Orders - how many orders the campaign produced. A split order counts once, and the money of both parts is in the revenue.
  • Revenue - the total of those orders excluding delivery, in your shop's currency.
  • Avg. order - revenue ÷ order count.
  • Share - what percentage of the period's revenue the campaign brought in, with a bar beside the number, so "41% vs 6%" reads at a glance instead of comparing two strings of digits.

Rows are sorted by revenue, highest first, so your best campaign is at the top. A TOTAL row closes the table.

Four figures sit above the table for the period: campaigns with orders, orders (the same ones the sales report counts), revenue and average order.

The same orders as the sales report

Cancelled orders, fast orders still waiting to be confirmed, card payments that did not go through and test orders don't count. An order paid by card and refunded later stays in - as in the "Sales" line of the sales report. So without a source filter, revenue here equals the sales for the same period minus delivery. It can be lower than what your ad platform reports: with cash on delivery, a share of parcels is refused at the door.

Date range and export

Pick a period from the Period button - it offers ready-made choices (Today, Last 7 days, Last 30 days, This month, Last month, This year) plus a custom "from / to". The Source button narrows the report to one or more utm_source values; only sources that actually occur in the period are offered. A source filter excludes the "Direct" row - the question is which of your tagged campaigns worked, and an un-attributed order is none of them.

On the right sit "Clear (n)" with the number of active filters, and the number of matching campaigns.

The Download button opens a menu with Export CSV and Export Excel and downloads the currently filtered rows. The file is Cyrillic-safe. In it, revenue and average order each come as two columns - EUR and BGN, converted at the fixed rate - so they drop straight into an accounting spreadsheet.

On a phone the table becomes a list: the campaign and its share on the left, the revenue on the right.

Customer audience for Meta

Below the report sits a separate Customer audience for Meta card. The Export customer list (CSV) button downloads your buyers as a file to upload in Meta Ads Manager as a Custom Audience - the source for Lookalike audiences, for excluding people who already bought, and for win-back campaigns.

The list is de-duplicated by email (one row per person, with a phone backfilled from a later order if the first one lacked it). Emails and phone numbers are hashed (SHA-256) before they leave the BackOffice - you upload irreversibly scrambled values, not readable contacts. It uses the same normalisation as the Conversions API, so the audience matches what your Pixel already reports. Test orders are left out of the list.

The lawful basis is yours

This is your own customer data going into your own ad account. Make sure you have a lawful basis to use it for advertising before you upload the file.

Tips

  • If everything lands in the Direct row, your ad links probably have no UTM tags - add them and the report fills up.
  • Compare average order across campaigns, not just total revenue: a campaign with few but large orders is often worth more than one with many small ones.
  • For the order-by-order detail see Reports; for setting up the Pixel and Conversions API see Site settings.

Next step

You know what makes money. What's left is account admin - subscription, invoices and accepting card payments. See Billing & subscription.

All guides

Try all of this in a shop of your own

Every feature in these guides is in the shop from day one - nothing to install and nothing to develop.

Start your site