Events not appearing
If you’re not seeing events in your Databuddy dashboard, work through these checks:Verify the tracker is loaded
Verify the tracker is loaded
Check that the Databuddy script is present on your page:Or check in browser console: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
Enable debug mode
Turn on debug logging to see what’s happening:This will log:
- Event tracking calls
- Batching behavior
- Network requests
- Errors
Check client ID configuration
Check client ID configuration
Verify your client ID is set correctly: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
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/batchor/v1/event
- 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
Check event batching
Events are batched by default. They send after:Or disable batching entirely:
- 10 events collected (default batch size)
- 2 seconds elapsed (default batch timeout)
- Page unload/navigation
Verify you're not in bot detection
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
Performance issues
Script blocking page load
Script blocking page load
The Databuddy script is designed to be non-blocking, but if you’re experiencing issues:Next.js:Other frameworks:Use
async or defer to prevent blocking.Too many network requests
Too many network requests
If you see excessive requests:
-
Increase batch size:
-
Reduce tracking volume:
- Don’t track every mouse movement
- Debounce rapid events
- Use sampling for high-frequency events
-
Enable sampling:
Large event payloads
Large event payloads
Keep event properties lean:Bad:Good:Properties should be:
- Primitives (strings, numbers, booleans)
- Small arrays or objects
- Under 1KB per event
Tracking accuracy
Session tracking issues
Session tracking issues
Sessions reset after 30 minutes of inactivity. If you’re seeing unexpected session behavior:Get current session ID:Clear session for testing:Sessions are stored in
sessionStorage and cleared when:- Browser tab is closed
- 30 minutes of inactivity pass
clear()is called
User tracking across domains
User tracking across domains
To track users across multiple domains:On the destination domain, Databuddy will automatically detect and use these IDs.
Duplicate events
Duplicate events
If you’re seeing duplicate events:
-
Check for double tracking:
-
Avoid tracking in useEffect without dependencies:
-
Debounce rapid events:
Events missing properties
Events missing properties
If event properties aren’t appearing:
-
Check property types:
-
Verify property names:
- Use
snake_caseorcamelCase - Avoid special characters
- Don’t start with numbers
- Use
-
Check for circular references:
Integration issues
Next.js App Router issues
Next.js App Router issues
If tracking isn’t working in Next.js App Router:
-
Ensure client component:
-
Add Databuddy to root layout:
app/layout.tsx
-
Check environment variables are exposed:
.env.local
Server-side tracking not working
Server-side tracking not working
The browser SDK doesn’t work on the server. For server-side tracking, use the Node SDK:Note:
- Use API key (not client ID) for server-side
- Events won’t have session/anonymous IDs unless you pass them explicitly
Webpack/bundler errors
Webpack/bundler errors
If you get bundler errors:
-
Reinstall dependencies:
-
Check import path:
-
Ensure package is installed:
TypeScript errors
TypeScript errors
If you’re getting TypeScript errors:
-
Missing types:
-
Type errors in track():
-
Module resolution:
tsconfig.json
Webhook issues
For webhook troubleshooting, see the webhooks guide.Data discrepancies
Metrics don't match Google Analytics
Metrics don't match Google Analytics
Databuddy and Google Analytics may show different numbers due to:
- Bot filtering: Databuddy filters bots by default, GA may not
- Sampling: GA samples data on high traffic, Databuddy never samples
- Session definitions: Different session timeout configurations
- Client-side filtering: Ad blockers block GA more aggressively
- Timing: GA has delayed reporting, Databuddy is real-time
Revenue numbers don't match Stripe
Revenue numbers don't match Stripe
Check:
- Webhook configuration: Ensure webhooks are set up correctly
- Metadata: Verify you’re passing Databuddy IDs in Stripe metadata
- Currency conversion: All amounts should be in cents (Stripe) vs dollars (display)
- Refunds: Check if refunds are being tracked separately
- Test mode: Ensure you’re not mixing test and live mode data
Time zone differences
Time zone differences
Databuddy stores all timestamps in UTC. Your dashboard may show different times based on:
- Your browser’s time zone
- Dashboard time zone settings
- Query time zone parameters
Getting help
If you’re still experiencing issues:Check the documentation
Test with minimal setup
Create a simple test page with only Databuddy:If this works, the issue is likely in your implementation.
Check service status
Visit status.databuddy.cc to see if there are any ongoing issues.
Contact support
Reach out with:
- Description of the issue
- Steps to reproduce
- Browser/framework versions
- Console logs (with debug mode enabled)
- Network tab screenshots
Common error messages
| Error | Cause | Solution |
|---|---|---|
Invalid client ID | Client ID is malformed or missing | Verify your client ID is a valid UUID |
CORS error | Domain not allowed | Add your domain in Databuddy settings |
Rate limit exceeded | Too many requests | Increase batch size or reduce event volume |
Webhook signature invalid | Wrong webhook secret | Update webhook secret in settings |
Failed to send event | Network error | Check API endpoint and connectivity |
Tracker not available | Script didn’t load | Check for ad blockers, CSP, or script errors |
Next steps
API Reference
Full SDK documentation and API details
Custom Dashboards
Build custom analytics and reports
Webhooks
Set up payment and event webhooks
Migration Guide
Switch from Google Analytics