# Google Analytics 集成

<Aside type="caution" icon="setting" title="需要开发者协助">
 您需要开发团队的帮助来设置此集成。请与他们分享本指南。
</Aside>

Google Analytics [User ID](https://support.google.com/analytics/answer/3123662?authuser=1) 功能允许您通过将多个数据资源连接到同一用户来收集和应用全面的用户数据。
将 Pushwoosh 与 Google Analytics 连接，并使用 GA 数据进行受众细分和定位您的推送通知活动。让我们看看它是如何工作的。

## 启用 User ID

要在您的 [Google Analytics 帐户](https://analytics.google.com/analytics/web/provision/#/provision) 中启用 User ID 功能，请遵循 Google 指南：[https://support.google.com/analytics/answer/3123666](https://support.google.com/analytics/answer/3123666)

<Aside type="note">
不要忘记创建 User ID 报告视图（如 GA 启用 User ID 指南的_第 3 步_所述）。
</Aside>

## 在您的跟踪代码中设置 User ID

<Aside type="note">
 我们与 Google Tag Manager 兼容

我们鼓励使用 Google Tag Manager (GTM) 来集成 Pushwoosh SDK。以下代码基于 GTM，但可以轻松修改为在页面上作为简单的 Javascript 运行。
</Aside>

## 集成 Pushwoosh Web SDK

要在您的 Google Tag Manager 中集成 Pushwoosh SDK，请遵循 [Web Push SDK 指南](/zh/developer/pushwoosh-sdk/web-push-notifications/web-push-sdk-30#installing-from-google-tag-manager)。

## 在 GTM 中创建 User ID 标签

创建一个在 **所有页面** 触发器上触发的 **自定义 HTML 标签**。
使用以下代码设置 User ID，以匹配 Pushwoosh 和 Google Analytics 之间的用户数据。

在下面的示例中，我们使用 Pushwoosh Hardware ID (HWID) 来设置 User ID。您可以使用不同的标识符，但请注意不要将电子邮件地址或任何其他个人身份信息 (PII) 放入 User ID，因为这不符合 [Google Analytics 隐私政策](https://policies.google.com/privacy)。

```javascript title="JavaScript"
<script>
  var registrationStatus = localStorage.deviceRegistrationStatus;
  var registrationId = localStorage.deviceRegistrationId;
  var gaRegistered = registrationStatus === 'registered' ? registrationId : false;

  if (!gaRegistered) {
    var Pushwoosh = Pushwoosh || [];
    Pushwoosh.push(['onPermissionGranted', function(api) {
      api.getParams()
        .then(function(params) {
          var hwid = params.hwid;
          ga('set', 'userId', hwid);
          ga('send', 'pageview');
          localStorage.setItem('deviceRegistrationId', hwid);
          api.registerUser(hwid);
        })
    }])
};
</script>
```

<img src="/integrations-google-analytics-integration-1.webp" alt="在 Google Tag Manager 中用于设置 User ID 的自定义 HTML 标签"/>

## 将 User ID 添加到页面浏览标签

修改您的 **页面浏览标签**，以在用户已知的情况下包含 User ID：

```javascript title="JavaScript"
<script>
  var hwid = localStorage.deviceRegistrationId;
  var registrationStatus = localStorage.deviceRegistrationStatus;
  var isNeedToTrackUser = hwid && registrationStatus === "registered";

  if (isNeedToTrackUser) {
    ga('set', 'userId', hwid);
  };
  ga('send', 'pageview');
</script>
```

<img src="/integrations-google-analytics-integration-2.webp" alt="带有 User ID 的页面浏览标签配置"/>

## 使用 User ID 覆盖率报告进行测试

要测试集成，请使用“User ID 覆盖率报告”：
[https://support.google.com/analytics/answer/3123670](https://support.google.com/analytics/answer/3123670)

<Aside type="note">
请注意，GA 处理数据大约需要一天时间。
</Aside>

## User Explorer

在 Google Analytics 中选择您的 User ID 报告视图。在那里添加任何细分以对您的受众进行切片和切块分析。

<img src="/integrations-google-analytics-integration-3.webp" alt="用于将受众划分为细分的新细分按钮"/>

您可以在“User ID”列中看到显示的 User ID。使用 **导出** 按钮并选择 CSV 选项以下载 User ID 列表。

<img src="/integrations-google-analytics-integration-4.webp" alt="显示用户标识符的 User ID 列"/>

## 向 GA User ID 发送推送通知

要向您的 GA 受众中的用户发送推送，请使用 [一次性推送](/zh/product/messaging-channels/push-notifications/send-push-notifications/one-time-push/)，并在 **受众** 步骤中选择 **导入细分**。上传您从 Google Analytics 导出的 CSV 文件，并将包含 User ID 的列映射到 User ID 字段。 [了解更多](/zh/product/audience-data-and-segmentation/segmentation/create-segments/by-import/#how-to-import-a-segment)