使用谷歌分析跟踪 ASP.NET Web API

Posted

技术标签:

【中文标题】使用谷歌分析跟踪 ASP.NET Web API【英文标题】:Tracking ASP.NET Web API with google analytics 【发布时间】:2014-01-28 05:51:58 【问题描述】:

我正在为我的网站开发一个 API,用户可以访问和使用自己的网站/应用程序。

我想保留我允许的不同 API 调用的使用情况统计信息,并想像我在我的网站上一样使用 Google Analytics。是否可以在服务器端代码上使用 Google Analytics 进行跟踪?或者特别是 web api?

谢谢

【问题讨论】:

【参考方案1】:

Google 分析已从服务器端向mobile code to track 提供统计信息。您可以使用该代码来归档您的目标。

这实际上是用你给他的信息从服务器端向谷歌发出网络请求。调用 gif 图像,url 参数为:

string utmGifLocation = "http://www.google-analytics.com/__utm.gif";

string utmUrl = utmGifLocation + "?" +
    "utmwv="   + Version +
    "&utmn="   + RandomNumber +
    "&utmhn="  + HttpUtility.UrlEncode(domainName) +
    "&utmr="   + HttpUtility.UrlEncode(documentReferer) +
    "&utmp="   + HttpUtility.UrlEncode(documentPath) +
    "&utmac="  + account +
    "&utmcc=__utma%3D999.999.999.999.999.1%3B" +
    "&utmvid=" + visitorId +
    "&utmip="  + GlobalContext.Request.ServerVariables["REMOTE_ADDR"];

SendRequestToGoogleAnalytics(utmUrl);

请求是这样的:

private void SendRequestToGoogleAnalytics(string utmUrl)

    try
    
        WebRequest connection = WebRequest.Create(utmUrl);

        ((HttpWebRequest)connection).UserAgent = GlobalContext.Request.UserAgent;
        connection.Headers.Add("Accepts-Language",
            GlobalContext.Request.Headers.Get("Accepts-Language"));

        using (WebResponse resp = connection.GetResponse())
        
            // Ignore response
        
    
    catch (Exception ex)
    
        if (GlobalContext.Request.QueryString.Get("utmdebug") != null)
        
            throw new Exception("Error contacting Google Analytics", ex);
        
    

您可以从 google 网站获取完整示例,只需对原始代码进行少量更改,即可使其适合您。

https://developers.google.com/analytics/devguides/collection/?csw=1

这是一个普遍的想法,您还有一些工作要做,但您需要的所有代码都在该文件中:http://dl.google.com/gaformobileapps/googleanalyticsformobile.zip

【讨论】:

您的答案中提供的链接现在指向不推荐使用的方法。相反,谷歌建议使用他们的 Measurement Protocol API,它基本上是一个带有一些参数的 HTTP POST 请求。 developers.google.com/analytics/devguides/collection/protocol/…【参考方案2】:

您可以使用 Google Analytics Tracker NuGet 包。链接在这里.. https://github.com/maartenba/GoogleAnalyticsTracker

【讨论】:

以上是关于使用谷歌分析跟踪 ASP.NET Web API的主要内容,如果未能解决你的问题,请参考以下文章

html 谷歌reCAPTCHA ASP.NET C#,ASP.NET Web API

启用 ASP.NET 模拟时,异常堆栈跟踪中缺少行号

ASP.NET - 部署问题 - 通过 Web.Config 启用堆栈跟踪/跟踪侦听器日志以查找内部服务器 500 错误的原因

asp.net求助

谷歌分析事件跟踪作为客户端错误日志[关闭]

尝试使用 Google.Apis.Gmail 从 asp.net core web api 应用程序从谷歌工作区发送电子邮件时出错