> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Google Analytics for Firebase

> 如果 Google Analytics for Firebase 正确实施，OneSignal 将自动发送通知事件到您的分析仪表板。支持 iOS 和 Android。

[Google Analytics for Firebase](https://firebase.google.com/products/analytics) 是 Google Firebase 免费提供的事件跟踪工具。它允许您轻松跟踪应用程序内的事件，并稍后使用各种过滤器分析它们。

<Warning>
  此集成不支持向启动 URL 添加 UTM 参数。

  在网页上，GA 代码将基于浏览器中的 URL 捕获值。

  在移动端，您需要捕获这些值并传递给 GA。我们的通知打开事件处理器可用于获取通知负载。
</Warning>

## 事件

OneSignal SDK 跟踪与通知打开和接收事件相关的事件。发送以下事件：

| 事件名称                             | 详情                                                            |
| -------------------------------- | ------------------------------------------------------------- |
| `os_notification_opened`         | OneSignal 通知被打开                                               |
| `os_notification_received`       | 收到 OneSignal 通知。（**仅限 Android**）                              |
| `os_notification_influence_open` | 在收到 OneSignal 通知后 2 分钟内打开应用程序。（[iOS 需要额外设置](./ios-sdk-setup)） |

OneSignal SDK 还会发送包含有关事件归因的特定通知的更多信息的参数：

| 参数名称              | 参数值                                                                                                           | 详情                                |
| ----------------- | ------------------------------------------------------------------------------------------------------------- | --------------------------------- |
| `source`          | "OneSignal"                                                                                                   | 将此事件的来源归因于 OneSignal SDK          |
| `medium`          | "notification"                                                                                                | 正式表明该事件的媒介是通知                     |
| `notification_id` | 来自特定 OneSignal 通知的 `notification_id`                                                                          | 您可以将通知 ID 归因于仪表板上的特定"已发送"通知       |
| `campaign`        | 如果使用模板：`[template_name]-[template_id]` 如果不使用：`headings` [API 属性](/reference/push-notification)或通知标题的前 10 个字母。 | 活动是对相似通知进行分组的一种方式，例如使用相同模板或标题的通知。 |

***

## 设置 OneSignal 事件与 Google Analytics for Firebase 的集成

### 设置 Firebase

遵循 [Firebase 集成文档](https://firebase.google.com/docs/android/setup)并验证 Firebase 在您的应用程序中正常运行。

### 在 OneSignal 中启用 Firebase

导航到 **数据 > 集成** 并启用 **"Firebase"**。

这将开始向 Firebase 发送事件数据。如果您希望在 iOS 上跟踪影响打开，由于 Firebase 的限制，您需要进行一些[额外设置](./ios-sdk-setup)。

<Frame caption="在 OneSignal 中启用 Firebase">
  <img src="https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/integrations/Integrations.png?fit=max&auto=format&n=yt4lRKoquAlWvRvF&q=85&s=61a02b7a3829ff83ed2f1013c186b3e4" data-path="images/integrations/Integrations.png" />
</Frame>

### 验证 OneSignal 事件

<Steps>
  <Step title="检查应用日志">
    验证 Firebase 正在尝试发送与 OneSignal 通知相关的事件

    检查您应用程序的 LogCat 日志，查找 Google Analytics for Firebase 条目，这些条目表明正在发送与 OneSignal 对应的事件。查找 `os_notification_opened`、`os_notification_received` 或 `os_notification_influence_open`

    <Frame caption="LogCat 中的 Firebase 事件">
      <img src="https://mintcdn.com/onesignal/6v_cVPknFpo5qSVB/images/docs/0dc5c63-firebase_analytics_3.png?fit=max&auto=format&n=6v_cVPknFpo5qSVB&q=85&s=0d20d440318aed8908313e89084d3bb9" width="1560" height="42" data-path="images/docs/0dc5c63-firebase_analytics_3.png" />
    </Frame>
  </Step>

  <Step title="转到 Firebase 控制台">
    转到您项目的 [Firebase 控制台](https://console.firebase.google.com/)

    <Frame caption="Firebase 控制台">
      <img src="https://mintcdn.com/onesignal/MUgio66t0sYhGEvj/images/docs/646c537-firebase_analytics_1.png?fit=max&auto=format&n=MUgio66t0sYhGEvj&q=85&s=2637f7f9b40c23e5d69f0ab0510a127e" width="2878" height="1078" data-path="images/docs/646c537-firebase_analytics_1.png" />
    </Frame>
  </Step>

  <Step title="遵循 DebugView 设置指南">
    遵循 [DebugView 设置指南](https://firebase.google.com/docs/analytics/debugview)

    DebugView 允许 ADB 在处于 `debug` 模式时向您的项目发送 Firebase 事件。这里是关于 iOS 的优秀视频：[https://youtu.be/kpkW78OSbiw?t=289](https://youtu.be/kpkW78OSbiw?t=289)

    调试日志示例

    ```text Xcode logs example theme={null}
      2021-09-22 14:58:20.731918-0700 OneSignalDemo[33301:1350721] 7.0.0 - [Firebase/Analytics][I-ACS023073] Debug mode is enabled. Marking event as debug and real-time. Event name, parameters: os_notification_opened, {
          campaign = Firebase t;
          ga_debug (_dbg) = 1;
          ga_event_origin (_o) = app;
          ga_realtime (_r) = 1;
          medium = notification;
          notification_id = 2ecdd9bf-b2c0-443e-b5b2-7983d453c746;
          source = OneSignal;
      }
      2021-09-22 14:58:20.749723-0700 OneSignalDemo[33301:1350721] 7.0.0 - [Firebase/Analytics][I-ACS023072] Event logged. Event name, event params: os_notification_opened, {
          campaign = Firebase t;
          ga_debug (_dbg) = 1;
          ga_event_origin (_o) = app;
          ga_realtime (_r) = 1;
          medium = notification;
          notification_id = 2ecdd9bf-b2c0-443e-b5b2-7983d453c746;
          source = OneSignal;
      }
    ```
  </Step>

  <Step title="检查 DebugView">
    当 OneSignal 事件传播时，它们将实时出现在 DebugView 中

    <Frame caption="DebugView">
      <img src="https://mintcdn.com/onesignal/_KaXe4GQkxsEfa17/images/docs/39a888e-Screen_Shot_2021-09-22_at_3.16.55_PM.png?fit=max&auto=format&n=_KaXe4GQkxsEfa17&q=85&s=3bebf24697b77a5cc2acb5b0a06aec87" width="3376" height="1756" data-path="images/docs/39a888e-Screen_Shot_2021-09-22_at_3.16.55_PM.png" />
    </Frame>
  </Step>
</Steps>

<Check>
  **您的应用程序已通过验证，可以通过 Google Analytics for Firebase 跟踪 OneSignal 通知事件！**
</Check>

***

## 常见问题

### 为什么点击和打开事件没有在 Firebase 中显示？

如果 Firebase 库没有及时初始化，Firebase 点击事件 `os_notification_opened` 和接收事件 `os_notification_received` 可能无法工作，因此 Firebase 库会丢弃该事件。更多详情请参见[此 GitHub 问题](https://github.com/OneSignal/OneSignal-Android-SDK/issues/949)。

<Note>
  链接您的 Firebase 数据库并按照我们的 [Firebase 设置教程](./google-analytics-for-firebase) 在 OneSignal 中使用 Firebase 云函数。
</Note>

***
