从C#开始关闭Google Analytics不起作用

时间:2015-12-04 14:49:13

标签: c# google-analytics

我在C#中有以下代码,但我没有看到Fiddler2上有任何问题?我在这里和一般情况下看了很多问题,尽管似乎有不同的方法。我需要我的MVC控制器在将跟踪启动到Google Analytics后将用户重定向到第三方页面。

C#代码

var rnd = new Random();
var statsRequest = string.Format("http://www.google-analytics.com/__utm.gif?utmwv=4.6.5&utmn={0}&utmcs=-&utmsc=-&utmul={1}&utmje=-&utmfl=-&utmdt=&utmhid=&utmr=0&utmp=&utmac={2}&utmcc=__utma%3D", 
    rnd.Next(100000000, 999999999), 
    languageCode, 
    accountId);

using (var client = new WebClient())
{
    client.DownloadData(statsRequest);
}

有人可以帮忙吗?如果我在单元测试中运行此代码(即我在Fiddler2中看到statsRequest),但在我点击网页时却没有。我有什么不对的吗?

上面的代码包含在控制器操作调用的方法中

C#MVC控制器

public class MyController  ...
{
    public ActionResult Test()
    {
        SendGoogleTrackingCode();
        Response.Redirect(externalUrl);
    }
}

非常感谢,

1 个答案:

答案 0 :(得分:0)

在重定向之前,可能正在运行的代码没有等待GA请求发送它。 尝试添加一些异常处理程序来检查引发的问题类型。

但是,您的GA点击数据有点过时了。

GA命中数据应使用Measurement Protocol构建。 看看这里的官方文档: https://developers.google.com/analytics/devguides/collection/protocol/v1/devguide

您可以尝试使用Hit Builder在以下位置构建自定义匹配: https://ga-dev-tools.appspot.com/hit-builder/

您还可以使用调试器参数检查命中是否有效: https://developers.google.com/analytics/devguides/collection/protocol/v1/validating-hits

除此之外,要从C#中解雇它,还有几种方法。首先,看一下这个例子:

using (var wb = new WebClient())
{
    var data = new NameValueCollection();
    data["v"] = "1";
    data["tid"] = "UA-XXXXXXXX-1"; 
    data["cid"] = Guid.NewGuid().ToString();
    data["t"] = "event";
    data["ec"] = "myCategory";
    data["ea"] = "myAction";
    var url = @"https://ssl.google-analytics.com/collect";
    var response = wb.UploadValues(url, data);
    var stringResponse = System.Text.Encoding.UTF8.GetString(response);
}

另外,我发现了一个有用的包装器: https://gist.github.com/0liver/11229128

我希望它有所帮助!