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

E-Commerce Playbook

Where an online store's extras land on the book's mechanisms: product lines on the link, feed ads where the platform writes the link, affiliates, seasonal flights dated by launch month, and orders joined to spend.

On this page

An online store runs everything the chapters cover, plus four things they touch only in passing: a product feed that builds its own ads, affiliates who post your links, seasonal flights that launch in bunches, and an order at the end instead of a lead.

None of them needs a taxonomy of its own. Each lands on a mechanism a chapter already teaches. The examples are Stride’s, the book’s fictional shoe brand.

Stride’s campaign value carries the product line, runners, not the shoe. A store records three facts about products, each in a different place:

FactRecorded inStride
Line the ad promotedthe campaign’s product segmentrunners
Item a feed ad showedthe ad platforman ID from the feed
Item that soldthe ordertrail runners, $140

The first and the last aren’t the same fact. A lifestyle ad can sell a running shoe, so the order can’t say what the ad promoted (Chapter 1). Only the link can.

An item in the segment would put a campaign value on the approved list for every shoe in the range, and split one initiative into as many rows. The item has its homes already: the order, and for a feed ad, the platform.

A campaign for every line says na, so summer_clearance-na-2025_06 still splits into three segments (Chapter 4).

A feed ad carries no link you built. The platform picks the product, builds the ad and sends the click to the address in that product’s feed row. In Chapter 5’s terms the platform writes the final link; you control what it starts from and what its settings add.

  1. 1The feed row

    stride.com/trail-runner

  2. 2Your settings

    a tracking template that adds your UTMs

  3. 3The platform

    applies the template, and adds gclid if auto-tagging is on

  4. 4The address bar

    stride.com/trail-runner?utm_source=google&utm_medium=cpc&utm_campaign=summer_clearance-na-2025_06

Say Stride's summer clearance ran as one Shopping campaign, its only Google Ads campaign. The page comes from the feed; the tags come from the ad platform's settings.

Google Shopping and Performance Max

  • A Shopping click goes to the product’s ads_redirect if the feed has one, otherwise to its link. Tracking templates and custom parameters apply, and the most specific tracking template wins, down to the product group (Google, checked 2026-10-06).
  • {product_id} writes “the ID of the product featured in the clicked ad, as indicated in your Merchant Center data feed” (Google, checked 2026-10-06).
  • In Performance Max, adding an asset group turns on the Shopping and dynamic remarketing channels, and setting URL expansion turns on Dynamic Search Ads (Google Ads API, checked 2026-10-06).
  • Its final URL expansion is on by default and can swap your final URL for “a more relevant landing page from the Final URL domain” (Google, checked 2026-10-06).
  • GA4 files auto-tagged Shopping clicks under Paid Shopping and Performance Max under Cross-network. On manually tagged clicks, a campaign name containing shopping, or shop at the start or after a non-letter or an e, qualifies for Organic Shopping, or Paid Shopping with a paid medium (Google, checked 2026-10-06). So a campaign value with shop in it can move manually tagged clicks into a shopping channel.

What that means for the letter:

  1. Campaign. With auto-tagging on, GA4 takes the campaign from Google Ads (Chapter 5), so the Google Ads name is the campaign value, with no shopping- or pmax- in front (Chapter 6). A prefix splits the join key.
  2. Product line. runners only if the campaign’s product groups hold only runners; na for the whole catalog.
  3. Item. {product_id} is an ID, like Chapter 6’s campaign ID: meaningless until looked up in the feed. In utm_content it shares a column with values like hero-image; in a parameter of its own, only tools set up to read it see it.
  4. Landing page. With expansion on, the page a click reached is in the link that arrived, not in your settings.

One limit bites when a sale runs Search and Shopping side by side. Google Ads won’t give an active or paused campaign a name “already assigned to another active or paused campaign” (Google Ads API, checked 2026-10-06), so two campaigns can’t both be spring_sale-runners-2025_03. The ways around it keep the type out of the name:

  • One Google Ads campaign per value: a Performance Max campaign that covers Shopping, or Search alone. The types then can’t each have their own budget and settings under that value.
  • A finer value that’s true of each campaign, such as a narrower line, so the names differ honestly. It costs one more value on the list.
  • Chapter 6’s campaign-ID key: the names differ and the join reads {campaignid}. It costs a lookup from each ID to its campaign value.

