---
tags: bahamut-pie, side project
---
# bahamut-pie - chapter5: Vue with Google Analytics🔍
Vue 專案導入 GA,google 結果大都是用 [**vue-analytics**](https://github.com/MatteoGabriele/vue-analytics) 就可以輕鬆設定完成
不過當時開發遇到了一些意外,這邊順便紀錄一下
## vue-analytics
按照 vue-analytics 教學/官方文件的方式安裝並設定
```
npm install vue-analytics
```
在 main.js (注入點)設定好以下幾行,就會有基本的頁面追蹤功能
套件會自動加載需要的 js,不用再額外載入ga後台提供的原始碼
```javascript=
// main.js
import Vue from 'vue'
import VueAnalytics from 'vue-analytics'
import router from './router'
Vue.use(VueAnalytics, {
id: 'UA-XXX-X', // ga 的 id
router // 記得加上router
})
```
ga 事件設定起來也很方便
```javascript=
this.$ga.event('category', 'action', 'label', value)
```
更多設定細節可以到 [**github page**](https://github.com/MatteoGabriele/vue-analytics) 去查閱
## something wrong...
設定完後測試,結果發現GA處於"半殘廢"狀態
- 後台接收到的資料只有document title + location,沒有頁面路徑
依照官方文件自訂資料回傳格式結果也是一樣
- ga 事件都沒有觸發
在設定過程中也有一些奇怪的地方
- 在設定追蹤碼ID的時候發現,大多文件都是寫著 **UA-XXX-X**
但是我新開設的GA資源,ID卻是 **G-XXXXXX** 的格式
- 套件自動載入 js 是無效的,我必須關掉自動載入再把後台提供的 js 引入到網頁
GA 才收得到資料
對比**實際後台介面**與**教學/官方文件**之後認為有可能是GA在2020年底有改版過
最後在 vue-analytics 的 issues 看到這則最近被關閉(已解決)的討論串
[Tracking each page using Google Analytics 4](https://github.com/MatteoGabriele/vue-analytics/issues/290)
這篇貼文的情況跟我如出一轍,原來真的是GA改版導致套件運行出問題
套件開發者回應說 vue-analytics 是基於 analytics.js 實作
而新版 GA4 則是使用 gtag.js 的作法,詳細可以參考這篇 [gtag.js 還是 analytics.js ?](https://medium.com/@ennovysun0629/gtag-js-%E9%82%84%E6%98%AF-analytics-js-de39f799fe7c)
## how to fix?
作者在討論串說可以改用基於 gtag.js 實作的套件,比如 [vue-gtag](https://matteo-gabriele.gitbook.io/vue-gtag/)
vue-gtag 有支援 Vue2 和 Vue3 兩種版本,設定方式也很容易
以下為 Vue2 版本的使用方式
```
npm install vue-gtag
```
一樣在 main.js 設定好路由就有基本的頁面追蹤功能
```javascript=
// main.js
import Vue from "vue";
import router from './router'
import VueGtag from "vue-gtag";
Vue.use(VueGtag, {
config: { id: 'G-XXXXXXX' },
}, router);
```
設置 ga 事件如下
```javascript=
this.$gtag.event('action', {
event_category: 'category',
event_label: 'label',
value: value,
});
```
## 結論
- **舊版 GA 請用 [vue-analytics](https://github.com/MatteoGabriele/vue-analytics),新版 GA4 改用 [vue-gtag](https://matteo-gabriele.gitbook.io/vue-gtag/)**
- 被關閉的 issue 也要翻出來看清楚
- 技術迭代很快,別以為不會剛好遇到版本更替的蠻荒時代
## reference
- [Google Analytics 4 代出來了?告訴你15個舊版與 新版 GA 的差別](https://datasupplied.com/google-analytics-4/meet-ga4/)