从C#中启动Google Analytics是行不通的

本文关键字:行不通 Analytics Google 启动 | 更新日期: 2023-09-27 18:25:50

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

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);
    }
}

非常感谢,

从C#中启动Google Analytics是行不通的

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

但是,你的GA命中率数据有点过时了。

GA命中数据应使用测量协议构建。请查看此处的官方文档:https://developers.google.com/analytics/devguides/collection/protocol/v1/devguide

您可以尝试使用命中生成器在以下位置构建自定义命中: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

我希望它能有所帮助!