Enable auto-tracking
If you are using VueRouter inside your application, you can simply pass the VueRouter instance as the third parameter of the Vue.use method and the plugin will start tracking all your pages automatically
Copy import Vue from "vue" ;
import VueRouter from 'vue-router' ;
import App from "./App.vue" ;
import VueGtag from "vue-gtag" ;
const router = new VueRouter ({
routes : [
{ name : 'Home' , path : '/' } ,
{ name : 'About' , path : '/about' } ,
]
});
Vue .use (VueGtag , {
config : { id : "UA-1234567-1" }
} , router);
new Vue ({
router ,
render : h => h (App)
}) .$mount ( "#app" );
By default, the tracking system uses pageviews with the following template
Copy {
page_title : 'home' , // route name value
page_path : '/' , // route path value
page_location : 'http://localhost:8080/' // window.location.href
}
Enable screenviews
To be able to use screenview you need to first enable the feature and pass the app name using the plugin global settings
Copy import Vue from "vue" ;
import VueRouter from 'vue-router' ;
import App from "./App.vue" ;
import VueGtag from "vue-gtag" ;
const router = new VueRouter ({
routes : [
{ name : 'Home' , path : '/' } ,
{ name : 'About' , path : '/about' } ,
]
});
Vue .use (VueGtag , {
config : { id : "UA-1234567-1" } ,
appName : 'My application' ,
pageTrackerScreenviewEnabled : true
} , router);
new Vue ({
router ,
render : h => h (App)
}) .$mount ( "#app" );
Page tracker template
The automatic tracker system can use a custom template, instead of the default one: this will apply whether you are using pageviews or screenviews.
Copy import Vue from "vue" ;
import VueRouter from 'vue-router' ;
import App from "./App.vue" ;
import VueGtag from "vue-gtag" ;
const router = new VueRouter ({
routes : [
{ name : 'Home' , path : '/' } ,
{ name : 'About' , path : '/about' } ,
]
});
Vue .use (VueGtag , {
config : { id : "UA-1234567-1" } ,
pageTrackerTemplate (to) {
return {
page_title : 'amazing page' ,
page_path : to .path
}
}
} , router);
new Vue ({
router ,
render : h => h (App)
}) .$mount ( "#app" );
In this example, on every page change, we will send the exact properties inside our event.
The pageTrackerTemplate
method will have both the to
and the from
route instances passed as parameters.
Exclude routes
pass routes path or routes name that you want to exclude from the automatic tracking
Copy import Vue from "vue" ;
import VueRouter from 'vue-router' ;
import App from "./App.vue" ;
import VueGtag from "vue-gtag" ;
const router = new VueRouter ({
routes : [ ... ]
});
Vue .use (VueGtag , {
pageTrackerExcludedRoutes : [ 'route_path_value' , 'route_name_value' ]
config: { id : "UA-1234567-1" } ,
} , router);
new Vue ({
router ,
render : h => h (App)
}) .$mount ( "#app" );