Nuxt Umami Module
This is a fully featured nuxt module that makes implementing Umami Analytics into your Nuxt project a breeze.
Features
📖 Open Source✨ SSR support💯 Feature complete✅ TypeScript & JSDocs✅ Supports<script setup>
syntax
Installation
With pnpm
pnpm add -D nuxt-umami
Or, with npm
npm install -D nuxt-umami
Or, with yarn
yarn add -D nuxt-umami
Setup
Add the module to nuxt.config
:
// nuxt.config.ts (Nuxt 3)
export default defineNuxtConfig({
modules: ['nuxt-umami'],
umami: {
enable: true, // enable the module? true by default
autoTrack: true,
doNotTrack: false,
cache: false,
domains: 'mywebsite.com,mywebsite2.com',
websiteId: 'your-website-id',
scriptUrl: 'https://path.to.umami.js',
}
})
// or inline config
export default defineNuxtConfig({
modules: [['nuxt-umami', {
// nuxt-umami options
}]]
})
// nuxt.config.js (Nuxt 2)
export default {
modules: [
['nuxt-umami'],
],
umami: {
autoTrack: true,
doNotTrack: false,
cache: false,
domains: 'mywebsite.com,mywebsite2.com',
websiteId: 'your-website-id',
scriptUrl: 'https://path.to.umami.js',
}
}
// or inline config
export default {
modules: [
['nuxt-umami', {
// nuxt-umami options
}]
]
}
Only websiteId
and scriptUrl
are mandatory. See the Umami docs for more explanation of these options.
New: You can use the
enable
option to temporarily disable the module.
Environment Variables
If you want, you can set up and use environment variables in .env
files. But that is not really necessary as the module config does not require any "sensitive" data. Every part of the configuration can be viewed in the script in <head>
after the page is loaded.
Usage
Note: You can use
$umami
anywhere you have access toNuxtApp
or theuseNuxtApp
composable (middleware, asyncData, etc).
Warning: $umami is only available
onMounted
.
<script setup>
In <script setup>
const { $umami } = useNuxtApp();
onMounted(() => {
// Sends an event with an event type of custom.
$umami("Signup button click");
});
</script>
In middleware, asyncData, etc
const { data } = await useAsyncData("mountains", (nuxtApp) => {
const { $umami } = nuxtApp();
// do something, return something
});
Available Functions
For a list of all available functions, see Umami Tracker Functions
Credits
-
VueUse - for
useScriptTag
composable. - Joe Pritchard - author of nuxt-umami-module (compatible only with Nuxt 2).
Author
Hey, I'm ML, when I'm not trying to break into open source,
I'm busy trying to break into sh-posting on Twitter
If you find a bug or have any trouble using the module, please open an issue. I'm available to work on it and help you out.
Using the module in your app? Consider giving it a star