Plausible analytics as Vue.js and NuxtJS plugins
npm install vue-plausible
Vue.js plugin and NuxtJS module for Plausible Analytics
npm install vue-plausible
`Using yarn:
`
yarn add vue-plausible
`$3
`js
import Vue from 'vue'
import { VuePlausible } from 'vue-plausible'Vue.use(VuePlausible, {
// see configuration section
})
`
To enable automatic page view tracking for SPAs, call the enableAutoPageviews() method.
To enable automatic outbound link tracking, call the enableAutoOutboundTracking() method.$3
`ts
// nuxt.config.js// optional when using nuxt.config.ts
///
export default {
modules: [
'vue-plausible'
]
}
`#### Module Options
Add a
plausible section to nuxt.config.js to set the module options:
`ts
// nuxt.config.jsexport default {
plausible: {
// see configuration section
}
}
`#### Runtime Config
publicRuntimeConfig.
Otherwise, the configuration options passed in nuxt.config.js will be read once and bundled during the build only.
See the configuration section for all available options.`ts
// nuxt.config.jsexport default {
buildModules: [
'vue-plausible'
],
plausible: { // Use as fallback if no runtime config is available at runtime
domain: process.env.PLAUSIBLE_DOMAIN
},
publicRuntimeConfig: {
plausible: {
domain: process.env.PLAUSIBLE_DOMAIN,
apiHost: process.env.PLAUSIBLE_API_HOST
}
}
}
`Usage
vue-plausible is based on the official plausible-tracker package.$3
Configuration options are inherited from plausible-tracker:
| Option | Type | Description | Default |
| ------ | ---- | ----------- | ------- |
| domain | string | Your site's domain name, as declared by you in Plausible's settings. | location.hostname |
| hashMode | boolean | Enables tracking based on URL hash changes. | false |
| trackLocalhost | boolean | Enables tracking on localhost. | false |
| apiHost | string | Plausible's API host to use. Change this if you are self-hosting. | https://plausible.io |
|||||
| enableAutoPageviews | boolean | Enables automatic pageview tracking in SPAs. Learn more | true |
| enableAutoOutboundTracking | boolean | Enables automatic outbound link click tracking. Learn more | false |$3
The plausible-tracker package provides various methods to track specific events, for example trackPageview() and trackEvent(). You can find all the available methods and options in the plausible-tracker documentation.
The Plausible instance is exposed to your Vue.js or NuxtJS app in the following ways:
- Vue.$plausible (Vue.js only)
- this.$plausible inside Vue components
- context.app.$plausible inside asyncData, fetch, plugins, middleware, nuxtServerInit (NuxtJS only)
- this.$plausible inside Vuex stores (NuxtJS only)$3
To use proxying as described in the Plausible 'Using a proxy' documentation, you need to adjust the apiHost configuration option accordingly.
Using vue-plausible only requires to proxy the /api/event endpoint since the frontend code is already bundled from plausible-tracker.Please note that event endpoint path always ends with
/api/event. See the following example:
`ts
plausible: {
apiHost: 'https:///stats' // Reports events to https:///stats/api/event
}
`$3
To exclude yourself from the analytics,
plausible-tracker offers an opt-out mechanism that can be activated by setting the localStorage.plausible_ignore value to true`.More information can be found in the Plausible documentation.