从服务器端以编程方式发送 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