Skip to content

Commit 908f412

Browse files
authored
feat(rybbit): add new tracking configuration options (#471)
1 parent e09625c commit 908f412

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

docs/content/scripts/analytics/rybbit-analytics.md

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,22 +141,34 @@ You must provide the options when setting up the script for the first time.
141141
```ts
142142
export const RybbitAnalyticsOptions = object({
143143
siteId: union([string(), number()]), // required
144+
autoTrackPageview: optional(boolean()),
144145
trackSpa: optional(boolean()),
145146
trackQuery: optional(boolean()),
147+
trackOutbound: optional(boolean()),
148+
trackErrors: optional(boolean()),
149+
sessionReplay: optional(boolean()),
150+
webVitals: optional(boolean()),
146151
skipPatterns: optional(array(string())),
147152
maskPatterns: optional(array(string())),
148-
debounce: optional(number())
153+
debounce: optional(number()),
154+
apiKey: optional(string()),
149155
})
150156
```
151157

152158
#### Configuration Options
153159

154160
- `siteId` (required): Your Rybbit Analytics site ID
161+
`autoTrackPageview`: Set to `false` to disable automatic tracking of the initial pageview when the script loads. You will need to manually call the pageview function to track pageviews. Default: `true`
155162
- `trackSpa`: Set to `false` to disable automatic pageview tracking for single page applications
156163
- `trackQuery`: Set to `false` to disable tracking of URL query strings
164+
- `trackOutbound`: Set to `false` to disable automatic tracking of outbound link clicks. Default: `true`
165+
- `trackErrors`: Set to `true` to enable automatic tracking of JavaScript errors and unhandled promise rejections. Only tracks errors from the same origin to avoid noise from third-party scripts. Default: `false`
166+
- `sessionReplay`: Set to `true` to enable session replay recording. Captures user interactions, mouse movements, and DOM changes for debugging and user experience analysis. Default: `false`
167+
- `webVitals`: Set to `true` to enable Web Vitals performance metrics collection (LCP, CLS, INP, FCP, TTFB). Web Vitals are disabled by default to reduce script size and network requests. Default: `false`
157168
- `skipPatterns`: Array of URL path patterns to ignore
158169
- `maskPatterns`: Array of URL path patterns to mask for privacy
159170
- `debounce`: Delay in milliseconds before tracking a pageview after URL changes
171+
- `apiKey`: API key for tracking from localhost during development. Bypasses origin validation for self-hosted Rybbit Analytics instances
160172

161173
## Example
162174

src/runtime/registry/rybbit-analytics.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,17 @@ import type { RegistryScriptInput } from '#nuxt-scripts/types'
44

55
export const RybbitAnalyticsOptions = object({
66
siteId: union([string(), number()]), // required
7+
autoTrackPageview: optional(boolean()),
78
trackSpa: optional(boolean()),
89
trackQuery: optional(boolean()),
10+
trackOutbound: optional(boolean()),
11+
trackErrors: optional(boolean()),
12+
sessionReplay: optional(boolean()),
13+
webVitals: optional(boolean()),
914
skipPatterns: optional(array(string())),
1015
maskPatterns: optional(array(string())),
1116
debounce: optional(number()),
17+
apiKey: optional(string()),
1218
})
1319

1420
export type RybbitAnalyticsInput = RegistryScriptInput<typeof RybbitAnalyticsOptions, false>
@@ -60,11 +66,17 @@ export function useScriptRybbitAnalytics<T extends RybbitAnalyticsApi>(_options?
6066
scriptInput: {
6167
'src': 'https://app.rybbit.io/api/script.js',
6268
'data-site-id': String(options?.siteId),
69+
'data-auto-track-pageview': options?.autoTrackPageview,
6370
'data-track-spa': options?.trackSpa,
6471
'data-track-query': options?.trackQuery,
72+
'data-track-outbound': options?.trackOutbound,
73+
'data-track-errors': options?.trackErrors,
74+
'data-session-replay': options?.sessionReplay,
75+
'data-web-vitals': options?.webVitals,
6576
'data-skip-patterns': options?.skipPatterns ? JSON.stringify(options.skipPatterns) : undefined,
6677
'data-mask-patterns': options?.maskPatterns ? JSON.stringify(options.maskPatterns) : undefined,
6778
'data-debounce': options?.debounce ? options.debounce.toString() : undefined,
79+
'data-api-key': options?.apiKey,
6880
},
6981
schema: import.meta.dev ? RybbitAnalyticsOptions : undefined,
7082
scriptOptions: {

0 commit comments

Comments
 (0)