Skip to main content
Terminus
Contents
Field GuidesE-Commerce · ~8 min read

E-Commerce Playbook

Product-level tracking, shopping campaigns, affiliate governance, and seasonal patterns.

On this page

Thousands of SKUs. Seasonal bursts where dozens of campaigns launch at once. Affiliate networks, dynamic remarketing, and shopping campaigns where the ad platform, not you, controls the creative.

That’s e-commerce tracking, and B2B SaaS rarely meets any of it. By the end of this page you can govern all five without inventing a new taxonomy for each one.

Why E-Commerce Is Different

The core principles don’t change. Consistent naming, controlled vocabularies, and governed link creation apply to e-commerce exactly as the rest of this guide describes them. What changes is the scale and specificity required:

  • Product breadth. A SaaS company might run campaigns for 3 products. An e-commerce company might run campaigns across 50 categories and 5,000 SKUs. Product-level tracking is essential, and it can’t mean 5,000 campaign values.
  • Seasonal intensity. Black Friday, Prime Day, back-to-school, holiday: compressed bursts where dozens of campaigns launch simultaneously. Governance that works for “a few campaigns a month” breaks under this volume.
  • Affiliate complexity. Enterprise affiliate programs may involve hundreds of partners, each generating links with their own conventions.
  • Shopping campaigns run on product feeds, not manually crafted ads (Google Shopping, Meta Advantage+ catalog ads). The platform decides what’s shown, and standard UTM workflows don’t always apply.
  • Shorter buying cycles. B2B attribution tracks weeks or months. E-commerce often tracks hours or days. Different attribution windows change which models are useful.

Track Categories, Not SKUs

The naive approach, one utm_campaign value per product, hands you an unmanageable taxonomy. utm_campaign=blue_running_shoes_size_10_mens is not governance; it’s chaos in structured clothing.

Track products at the level your marketing team actually controls.

For most e-commerce teams that’s the category or product line, not the SKU. SKU-level performance is already captured in your e-commerce platform (Shopify, WooCommerce, Magento) and in analytics via ecommerce event tracking. UTM parameters should carry which product category or collection a campaign promotes. Nothing more.

Recommended dimension mapping:

What to trackWhere to put itExample values
Product categoryutm_campaign segmentshoes, apparel, accessories
Collection/promotionutm_campaign segmentspring_sale, new_arrivals, clearance
Specific product (when promoted individually)utm_contentultraboost-22-black, air-max-90-white
SKU-level detailDon’t put in UTMsTrack via ecommerce events / product feeds

Structured campaign example:

spring_sale-shoes-us-2025_q2

initiative
category
region
date
utm_campaign

ultraboost-22-hero-banner

product
placement
utm_content

This lets you answer “How did the spring sale perform for shoes in the US?” without creating a separate campaign value for every product.

Shopping Campaign Naming

Google Shopping (standard or Performance Max), Meta Advantage+ catalog ads (formerly dynamic ads), and similar feed-driven formats present a governance problem no other channel has: you don’t control the ad creative or the landing page for each product. The platform pulls products from your feed and serves them dynamically.

So govern what’s left. It’s more than you’d think:

ElementWhere it appearsGovernance applies?
Campaign nameAd platform UI, analytics reportsYes: name it consistently
Ad group / asset group nameAd platform UIYes
Product feed attributesFeed file / Merchant CenterPartially (titles, categories)
Destination URL per productProduct feedLimited (can add tracking templates)
Ad creativeAuto-generated from feedNo

Shopping campaign naming convention:

Apply the same structured naming from Chapter 7b to your shopping campaigns:

Campaign name:    shopping-shoes-us-performance_max-2025_q2
Ad group/asset:   shopping-shoes-running-bestsellers

Tracking templates for Shopping:

Google Shopping campaigns support tracking templates at the campaign or account level:

{lpurl}?utm_source=google&utm_medium=cpc&utm_campaign=shopping-shoes-us-2025_q2&utm_content={product_id}

The {product_id} dynamic parameter shows you which specific products drove clicks without a separate campaign for each product. One catch: it returns the Merchant Center product ID, not the product name, so budget a lookup table to make reports human-readable.

Performance Max considerations:

Performance Max runs one campaign across Search, Shopping, Display, YouTube, Discover, Gmail, and Maps. That makes UTM-based channel analysis harder, because a single utm_campaign value now spans multiple channels. Google auto-tagging via gclid handles the analytics attribution. Watch final URL expansion too: it ships turned on, and Google can swap your final URL for a landing page it judges more relevant unless you switch the expansion off or exclude URLs. Your warehouse reporting has to remember that “Performance Max” is not a single channel, because nothing in the data will remind it.

Dynamic Remarketing Parameters

Dynamic remarketing campaigns (Google, Meta, Criteo) serve personalized product ads based on a user’s browsing history. The standard tracking template works; add parameters that identify the remarketing context:

utm_source=google
utm_medium=display
utm_campaign=remarketing-shoes-us-2025_q2
utm_content=dynamic-product-carousel

What to watch for:

  • Remarketing shows very high last-click conversion rates because it targets users who already showed purchase intent. Under last-click attribution, remarketing will always look like your best channel. It’s capturing demand, not creating it. Use incrementality testing (Chapter 9) to measure the true lift.
  • Dynamic remarketing URLs get very long once platforms append their own parameters (gclid, fbclid, dclid). Test that your landing pages handle the full URL without truncation.

Affiliate UTM Governance

Enterprise affiliate programs are one of the hardest governance challenges in e-commerce. You’re asking hundreds of external partners to follow your naming conventions. Partners who also work with your competitors, and who have no incentive to learn your taxonomy.

