[英]How to send “google analytics” and “hotjar” tracking client events using server ASP.NET MVC C#
我的情況是有人在瀏覽我們的網站,我使用的是javascript谷歌分析,並且使用hotjar來跟蹤我的用戶。
我會像這樣跟蹤用戶:
ga('send','event','/ RegisterButton',``,''); hotjar('send','event'); ...
但是,現在我也想在(分析中)跟蹤這些人在服務器端發生的事件和數據。
例如,我想知道一個人是否多次上傳文件。
我該怎么做?
一種方法是執行此操作(這是一個偽代碼):
function clickOnUploadButton()
{
var userDetails = ajax_get_user_details(function(data) {
if (data.numOfClicksOnUploadButton > 1)
{
ga('send', 'event', '/UploadButtonMoreThanOnce', '', '');
hotjar('send', '/UploadButtonMoreThanOnce');
}
else
{
ga('send', 'event', '/UploadButtonFirstTime', '', '');
hotjar('send', '/UploadButtonFirstTime');
}
ajax_activate_my_asp_controller();
});
}
我真的不想要這個解決方案。 從那時起,我將數據發送到客戶端。 通常,我的網頁中不需要這些數據。 這只會使javascript代碼復雜化。
我需要一個解決方案,以便可以將數據直接從服務器端發送到Google Analytics(分析)。 像這樣 :
在javascript中(偽代碼):
function clickOnUploadButton() {
... do stuff ...
ajax_activate_my_ASP_controller();
}
在我的服務器端控制器中(這是一個偽代碼):
void MyController()
{
string googleAnalyticsSessionID = Request["GoogleAnalyticsSessionID"];
string hotjarSessionID = Request["HotJarID"];
var user = GetMyUser();
if (user.numOfClicksOnUploadButton > 1)
{
new GoogleAnalyticsClass().SendEvent(googleAnalyticsSessionID , "button", "UploadButtonMoreThanOnce");
new HotJar().SendEvent(hotjarSessionID, "button" "UploadButtonMoreThanOnce");
}
else
{
new GoogleAnalyticsClass().SendEvent(googleAnalyticsSessionID , "button", "UploadButtonFirstTime");
new HotJar().SendEvent(hotjarSessionID, "button" "UploadButtonFirstTime");
}
}
謝謝。
編輯:我也需要hotjar(類似於Google Analytics(分析)的服務)...
我使用C#在Google Analytics(分析)中注冊了交易事件。 我發現此分析包裝類的代碼非常有用https://gist.github.com/0liver/11229128
他使用HttpWebRequest跟蹤Google Analytics(分析)中的事件。 它為我工作。
我還創建了一個控制台應用程序,用於注冊Bitbucket https://bitbucket.org/gterlouw/analyticsconsoleexample.git上可用的交易。
為了獲取客戶端ID,我使用以下代碼從cookie中獲取它:
var gaCookie = HttpContext.Current.Request.Cookies["_ga"];
var gaSplitValue = gaCookie != null && gaCookie.Value.Split('.').Length == 4 ? gaCookie.Value.Split('.') : null;
var clientId = gaSplitValue != null ? string.Format("{0}.{1}", gaSplitValue[2], gaSplitValue[3]) : "555";
如果您想用javascript抓取它,則可能要使用它
ga(function(tracker) {
var clientId = tracker.get('clientId');
});
Javascript也許是一個更安全的選擇,因為如果Google決定更改Cookie的名稱,它仍然能夠獲取Cookie,而如果您在C#代碼中包含它,則可能需要更新代碼或更改配置。
如果在示例代碼中的postData中將clientId添加為cid鍵的值。 Google Analytics(分析)會將其鏈接到您當前的客戶端。
var postData = new Dictionary<string, string>
{
{ "v", "1" },
{ "tid", "UA-XXXXXX-XX" },
{ "cid", clientId },
{ "t", type.ToString() },
{ "ec", category },
{ "ea", action },
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.