如何在 VueJS 单页应用程序中添加 Matomo 跟踪代码?
How to add Matomo tracking code in VueJS Single Page Apps?
我想确认我是否在 VueJS 框架内的单页应用程序中正确设置了分析跟踪。
我正在使用 Matomo 的 Vue 插件,可在此处找到:
https://github.com/AmazingDreams/vue-matomo
我在 main.js
入口文件中导入了 VueMatomo 插件,如下所示:
import VueMatomo from 'vue-matomo';
然后,我在 main.js
文件中将 VueMatomo 分配为全局方法,如下所示:
Vue.use(VueMatomo, {
// Configure your matomo server and site
host: 'https://matomo.example.com', <-- i configured this to match my real site
siteId: 5, <--- i configured this to match my real site
// Enables automatically registering pageviews on the router
router: router,
// Enables link tracking on regular links. Note that this won't
// work for routing links (ie. internal Vue router links)
// Default: true
enableLinkTracking: true,
// Require consent before sending tracking information to matomo
// Default: false
requireConsent: false,
// Whether to track the initial page view
// Default: true
trackInitialView: true,
// Changes the default .js and .php endpoint's filename
// Default: 'piwik'
trackerFileName: 'piwik',
// Whether or not to log debug information
// Default: false
debug: false
});
这让我可以访问组件中的 Matomo API (_paq
)。然而,这就是我感到困惑的地方。
例如,我有一个名为 overview.vue
的视图,它是网站的主页。在这个 vue 模板中,我的 created()
钩子中有以下代码。由于我使用的是 SPA,我需要以某种方式获取用户所在页面的名称并将其推送到 Matomo 报告工具。这就是我所做的:
<template>...snip...</template>
<script>
export default {
name: 'OverView',
created: function() {
window._paq.push(['setCustomUrl', '/' + window.location.hash.substr(1)]);
window._paq.push(['setDocumentTitle', 'Overview Page']);
window._paq.push(['trackPageView']);
}
};
</script>
以上是否足够或是否有更好的生命周期钩子(已安装?)用于跟踪代码?也许导航守卫更合适?
谢谢
我让 matomo 在我的 vue.js 应用程序 (v 2.6.10) 上工作。
我正在使用来自 https://matomo.org/
的试用帐户
在我的 main.js
文件中:
// Analytics
import VueMatomo from "vue-matomo";
Vue.use(VueMatomo, {
host: "https://example.matomo.cloud", // switch this to your account
siteId: 1, // switch this as well you can find the site id after adding the website to the dashboard.
router: router,
enableLinkTracking: true,
requireConsent: false,
trackInitialView: true,
trackerFileName: "piwik",
debug: true
});
我可以确认我的所有嵌套路线都已被跟踪。我可以在我的 matomo 仪表板上看到我查看了哪些页面。
要使自定义事件正常工作,只需添加以下内容:
this.$matomo.trackEvent("Event Category", "Event Name", "event action");
为了提供一些背景信息,对于我的应用程序,我在计算 属性:
中使用它
computed: {
selectedMapDataType: {
get() {
return this.$store.state.mapDataType;
},
set(selected) {
this.$matomo.trackEvent("Dashboard Update", "Dashboard Data", selected);
this.$store.dispatch("updateMapDataType", selected);
}
},
...}
我想确认我是否在 VueJS 框架内的单页应用程序中正确设置了分析跟踪。
我正在使用 Matomo 的 Vue 插件,可在此处找到: https://github.com/AmazingDreams/vue-matomo
我在 main.js
入口文件中导入了 VueMatomo 插件,如下所示:
import VueMatomo from 'vue-matomo';
然后,我在 main.js
文件中将 VueMatomo 分配为全局方法,如下所示:
Vue.use(VueMatomo, {
// Configure your matomo server and site
host: 'https://matomo.example.com', <-- i configured this to match my real site
siteId: 5, <--- i configured this to match my real site
// Enables automatically registering pageviews on the router
router: router,
// Enables link tracking on regular links. Note that this won't
// work for routing links (ie. internal Vue router links)
// Default: true
enableLinkTracking: true,
// Require consent before sending tracking information to matomo
// Default: false
requireConsent: false,
// Whether to track the initial page view
// Default: true
trackInitialView: true,
// Changes the default .js and .php endpoint's filename
// Default: 'piwik'
trackerFileName: 'piwik',
// Whether or not to log debug information
// Default: false
debug: false
});
这让我可以访问组件中的 Matomo API (_paq
)。然而,这就是我感到困惑的地方。
例如,我有一个名为 overview.vue
的视图,它是网站的主页。在这个 vue 模板中,我的 created()
钩子中有以下代码。由于我使用的是 SPA,我需要以某种方式获取用户所在页面的名称并将其推送到 Matomo 报告工具。这就是我所做的:
<template>...snip...</template>
<script>
export default {
name: 'OverView',
created: function() {
window._paq.push(['setCustomUrl', '/' + window.location.hash.substr(1)]);
window._paq.push(['setDocumentTitle', 'Overview Page']);
window._paq.push(['trackPageView']);
}
};
</script>
以上是否足够或是否有更好的生命周期钩子(已安装?)用于跟踪代码?也许导航守卫更合适?
谢谢
我让 matomo 在我的 vue.js 应用程序 (v 2.6.10) 上工作。
我正在使用来自 https://matomo.org/
在我的 main.js
文件中:
// Analytics
import VueMatomo from "vue-matomo";
Vue.use(VueMatomo, {
host: "https://example.matomo.cloud", // switch this to your account
siteId: 1, // switch this as well you can find the site id after adding the website to the dashboard.
router: router,
enableLinkTracking: true,
requireConsent: false,
trackInitialView: true,
trackerFileName: "piwik",
debug: true
});
我可以确认我的所有嵌套路线都已被跟踪。我可以在我的 matomo 仪表板上看到我查看了哪些页面。
要使自定义事件正常工作,只需添加以下内容:
this.$matomo.trackEvent("Event Category", "Event Name", "event action");
为了提供一些背景信息,对于我的应用程序,我在计算 属性:
中使用它 computed: {
selectedMapDataType: {
get() {
return this.$store.state.mapDataType;
},
set(selected) {
this.$matomo.trackEvent("Dashboard Update", "Dashboard Data", selected);
this.$store.dispatch("updateMapDataType", selected);
}
},
...}