WooCommerce is the most widely used ecommerce platform built on WordPress — which means millions of businesses are running a store and a content site on the same installation, sharing the same domain, and theoretically in a good position to connect their marketing to their sales data.
In practice, most WooCommerce store owners know their revenue. What they don’t know is which marketing channel produced it. A customer who came in through a Google search, received an email, and eventually bought through a paid Facebook ad — which channel gets credit? How do you know what’s actually working?
This is the WooCommerce attribution problem. It’s solvable, and because WooCommerce runs on WordPress, you have more options for solving it than most ecommerce platforms give you. Here’s how.
What WooCommerce Tracks By Default
Out of the box, WooCommerce records order details: the products purchased, amounts, customer information, and the order status. What WooCommerce’s native reporting does not tell you is where that customer came from before they purchased.
WooCommerce has no built-in lead source capture. It records the transaction, not the acquisition channel. To answer “which marketing produced this sale,” you need to add something on top of the core WooCommerce installation.
Google Analytics 4: The Baseline Attribution Layer
GA4 is the starting point for most WooCommerce attribution setups. Properly configured, GA4 can track:
- Which channel (organic search, paid search, email, social, direct) each session originated from
- Which sessions resulted in a purchase (through the purchase event)
- Revenue by channel using ecommerce tracking
- Multi-touch paths to purchase (which channels a customer interacted with before converting)
To implement GA4 ecommerce tracking in WooCommerce, you need a plugin that connects WooCommerce’s purchase events to GA4’s ecommerce schema. The most reliable options are the official Google Site Kit plugin or dedicated plugins like WooCommerce Google Analytics Integration or Duracelltomi Google Tag Manager for WordPress (which pushes WooCommerce events to a GA4 stream via GTM).
Once configured, you can see revenue broken down by source and medium in GA4’s Acquisition reports — organic search, paid search, email, social, direct. This is real attribution data tied to actual purchase events, not just session counts.
UTM Tracking: The Manual but Reliable Method
For marketing channels you control — email campaigns, paid ads, social posts, affiliate links — UTM parameters are how you tell GA4 (and anything else listening) exactly where traffic is coming from.
UTMs are query string parameters added to URLs: utm_source, utm_medium, utm_campaign, utm_content, utm_term. When a visitor arrives at your WooCommerce store from a link with these parameters, GA4 reads them and records the session with that source.
The discipline is tagging every link you place anywhere: every email link, every paid ad destination URL, every link in a social post. Untagged links show up as direct traffic in GA4 and pollute your attribution data. A simple UTM builder spreadsheet or a tool like Google’s own UTM builder makes this manageable.
For email campaigns in particular, every link in every email should carry UTM tags. An email-driven customer who arrives untagged looks like direct traffic in your attribution report.
Storing Lead Source in WooCommerce Order Metadata
GA4 is a reporting tool, not a CRM. It can tell you that organic search drove X in revenue over 30 days, but it cannot tell you that a specific order — order #4857 — came from organic search. For that customer-level attribution, you need to capture the lead source and attach it directly to the WooCommerce order record.
Here’s how this works in practice: when a visitor arrives at your site, you capture their UTM parameters (and the referrer for non-UTM-tagged sessions) and store them in a cookie or session variable. When they complete a WooCommerce purchase, you write that source data to the order as custom order metadata.
Plugins that do this automatically include:
- WooCommerce UTM Tracker — a straightforward plugin that captures UTMs on arrival and saves them to each order.
- Conversios — a GA4 + WooCommerce integration that handles ecommerce tracking and can include UTM data in order records.
- Sales Provenance — captures lead source on first touch, persists it across sessions, and writes it to each WooCommerce order so you can filter your order reports by the original channel that brought in the customer.
With order-level lead source data, you can export your WooCommerce orders and filter by source: how much revenue came from Google Ads, how much from email, how much from Instagram, how much from organic blog traffic. This is real, customer-level attribution that belongs to you — not aggregate reporting in a third-party platform.
Multi-Touch Attribution in WooCommerce
Most WooCommerce attribution setups capture the last touch before purchase (what channel sent the final session that converted) or the first touch (what originally brought the customer in). Both have their uses and their limits.
First-touch attribution credits the channel that brought the customer in originally. If a customer first found you through an organic blog post, organic search gets credit even if they later bought through a retargeted ad. First-touch is good for understanding what channels are generating new customer relationships.
Last-touch attribution credits whatever channel drove the final session before purchase. If a repeat visitor to your store makes a purchase after seeing a Google Shopping ad, the ad gets credit even if organic search originally brought them in. Last-touch is good for understanding what’s closing purchases.
Multi-touch attribution distributes credit across all channels in the path to purchase — linear (equal credit to each), time-decay (more credit to recent touches), or data-driven (based on statistical modeling of actual conversion paths). GA4’s multi-touch path reports show you which combination of channels is working together to produce conversions, rather than giving all credit to one touchpoint.
For most WooCommerce stores, starting with first-touch capture stored in order metadata is the right first step. It gives you clean data on what’s generating customers without requiring a complex multi-touch implementation.
Connecting WooCommerce to Your CRM
If you use a CRM (HubSpot, ActiveCampaign, Klaviyo, Drip, Mailchimp with e-commerce features), integrating WooCommerce data with your CRM adds another layer of attribution insight: you can see the full customer lifecycle from first marketing touch through purchase history, lifetime value, and marketing channel.
WooCommerce integrates natively with most major CRMs through their official plugins. Once connected, purchase events create or update contacts in your CRM with the purchase data. If your CRM is also capturing lead source from web forms and opt-ins, you now have a single customer record that shows both how they came in and what they’ve bought.
This is where the attribution picture becomes genuinely useful: you can segment customers by their acquisition channel and compare lifetime value across segments. Customers who came in through organic blog content have a different LTV than customers from paid social. Customers from email referrals convert to repeat buyers at a different rate than customers from direct traffic. These patterns inform where you should invest marketing budget going forward.
Google Ads and Meta Conversion Tracking for WooCommerce
If you run paid ads sending traffic to your WooCommerce store, both Google Ads and Meta require pixel/conversion tag implementation to report back which ad clicks resulted in purchases.
Google Ads conversion tracking in WooCommerce is most reliably implemented through Google Tag Manager — a GTM container fires a purchase conversion event with order value when WooCommerce’s thank-you page loads. This data feeds back into Google Ads to show you cost per conversion and revenue by campaign. Without this, Google Ads has no visibility into which clicks actually converted to sales.
Meta Pixel and Conversions API similarly need to receive purchase events from WooCommerce. The PixelYourSite plugin and WooCommerce’s own Meta integration handle pixel events; the Conversions API (server-side) adds resilience against browser-based ad blockers and iOS tracking restrictions. Using both (browser pixel plus server-side CAPI) is the current standard for accurate Meta attribution.
A Practical WooCommerce Attribution Stack
For most WooCommerce stores, the practical attribution stack looks like this:
- GA4 with ecommerce tracking — revenue by channel, funnel analysis, multi-touch paths. Baseline for all reporting.
- UTM parameters on every controlled link — email, ads, social. Discipline to tag everything outbound so your data isn’t polluted by untagged sessions looking like direct traffic.
- Lead source capture stored in WooCommerce order metadata — customer-level attribution that you own and can query from your own database, not just aggregate reports in GA4.
- Google Ads and Meta conversion tracking — so paid channels can optimize toward actual purchases rather than just clicks.
- CRM integration — to close the loop between acquisition channel, contact record, and lifetime value.
The goal is not a perfect attribution model — no such thing exists. The goal is enough signal to make better budget decisions: knowing that your blog content generates customers with higher lifetime value than your paid social campaigns is actionable, even if you can’t attribute every dollar to a precise channel.
If you want help setting up WooCommerce attribution that stores lead source at the order level and gives you clean, queryable data on what’s driving revenue, Sales Provenance is built for this.