Marketing attribution

Instagram vs email: comparing WooCommerce revenue by source

To compare Instagram and email sales in WooCommerce, tag every Instagram and email link with UTM parameters, then group orders by UTM source or medium. WooCommerce order attribution saves those tags on each order, so you can total orders and net sales for each. Without tags, most clicks from both land in Direct or Referral and the comparison is meaningless.

This guide covers why untagged traffic hides, how to tag both channels the same way, how to total and compare them, and what the comparison can't tell you.

Why Instagram and email are hard to compare out of the box

WooCommerce's order attribution decides an order's source from the link the buyer arrived on. Instagram and email are both awkward:

Visit What WooCommerce often records
Tap on an untagged link in an Instagram bio or story Referral from an Instagram domain, or Direct if the app didn't pass a referrer
Click on an untagged link in an email Usually Direct, because many email clients don't pass a referrer
Click on a tagged link from either Source type utm, with your utm_source, utm_medium and utm_campaign

So an untagged comparison might show Instagram as a handful of referrals and email as nothing at all, while Direct quietly holds most of both. The fix is the same for both channels: UTM parameters. WooCommerce reads them from the URL, so they work even when the app hides where the click came from.

Use one naming scheme for both, so you can compare like with like:

Where utm_source utm_medium utm_campaign
Instagram bio link instagram social bio
Instagram story or post instagram social the campaign name
Instagram paid ads instagram paid-social the campaign name
Newsletter newsletter email the send name, e.g. oct-newsletter
Automated emails (welcome, abandoned cart) klaviyo or your tool's name email the flow name

A few rules keep it clean:

  1. Lowercase everything. Instagram and instagram are two different sources in every grouping.
  2. Keep medium broad (email, social, paid-social) and put detail in campaign. That way "email vs social" is one grouping by medium.
  3. Check your email tool's settings. Many can add UTM tags to every link automatically. Make sure their values follow your scheme.
  4. Test each link in a private window with a test order, and check the Order attribution box on the order.

The UTM tracking guide covers the full parameter list and common tagging mistakes.

How to compare Instagram and email revenue

Once a month or two of tagged orders has built up, total them. Core Analytics has no attribution report, so use one of the methods in how to see orders by channel: an export with attribution meta, WooCommerce's free WooCommerce Analytics extension (which has an Orders by Source report), SQL, or a tool that reads attribution.

Group two ways:

  • By UTM source to compare instagram with newsletter directly.
  • By UTM medium to compare all email with all social, across tools and campaigns.

Then add the untagged leftovers. Grouping by source also shows referral orders under the referring site's host name, so look for Instagram domains among your referral sources too. Which websites send you customers explains how referral sources are recorded.

What to compare

Measure Why it matters
Orders Volume: which channel produces more buyers
Net sales Revenue after coupons and refunds, before tax and shipping
Net sales per order Whether one channel brings bigger baskets
Change vs last period Whether a channel is growing or fading

Say Instagram brought 46 orders and $2,580 in net sales last month, and email brought 31 orders and $2,790. Instagram wins on volume, email on revenue and on order value ($90 against $56). Both facts matter: Instagram may be finding new customers while email sells to people who already know you.

What the comparison can't tell you

  • It's last click only. WooCommerce credits the last identified source. Instagram often introduces a customer who later buys through Google or a newsletter. Under last-click attribution, Instagram gets nothing for that.
  • Session-only memory. Attribution cookies last for the browser session. A follower who taps your post, leaves, and buys tomorrow by typing your address shows as Direct.
  • No visits, so no conversion rate. WooCommerce only records buyers. To know what share of Instagram visitors buy, you need visit counts from Google Analytics or Instagram's own insights.
  • Email lists are warm. People on your list already know you, so email usually converts better. That doesn't mean Instagram is failing.
  • Consent and blockers. Visitors who decline marketing cookies (with a WP Consent API banner) or block scripts end up as Unknown. See why attribution says Unknown.

The quick way: ask Askshelf

Askshelf adds Analytics › Askshelf to WordPress admin. Its "orders by channel" lookup groups orders and net sales by UTM source, UTM medium, UTM campaign, source type or device, for any date range, with an optional comparison period.

Askshelfexample answer

Compare orders from instagram and newsletter in October with September.

instagram brought 46 orders and $2,580 in net sales in October, up from 34 orders ($1,910) in September. newsletter brought 31 orders and $2,790, roughly flat on September's 30 orders ($2,710).Orders by channel, grouped by UTM source, 1–31 October, compared with the previous period
An example on a demo store. In your store, the numbers come from your own orders.

You can ask the same thing by medium ("email vs social") or by campaign. Askshelf groups by what WooCommerce stored, so untagged Instagram clicks appear under their referring host name or under Direct, not under instagram. It doesn't calculate profit or return on ad spend. See the order attribution use case for more.

What to do with the result

  • Tag first, judge later. Give tagging a full month before drawing conclusions.
  • Judge each channel on its job. If Instagram brings first-time buyers and email brings repeat buyers, you need both. The new vs returning customers guide shows how to look at that split.
  • Move Instagram followers onto your list. A sign-up offer in your bio turns an expensive channel into a cheap one.
  • Revisit after big sends or launches, and read the hub on WooCommerce order attribution for how all channels fit together.

Common questions

Why do my Instagram sales show as Direct in WooCommerce?

When the Instagram app opens a link without passing a referrer, WooCommerce sees a visit with no source and labels it Direct. Adding UTM parameters to the link fixes this, because WooCommerce reads the tags from the URL itself.

How does WooCommerce know an order came from email?

Only if the link in the email carried UTM parameters such as utm_medium=email. Email clients often open links without a referrer, so untagged email clicks usually show as Direct.

Can WooCommerce count Instagram purchases made days after seeing a post?

Usually not. WooCommerce's attribution cookies last for the browser session and credit the last identified source. Someone who sees a post today and buys next week after a Google search is credited to Google.

See how Askshelf handles this: Order attribution reports for WooCommerce