Respectlytics Respectlytics

Retail & E-commerce App Analytics Without Customer IDs

11 min read

Updated October 24, 2026: on a paid plan, an event can now also carry the properties you declare in the dashboard, each a value from your own list or a number kept as a band. An event with no declared property holds the five fields described here, and the API still refuses unknown fields.

Conversion is a property of a session, not a person. A retail funnel (search, browse, add-to-cart, checkout) happens in a single shopping intent. You can measure it cleanly without a persistent customer ID. This guide gives you the event taxonomy, the funnel definitions, and the segments that actually matter for a shopping app.

Why Session-Based Works for Retail

A shopping intent fits inside a session. People open a retail app to search for something, decide whether to buy it, and either complete or abandon. The whole arc is usually minutes, well under the typical session window.

That means session-based analytics captures the funnel naturally. You do not need persistent customer tracking to know what happens between search and checkout. You just need the events of one session, in order.

The shift in mental model

Old analytics: "What is this customer's lifetime conversion rate?" Session analytics: "What fraction of shopping sessions convert this week?" The second answer is faster, simpler, and the one product teams actually act on.

The Retail Event Taxonomy

Use snake_case with object_action (see Event Naming Best Practices) and namespace prefixes for the funnel stage:

StageEvents
Acquisitionapp_opened, push_notification_opened
Discoverysearch_performed, category_viewed, product_viewed
Cartcart_item_added, cart_item_removed, cart_viewed
Checkoutcheckout_started, checkout_address_entered, checkout_payment_entered, checkout_completed
Failureorder_failed, payment_declined
Engagementreview_submitted, wishlist_item_added, promo_applied

Do not embed values in event names. cart_added_blue_widget creates a unique event per SKU and breaks every funnel chart. Keep the name fixed; if you need product-level analysis, look at it in your transactional system.

Three Funnels Every Shopping App Needs

1. The browse-to-buy funnel

app_opened → product_viewed → cart_item_added → checkout_completed

The headline conversion funnel. Watch the drop-off at cart_item_added → checkout_completed closely.

2. The search-driven funnel

search_performed → product_viewed → cart_item_added

If search_performed rarely leads to product_viewed, search is broken. Fix that before optimizing checkout.

3. The checkout micro-funnel

checkout_started → checkout_address_entered → checkout_payment_entered → checkout_completed

Per-step drop-off pinpoints which checkout screen is killing conversions. Address screens lose buyers more often than payment screens, but you only know which by measuring.

Useful Segments Without User IDs

Session attributes give you most of what you need:

  • •Platform: iOS vs Android, sometimes Web. Conversion rate frequently diverges.
  • •Country: Local payment methods, shipping latency, and translation quality vary by country.
  • •Hour of day: Push timing, promo timing, restock windows.
  • •Session depth: High-engagement sessions (10+ events) buy at very different rates than skimmers.

Measuring Cart Abandonment

The classic metric: of the shoppers who added something to a cart, how many failed to complete checkout? In session terms:

session_abandonment_rate =

1 − (sessions_with(checkout_completed) / sessions_with(cart_item_added))

This is not the same metric as per-customer abandonment. Instead of "this person abandoned twice last week," it tells you "of every 100 shopping intents, X never reached purchase." For day-to-day product decisions that is usually the better signal.

Payments, Refunds, and Failure Modes

Treat your payment provider as the source of truth for money. Analytics tracks intent and outcome, not amounts:

  • •payment_declined: Card was declined. Compare rate by country to spot acquirer issues.
  • •order_failed: Backend rejection (out of stock, address invalid). Use to find merchandising bugs.
  • •refund_requested: A customer support hop, not the refund itself. Reconcile with billing.

Never put dollar amounts in event names or properties. Order totals belong in your transactional database.

KPIs Without PII

A starter scorecard for a retail product manager:

KPIDefinition
Session conversion ratesessions with checkout_completed / sessions with app_opened
Cart-to-purchase ratecheckout_completed / cart_item_added (session-level)
Search success ratesearch_performed sessions that reach product_viewed
Checkout completion ratecheckout_completed / checkout_started
Avg events per buying sessionavg event count for sessions with checkout_completed

Why retail teams choose Respectlytics

The strict 5-field schema means you cannot accidentally write customer_email, order_total, or credit_card_last4 into an event. The API rejects them at the edge, or drops them when they arrive as undeclared properties.

For shopping apps that move money, that constraint is the feature. The PCI-relevant data stays in your payment processor, and your analytics pipeline cannot become an unintended PII leak.

Frequently Asked Questions

Can you track e-commerce conversions without customer IDs?

Yes. Conversion is a property of a session. If a session contains app_open → checkout_completed, that session converted. No persistent customer ID needed.

What events should a retail app track?

app_opened, search_performed, category_viewed, product_viewed, cart_item_added, cart_viewed, checkout_started, checkout_payment_entered, checkout_completed, order_failed.

How do you measure cart abandonment without a user ID?

Compare sessions that fired cart_item_added to those that fired checkout_completed. The ratio is your session-level abandonment rate.

Does Respectlytics work for retail apps with high traffic?

Yes. The five-field schema is small enough to scale and the API rejects unknown fields and drops undeclared properties, so you cannot accidentally write order amounts or emails to events.

Can I segment by repeat shopper without a customer ID?

Not directly. You can segment by session depth, hour, platform, country. Logged-in cohort analysis belongs in your transactional database, not the analytics pipeline.

Legal Disclaimer: This information is provided for educational purposes and does not constitute legal advice. Consult your legal team to determine the requirements that apply to your specific situation.

Related Reading

Try it on your own app

Free for one app and 20,000 events a month, no card needed. Unlimited apps on every paid plan.