Browser tracking script for Fixture - drop-in replacement for tracker.js
npm install @fixture-inc/tracker-browserBrowser tracking script for Fixture. Drop-in replacement for the legacy tracker.js.
``html`
src="https://fixture.app/tracker.js"
data-web_property_id="your-property-id"
>
Optional attributes:
- data-api_url - Override API endpoint (for local development)
`bash`
pnpm add @fixture-inc/tracker-browser
`typescript
import { BrowserTracker } from '@fixture-inc/tracker-browser'
const tracker = new BrowserTracker({
propertyId: 'your-property-id',
})
// Initial pageview is tracked automatically
// SPA navigations are tracked automatically
`
- Automatic pageview tracking - Tracks on load and SPA navigation
- SPA support - Intercepts pushState, replaceState, and popstatedata-fixture-event-*
- DOM event tracking - Track clicks via attributesfxid
- Cookie-based visitor ID - Persists visitor ID in cookie (1 year)sendBeacon
- Reliable delivery - Uses with fetch/XHR fallback
`javascript
// Track a pageview manually
window.fixture.trackPageview()
// Track a custom event
window.fixture.trackEvent('signup_click', { plan: 'pro' })
// With context
window.fixture.trackEvent('purchase', { amount: 99 }, { source: 'checkout' })
`
`typescript
interface BrowserTrackerConfig {
propertyId: string
apiUrl?: string // Default: 'https://api.fixture.app'
debug?: boolean
cookieName?: string // Default: 'fxid'
cookieDays?: number // Default: 365
cookieDomain?: string // For cross-subdomain tracking
trackSpaNavigation?: boolean // Default: true
trackDomEvents?: boolean // Default: true
}
class BrowserTracker {
getVisitorId(): string
resetVisitorId(): string
trackPageview(options?: { url?: string }): void
trackEvent(name: string, properties?: Record
destroy(): void // Cleanup SPA and DOM tracking
}
`
Track clicks automatically using data attributes:
`html`
data-fixture-event-name="signup_click"
data-fixture-event-plan="pro"
>
Sign Up
Or CSS classes (useful when you can't add data attributes):
`html`
The tracker searches up to 15 parent elements to find event annotations.
Override the API endpoint for local testing:
`html``
src="/tracker.js"
data-web_property_id="test"
data-api_url="http://localhost:8000"
>