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[];
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -21,6 +21,7 @@
|
|||||||
"superjson": "^2.2.2",
|
"superjson": "^2.2.2",
|
||||||
"unique-names-generator": "^4.7.1",
|
"unique-names-generator": "^4.7.1",
|
||||||
"vue": "^3.5.18",
|
"vue": "^3.5.18",
|
||||||
|
"vue-matomo": "^4.2.0",
|
||||||
"vue-router": "^4.5.1",
|
"vue-router": "^4.5.1",
|
||||||
"zod": "^4.0.0",
|
"zod": "^4.0.0",
|
||||||
},
|
},
|
||||||
@@ -1967,6 +1968,8 @@
|
|||||||
|
|
||||||
"vue-i18n": ["vue-i18n@11.1.11", "", { "dependencies": { "@intlify/core-base": "11.1.11", "@intlify/shared": "11.1.11", "@vue/devtools-api": "^6.5.0" }, "peerDependencies": { "vue": "^3.0.0" } }, "sha512-LvyteQoXeQiuILbzqv13LbyBna/TEv2Ha+4ZWK2AwGHUzZ8+IBaZS0TJkCgn5izSPLcgZwXy9yyTrewCb2u/MA=="],
|
"vue-i18n": ["vue-i18n@11.1.11", "", { "dependencies": { "@intlify/core-base": "11.1.11", "@intlify/shared": "11.1.11", "@vue/devtools-api": "^6.5.0" }, "peerDependencies": { "vue": "^3.0.0" } }, "sha512-LvyteQoXeQiuILbzqv13LbyBna/TEv2Ha+4ZWK2AwGHUzZ8+IBaZS0TJkCgn5izSPLcgZwXy9yyTrewCb2u/MA=="],
|
||||||
|
|
||||||
|
"vue-matomo": ["vue-matomo@4.2.0", "", {}, "sha512-m5hCw7LH3wPDcERaF4sp/ojR9sEx7Rl8TpOyH/4jjQxMF2DuY/q5pO+i9o5Dx+BXLSa9+IQ0qhAbWYRyESQXmA=="],
|
||||||
|
|
||||||
"vue-router": ["vue-router@4.5.1", "", { "dependencies": { "@vue/devtools-api": "^6.6.4" }, "peerDependencies": { "vue": "^3.2.0" } }, "sha512-ogAF3P97NPm8fJsE4by9dwSYtDwXIY1nFY9T6DyQnGHd1E2Da94w9JIolpe42LJGIl0DwOHBi8TcRPlPGwbTtw=="],
|
"vue-router": ["vue-router@4.5.1", "", { "dependencies": { "@vue/devtools-api": "^6.6.4" }, "peerDependencies": { "vue": "^3.2.0" } }, "sha512-ogAF3P97NPm8fJsE4by9dwSYtDwXIY1nFY9T6DyQnGHd1E2Da94w9JIolpe42LJGIl0DwOHBi8TcRPlPGwbTtw=="],
|
||||||
|
|
||||||
"vue-tsc": ["vue-tsc@3.0.4", "", { "dependencies": { "@volar/typescript": "2.4.20", "@vue/language-core": "3.0.4" }, "peerDependencies": { "typescript": ">=5.0.0" }, "bin": { "vue-tsc": "./bin/vue-tsc.js" } }, "sha512-kZmSEjGtROApVBuaIcoprrXZsFNGon5ggkTJokmhQ/H1hMzCFRPQ0Ed8IHYFsmYJYvHBcdmEQVGVcRuxzPzNbw=="],
|
"vue-tsc": ["vue-tsc@3.0.4", "", { "dependencies": { "@volar/typescript": "2.4.20", "@vue/language-core": "3.0.4" }, "peerDependencies": { "typescript": ">=5.0.0" }, "bin": { "vue-tsc": "./bin/vue-tsc.js" } }, "sha512-kZmSEjGtROApVBuaIcoprrXZsFNGon5ggkTJokmhQ/H1hMzCFRPQ0Ed8IHYFsmYJYvHBcdmEQVGVcRuxzPzNbw=="],
|
||||||
|
|||||||
@@ -31,6 +31,7 @@
|
|||||||
"superjson": "^2.2.2",
|
"superjson": "^2.2.2",
|
||||||
"unique-names-generator": "^4.7.1",
|
"unique-names-generator": "^4.7.1",
|
||||||
"vue": "^3.5.18",
|
"vue": "^3.5.18",
|
||||||
|
"vue-matomo": "^4.2.0",
|
||||||
"vue-router": "^4.5.1",
|
"vue-router": "^4.5.1",
|
||||||
"zod": "^4.0.0"
|
"zod": "^4.0.0"
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user