If you’re not seeing events in your Databuddy dashboard, work through these checks:
Verify the tracker is loaded
Check that the Databuddy script is present on your page:
import { isTrackerAvailable } from '@databuddy/sdk';if (isTrackerAvailable()) { console.log('Databuddy tracker is loaded');} else { console.error('Databuddy tracker is not available');}
Or check in browser console:
console.log(window.databuddy); // Should show tracker objectconsole.log(window.db); // Alternative shorthand
If undefined, the script hasn’t loaded. Check:
Network tab for script loading errors
Content Security Policy (CSP) blocking the script
Ad blockers interfering with the script
Enable debug mode
Turn on debug logging to see what’s happening:
import { Databuddy } from '@databuddy/sdk/react';<Databuddy debug />
This will log:
Event tracking calls
Batching behavior
Network requests
Errors
Check your browser console for Databuddy logs.
Check client ID configuration
Verify your client ID is set correctly:
// Check environment variableconsole.log(process.env.NEXT_PUBLIC_DATABUDDY_CLIENT_ID);// Or pass explicitly<Databuddy clientId="your-client-id-here" />
Your client ID should be:
A valid UUID format
Matching the ID from your Databuddy dashboard
Prefixed with NEXT_PUBLIC_ in Next.js to make it available in the browser
Verify API endpoint
Ensure events can reach the Databuddy API:
Open browser DevTools → Network tab
Filter by “basket.databuddy.cc”
Trigger an event (navigate to a page)
Look for POST requests to /v1/batch or /v1/event
If requests are:
Blocked by CORS: Check your domain is allowed in Databuddy settings
404 errors: Verify your API URL and client ID are correct
401/403 errors: Check your client ID and permissions
Not appearing: The tracker may not be loaded or events aren’t firing
Check event batching
Events are batched by default. They send after:
10 events collected (default batch size)
2 seconds elapsed (default batch timeout)
Page unload/navigation
Force immediate sending for testing:
import { track, flush } from '@databuddy/sdk';track('test_event', { test: true });flush(); // Force immediate send
Or disable batching entirely:
<Databuddy enableBatching={false} />
Verify you're not in bot detection
Databuddy automatically filters bot traffic. If you’re testing in:
Headless browsers
Automated testing tools
Some dev tools
You may be flagged as a bot. Disable bot detection for testing:
import { clear } from '@databuddy/sdk';clear(); // Generates new session and anonymous IDs
Sessions are stored in sessionStorage and cleared when:
Browser tab is closed
30 minutes of inactivity pass
clear() is called
User tracking across domains
To track users across multiple domains:
import { getTrackingParams } from '@databuddy/sdk';// When linking to another domainconst params = getTrackingParams();const url = `https://other-domain.com?${params}`;// Link: https://other-domain.com?anonId=xxx&sessionId=yyy
On the destination domain, Databuddy will automatically detect and use these IDs.
// Bad: Tracks on every renderuseEffect(() => { track('component_rendered');});// Good: Track only once on mountuseEffect(() => { track('component_mounted');}, []);