- 消息事件 → Amplitude:跟踪所有渠道的交付、点击、失败等。
- 自定义事件 → OneSignal:将 Amplitude 事件发送到 OneSignal 以触发旅程或细分。
- 群体 → OneSignal:将基于行为的 Amplitude 群体同步为 OneSignal 中的定向筛选器。
要求
- Amplitude 账户
- OneSignal 付费套餐
- 已设置 用户 和外部 ID 的 OneSignal 应用。
设置
将 Amplitude 添加到 OneSignal(出站)
将 OneSignal 消息事件发送到您的 Amplitude 项目中。- 在 OneSignal 中,导航到数据 > 集成 > 目录并选择 Amplitude。
- 点击设置,然后打开出站选项卡。
- 输入您的 Amplitude API 令牌,选择要发送的消息事件,然后点击保存。
在 Amplitude 中
- 找到您项目的 API 密钥,然后复制粘贴到 OneSignal 中。
- 如果使用 Amplitude 的欧盟服务器,请勾选仅向 Amplitude 的欧盟居留端点发送事件。您可以通过 Amplitude URL 验证这一点。如果您看到
eu.amplitude.com,则您正在使用 Amplitude 的欧盟服务器。
将 OneSignal 添加到 Amplitude(入站)
在您的 Amplitude 目标中,搜索 OneSignal。
- 群体:从 Amplitude 向 OneSignal 同步群体。
- 事件用户属性:从 Amplitude 向 OneSignal 发送自定义事件。
如果您计划同时使用群体同步和自定义事件,请添加两个 OneSignal 目标。每个目标在 Amplitude 中单独配置,因此您需要为每个目标输入 OneSignal 凭据。
用户 ID 映射
OneSignal 中的**外部 ID** 必须与您选择的 Amplitude 用户属性(例如user_id)匹配。验证此属性在两个系统中均已填充——群体同步和事件跟踪依赖于精确匹配。
附加属性
您可以包含额外属性,这些属性将附加到 OneSignal 中的自定义事件。这对于条件事件处理非常有用。完成后点击保存。现在您应该能够将群体和自定义事件从 Amplitude 导出到 OneSignal,并从 OneSignal 收集消息事件到 Amplitude。
测试自定义事件
- 在 Amplitude > OneSignal 事件目标中,点击”测试连接”按钮。

- 确保负载中的
"user_id"设置为 OneSignal 应用中现有用户的外部 ID。 - 点击发送测试事件按钮。
- 响应框应保持为空,您应该看到
"OneSignal 已成功接收测试事件。"

- 在 OneSignal 中,导航到数据 > 自定义事件,验证测试事件出现在列表中。

将 Amplitude 群体导出到 OneSignal
使用上面配置的匹配外部 ID 将 Amplitude 群体同步到 OneSignal。导出不会创建用户——每个用户必须已在 OneSignal 中存在。- 在 Amplitude 中,创建一个群体。请参阅 Amplitude 的群体文档。
- 点击同步并选择 OneSignal 作为目标。
- 选择同步频率。

OneSignal 细分创建
同步的群体在 OneSignal 中显示为 Amplitude 细分筛选器。如果满足以下条件,OneSignal 将自动为该群体创建细分:- Amplitude 群体中的用户在 OneSignal 中也存在并具有匹配的外部 ID。
- 您未超过 OneSignal 中的细分限制。

