Troubleshooting
Nothing arrives, or a number looks wrong? Go through this list from top to bottom. Most of the time it’s one of the first points.
Check what your browser sends
- Open your website, open the developer tools (F12), go to the Network tab and reload the page.
- Filter for
a.js. The entry should have status 200. If it’s missing, the script isn’t loaded at all (see Script does not load). - Filter for
events. You should see a POST tohttps://app.lienks.com/api/events. If it’s missing, the script doesn’t start (see No request is sent). - Read the status of the response:
| Status | Meaning | What to do |
|---|---|---|
200, response {"status":"ok","mode":"…"} | The event was accepted. | Check the time range, the right site and bots (see Events arrive but numbers look off). |
| 204, empty response | The event was dropped on purpose. For privacy reasons the server doesn’t say why. | Check the domain and access (see Status 204). |
404, Site not found | The site ID in the snippet doesn’t exist (typo or deleted site). | Copy the snippet from the app again. |
| 400 | The request is invalid, for example the site ID is missing. | Check data-site in the snippet. |
For comparison, this is what the snippet looks like:
<script defer src="https://app.lienks.com/a.js" data-site="YOUR_SITE_ID"></script> No request is sent
The script runs but sends nothing. Possible causes:
- The
data-siteattribute is missing or empty. The script then does nothing and shows no error. - The script is included as a module (
type="module"). The snippet has to be a normal script tag, exactly as in Quick start. - An ad blocker, tracking protection or browser extension blocks the script or the request. To test, open your site in a private window without extensions. That is a hint, not a guarantee.
- A cookie or consent tool on your site blocks scripts until someone agrees. Lienks itself doesn’t wait for consent, unless the mode is Cookie.
Script does not load
- The snippet isn’t in the HTML your site delivers. Check with “View page source” (not the inspector, which shows the result after scripts have run). Watch out for caches, CDNs and cache plugins that still serve the old version, and clear the cache.
- The URL in the snippet is wrong. It has to be
https://app.lienks.com/a.js. - Content Security Policy: if your site uses one, it has to allow scripts from and connections to
app.lienks.com(script-srcandconnect-src). - Error messages about blocked scripts appear in the Console tab of the developer tools.
Status 204: the event is dropped
The request arrives and is ignored on purpose. Check these reasons in this order:
- The domain doesn’t match. Events are only accepted from the domain saved for the site.
www.is ignored, but subdomains count as their own domain (blog.example.comis notexample.com). Staging domains, preview URLs andlocalhostdon’t match either: add staging as its own site if you want to test there. Files you open straight from a folder (file://) don’t send a matching origin and are dropped as well. - The workspace has no access. The trial has ended, no plan is chosen yet, the subscription has ended, or a payment failed and the grace period is over. Check the billing area (Billing and plans).
- The plan limit is used up. Tracking stops when the allowance including the 10% buffer is reached, until the next billing period (Billing and plans).
The server doesn’t say which reason applies: the request runs in the browser of every visitor, so there is deliberately no error message and no information about billing.
Events arrive but numbers look off
- Unique Visitors, Sessions and Bounce Rate are missing or 0: the site runs in Minimal mode, which has no visitor identifier (Tracking modes).
- Browser, OS, Device or Countries are empty: the matching switches in the site settings are off (the default for new sites) and only apply to new events (Data collection).
- My own visits or tests are missing: known bots are kept out of the statistics. Automated browsers, for example test or headless tools, can be recognised as bots. The Events view shows the bot status (Events).
- Numbers differ around midnight: in Cookieless mode the identifier changes at midnight UTC. The site’s time zone also decides how days are grouped (Metrics and filters).
- There are fewer visitors than expected: ad blockers and tracking protection can prevent hits, and no analytics tool counts visitors exactly.
- The time range doesn’t fit: check that Today, Last 7 Days and so on is the range you want, and check the site’s time zone.
- It takes a while: the dashboard refreshes automatically every few seconds. Wait a moment and reload if needed.
Single-page apps and page navigation
- Lienks counts page changes through the History API (
pushStateand back/forward). No framework integration is needed. replaceStateis deliberately not counted.- The same page twice in a row isn’t counted twice: switching to the same path again doesn’t trigger a new pageview.
- The path is counted without query string and without hash. Apps that only use hash routing (
/#/page) therefore show up as a single page.
Custom events do not show up
- Check the name: only lowercase letters, digits and underscores, starting with a letter, at most 100 characters.
pageviewis reserved. Invalid names are discarded without an error message and without a request (Custom events). window.lienksonly exists once the script has loaded and run. Because ofdefer, that is the case after the page is parsed. So callwindow.lienks?.event(...)in event handlers or afterDOMContentLoaded, not directly in the<head>.- An ad blocker can block the script. Then
window.lienksdoesn’t exist, and the?.prevents errors on your page. - The reasons under “Status 204” apply to custom events as well.
- Check in the Latest Events view whether the event shows up there, not only in the dashboard (Events).
Cookie mode and consent
- No cookie is created: check that the site really runs in Cookie mode (not Minimal or Cookieless), and that
window.lienks.setConsent(true)was called on this page. - Consent isn’t stored and is reset on every reload. Your consent tool has to call
setConsent(true)again on every page view (Consent). - The very first event right after consent can still go out without a cookie. The cookie is created with the next event.
- The cookie is called
_lienks_vidand is valid for 24 hours.
Still stuck?
Write to us via the feedback form in the app (Feedback in the sidebar). These details help:
- the domain of the site
- the status of the response in the Network tab
- the time of your test
- your browser