Vue中的Matomo标签管理器实现

时间:2019-04-30 16:30:33

标签: vue.js matomo

我正在使用Matomo的Vue插件,该插件在这里找到:https://github.com/AmazingDreams/vue-matomo

我将VueMatomo插件导入到main.js条目文件中,如下所示:

import VueMatomo from 'vue-matomo';

然后,我在main.js文件中将VueMatomo分配为全局方法,如下所示:

Vue.use(VueMatomo, {
  // Configure your matomo server and site
  host: 'https://matomo.example.com', 
  siteId: 1, 

  // 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
});

如何在此插件中实现标签?我是否可以像这样将trackerUrl设置为我的容器网址:

// Overrides the autogenerated tracker endpoint entirely
// Default: undefined
trackerUrl: 'https://mycontainer.js'

我还如何发送自定义数据。例如:

'user':{        
    'role':'consumer', 
    'type':'purchaser'
}

编辑:在Matomo标签管理器文档中,它说要把它放在head标签中。

<!-- MTM -->
<script type="text/javascript">
var _mtm = _mtm || [];
_mtm.push({'mtm.startTime': (new Date().getTime()), 'event': 'mtm.Start'});
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src='https://mycontainer.js'; s.parentNode.insertBefore(g,s);
</script>
<!-- End MTM -->

vue-matomo插件仍然需要吗?

g.src='https://mycontainer.js'

还有其他地方吗?

1 个答案:

答案 0 :(得分:1)

在内部,Vue Plugin只是向您暴露Matomo tracking client SDK。您可以通过this.$matomo来调用任何本机SDK函数listed in their SDK on their website

您实际上可以在源代码中看到他们这样做:

const Matomo = MatomoJS.getTracker(trackerEndpoint, siteId)

// Assign matomo to Vue
Vue.prototype.$piwik = Matomo
Vue.prototype.$matomo = Matomo

MatomoJS是通过import Matomojs from './matomo'解析的,而flat javascript file只是打包了其公共SDK的#define RUN_10_TIMES(X) X X X X X X X X X X #define RUN_1000_TIMES(X) RUN_10_TIMES(RUN_10_TIMES(RUN_10_TIMES(X)))