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.
The line goes on the link, the item on the order
Stride’s campaign value carries the product line, runners, not the shoe. A store records three facts about products, each in a different place:
| Fact | Recorded in | Stride |
|---|---|---|
| Line the ad promoted | the campaign’s product segment | runners |
| Item a feed ad showed | the ad platform | an ID from the feed |
| Item that sold | the order | trail 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).
Feed ads: the platform writes the link
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.
1The feed row
stride.com/
trail- runner 2Your settings
a tracking template that adds your UTMs
3The platform
applies the template, and adds
gclidif auto-tagging is on4The address bar
stride.com/
trail- runner ?utm_source= google& utm_medium= cpc& utm_campaign= summer_ clearance- na- 2025_06
Google Shopping and Performance Max
- A Shopping click goes to the product’s
ads_redirectif the feed has one, otherwise to itslink. 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, orshopat the start or after a non-letter or ane, qualifies for Organic Shopping, or Paid Shopping with a paid medium (Google, checked 2026-10-06). So a campaign value withshopin it can move manually tagged clicks into a shopping channel.
What that means for the letter:
- 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-orpmax-in front (Chapter 6). A prefix splits the join key. - Product line.
runnersonly if the campaign’s product groups hold only runners;nafor the whole catalog. - Item.
{product_id}is an ID, like Chapter 6’s campaign ID: meaningless until looked up in the feed. Inutm_contentit shares a column with values likehero-image; in a parameter of its own, only tools set up to read it see it. - 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
linkcolumn for Google tracking parameters such asutm_campaign=(Meta, checked 2026-10-06).GoogleDynRMKT& utm_medium= display - Meta’s ad creative reference says
url_tagsapply to “urls clicked from page post ads, message of the post, and canvas app install creatives only”, and offerstemplate_urlfor 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.
| Flight | Campaign value |
|---|---|
| Spring sale, March 1 | spring_sale-runners-2025_03 |
| Relaunched in May | spring_sale-runners-2025_05 |
| Summer clearance, every line | summer_clearance-na-2025_06 |
| Black Friday, US | us-black_friday-na-2025_11 |
| Black Friday, Europe | europe-black_friday-na-2025_11 |
| Relaunched in December, US | us-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 order | Value |
|---|---|
| First-touch campaign | spring_sale-runners-2025_03 |
| Last-touch source | instagram |
| Items, revenue | trail 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).