Meta Advantage+ catalog ads

  • Every catalog item needs a link, “the URL to the specific product page” (Meta, checked 2026-10-06).
  • Loading a Google Merchant Center feed, Meta says to check the link column for Google tracking parameters such as utm_campaign=GoogleDynRMKT&utm_medium=display (Meta, checked 2026-10-06).
  • Meta’s ad creative reference says url_tags apply to “urls clicked from page post ads, message of the post, and canvas app install creatives only”, and offers template_url for dynamic ads’ third-party click tracking (Meta, checked 2026-10-06).

The second line is Chapter 5’s collision, one stage earlier. A tagged link sends one source to every platform that reads the feed, and another platform’s settings add a second value to the same slot. An untagged link leaves each platform’s settings as the one writer.

The third line doesn’t name catalog ads either way, so it doesn’t say whether your URL parameters reach a catalog ad’s product link. So check it the way Chapter 5 checks every channel: tap the live ad and read the address bar.

Retargeting

A catalog ad shown to people who left a product in their cart is retargeting, and retargeting is an audience. It keeps the initiative’s campaign value and the paid medium; the audience goes in the ad set name and its utm_term, retargeting-cart_abandoners (Chapter 6). Stride’s spring-sale Instagram retargeting ads ran under spring_sale-runners-2025_03 (Chapter 7).

Affiliates

Source affiliate- plus the partner (affiliate-jane_smith), medium affiliate, and the initiative’s campaign value. GA4’s Affiliates channel matches on the medium alone, “Medium = affiliate” (Google, checked 2026-10-06).

Who writes the link is Chapter 5’s question, with three answers here. You make each partner’s link. A network’s settings write the values, which then must be values on your list. Or partners type their own, and every partner is a writer. A network that routes clicks through its own redirect is a wrap: your tags arrive only if the address it redirects to carries them.

The recipe is in the Cheat Sheet.

Seasonal flights and relaunches

A flight is dated by its launch month, never a quarter. 2025_q4 would give Black Friday and its December relaunch one value: one row where there were two flights.

FlightCampaign value
Spring sale, March 1spring_sale-runners-2025_03
Relaunched in Mayspring_sale-runners-2025_05
Summer clearance, every linesummer_clearance-na-2025_06
Black Friday, USus-black_friday-na-2025_11
Black Friday, Europeeurope-black_friday-na-2025_11
Relaunched in December, USus-black_friday-na-2025_12

The rows after the first are illustrations. A running campaign keeps its value until it ends, however long it runs; a relaunch is a new flight with its own launch date.

For campaigns launching from 2025_09, when Stride starts selling in Europe, the name leads with a region (Chapter 10). Set spring_sale-runners-2025_03 beside next spring’s us-spring_sale-runners-2026_03: the parser tells them apart by segment count, and the mapping table gives the older one region us.

A season launches many campaigns at once, so each initiative comes from the approved list: black_friday, never also bfcm or black-friday, whose hyphen adds a segment. Where several teams build links for one season’s campaigns, defining each campaign before anyone builds a link is the first stage of Chapter 9’s two-stage workflow.

Orders and the revenue join

At a checkout, the order is the record, and it needs the values the way a lead does (Chapter 7). It gets them the same way: a script keeps them in the browser when the visitor lands, and the checkout copies them onto the order.

Say Stride’s checkout kept them. Alex’s order from Chapter 11 would read as below, the touches from the browser and the rest from the checkout:

On the orderValue
First-touch campaignspring_sale-runners-2025_03
Last-touch sourceinstagram
Items, revenuetrail runners, $140

Then Chapter 6’s join reaches the orders. It matches the campaign and the platform: Meta’s spend pairs with orders from facebook or instagram in paid_social, never the newsletter’s orders in the same campaign. Chapter 6’s example numbers for the sale’s first week: Meta spend $2,400, facebook / paid_social revenue $8,400 from 60 orders, a ROAS of 3.5.

Each platform’s own conversion count credits only its own ads, so two can claim the same order. Your orders are the one count that belongs to none of them.

Which touch gets the credit for an order is a model’s call (Chapter 11).

Next upAgency Playbook