vue中使用Google Analytics

什么是 Google Analytics

Google Analytics 是一個(gè)多平臺(tái)埋點(diǎn)分析工具箍鼓,即只要在平臺(tái)上添加相關(guān)的追蹤代碼(tracking code)相赁,GA 就可以監(jiān)測(cè)和收集使用者在平臺(tái)上的各種行為資料相寇,比如頁(yè)面停留時(shí)長(zhǎng)、訪問(wèn)次序钮科、點(diǎn)擊了哪些內(nèi)部鏈接等等唤衫。官方提供了兩個(gè)SDK,一個(gè)是analytics.js绵脯,一個(gè)是gtag.js佳励。本文用的是官方推薦的gtag.js。

如何正確地初始化

只要把官方提供的腳本內(nèi)容放到index.html文件即可蛆挫。

<!-- Global site tag (gtag.js) - Google Analytics -->
  <script async src="https://www.googletagmanager.com/gtag/js?id=UA-149950392-1"></script>
  <script>
            window.dataLayer = window.dataLayer || []
            function gtag() {
                dataLayer.push(arguments)
            }
            gtag('js', new Date())

            gtag('config', 'UA-149950392-1')
  </script>

GA基本用法:頁(yè)面跟蹤與事件跟蹤

事件跟蹤與事件跟蹤是GA最基本最主要的用法赃承。

頁(yè)面跟蹤

一般的網(wǎng)站,只需要在index.html中加個(gè)GA的代碼就能完成頁(yè)面跟蹤了悴侵,但是對(duì)于SPA來(lái)說(shuō)并不行瞧剖,因?yàn)槁酚芍g的跳轉(zhuǎn)并沒(méi)有刷新頁(yè)面,GA感知不到可免,因此需要手動(dòng)觸發(fā)抓于。在vue-cli的工程中,可使用如下代碼簡(jiǎn)單處理:

router.afterEach((to, from, next) => {
    window.gtag('config', this.GA_TRACKING_ID, {
                page_title: title,
                page_path: page,
                page_location: location
            })
})

事件跟蹤

原生的代碼是

window.gtag('event', eventAction, {
                event_category: eventCategory,
                event_label: eventLabel,
                value: eventValue,
                send_to: this.GA_TRACKING_ID
            })

值得一提的是事件四個(gè)參數(shù)的設(shè)置:
event_category: 一般為一個(gè)大類浇借,比如品牌brand,視頻video等等
eventAction: 一般為一個(gè)具體的操作毡咏,比如download, play, click等等
event_label: 一般為額外的一些信息,比如具體的品牌ID逮刨,視頻的title等等
value: 任意的度量值呕缭,必須為正的整數(shù),比如表示品牌的價(jià)值修己,視頻的時(shí)長(zhǎng)等等

代碼封裝

考慮到以后有可能會(huì)更換分析工具恢总,所以我會(huì)把接口都封裝到一個(gè)對(duì)象里面,就算以后更換工具睬愤,只要接口一致片仿,改變接口的實(shí)現(xiàn)即可。

//google-analyze.js
export default {
    GA_TRACKING_ID: '', //ga的id
    event(eventCategory, eventAction, eventLabel, eventValue) {
        if (window.gtag) {
            window.gtag('event', eventAction, {
                event_category: eventCategory,
                event_label: eventLabel,
                value: eventValue,
                send_to: this.GA_TRACKING_ID
            })
        }
    },
    page(page, title, location) {
        if (window.gtag) {
            window.gtag('config', this.GA_TRACKING_ID, {
                page_title: title,
                page_path: page,
                page_location: location
            })
        }
    }
}

自定義指令

把統(tǒng)計(jì)代碼和業(yè)務(wù)邏輯混在一起尤辱,總感覺(jué)不是很優(yōu)雅砂豌。可以考慮對(duì)需要統(tǒng)計(jì)的元素添加自定義指令光督,統(tǒng)一處理上報(bào)阳距,當(dāng)然這種方式不一定適合所有情況。

import ga from 'google-analyze.js'

export default {
    bind(el, binding) {
        el.addEventListener('click', () => {
            // binding.value 拿到 v-ga 指令的參數(shù)
            let { eventCategory, eventAction, eventLabel, eventValue } = binding.value
            ga.event(eventCategory, eventAction, eventLabel, eventValue)
        })
    },

    unbind(el) {
        el.removeEventListener('click', () => {})
    }
}

如何檢查GA是否正常工作?

使用Chrome的Tag Assistant插件,具體使用可以參考https://www.cnblogs.com/pheye/p/9014797.html

參考資料

vue-cli的工程如何正確使用Google Analytics结借?
Google Analytics 埋點(diǎn)
Vue 自定義指令上報(bào) Google Analytics 事件統(tǒng)計(jì)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末筐摘,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌咖熟,老刑警劉巖圃酵,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件上鞠,死亡現(xiàn)場(chǎng)離奇詭異冤吨,居然都是意外死亡拨齐,警方通過(guò)查閱死者的電腦和手機(jī)茫舶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)渗勘,“玉大人殃饿,你說(shuō)我怎么就攤上這事茄唐≌湃牵” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵岭洲,是天一觀的道長(zhǎng)宛逗。 經(jīng)常有香客問(wèn)我,道長(zhǎng)盾剩,這世上最難降的妖魔是什么雷激? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮告私,結(jié)果婚禮上屎暇,老公的妹妹穿的比我還像新娘。我一直安慰自己驻粟,他們只是感情好根悼,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著蜀撑,像睡著了一般挤巡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上酷麦,一...
    開(kāi)封第一講書(shū)人閱讀 51,631評(píng)論 1 305
  • 那天矿卑,我揣著相機(jī)與錄音,去河邊找鬼沃饶。 笑死母廷,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的糊肤。 我是一名探鬼主播琴昆,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼馆揉!你這毒婦竟也來(lái)了椎咧?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎勤讽,沒(méi)想到半個(gè)月后蟋座,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡脚牍,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年向臀,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片诸狭。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡券膀,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出驯遇,到底是詐尸還是另有隱情芹彬,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布叉庐,位于F島的核電站舒帮,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏陡叠。R本人自食惡果不足惜玩郊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望枉阵。 院中可真熱鬧译红,春花似錦、人聲如沸兴溜。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)拙徽。三九已至假夺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間斋攀,已是汗流浹背已卷。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留淳蔼,地道東北人侧蘸。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像鹉梨,于是被迫代替她去往敵國(guó)和親讳癌。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容