過去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

  •  
    1) ga_xoops_userid_3q9527tw_1.gif
  •  
    2) ga_xoops_userid_3q9527tw_2.gif

發表自: 九五二七九五二七
愛漫畫愛遊戲愛上網愛星爺,小時摸到阿羅士與AppleII後註定宅一輩子,從紅白機玩到PS4,從386打到Xeon,沒日沒夜的打電動;待過所有宅產業,從光華混到NOVA,從遊戲滾到動漫,從攝影器材爬到網路電信,喜愛學習多於睡覺,無時無刻散發一股宅味,但號稱長的像梁朝偉XD

覺得讚想推薦或分享嗎?