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).

Still need help?

Real humans, real answers. We respond fast and we never use chatbots as the front line.

Email Support