UNPKG

738 BJavaScriptView Raw
1export default function (ctx, inject) {
2 const layer = '<%= options.layer %>'
3 let initalized = false
4 ctx.$gtm = {
5 init() {
6 if (!initalized && window.$initGTM) {
7 window.$initGTM()
8 }
9 initalized = true
10 },
11 push(obj) {
12 if (!window[layer]) {
13 window[layer] = [{ 'gtm.start': new Date().getTime(), event: 'gtm.js' }]
14 }
15 window[layer].push(obj)
16 }
17 }
18 inject('gtm', ctx.$gtm)
19
20<% if (options.pageTracking) { %>
21 ctx.app.router.afterEach((to) => {
22 setImmediate(() => {
23 ctx.$gtm.push(to.gtm || {
24 routeName: to.name,
25 pageType: 'PageView',
26 pageUrl: to.fullPath,
27 event: '<%= options.pageViewEventName %>'
28 })
29 })
30 })
31<% } %>
32}