如何使用桌面应用程序的测量协议
How to use measurement protocol for desktop application
我试过的是,
[与 POST]
jQuery.support.cors = true;
$.ajax({
url : "https://www.google-analytics.com/collect?v=1&tid=UA-XXXXXXXX-1&cid=e8efa9cb-7b9e-479e-b07b-1528547dcdb4&t=event&ec=UX&ea=click&z=123456",
type : 'POST',
cache : false,
dataType : 'json',
success:function(data) {
alert("Success: " + JSON.stringify(data));
},
error: function(data) {
alert("Failure: " + JSON.stringify(data));
}
});
或[使用 GET]
jQuery.support.cors = true;
$.ajax({
url : "https://www.google-analytics.com/collect?v=1&tid=UA-XXXXXXXX-1&cid=e8efa9cb-7b9e-479e-b07b-1528547dcdb4&t=event&ec=UX&ea=click&z=123456",
dataType : 'json',
success:function(data) {
alert("Success: " + JSON.stringify(data));
},
error: function(data) {
alert("Failure: " + JSON.stringify(data));
}
});
单击按钮我添加了这段代码。
我的状态为 200,但是在 google 分析报告 [实时数据] 中显示没有活跃用户。如果我查看前几天的报告,它会显示一些用户会话数。
我相信这不是技术问题,而是数据兼容性问题。
你使用的CID好像不符合GA的cid结构,是[10位][点][10位],即1234567890.1234567890
尝试强制使用不同的 ID 来检查我的解决方案。
测量协议处理事件的方式似乎存在错误。我在此处为此创建了一个问题:Issue 848: Events not showing up on Real-time reports
您不发送应用程序变量,数据将不会显示在 real-time 报告中。一旦你发送一个带有它的请求,它们就会再次弹出,但是如果你发送另一个没有它的事件,它们就会丢失。目前没有文档要求应用程序变量。此外,根据您的请求进行的调试会返回有效的命中数据。
https://www.google-analytics.com/debug/collect?v=1&tid=UA-xxxxx-1&cid=e8efa9cb-7b9e-479e-b07b-1528547dcdb4&t=event&ec=UX&ea=click&z=123456
{
"hitParsingResult": [ {
"valid": true,
"parserMessage": [ ],
"hit": "/debug/collect?v=1\u0026tid=UA-xxxxx-1\u0026cid=e8efa9cb-7b9e-479e-b07b-1528547dcdb4\u0026t=event\u0026ec=UX\u0026ea=click\u0026z=123456"
} ],
"parserMessage": [ {
"messageType": "INFO",
"description": "Found 1 hit in the request."
} ]
}
解决方案/解决方法:
将以下项目添加到您的请求中应该可以解决问题。同样在这个时候,没有记录他们是必需的。但是,我的测试表明,当您发送这些内容时,real-time 报告中的所有内容都会再次正确显示。
cd=ScreenName&an=ApplicationName&aid=ApplicationId&av=3.0&aiid=1.0
您可能遇到的问题:
- 希望 "UA-XXXXXXXX-1" - 这只是代码示例,您在代码中使用了 "real" GA ID。
- 关于 ClientID:在 GA docs 中,您可能会看到类似于“35009a79-1a05-49d7-b876-2b884d0f825b”的 ClientID。但是此 ClientID 应该与访问您网站的网站用户的某些 ClientIDs 相匹配。如果没有特定设置,GA 将不会生成像“35009a79-1a05-49d7-b876-2b884d0f825b”这样的 ClientID,因为 GA 会自动生成 XXXXXXXXXX.XXXXXXXXXX 格式的 ClientID,例如“1068584379.1447331221”。
如何手动查找 ClientID:为您的网站查找“_ga”cookie,它应该类似于 "GA1.2.1068584379.1447331221"。此 cookie 中的 ClientID 为 1068584379.1447331221。
如何在JS-srcipt中获取这个参数:
ga(function(tracker) {
var clientId = tracker.get('clientId');
});
请记住,ClientID 标识每个唯一用户(浏览器)并将通过测量协议发送的用户数据与在 client-side(通过 GA js 库)上收集的用户数据联系起来。因此,要在 GA 报告中查看数据(由 Measurement Protocol 发送),最好使用 "real" ClientID,对于过去访问过网站的用户。
我试过的是,
[与 POST]
jQuery.support.cors = true;
$.ajax({
url : "https://www.google-analytics.com/collect?v=1&tid=UA-XXXXXXXX-1&cid=e8efa9cb-7b9e-479e-b07b-1528547dcdb4&t=event&ec=UX&ea=click&z=123456",
type : 'POST',
cache : false,
dataType : 'json',
success:function(data) {
alert("Success: " + JSON.stringify(data));
},
error: function(data) {
alert("Failure: " + JSON.stringify(data));
}
});
或[使用 GET]
jQuery.support.cors = true;
$.ajax({
url : "https://www.google-analytics.com/collect?v=1&tid=UA-XXXXXXXX-1&cid=e8efa9cb-7b9e-479e-b07b-1528547dcdb4&t=event&ec=UX&ea=click&z=123456",
dataType : 'json',
success:function(data) {
alert("Success: " + JSON.stringify(data));
},
error: function(data) {
alert("Failure: " + JSON.stringify(data));
}
});
单击按钮我添加了这段代码。
我的状态为 200,但是在 google 分析报告 [实时数据] 中显示没有活跃用户。如果我查看前几天的报告,它会显示一些用户会话数。
我相信这不是技术问题,而是数据兼容性问题。 你使用的CID好像不符合GA的cid结构,是[10位][点][10位],即1234567890.1234567890 尝试强制使用不同的 ID 来检查我的解决方案。
测量协议处理事件的方式似乎存在错误。我在此处为此创建了一个问题:Issue 848: Events not showing up on Real-time reports
您不发送应用程序变量,数据将不会显示在 real-time 报告中。一旦你发送一个带有它的请求,它们就会再次弹出,但是如果你发送另一个没有它的事件,它们就会丢失。目前没有文档要求应用程序变量。此外,根据您的请求进行的调试会返回有效的命中数据。
https://www.google-analytics.com/debug/collect?v=1&tid=UA-xxxxx-1&cid=e8efa9cb-7b9e-479e-b07b-1528547dcdb4&t=event&ec=UX&ea=click&z=123456
{
"hitParsingResult": [ {
"valid": true,
"parserMessage": [ ],
"hit": "/debug/collect?v=1\u0026tid=UA-xxxxx-1\u0026cid=e8efa9cb-7b9e-479e-b07b-1528547dcdb4\u0026t=event\u0026ec=UX\u0026ea=click\u0026z=123456"
} ],
"parserMessage": [ {
"messageType": "INFO",
"description": "Found 1 hit in the request."
} ]
}
解决方案/解决方法:
将以下项目添加到您的请求中应该可以解决问题。同样在这个时候,没有记录他们是必需的。但是,我的测试表明,当您发送这些内容时,real-time 报告中的所有内容都会再次正确显示。
cd=ScreenName&an=ApplicationName&aid=ApplicationId&av=3.0&aiid=1.0
您可能遇到的问题:
- 希望 "UA-XXXXXXXX-1" - 这只是代码示例,您在代码中使用了 "real" GA ID。
- 关于 ClientID:在 GA docs 中,您可能会看到类似于“35009a79-1a05-49d7-b876-2b884d0f825b”的 ClientID。但是此 ClientID 应该与访问您网站的网站用户的某些 ClientIDs 相匹配。如果没有特定设置,GA 将不会生成像“35009a79-1a05-49d7-b876-2b884d0f825b”这样的 ClientID,因为 GA 会自动生成 XXXXXXXXXX.XXXXXXXXXX 格式的 ClientID,例如“1068584379.1447331221”。
如何手动查找 ClientID:为您的网站查找“_ga”cookie,它应该类似于 "GA1.2.1068584379.1447331221"。此 cookie 中的 ClientID 为 1068584379.1447331221。
如何在JS-srcipt中获取这个参数:
ga(function(tracker) {
var clientId = tracker.get('clientId');
});
请记住,ClientID 标识每个唯一用户(浏览器)并将通过测量协议发送的用户数据与在 client-side(通过 GA js 库)上收集的用户数据联系起来。因此,要在 GA 报告中查看数据(由 Measurement Protocol 发送),最好使用 "real" ClientID,对于过去访问过网站的用户。