在 Amplitude 中跟踪消息事件
OneSignal 实时向 Amplitude 发送以下消息事件。在数据 > 集成 > Amplitude > 出站中选择要发送的事件。| Message Event Kind (OneSignal) | Message Event Name (Amplitude) | Event Description |
|---|---|---|
| Push Sent | [OneSignal] Push Sent | 推送通知成功发送。 |
| Push Received | [OneSignal] Push Confirmed delivery | 推送通知成功接收 |
| Push Clicked | [OneSignal] Push Clicked | 推送通知在设备上被触摸 |
| Push Failed | [OneSignal] Push Failed | 推送发送失败。请检查 OneSignal 中的失败消息报告。 |
| Push Unsubscribed | [OneSignal] Push Unsubscribed | 订阅 取消了推送订阅。 |
| In-App Impression | [OneSignal] IAM Displayed | 应用内消息成功在设备上显示 |
| In-App Clicked | [OneSignal] IAM Clicked | 应用内消息在设备上被点击 |
| In-App Page Displayed | [OneSignal] IAM Page Displayed | 应用内消息页面已显示 |
| Email Sent | [Onesignal] Email Delivered | 电子邮件成功发送 |
| Email Received | [OneSignal] Email Confirmed delivery | 收件人收到电子邮件 |
| Email Opened | [OneSignal] Email Opened | 收件人打开电子邮件 |
| Email Link Clicked | [OneSignal] Email Clicked | 电子邮件链接被点击 |
| Email Unsubscribed | [OneSignal] Email Unsubscribed | 收件人取消订阅电子邮件 |
| Email Reported As Spam | [OneSignal] Email Reported As SPAM | 收件人将电子邮件报告为垃圾邮件 |
| Email Bounced | [OneSignal] Email Hard Bounced | 由于永久错误,电子邮件退回给发件人 |
| Email Failed | [OneSignal] Email Failed delivery | 无法将电子邮件送达到收件人的收件箱 |
| Email Suppressed | [OneSignal] Email Not delivering to suppressed email address | 电子邮件未送达,因为收件人已屏蔽发送该邮件的邮箱地址 |
| SMS Sent | [OneSignal] SMS Sent | 短信发送给收件人 |
| SMS Failed | [OneSignal] SMS Failed delivery | 短信发送失败 |
| SMS Delivered | [OneSignal] SMS Confirmed deliveery | 短信成功送达 |
| SMS Undelivered | [OneSignal] SMS Undelivered | 无法发送短信。 |
事件属性
从 OneSignal 发送到 Amplitude 的每个事件都包含以下属性:| PROPERTY NAME | DESCRIPTION |
|---|---|
| Distinct ID | The external_id associated with the message |
| Message ID | 单个消息的标识符 |
| Message Name | 消息名称 |
| Message Title | 消息标题 |
| Message Contents | 消息内容 |
| message_type | 发送的消息类型:推送、应用内、电子邮件、短信 |
| template_id | 使用的消息模板(API 和旅程消息) |
| subscription_id | OneSignal 设置的设备/电子邮件/短信标识符 |
| device_type | 接收消息的设备类型 |
| language | 设备的两字符语言代码 |
| source | onesignal (is indicated as the source for all events) |
常见问题
为什么我的群体和细分数量不匹配?
- 缺失或不匹配的外部 ID 只有具有匹配的 OneSignal 外部 ID 和 Amplitude 用户 ID 的用户才会被包括。此集成不会创建用户或订阅。
- 未订阅用户 OneSignal 细分只显示已订阅订阅的数量。未订阅的订阅可用于旅程或应用内消息。
- 在 OneSignal 中不存在或具有错误的外部 ID。
- 具有未订阅的订阅。
未订阅的用户会从 Amplitude 同步吗?
是的,但目前它们被排除在 OneSignal 细分数量之外。如果他们具有其他订阅或其订阅类型支持,您仍然可以通过旅程或应用内消息向他们发送消息。为什么交付数据不匹配?
单个用户可能具有多个订阅(推送设备、电子邮件地址、电话号码)。每个订阅都会生成自己的交付事件。例如:- 1 个用户 = 2 个 Android + 1 个 iOS + 2 个 Web = 5 个推送订阅
- 1 条推送消息 = 最多 5 个发送/接收/点击事件
subscription_id 来追踪确切的来源。
要排除缺失事件的故障:
- 确保在识别用户时调用
OneSignal.login来设置外部 ID。 - 验证
OneSignal.logout未删除外部 ID。 - 检查可能更改外部 ID 的 API 请求或 CSV 上传。
我们如何发送用户/订阅事件?
用户和订阅级别的事件(例如,授予权限、用户登录/注销)不会自动发送。 OneSignal SDK 具有事件监听器,可用于追踪这些事件以便您发送到 Amplitude:- 用户状态观察者:Mobile SDK、Web SDK
- 权限观察者:Mobile SDK、Web SDK
为什么 OneSignal 订阅 ID 作为 device_id 添加到 Amplitude?
Amplitude 期望使用device_id 进行去重。OneSignal 使用 subscription_id 来实现此功能,它会自动映射到 device_id。
有关更多信息,请参阅 Amplitude 的文档。
相关页面
分析概览
OneSignal 分析、交付指标和事件跟踪概览。
自定义事件
跟踪用户操作以触发旅程或支持分析。
Need help?Chat with our Support team or email
support@onesignal.comPlease include:- Details of the issue you’re experiencing and steps to reproduce if available
- Your OneSignal App ID
- The External ID or Subscription ID if applicable
- The URL to the message you tested in the OneSignal Dashboard if applicable
- Any relevant logs or error messages