Troubleshooting
No data showing
A checklist for an empty dashboard: whether the script loads, whether events are sent and accepted, and where accepted visits show up.
Work down the list in order. Each step tells you where the problem is, so most installs are fixed by step 4.
The checklist
- Look in the right place. The Live page shows the last 30 minutes. For anything older, open the Overview with Today selected and no filters, segment or comparison active.
- Open the real site. Use a normal browser window on the deployed site. Nothing is sent from
localhostunless the tag hasdata-dev="true", and nothing is sent from automated browsers (Playwright, Puppeteer, Selenium). - The script loads. In the developer tools' Network tab, reload:
a.jscomes fromapi.productlense.app(or your proxy) with status200. If it is missing, the tag is not on the page: purge your page cache, and check that an optimisation plugin did not remove or rewrite it. - An event is sent. Shortly after load, or when you leave the page, a
POSTto/api/eappears. Ifa.jsloads but nothing is posted, check the tag:data-sitemust hold your real id, the tag must not havetype="module", and the path must not matchdata-exclude. - ProductLense accepts it. The
POSTanswers204. Any other status comes with a message; the table in Verify your installation gives the fix for each. The most common ishostname not allowed for this site: add the domain in Settings → Sites. - The browser is not blocked. If the request shows as blocked or failed with no status, an ad blocker or a Content Security Policy stopped it. See Ad blockers and Script blocked by CSP.
- The visitor is a person. A
204is also returned for events ProductLense drops as bots, so a test fromcurl, a headless browser or an uptime checker never shows. See Bots and filtering.
No revenue showing
Visits arrive but revenue is empty or unattributed:
- No connection. Revenue comes from a billing connection or the Payment API. Check Settings → Billing for a connection with status Connected; see Connect billing.
- Import still running. The first import of 12 months can take a few minutes on large accounts. The connection shows its progress.
- Payments with no channel. Payments are linked to visitors through your user id or the customer's email, sent with
identify. Without it, revenue counts toward totals but not toward a channel. See How payments are attributed.
Still stuck
Send the page URL, and the status and message of the POST /api/e response, through the contact page.