集成 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 一起添加到 app.yaml 中,如以下示例应用所示:

    env_variables:
      GA_TRACKING_ID: "YOUR-GA-TRACKING-ID"
  3. 在本地运行示例应用之前,请设置应用所需的环境变量:

    export GA_TRACKING_ID=YOUR_TRACKING_ID
    composer install
    
  4. 使用命令行在本地运行示例代码。例如:

    php -S localhost:8000
    

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

    $baseUri = 'http://www.google-analytics.com/';
    $client = new GuzzleHttp\Client(['base_uri' => $baseUri]);
    $formData = [
        'v' => '1',  # API Version.
        'tid' => $trackingId,  # 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
    ];
    $gaResponse = $client->request('POST', 'collect', ['form_params' => $formData]);

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