1 | export 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 | }
|