跳转到主要内容

概述

OneSignal + Amazon Athena 集成可以自动将您的 Athena 数据湖中的自定义事件直接同步到 OneSignal 的自定义事件 API。这使您可以基于存储在 AWS 数据基础设施中的真实用户行为触发自动化旅程和个性化消息活动。 您可以同步购买、产品浏览、订阅变更或任何自定义用户操作等事件,自动触发入门序列、重新参与活动、交易消息以及跨推送通知、电子邮件、应用内消息和短信的定向促销。

要求

  • 访问自定义事件(目前处于测试阶段)
  • 升级账户计划(免费应用不可用)。

Amazon Athena 要求

  • 具有 Athena 访问权限的 AWS 账户
  • 已配置的 Athena 工作组(默认值:“primary”)
  • 用于 Athena 查询输出的 S3 查询结果存储桶
  • Athena、S3 和 AWS Glue 访问的 IAM 权限
  • 存储在 S3 中并在 AWS Glue 中编目的事件数据

设置

配置 AWS 权限

OneSignal 需要特定权限才能通过 Athena 查询您的事件数据。请使用以下权限创建 IAM 策略:
1

创建 IAM 策略

创建包含这些权限的 IAM 策略:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "athena:StartQueryExecution",
                "athena:GetQueryExecution",
                "athena:GetQueryResultsStream",
                "athena:GetQueryResults",
                "athena:CreatePreparedStatement",
                "athena:DeletePreparedStatement",
                "glue:GetTable",
                "glue:GetTables",
                "glue:GetDatabase",
                "glue:GetDatabases",
                "s3:PutObject",
                "s3:GetObject",
                "s3:ListBucket",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:glue:<region>:<aws-account-id>:table/<database>/*",
                "arn:aws:glue:<region>:<aws-account-id>:database/<database>",
                "arn:aws:glue:<region>:<aws-account-id>:catalog",
                "arn:aws:athena:<region>:<aws-account-id>:workgroup/<workgroup>",
                "arn:aws:s3:::<query-results-bucket>",
                "arn:aws:s3:::<query-results-bucket>/*",
                "arn:aws:s3:::<event-data-bucket>",
                "arn:aws:s3:::<event-data-bucket>/*"
            ]
        }
    ]
}
将占位符替换为您实际的 AWS 区域、账户 ID、数据库名称、工作组和存储桶名称。
2

创建 IAM 用户或角色

为 OneSignal 创建一个 IAM 用户并附加上面创建的策略,或准备使用基于角色的访问。
3

记录连接详细信息

收集以下信息:
  • AWS 访问密钥 ID秘密访问密钥(如果使用 IAM 用户)
  • S3 查询结果存储桶 URL
  • AWS 区域
  • Athena 工作组(默认值:“primary”)

配置 OneSignal Athena 连接

1

导航到集成

在 OneSignal 中,前往 数据 > 集成,然后点击 添加集成
2

选择 Amazon Athena

从可用集成列表中选择 Amazon Athena
3

输入连接详细信息

提供您的 Athena 连接信息:
  • AWS 访问密钥 ID:您的 IAM 用户访问密钥
  • AWS 秘密访问密钥:您的 IAM 用户秘密密钥
  • AWS 区域:您的 Athena 区域
  • S3 查询结果存储桶:查询输出的 URL
  • Athena 工作组:您的工作组名称
4

测试连接

点击测试连接以验证 OneSignal 可以访问您的 Athena 实例并执行查询。

替代方案:基于角色的访问

为了增强安全性,您可以使用 IAM 角色代替访问密钥:
1

启用基于角色的访问

在 Athena 连接设置中,勾选使用角色并将访问密钥留空。
2

创建 IAM 角色

在 AWS 控制台中,创建一个具有以下设置的 IAM 角色:
  • 可信实体:其他 AWS 账户
  • 账户 ID341876425553(OneSignal 的 AWS 账户)
  • 外部 ID:OneSignal 中显示的 ID(在初次连接尝试后显示)
  • 权限:上面创建的 IAM 策略
3

完成连接

在 OneSignal 中输入角色 ARN 并测试连接。

事件数据映射

连接后,您需要将 Athena 表映射到 OneSignal 自定义事件字段:
1

选择事件表

选择包含要同步到 OneSignal 的事件数据的表或视图。
2

映射必需的事件字段

映射自定义事件的必需字段:
  • 事件名称:包含事件类型的列(例如 “purchase”、“signup”)
  • 用户标识符:外部用户 ID、电子邮件或电话号码列
  • 事件时间戳:事件发生的时间(可选)
3

映射事件载荷数据

将其他列映射到事件载荷属性:
  • 自定义事件属性(product_id、价格、类别等)
  • 上下文数据(来源、活动等)
  • 行为指标(价值、数量等)
4

配置同步设置

设置事件处理频率和交付偏好。

事件数据映射

将您的 映射到 OneSignal 的自定义事件格式:
OneSignal 字段描述必需
nameevent_name事件标识符
external_iduser_id用户标识符
timestampevent_timestamp事件发生时间
propertiesevent_data

限制

  • 查询性能:Athena 按查询和扫描数据计费 - 请优化您的事件表
  • S3 依赖性:需要正确配置的 S3 存储桶和 Glue 目录
  • 数据新鲜度:事件同步频率取决于您的 S3 数据更新频率

常见问题

如果我的 Athena 查询失败会怎样?

OneSignal 将记录查询错误并重试失败的查询。如果遇到持续性失败,请检查您的 IAM 权限和 S3 存储桶访问权限。

OneSignal 同步事件的频率

OneSignal 根据您配置的同步频率检查新事件,最小间隔为 15 分钟。

需要帮助?

请通过 support@onesignal.com 联系我们的支持团队,或使用应用内聊天获取 Athena 集成设置方面的帮助。
I