从服务器端以编程方式发送 Google 分析事件不起作用
Sending Google Analytics events programatically from server side not working
我们想从服务器端向 google 分析发送自定义事件跟踪信息。
为此,我参考了 this SO post,并提出了以下代码片段,但不知何故它没有将事件信息发送到 GA。我调试了代码以查看响应,它返回 200 (OK)
状态,响应类似于通过客户端跟踪事件时的响应。我们已经等了几天以查看事件是否被跟踪,但没有。
public static void TrackEvent(string category, string action, string label)
{
string gaCodeTest = "UA-xxxxxx-2";
ASCIIEncoding encoding = new ASCIIEncoding();
string cid = Guid.NewGuid().ToString();
string postData =
"v=1&tid=" + gaCodeTest + " &cid=" + cid + "&t=event" +
"&ec=" + category +
"&ea=" + action +
"&el=" + label;
byte[] data = encoding.GetBytes(postData);
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("https://www.google-analytics.com/collect");
myRequest.Method = "POST";
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.ContentLength = data.Length;
Stream newStream = myRequest.GetRequestStream();
newStream.Write(data, 0, data.Length);
var response = (HttpWebResponse)myRequest.GetResponse();
//var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
newStream.Close();
}
您的请求。
v=1&tid=UA-1111111-2 &cid=555&t=event&ec=MyCategory&ea=MyAction&el=MyLabel
在调试端点测试它
https://www.google-analytics.com/debug/collect?v=1&tid=UA-11111-2 &cid=555&t=event&ec=MyCategory&ea=MyAction&el=MyLabel
结果
{
"hitParsingResult": [ {
"valid": false,
"parserMessage": [ {
"messageType": "ERROR",
"description": "The value provided for parameter 'tid' is invalid. Please see for details.",
"messageCode": "VALUE_INVALID",
"parameter": "tid"
} ],
"hit": "/debug/collect?v=1\u0026tid=UA-76874663-2%20\u0026cid=555\u0026t=event\u0026ec=MyCategory\u0026ea=MyAction\u0026el=MyLabel"
} ],
"parserMessage": [ {
"messageType": "INFO",
"description": "Found 1 hit in the request."
} ]
}
您在 tid
之后有一个 space
我们想从服务器端向 google 分析发送自定义事件跟踪信息。
为此,我参考了 this SO post,并提出了以下代码片段,但不知何故它没有将事件信息发送到 GA。我调试了代码以查看响应,它返回 200 (OK)
状态,响应类似于通过客户端跟踪事件时的响应。我们已经等了几天以查看事件是否被跟踪,但没有。
public static void TrackEvent(string category, string action, string label)
{
string gaCodeTest = "UA-xxxxxx-2";
ASCIIEncoding encoding = new ASCIIEncoding();
string cid = Guid.NewGuid().ToString();
string postData =
"v=1&tid=" + gaCodeTest + " &cid=" + cid + "&t=event" +
"&ec=" + category +
"&ea=" + action +
"&el=" + label;
byte[] data = encoding.GetBytes(postData);
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("https://www.google-analytics.com/collect");
myRequest.Method = "POST";
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.ContentLength = data.Length;
Stream newStream = myRequest.GetRequestStream();
newStream.Write(data, 0, data.Length);
var response = (HttpWebResponse)myRequest.GetResponse();
//var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
newStream.Close();
}
您的请求。
v=1&tid=UA-1111111-2 &cid=555&t=event&ec=MyCategory&ea=MyAction&el=MyLabel
在调试端点测试它
https://www.google-analytics.com/debug/collect?v=1&tid=UA-11111-2 &cid=555&t=event&ec=MyCategory&ea=MyAction&el=MyLabel
结果
{
"hitParsingResult": [ {
"valid": false,
"parserMessage": [ {
"messageType": "ERROR",
"description": "The value provided for parameter 'tid' is invalid. Please see for details.",
"messageCode": "VALUE_INVALID",
"parameter": "tid"
} ],
"hit": "/debug/collect?v=1\u0026tid=UA-76874663-2%20\u0026cid=555\u0026t=event\u0026ec=MyCategory\u0026ea=MyAction\u0026el=MyLabel"
} ],
"parserMessage": [ {
"messageType": "INFO",
"description": "Found 1 hit in the request."
} ]
}
您在 tid
之后有一个 space