Common Issues
Pixel does not load
Section titled “Pixel does not load”Symptom: No network requests to sdk.ttoolab.com in DevTools.
Possible causes:
- Script tag missing or blocked
- Content Security Policy blocks the SDK host
- Tag manager trigger fires too late or not at all
- Ad blocker or privacy extension blocks the script
How to investigate:
- View page source — confirm the
<script>tag is present. - Check DevTools → Console for CSP errors.
- Test in an incognito window without extensions.
How to fix:
- Add the installation snippet from Installation.
- Update CSP:
script-srcandconnect-srcmust allowhttps://sdk.ttoolab.com. - In GTM, fire the tag on an early trigger (Consent Initialization or Page View).
Events are not appearing
Section titled “Events are not appearing”Symptom: ttoolab.track() runs but no events in the dashboard or Network tab.
Possible causes:
- Visitor has no active experiment assignments
- Event called before SDK bootstrap completes
- Invalid event name (empty or over 128 characters)
- Network failure with empty retry queue
How to investigate:
- Check
ttoolab.getAssignments()— must return at least one assignment. - Check Network for
POST /sdk/event— expect{ "success": true }. - Wrap track calls in
ttoolab.ready().
How to fix:
- Publish a running experiment that matches the current URL.
- Use
ttoolab.ready()before attaching event listeners. - Verify event names match goal configuration.
Experiment is not running
Section titled “Experiment is not running”Symptom: Bootstrap returns hasActiveExperiments: false.
Possible causes:
- Experiment not published or status is not
running - URL rules do not match the current page
- Traffic allocation excludes this visitor
- Targeting rules exclude this visitor
How to investigate:
- Check experiment status in the dashboard.
- Compare current URL against URL rules.
- Inspect bootstrap response in Network tab.
How to fix:
- Publish the experiment.
- Adjust URL match type and pattern.
- Increase traffic allocation to 100% for testing.
- Clear assignment with
ttoolab.clear()and reload to get a fresh assignment.
Variant is not displayed
Section titled “Variant is not displayed”Symptom: Visitor is assigned but page looks unchanged.
Possible causes:
- CSS selector does not match any element
- Element loads after SDK applies changes (async content)
- Wrong variant has no changes configured
- Browser cache serves old page HTML
How to investigate:
- Check bootstrap response for
experiments[].variant.changes. - In DevTools, run
document.querySelector("YOUR_SELECTOR"). - Confirm assigned variant in
ttoolab.getAssignments().
How to fix:
- Use stable selectors (
#id,[data-testid]). - Wait for dynamic content or use
custom_jschanges carefully. - Verify changes are saved on the correct variant in the dashboard.
Ad blockers
Section titled “Ad blockers”Symptom: Pixel works for developers but not for some users.
Possible causes:
- Browser extensions block analytics/experimentation scripts
- Brave/Firefox strict tracking protection
How to investigate:
- Test with extensions disabled.
- Check if
ttoolab.min.jsrequest is blocked in Network tab.
How to fix:
- First-party proxy for the SDK script (advanced — TODO: confirm with the Ttoolab team).
- Accept that some visitors will not be tracked (coverage bias).
Cache and CDN issues
Section titled “Cache and CDN issues”Symptom: Old variant content appears after publishing changes.
Possible causes:
- CDN or browser cache serves stale HTML
- Bootstrap is not cached, but your page HTML is
How to investigate:
- Hard refresh (Ctrl+Shift+R).
- Check if a CDN caches HTML aggressively.
How to fix:
- Purge CDN cache after major experiment changes.
- Bootstrap responses use
Cache-Control: private, no-store— assignment data is always fresh.
SPA navigation issues
Section titled “SPA navigation issues”Symptom: Experiments work on first load but not after client-side navigation.
Possible causes:
- SDK bootstraps once per full page load
- URL changes without reload do not re-trigger bootstrap
How to investigate:
- Navigate via client-side router and check if bootstrap is called again.
How to fix:
- TODO: confirm with the Ttoolab team SPA re-bootstrap support.
- For SPAs, prefer
custom_eventgoals triggered by application code.
Consent and cookie issues
Section titled “Consent and cookie issues”Symptom: Pixel does not load until consent is given, or stops after consent withdrawal.
Possible causes:
- Consent management platform blocks scripts before consent
localStorageblocked in strict privacy mode
How to investigate:
- Check CMP configuration and consent state.
- Test
localStorageavailability in console.
How to fix:
- Fire the Ttoolab GTM tag on the consent-granted trigger.
- Load the pixel only after analytics consent if required by your policy.
Google Analytics / dataLayer issues
Section titled “Google Analytics / dataLayer issues”Symptom: No ttoolab_exposure or ttoolab_conversion events in GTM/GA4.
Possible causes:
- GTM events integration not enabled in Ttoolab
- GTM container not loaded
- No active experiment assignments
- GA4 custom dimensions not registered
How to investigate:
- Check
window.dataLayerafter page load. - Confirm
integrations.googleAnalytics.gtmEventsEnabledistruein bootstrap response. - Verify GTM triggers listen for
ttoolab_exposureandttoolab_conversion.
How to fix:
- Enable GTM events in Ttoolab dashboard → Integrations.
- Register
ttoolab_experimentNameandttoolab_variationNameas GA4 custom dimensions. - See Google Analytics.
Webhook delivery issues
Section titled “Webhook delivery issues”Symptom: Webhooks not received or returning errors in the dashboard.
Possible causes:
- Endpoint returns non-2xx status
- Signature verification fails on your server
- Endpoint timeout (> 30 seconds)
- Webhook auto-paused after 10 consecutive failures
How to investigate:
- Send a test webhook from the dashboard.
- Check server logs for incoming requests.
- Verify signature computation matches Security.
- Check webhook status in dashboard (enabled vs auto-paused).
How to fix:
- Return
200quickly, process async. - Fix signature verification (use raw body bytes).
- Re-enable auto-paused webhooks after fixing the endpoint.
Still stuck?
Section titled “Still stuck?”Contact Ttoolab support through your dashboard or at your account’s support channel.
Include:
- Project key (not secret keys)
- Experiment key
- Page URL
- Browser and timestamp
- Screenshots of Network tab (bootstrap and event requests)