Set up analytics and conversion tracking
Connect GA4, Meta Pixel, TikTok, and the SellStein-native analytics. UTM parameters, attribution windows, and what to actually measure.
Last updated 2026-05-10
Analytics in commerce is a mess. Here's how to set up a sane stack without 12 conflicting numbers.
SellStein's native analytics
Reports → Analytics. Built in, no setup. Tracks:
- Sessions, page views, conversion rate
- Products viewed, added to cart, purchased
- Revenue, AOV, repeat-customer rate
- Traffic sources (organic, direct, referral, paid, email, social)
- Cohort retention by signup month
Source of truth for store-internal metrics. Doesn't track anything that leaves SellStein (your blog on Substack, your ad spend on Meta).
Google Analytics 4
Settings → Integrations → Google Analytics → connect. We auto-emit the GA4 ecommerce events:
- view_item, add_to_cart, begin_checkout, purchase, refund
Ecommerce reports in GA4 work without further config. Goal tracking, audience definitions, cross-domain tracking. The GA4 standard stuff.
Meta Pixel
Settings → Integrations → Meta Pixel → enter pixel ID. We fire:
- PageView, ViewContent, AddToCart, InitiateCheckout, Purchase, AddPaymentInfo
For Conversions API (server-side, more accurate than browser pixel post-iOS-14) → Settings → Integrations → Meta CAPI → enter access token. Both pixel and CAPI fire in parallel. Meta dedupes on the event_id we send.
TikTok, Pinterest, Snap, Twitter
All same pattern. Settings → Integrations → click the network → enter ID + access token. Standard ecommerce events fire automatically.
UTM parameters
For paid traffic and email, append UTMs to the destination URL: utm_source, utm_medium, utm_campaign, utm_content, utm_term. We capture these on landing and attribute the resulting order to the right campaign.
The convention that scales:
- utm_source = the platform (google, meta, tiktok, newsletter)
- utm_medium = the channel type (cpc, social, email, organic)
- utm_campaign = the campaign name (spring-2026, brand-awareness)
Don't get clever. Marketing ops people who change UTM conventions every quarter regret it within a year.
Attribution
By default we use last-non-direct attribution: the last marketing source before the order, ignoring direct visits. This matches Google Analytics's default and is the convention you'll find in 90% of the world.
Custom attribution: Settings → Analytics → Attribution model. Options:
- First-touch (gives credit to discovery)
- Last-touch (gives credit to closing)
- Linear (split equally across touchpoints)
- Position-based (40% first, 40% last, 20% middle)
- Data-driven (machine learning per-customer)
If you spend less than $5k/month on ads, last-non-direct is enough. Beyond that, data-driven beats the alternatives.
Why your numbers won't match
Meta says 50 conversions, GA says 47, SellStein says 49. Normal. Causes:
- Different attribution windows (Meta's default is 7-day click; GA's is 30-day)
- Browser blocking (Safari ITP, ad blockers)
- Different definitions of "conversion" (Meta counts add-to-cart in some accounts)
Use SellStein's number for revenue (it's the only one that has the actual money). Use platform-native numbers for that platform's optimisation (Meta's pixel data optimises Meta's ad delivery. GA's data won't help).