我在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);
}
}
非常感谢,
答案 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
我希望它有所帮助!