The problem:

Without governance, your affiliate data looks like this:

utm_sourceutm_mediumsessions
affiliateaffiliate4,291
partner_couponsitecpc1,843
CouponSitereferral782
influencer-janesocial567
JaneSmithaffiliate312

Five rows. Two actual sources: a coupon site and an influencer, hiding behind inconsistent source names and wrong medium values.

Three approaches, ranked by control:

1. Generate all affiliate links yourself (highest control).

Don’t let affiliates write their own tracked URLs. Generate governed links for each affiliate and distribute them. Each link uses your taxonomy:

utm_source=affiliate-couponsite
utm_medium=affiliate
utm_campaign=spring_sale-shoes-2025_q2

The affiliate gets a link; they never need to understand your taxonomy. This is the most reliable approach, and it works well for smaller programs (under 50 partners).

2. Use your affiliate platform’s tracking (medium control).

Affiliate platforms (Impact, Awin, CJ, Partnerize) have their own click tracking. Configure the platform to append governed UTMs when redirecting through their click tracker. The affiliate’s link goes through the platform’s redirect, which appends your parameters before landing on your site.

Most platforms support tracking templates:

{destination_url}?utm_source=affiliate-{publisher_name}&utm_medium=affiliate&utm_campaign={campaign_name}

3. Provide templates with instructions (lowest control).

If affiliates must create their own links, give them a template with pre-filled values and strict instructions. Then expect non-compliance anyway. Run monthly audits of affiliate-sourced traffic and flag violations.

Affiliate-specific utm_source naming:

Use a prefix pattern to keep all affiliate sources filterable:

utm_source=affiliate-couponsite
utm_source=affiliate-cashback_app
utm_source=affiliate-jane_smith
utm_source=affiliate-tech_review_blog

One regex (^affiliate-) now filters all affiliate traffic, and individual partner performance stays visible.

Seasonal Campaign Patterns

E-commerce marketing follows predictable seasonal cycles. Your taxonomy should absorb them without growing a new naming convention each season.

Recommended seasonal campaign naming:

utm_campaign = [season_or_event]-[product_category]-[region]-[year_quarter]

Examples:
black_friday-electronics-us-2025_q4
back_to_school-backpacks-us-2025_q3
holiday_gift_guide-accessories-global-2025_q4
valentines-jewelry-us-2025_q1
spring_clearance-apparel-eu-2025_q2
prime_day-all-us-2025_q3

Key principles:

  • Use the season or event name, not the month. black_friday means something in a report; november_promo doesn’t. If you run multiple November campaigns, the date segment (2025_q4) carries the time dimension.
  • Keep a controlled vocabulary of seasonal events. Without one, you’ll get black-friday, blackfriday, bf, BFCM, and cyber_week as five separate campaigns. Define the approved list and enforce it.
  • Name consistently and year-over-year comparison becomes a filter. black_friday-shoes-us-2025_q4 and black_friday-shoes-us-2024_q4 differ only by date. Which is exactly the point.

E-Commerce Attribution: What’s Different

Three characteristics separate e-commerce attribution from B2B:

1. Shorter cycles, more touchpoints per session.

A customer sees a Meta ad, clicks through, browses three categories, abandons a cart, gets the cart abandonment email, and purchases, all inside 48 hours. Multi-touch attribution across sessions still matters; the window is just compressed. Set your lookback accordingly: 7–14 days for most e-commerce, not the 30–90 days of B2B.

2. Transaction-level data sharpens ROI.

In B2B, a “conversion” might be a demo request with uncertain revenue behind it. An e-commerce conversion has an exact dollar value. That makes ROAS (Return on Ad Spend) calculations precise, and channel-level budget optimization gets to run on data instead of faith. Build your UTM taxonomy to support ROAS reporting by campaign, channel, product category, and time period.

3. Repeat purchases change the attribution story.

A first-time buyer acquired via paid social who then makes four repeat purchases via email has a very different LTV profile than a one-time buyer. First-touch attribution captures the acquisition source; attribute subsequent purchases to the retention channel (email, loyalty program). Make sure your CRM or CDP tracks both: acquisition source (first-touch UTMs) and re-engagement source (last-touch UTMs per order).

Quick Reference: E-Commerce UTM Patterns

Campaign typeutm_sourceutm_mediumutm_campaignutm_content
Google Shoppinggooglecpcshopping-[category]-[region]-[date]{product_id} (dynamic)
Meta Advantage+ catalog adsfacebookpaid_socialremarketing-[category]-[date]dynamic-product-carousel
Cart abandonment emailklaviyoemailcart_abandonment-[date]cta-complete-purchase
Affiliate (coupon site)affiliate-[partner]affiliate[promotion]-[category]-[date]
Flash sale (email)newsletteremailflash_sale-[category]-[date]hero-cta / product-grid
Seasonal promo (paid social)facebookpaid_socialblack_friday-[category]-[region]-[date]video-lifestyle / static-product
Influenceraffiliate-[name]affiliate[promotion]-[category]-[date]story-swipe-up / bio-link
Loyalty/retention emailloyalty_programemailvip_exclusive-[category]-[date]cta-shop-now

If you remember one thing: Track what your marketing team controls: categories and collections in UTMs, SKUs in the product feed. Most of what’s hard in e-commerce governance (shopping campaigns, affiliates, seasonal bursts) is that one decision applied at higher volume.

Action Item: Pull your current utm_source values that contain “affiliate” or come from known affiliate partners. Inconsistent? Generate governed links for your top 10 affiliates this week. That’s where the highest volume of messy data originates.

Next upAgency Playbook: Agency Playbook: Multi-Client Taxonomy Governance