Clycyo
Cookieless7 min read

E-commerce Analytics Without Cookies: Carts, Checkouts, Revenue

Track product views, add-to-carts, and completed checkouts without third-party cookies or consent walls — and still attribute revenue to the right channel.

E-commerce was supposed to be the sector that could never go cookieless — too much depends on funnels, attribution, and remarketing. Then consent banners started deleting 30–50% of the funnel data anyway, and the question inverted: not 'can we afford to drop cookies?' but 'what exactly were the cookies still buying us?'. For analytics — as opposed to ad retargeting — the honest answer in 2026 is: almost nothing you cannot rebuild first-party.

What a cookieless funnel looks like

The standard e-commerce funnel maps cleanly onto first-party events:

// Product page
window.webanalytics.track('product_viewed', {
  sku: 'SKU-1042', category: 'shoes', price: 89,
});

// Add to cart
window.webanalytics.track('cart_added', {
  sku: 'SKU-1042', price: 89, cart_value: 89,
});

// Checkout started
window.webanalytics.track('checkout_started', {
  cart_value: 153, items: 2,
});

Within a session — which cookieless analytics tracks fine — the funnel is complete: view → cart → checkout → purchase, with drop-off rates per step, per source, per device. No persistent identifier required.

The purchase: always server-side

Order confirmations belong in a webhook, not a thank-you-page pixel — payment redirects and closed tabs lose client-side purchase events exactly when accuracy matters most:

// Shopify/your-platform order webhook
await fetch('https://clycyo.com/api/collect', {
  method: 'POST',
  headers: { 'content-type': 'application/json' },
  body: JSON.stringify({
    tracking_id: process.env.CLYCYO_TRACKING_ID,
    type: 'event',
    visitor_id: order.clycyo_visitor_id, // captured at checkout
    event_name: 'order_completed',
    event_properties: {
      revenue: order.total, currency: order.currency,
      items: order.line_items.length,
      order_id: order.id,
    },
  }),
});

Capture window.webanalytics.getVisitorId() into a hidden checkout field or your order metadata, and the webhook joins the purchase to the whole journey — the same pattern as SaaS revenue tracking.

Attribution without cross-site tracking

Channel attribution never needed third-party cookies — it needed disciplined UTMs and first-touch capture on the visitor record. Tag every campaign, email, and social link; the first pageview stores the source; the order webhook inherits it. Revenue by channel, campaign, and landing page — all first-party.

What you genuinely lose without cookies is cross-site, multi-week individual tracking: the visitor who browsed anonymously in January and bought in March may count as two people. Accept the trade consciously: complete, banner-free data on everyone versus fragile long-window stitching on the minority who clicked 'accept'.

The conversion bonus nobody budgets for

  • No consent banner on the buying path. Every interruption costs checkout conversion; removing the banner is a small, free CRO win.
  • A lighter page. Replacing a tag-manager stack with a 1.1 KB tracker improves mobile LCP on product pages — and speed is conversion nowhere more than in retail.
  • Performance data per visit: Clycyo records load time on the same record as the funnel events, so 'checkout is slow on Android' stops being a support-ticket rumor and becomes a filtered report.

Migration order for a store

  1. Install the tracker alongside your current stack (no banner change — it is cookieless).
  2. Add the four funnel events to your theme/templates.
  3. Wire the order webhook with the visitor ID.
  4. Run two weeks in parallel; compare funnel and revenue totals; then decide what the old stack still earns.

Start on the free tier — for most stores, 10,000 events covers the evaluation comfortably.