C# 从服务器端以编程方式发送Google Analytics事件不起作用

C# 从服务器端以编程方式发送Google Analytics事件不起作用,c#,google-analytics,measurement-protocol,C#,Google Analytics,Measurement Protocol,我们想从服务器端向google analytics发送自定义事件跟踪信息 为此,我参考了SO post,并提出了以下代码片段,但不知何故它没有将事件信息发送给GA。我调试了代码以查看响应,它返回200(OK)状态,响应类似于通过客户端跟踪事件时的响应。我们已经等了几天,想看看这个事件是否被跟踪,但没有 public static void TrackEvent(string category, string action, string label) { stri

我们想从服务器端向google analytics发送自定义事件跟踪信息

为此,我参考了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后有一个空格

您能在实时报告中看到吗?您是否已将其设置为过滤机器人请求?@DaImTo-我们甚至在实时报告中也没有看到。如何设置过滤机器人请求?谷歌分析管理视图设置->机器人过滤。我正在为.Net开发一个SDK,它几乎可以发布第一个测试版NuGet包了。我只是想做更多的测试。欢迎您在我的代码中翻找一些小事件,如果它们不起作用,请尝试将您的点击发送到HTTP Get。你可以把它放在浏览器中,它会告诉你点击本身是否有问题。@DaImTo-我们没有设置任何过滤器。没有收到您以前的注释以确保该值很长