利用Google Analytics來記錄xoops會員動態(2018更新)

過去xoops有類似用戶log的模組,但實際用過後,發現有個很大的問題

就是資料非常的肥,而且功能及機制都不夠完美的情況下,大部份人還是用GA來記錄及分析,

但GA預設只能記錄所有訪客的動態,並沒有針對會員進行記錄


以下分享讓GA可以記錄xoops會員動態的方式,讓log資料統一在GA後台可以看到。

  1. 請至你的Google Analytics後台功能[管理]→[資源]→[追蹤資訊]→[User-ID]

  2. 啟用 User-ID 功能,並建立 User-ID 視圖,此步驟會新增一個新的GA資料

  3. 在你的xoops樣版中,原本嵌入的GA語法,加入userid語法,如下述紅字

新gtag.js寫法(加入訪客及會員的判斷)

<script async src="https://www.googletagmanager.com/gtag/js?id=**你的UA_ID**"></script>

<{if $xoops_isuser}>

<script>

window.dataLayer = window.dataLayer || [];

function gtag(){dataLayer.push(arguments);}

gtag('js', new Date());

gtag('config', '**你的UA_ID**', { 'user_id': '<{$xoops_name}>' });

</script>

<{else}>

<script>

window.dataLayer = window.dataLayer || [];

function gtag(){dataLayer.push(arguments);}

gtag('js', new Date());

gtag('config', '**你的UA_ID**', { 'user_id': '<{$smarty.const._GUESTS}>' });

</script><{/if}>

舊analytics.js寫法,只判斷會員

<script>

(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){

(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),

m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)

})(window,document,'script','//www.google-analytics.com/analytics.js','ga');

ga('create', '**你的UA_ID**', '**你的domain**');**<{if $xoops_isuser}>var xoopsuser_name = "<{$xoops_name}>";ga('set', 'userId', xoopsuser_name );<{/if}>**

ga('send', 'pageview');

</script>

如此一來,隔一天你的GA報表,

就可以在新增的資料檢視中的[報表]→[目標對象]→[使用者多層檢視]

看到每位會員的詳細動態了~

ps.如果有埋電子商務的track,還可以看到會員消費金額。

參考資料來源

https://developers.google.com/analytics/devguides/collection/gtagjs/migration

https://developers.google.com/analytics/devguides/collection/gtagjs/cookies-user-id

https://developers.google.com/analytics/devguides/collection/gtagjs/setting-values

https://support.google.com/analytics/answer/3123662