Troubleshooting
No data showing, ad pixels not loading, heatmaps empty or a rejected request? Work through the checks that fix most problems.
Most problems are one of a handful of causes. Start with No data is showing, which also covers missing ad pixels.
No data is showing
Go through these in order. Each one is quick to check.
-
Read the install status card. Open Settings → Projects, expand your site, and look at the card in the Install snippet panel. "Waiting for data" means nothing has ever arrived. "Installed" with an old "Last data" means it worked once and stopped. Click Check again after visiting your site.
-
Is the tracker on the page? View your page's source and look for the
t.jsscript, withdata-key="pk_…". It must be on every page you want tracked, inside<head>. With the npm package, check that the provider wraps your whole app, and adddebug: trueto its config to see[klickbee]messages in the browser console (the script tag has no debug option). -
Is the key right? The
data-key(orprojectKey) must be exactly the key shown under Settings → Projects. A typo, a copy from another site, or a key that was rotated since you installed are the usual causes. If you rotated the key, the old one stopped working immediately. -
Are the allowed origins right? If Allowed origins isn't empty, events are accepted only from those exact origins. Check scheme, host and port:
example.comandwww.example.comare different origins, and so arehttpandhttps. Staging and preview domains need their own line. Or empty the list while you debug. When the origin is wrong, both the analytics and the ad pixels silently fail. -
Are you testing like a visitor? Visits from automated tools (headless browsers,
curl, scripts, crawlers and similar) are dropped on purpose. Test in a regular browser window. -
Is something blocking the script? Ad blockers and some privacy extensions block analytics scripts. Open your site in a private window with extensions off, or check the browser's network tab for
t.js. -
Is the browser asking not to be tracked? If the visitor's browser sends Do Not Track, the tracker does nothing, by design. Test with that setting off. Your own browser may have it on without you knowing.
-
Is consent mode waiting? With the npm package and
requireConsent: true, nothing is recorded untilgrantConsent()runs. A visitor who declined is not tracked either. See Privacy & consent. -
Is the site at its plan limit, or suspended? A Free site includes 1,000 sessions per month. When the plan's limit is enforced and a site has reached it, new sessions are no longer recorded until the counter resets on the 1st of the month (UTC) or you upgrade. A suspended site records nothing at all. The top of the dashboard shows the monthly counter for Free sites, and Settings → Billing shows the site's status. See Billing.
-
Is the date range too narrow? Pages offer 24h, 7 days, 30 days and 90 days. A brand-new site may have nothing in an older window.
-
Is the right site selected? The site switcher at the top of the sidebar sets which site you are looking at.
If you still see nothing, open your browser's developer tools, go to the
Network tab, reload your site, and look for a request to /api/ingest. Its
status code tells you what is happening:
| Status | Meaning | What to do |
|---|---|---|
200 | Accepted. | Data should appear shortly. |
401 "Invalid project key" | The key doesn't exist. | Re-copy the key, check for a rotated key. |
403 "Origin not allowed" | Your site's origin isn't in the allowed list. | Add it under Allowed origins. |
402 site_suspended or quota_exceeded | The site is suspended or over its plan's limit. | See Billing. |
400 | The data sent was invalid. | If it comes from your own code, check event names and make sure properties are flat. |
429 | Too many requests for your site from the same network in a short time. | It clears by itself; the tracker retries. |
If there is no request at all, the script isn't running or isn't sending: look back at steps 2, 6, 7 and 8.
The tracker works, but something looks off
Session or visitor counts differ from another tool. A session is a browser tab: a new tab starts a new session, and a visitor who clears their browser data counts as a new visitor. Visitors whose browser sends Do Not Track, visits blocked by an ad blocker and bots are not counted.
A page change in my single-page app wasn't counted. With the script tag,
a new pageview needs a change of path. A change of ?query or #hash alone
doesn't count. With the plain npm client, you must call pageview() yourself.
I see $scroll in Top events. That is a tracker event, not a bug. See
Track events.
Heatmaps say "No recording of this page yet". Heatmaps draw on a recording
of the page. Make sure replay is on (data-replay isn't false, or replay: true with the npm package) and browse the page once. Click heatmaps also need
autocapture on.
Click goals never complete. Click goals need autocapture on, and the label
must match the element's text or aria-label exactly, including case. See
Goals.
Meta, Google Ads or LinkedIn pixels don't fire. The pixels list is fetched from the same allowed-origins check as events, so go through step 4 first. Then make sure the pixel is Enabled, and use its Test button on the Pixels page: an overlay lists each pixel as "fired" or "no request yet". An ad blocker can suppress pixel requests. A wrongly typed ID also tracks nothing without any error. See Ad pixels.
Conversions don't reach Meta or Google Ads. Conversions sent by Klickbee's servers are processed in batches, so allow a few minutes. For the platform requirements, see Conversions.
The consent step doesn't stop my tracking. If you use the script tag, it can't wait for consent: add the script after the visitor agrees. See Privacy & consent.
Account and sign-in
I never got the verification email. On the sign-up screen click Resend email; on the sign-in screen click Resend verification email. Check your spam folder. You can't sign in until the email is verified.
An invitation link says it expired. Invitations expire after 7 days. Ask an owner or admin of the site to resend it from Settings → Team. See Invite your team.
Still stuck?
Contact us, or email hello@klickbee.com, and include:
- the address of your site and the name of the site in Klickbee,
- how you installed the tracker (script tag or npm package),
- what you see in the install status card,
- the status code of the
/api/ingestrequest, if you looked.
The public pk_… key is fine to share.