More in Getting started
- Install TapCub on your website
- Migrate from Google Analytics 4 or Baidu Tongji
- Add a website, app or mini-program
- How do I add TapCub to WordPress?
- How do I add TapCub to Shopify?
- Where do I paste the TapCub tracking code?
- Can I install TapCub with Google Tag Manager?
- How do I track a React, Vue or Next.js app?
- Why does TapCub show no data after I installed it?
- What is a site, and how many can I add?
- Which time zone should I pick for a site?
- Which domains do I need to register?
- How do I keep my own visits out of the reports?
- Why does my visitor count differ from Google Analytics 4?
- Can I run TapCub alongside Google Analytics 4?
- How do I move my goals and events from GA4?
- Can I import my historical data from GA4?
- How do I add TapCub to Squarespace?
- How do I add TapCub to Wix?
- Which Content Security Policy rules does TapCub need?
- Do ad blockers block TapCub?
- How do I send events from my server?
- How do I install TapCub on React?
- How do I install TapCub on Nuxt?
- How do I install TapCub on Vue?
- How do I install TapCub on Next.js?
- How do I capture a HAR file for TapCub support?
- How do I create and manage API keys?
- How do I send events with the HTTP API?
- All guides in this category
Still have a question?
Could not find it? A person reads every message, usually within a few hours on business days.
Chat with usShort answer
Open Realtime in one tab and your site in another: the visit should appear within a few seconds. Realtime is the only reliable proof, because the collection endpoint answers the same way whether a hit is stored or dropped.
Step 1: watch Realtime
Open Web analyticsRealtime and load a page of your site in another tab, on the domain you registered. The pageview appears within a few seconds with its path and title. If it does, you are done.
Use a normal browser window. A browser that sends Do Not Track or Global Privacy Control, or a headless browser driven by Puppeteer or Playwright, may not show up; see why there is no data.
Step 2: check two requests
If Realtime stays empty, open the browser’s developer tools, go to the Network panel and reload the page:
client.jsloads. If it is missing, the snippet is not in the page that was served (often a cache), or an extension blocked it.- A POST to
/api/v1/pulsefollows. The first one is a normal fetch request; later ones may be listed with the type “ping” because they usesendBeacon. Ifclient.jsloaded but no POST follows, the script stopped itself: Do Not Track, Global Privacy Control,localhostor an excluded path.
The endpoint answers 202 for hits it stores and hits it drops. A 202 proves the request arrived, not that it was counted.
Step 3: look for rejected hits
If the POST is there but Realtime stays empty, the hit was dropped on our side. DataData quality counts these per day by reason: domain mismatch, site paused, exclusion rule, monthly quota and more. The reason tells you which setting to change; the troubleshooting guide lists the fix for each.
See also
Did this answer your question?
We use your answers to fix and expand this page.
Couldn’t send. Please try again in a minute.
Thanks for the feedback. We’ll use it to improve this page.You’ve already sent feedback on this page. Thanks.