集成 Google Analytics(分析)

借助 Google Analytics(分析)平台,您可以衡量用户在各种设备和环境中与您的业务互动的情况。Google Analytics(分析)提供用于收集、存储、处理和报告这些用户互动数据的资源。

您可以在客户端和服务器端收集分析数据。

客户端分析数据收集

借助 Google Analytics API 和 SDK,您可以分析用户与您的内容与营销活动的互动情况。您可以在 Google Analytics(分析)用户界面中查看用户互动数据或使用 Reporting API 提取这些数据。如需详细了解客户端分析数据收集功能,请根据您的客户端类型点击以下链接:

  • Web 跟踪 (analytics.js) - 衡量用户与网站或 Web 应用的互动情况。
  • Android - 衡量用户与 Android 应用的互动情况。
  • iOS - 衡量用户与 iOS 应用的互动情况。
  • Measurement Protocol - 利用此低层级协议衡量任何环境中的用户互动情况。

服务器端分析数据收集

虽然 App Engine 提供了用于记录应用事件的机制,但您仍然可以选择使用 Google Analytics(分析)跟踪特定的服务器端事件,以便您能够进行如下操作:

  • 分析历史数据 - 使用 App Engine 时,您只能配置日志文件的最长保留天数或者最大大小,超过该限制的日志文件将无法再查看。如果选择在 Google Analytics(分析)中跟踪事件,那么数据保留期会长得多,让您能查看很早之前的事件数据。
  • 跟踪关键事件 - 应用的各种组件都可以向日志文件写入数据,因而可能导致日志文件过于冗杂。借助事件跟踪,您可以精确定位关键事件,并跟踪这些事件和某些元数据。
  • 利用用户界面 - 利用 Google Analytics(分析)功能丰富的用户界面,您可以直观呈现、报告和导出这些服务器端事件。

如需启用服务器端分析数据收集功能,您可以使用 HTTP 客户端并通过 Google Analytics Measurement Protocol 发出 HTTP 请求。如需了解详情,请参阅 Google Analytics(分析)开发者指南中的事件跟踪部分。

示例应用

以下示例应用显示了如何跟踪 App Engine 应用中的事件。该应用发出 HTTP 请求并将事件的相关数据发布到 Google Analytics(分析)。

在 App Engine 上使用 Google Analytics Measurement Protocol 之前,请按照以下步骤操作:

  1. 创建 Universal Analytics 媒体资源并获取跟踪 ID

  2. 将环境变量与跟踪 ID 一起添加到 appsettings.json 中,如以下示例应用所示:

    {
      "GaTrackingId": "your-google-analytics-tracking-id"
    }
    

    Replace `your-google-analytics-tracking-id` with the tracking ID you
    obtained from Google Analytics.
    
    • 若要在本地运行示例应用,请执行以下操作:

    Visual Studio

    1. 使用 Visual Studio 打开 dotnet-docs-samples\appengine\flexible\AppEngineFlex.sln

    2. F5

    命令行

    1. dotnet-docs-samples\appengine\flexible\Analytics 目录运行以下命令:

      dotnet restore
      dotnet run
      
    2. 在网络浏览器中输入以下地址:

      http://localhost:5000/
      
    3. 在终端窗口中,按 Ctrl+C 退出网络服务器。

  3. 将以下代码集成到 App Engine 应用中,以便将事件跟踪数据发布到 Google Analytics(分析):

    HttpClient http = new HttpClient()
    {
        BaseAddress = new Uri("http://www.google-analytics.com/")
    };
    var content = new FormUrlEncodedContent(
        new Dictionary<string, string>() {
            { "v" , "1" },  // API Version.
            { "tid" , Configuration["GaTrackingId"] },  // Tracking ID / Property ID.
            // Anonymous Client Identifier. Ideally, this should be a UUID that
            // is associated with particular user, device, or browser instance.
            { "cid" , "555" },
            { "t" , "event" },  // Event hit type.
            { "ec" , "Poker" },  // Event category.
            { "ea" , "Royal Flush" },  // Event action.
            { "el" , "Hearts" },  // Event label.
            { "ev" , "0" },  // Event value, must be an integer
        });
    var post = http.PostAsync("collect", content);
    

如果您在 Google Analytics(分析)管理控制台中启用了此设置,以排除来自“蜘蛛”程序和机器人程序的流量,或者您使用的是 Google Analytics(分析)4(它会自动过滤此流量),则可能看不到来自 App Engine 客户端的 Analytics(分析)结果。这些场景会过滤掉默认的 App Engine 用户代理。如需查看 App Engine 结果,请在跟踪数据中添加 ua 参数并将其设置为自定义值。