我的情况是有人浏览我们的网站,我使用javascript google analytics,而hotjar则跟踪我的用户。
我正在跟踪这样的用户:
ga(' send',' event',' / RegisterButton','','' ); hotjar('发送','事件'); ...
但是,现在服务器端正在为那些人发生事件和数据,我也想跟踪(在分析中)。
举个例子,我想知道一个人是否多次上传文件。
我该怎么做?
一种方法是这样做(这是伪代码):
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代码变得复杂。
我想要一个解决方案,以便我可以将这些数据从服务器端直接发送到谷歌分析。 像这样:
在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(类似于谷歌分析的服务)......
答案 0 :(得分:0)
我使用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#代码中有它,它可能需要更新代码或配置更改。
如果从示例代码中添加clientId作为postData中cid键的值。 Google Analytics会将此链接与您当前的客户端相关联。
var postData = new Dictionary<string, string>
{
{ "v", "1" },
{ "tid", "UA-XXXXXX-XX" },
{ "cid", clientId },
{ "t", type.ToString() },
{ "ec", category },
{ "ea", action },
};