Skip to content

Commit 9926ad4

Browse files
reslearharlan-zw
andauthored
feat(matomo): support custom tracker urls (#236)
Co-authored-by: Harlan Wilton <[email protected]>
1 parent e3d78fd commit 9926ad4

File tree

2 files changed

+28
-4
lines changed

2 files changed

+28
-4
lines changed

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

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,19 @@ const matomoAnalytics = useScriptMatomoAnalytics({
8383
})
8484
```
8585

86+
### Using Matomo Whitelabel
87+
88+
For Matomo Whitelabel, set trackerUrl and scriptInput.src to customize tracking.
89+
90+
```ts
91+
const matomoAnalytics = useScriptMatomoAnalytics({
92+
trackerUrl: 'https://c.staging.cookie3.co/lake',
93+
scriptInput: {
94+
src: 'https://cdn.cookie3.co/scripts/analytics/latest/cookie3.analytics.min.js',
95+
},
96+
})
97+
```
98+
8699
Please follow the [Registry Scripts](/docs/guides/registry-scripts) guide to learn more about advanced usage.
87100

88101
### MatomoAnalyticsApi
@@ -100,10 +113,12 @@ You must provide the options when setting up the script for the first time.
100113
```ts
101114
// matomoUrl and site are required
102115
export const MatomoAnalyticsOptions = object({
103-
matomoUrl: string(),
116+
matomoUrl: string(),
104117
siteId: string(),
118+
trackerUrl: optional(string()),
105119
trackPageView: optional(boolean()),
106120
enableLinkTracking: optional(boolean()),
121+
disableCookies: optional(boolean()),
107122
})
108123
```
109124

src/runtime/registry/matomo-analytics.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@ import { boolean, object, optional, string } from '#nuxt-scripts-validator'
44
import type { RegistryScriptInput } from '#nuxt-scripts'
55

66
export const MatomoAnalyticsOptions = object({
7-
matomoUrl: string(), // site is required
7+
matomoUrl: optional(string()),
88
siteId: string(),
9+
trackerUrl: optional(string()),
910
trackPageView: optional(boolean()),
1011
enableLinkTracking: optional(boolean()),
12+
disableCookies: optional(boolean()),
1113
})
1214

1315
export type MatomoAnalyticsInput = RegistryScriptInput<typeof MatomoAnalyticsOptions, false, false, false>
@@ -23,7 +25,7 @@ declare global {
2325
export function useScriptMatomoAnalytics<T extends MatomoAnalyticsApi>(_options?: MatomoAnalyticsInput) {
2426
return useRegistryScript<T, typeof MatomoAnalyticsOptions>('matomoAnalytics', options => ({
2527
scriptInput: {
26-
src: withBase(`/matomo.js`, withHttps(options?.matomoUrl)),
28+
src: withBase(`/matomo.js`, withHttps(options?.matomoUrl || '')),
2729
crossorigin: false,
2830
},
2931
schema: import.meta.dev ? MatomoAnalyticsOptions : undefined,
@@ -48,7 +50,14 @@ export function useScriptMatomoAnalytics<T extends MatomoAnalyticsApi>(_options?
4850
if (options?.enableLinkTracking) {
4951
_paq.push(['enableLinkTracking'])
5052
}
51-
_paq.push(['setTrackerUrl', withBase(`/matomo.php`, withHttps(options?.matomoUrl))])
53+
54+
if (options?.disableCookies) {
55+
_paq.push(['disableCookies'])
56+
}
57+
58+
if (options?.trackerUrl || options?.matomoUrl) {
59+
_paq.push(['setTrackerUrl', options?.trackerUrl ? withHttps(options.trackerUrl) : withBase(`/matomo.php`, withHttps(options?.matomoUrl || ''))])
60+
}
5261
_paq.push(['setSiteId', options?.siteId || '1'])
5362
},
5463
}), _options)

0 commit comments

Comments
 (0)