Add matomo tracking
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
// @ts-expect-error
|
||||
import VueMatomo from 'vue-matomo';
|
||||
|
||||
export default defineNuxtPlugin((nuxtApp) => {
|
||||
const { user } = useUserSession();
|
||||
nuxtApp.vueApp.use(VueMatomo, {
|
||||
host: 'https://analytics.syma.dev',
|
||||
siteId: 12,
|
||||
router: nuxtApp.$router,
|
||||
trackInitialView: true,
|
||||
preInitActions: [
|
||||
// Respect DNT
|
||||
['setDoNotTrack', true],
|
||||
user.value ? ['setUserId', user.value.id.toString()] : ['resetUserId'],
|
||||
user.value
|
||||
? ['setCustomDimension', 1, user.value.role]
|
||||
: ['setCustomDimension', 1, 'guest']
|
||||
]
|
||||
});
|
||||
|
||||
// Update user state
|
||||
watch(user, (u) => {
|
||||
if (u) {
|
||||
// Add users id to visit
|
||||
window._paq?.push(['setUserId', u.id.toString()]);
|
||||
// Add users role to visit
|
||||
window._paq?.push(['setCustomDimension', 1, u.role]);
|
||||
window._paq?.push(['trackPageView']);
|
||||
} else {
|
||||
window._paq?.push(['resetUserId']);
|
||||
window._paq?.push(['setCustomDimension', 1, 'guest']);
|
||||
window._paq?.push(['appendToTrackingUrl', 'new_visit=1']);
|
||||
window._paq?.push(['trackPageView']);
|
||||
window._paq?.push(['appendToTrackingUrl', '']);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
declare global {
|
||||
interface Window {
|
||||
_paq?: any[];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user