Skip to main content
Work through the symptom group that matches what you are seeing. Every fix here reflects how the app actually behaves — nothing on this page requires contacting support.

The counter isn’t showing on my product page

The counter hides itself when there are no active viewers. It never shows “0 people viewing” or an invented number — it stays hidden until a real session is present. Open the product page in another device or browser to see it appear.Active viewers also drop out quickly: closing the tab removes the visitor within about a minute.
Without the tracker, no data is collected and no count can exist.
  1. Open Online Store → Customize in the Shopify admin.
  2. Open App embeds.
  3. Enable Live Product Insights Tracker and save.
Collection is consent-gated. If your cookie banner never appears, Shopify’s automated privacy settings may be suppressing it:
  1. Go to Settings → Customer privacy in the Shopify admin.
  2. Under Cookie banner, turn off “Use automated settings”.
  3. Set the region to All regions and save.
The counter can be configured to appear only above a minimum viewer count. Check Settings → Live counter and confirm the minimum is not higher than your current traffic.
The counter only renders for active, published products. Removed or archived products hide the block.

Dashboards are empty

Data appears within a few minutes of the first consented storefront visit. Open the product page in a private browser window, accept analytics cookies, and watch the live page fill in.
Every metric requires consented storefront activity. A store with visits but no analytics consent will stay at zero by design.
Checkouts on development stores create test orders, and test orders are excluded from all order, revenue, and conversion metrics unless you opt in under Settings → Storefront tracking. On a live store, a new order normally appears within about a minute — the app catches up when the admin is opened and on a 30-minute schedule.

Order and revenue numbers look wrong or missing

The app excludes test orders (unless opted in) and cancelled orders from every order, revenue, and conversion metric, and subtracts refunds per unit. A “missing” order is often a test order or a refunded one.
Attribution requires a cart-token match. Two situations produce uncounted attribution:
  • The shopper’s cart token did not match a tracked add-to-cart within the attribution window (default 7 days).
  • The order arrived through the background catalog sync instead of a webhook — those orders carry no cart token and are counted but never attributed.
Unattributed orders are always labelled; the app never pretends an attribution happened.
Order webhooks require the read-orders permission to be accepted. If the scope was granted after install, reopen the app once to accept the updated permissions.

Numbers look lower than expected

Views are deduplicated per session and product within a window — 30 minutes by default. Refreshing the page repeatedly does not multiply views. See Measurement.
Every metric is scoped to the selected window, shown next to each value. Switching from “Last 30 days” to “Today” will legitimately show much smaller numbers — check the filter before assuming data is missing.

Development and preview issues

The dev server can die internally while the Shopify CLI stays up, making every URL — admin pages, proxy endpoints, webhooks — return 404. Restart shopify app dev. A quick health check: request any app route and expect HTTP 200, not 404.
An undeployed theme extension renders only in the store’s theme editor preview, not on the local preview server. Run a deploy, or verify through the theme editor link the CLI prints.
Password-protected stores redirect plain HTTP clients to the password page, and Shopify’s storefront bot protection blocks scripted clients entirely. Verify the counter in a real browser instead.

Rate limiting (HTTP 429)

Tracker ingest and counter polling are rate-limited per store. Normal stores never approach these limits — a 429 usually means a script or load test is driving traffic, and it clears on its own. See App proxy API for the exact limits.