gtm-vue
Version:
Wrapper for using Google Tag Manager with Vue. Inspired by vue-gtm.
25 lines (17 loc) • 595 B
text/typescript
import {VueRouter} from 'vue-router/types/router';
import {VueConstructor} from 'vue';
function setupViewTracking (Vue: VueConstructor, router: VueRouter, ignoredViews: string[] = []) {
if (ignoredViews.length) {
ignoredViews = ignoredViews.map(view => view.toLowerCase());
}
router.afterEach(to => {
const viewName = (to.name || '').toLowerCase();
if (ignoredViews && ignoredViews.indexOf(viewName) >= 0) {
return;
}
const name = to.meta.gtm || to.name;
Vue.gtm.trackView(name, to.fullPath);
});
return ignoredViews;
}
export {setupViewTracking};