Sales by Marketing Campaign
Sales by Marketing Campaign shows your sales grouped by the utm_campaign tag on each order. It tells you which tagged campaigns bring in orders and how much they’re worth.

How It’s Calculated
The table has one row for each different utm_campaign on your orders in the date range, and shows the 20 with the most orders.
The columns are:
- Marketing Campaign: the
utm_campaigntag, in lowercase. Orders with noutm_campaignare in the (none) row. - Orders: the number of orders placed.
- Average Order Value: the row’s sales before returns, divided by its orders.
- Gross Sales: each item’s price times its quantity, before discounts, shipping, tax and returns.
- Total Sales: Gross Sales minus Discounts, plus Shipping and Tax, minus money refunded in the date range.
The totals row adds up only the rows shown. If you have more than 20 campaigns, it’s less than your total.
Where the Tag Comes From
Shopify records the UTM tags on the customer’s last visit before the order. Only orders Shopify can tie to a visit to your online store have them. Point of sale, phone and draft orders have none.
By the Numbers needs permission to read Shopify’s marketing events to record tags. Orders imported without it carry none. Capital letters don’t matter: Email and email count together.
What Counts
- Sales count on the day the order was placed. A refund counts on the day it was made, against the
utm_campaignof the original order. Refunds on orders placed more than 2 years before the start of the date range aren’t counted. - Refunds on orders with no
utm_campaignaren’t taken off the (none) row, so its Total Sales can be higher than it should be. - Orders that were canceled, or whose payment was voided or expired, don’t count.
- Days follow your store’s time zone, and every amount is in your store’s currency.
- Sales Channel, Segment and Filters narrow the report. There’s no comparison period.
What Good Looks Like
There’s no right mix. Compare campaigns on Average Order Value as well as Orders.
Campaign names only group together when they match. spring_sale and spring-sale are 2 rows, so use one name for each campaign.
What to Do About It
- Orders in the (none) row: add
utm_campaignto your ad links, using each platform’s dynamic value so every campaign names itself. How to Tag Your Ads With UTM Parameters shows how. - Spend against these orders: open Campaign Performance to see what each campaign spent.
- A campaign with a low Average Order Value: check its discounts in Sales by Discount Code.
Where to Find It
- Sales by Marketing Campaign: open Reports and look under Sales.
- Sales by Marketing Source: the same orders by
utm_source. - Sales by Marketing Medium: the same orders by
utm_medium. - Sales Attributed to Marketing: all tagged sales, period by period.