Know what success looks like
Confirm the SDK is ready
Temporarily enable lifecycle diagnostics, then wait for the explicit readiness signal.verify-bily.ts
debug logs lifecycle diagnostics, not event payloads. Remove it or set it to false when verification is complete.
Normal
track() calls do not need to await ready(). The bounded SDK queue holds calls while the script loads.Confirm a plain HTML installation
In browser developer tools:- Open the Elements panel and search for the exact tracking URL.
- Confirm the document contains one matching script element.
- Open the Network panel and reload the document.
- Confirm the browser requests the exact URL once, including its query string.
- Confirm Bily shows one initial
PageViewfor that document.
Confirm every page appears once
Run these checks:- Load a page directly. Expect one automatic
PageView. - Reload it. Expect one new
PageViewfor the new document load. - In an SPA, navigate to a different route. Expect one explicit
PageView. - Trigger a component rerender without changing the URL. Expect no new page view.
- Navigate back and forward. Expect one event for each committed URL change.
Match the complete tracking URL
Do not compare only the hostname. Match the complete URL character for character with the value in Bily. Query parameters and encoded characters are part of the installation contract.Clear the production gates
- Disable temporary diagnostics.
- Confirm your consent controls run before optional customer data is sent.
- Search built browser assets for credentials and private tokens.
- Confirm failed operations do not emit success events.
- Verify the same action does not fire from both a container and a nested component.
Troubleshoot a failed check
Diagnose timeouts, duplicate page views, missing routes, and incorrect tracking URLs.