在Nuxt用Google Analytics大概有幾種方法,官方文件推薦自己寫一個plugins,也可以用vue-analytics,之後也是在寫一個plugins引入,也可以用模組的方式載入,看起來會比較像是Nuxt本身的東西,Github連結,我是選擇這種做法的
安裝方法如一般使用npm
npm install @nuxtjs/google-analytics
然後在nuxt.config.js新增以下設定,就能完成基本的使用了
{
modules: [
// Simple usage
['@nuxtjs/google-analytics', {
id: 'UA-12301-2'
}]
]
}
那如果要測試網站是否已經有順利安裝好Google Analytics的話,可以安裝這個Chrome外掛,Tag Assistant (by Google),使用後就會遇到這樣的一個問題,會顯示「Same web property ID is tracked twice」

上網查解決的辦法就是加入這個設定,這樣他才不會重複送出紀錄
{
modules: [
// Simple usage
['@nuxtjs/google-analytics', {
id: 'UA-12301-2',
autoTracking: {
pageviewOnLoad: false //<--add
},
}]
]
}
最後在debug的情況我也遇到了一點問題,就是我想在開發模式下關閉Google Analytics,於是加了以下設定
{
modules: [
// Simple usage
['@nuxtjs/google-analytics', {
id: 'UA-12301-2',
autoTracking: {
pageviewOnLoad: false
},
debug: {
sendHitTask: process.env.NODE_ENV === 'production'
}
}]
]
}
但是發現雖然在開發模式下關閉了,沒想到上線了之後,竟然也沒有打開,一直覺得奇怪,process.env.NODE_ENV這個參數都沒問題啊,build之後確實都是production,後來上網查才知道要在package.json就要帶入這個參數,才能在nuxt.config.js運作,改完後的package.json大概長這樣
"scripts": {
"dev": "nuxt",
"build": "NODE_ENV=production nuxt build", //<--新增NODE_ENV參數
"start": "nuxt start",
"generate": "nuxt generate",
"lint": "eslint --ext .js,.vue --ignore-path .gitignore .",
"precommit": "npm run lint"
}
如此一來就能完美在開發模式和線上產品之間,關閉和開啟Google Analytics,而不用再做兩種不同的設定了