营销同意 Webhook
Aghanim 的营销同意 webhooks 会在玩家的营销同意发生变化时通知你的游戏,使你能够保持营销列表同步。
Webhook 事件
使用这些 webhook 事件来管理你的营销列表。
| 事件 | 触发时机 | 您应该做什么 |
|---|---|---|
player.marketing_consent.updated | 玩家的营销同意状态发生变化 | 相应地更新你的营销列表 |
要求
如需使用来自 Aghanim 的营销同意 Webhook,您应按如下方式配置 Webhook 服务器:
- HTTPS 端点,可接收 POST Webhook 请求。
- 监听由 Aghanim 生成并签名的事件。
- 实现幂等性机制,利用请求中的
idempotency_key确保即使收到重复事件通知也只处理一次。 - 如果事件已成功处理,则响应 2xx 状态码;如有错误,则用 4xx 或 5xx 状态码。
配置步骤
- 为营销同意 Webhook 处理开发一个函数。
- 部署您的端点使其可访问。
- 在 Aghanim 账户中选择您要处理的营销同意事件类型以注册您的端点 → 游戏 → Webhooks → 新 Webhook。
或者,您也可以使用 Create Webhook API 方法在 Aghanim 中注册您的端点。
Request schema
下面是一个 player.marketing_consent.updated Webhook 请求示例:
- HTTP
- cURL
POST /your/webhook/uri HTTP/1.1
Content-Type: application/json
Host: your-webhook-endpoint.com
User-Agent: Aghanim/0.1.0
X-Aghanim-Signature: 2e45ed4dede5e09506717490655d2f78e96d4261040ef48cc623a780bda38812
X-Aghanim-Signature-Timestamp: 1725548450
{
"event_type": "player.marketing_consent.updated",
"event_data": {
"player_id": "2D2R-OP3C",
"email": {
"address": "[email protected]",
"granted_at": 1704067200,
"revoked_at": null
}
},
"event_time": 1725548450,
"event_id": "whevt_eCacGbJVbvToOgzjXUgOCitkQE",
"idempotency_key": null,
"request_id": "d1593e9c-c291-4004-8846-6679c2e5810b",
"sandbox": false,
"trigger": "hub.purchase",
"transaction_id": "whtx_eCacGbJVbvT",
"context": null,
"game_id": "gm_exTAyxPsVwh"
}
curl "https://your-webhook-endpoint.com/your/webhook/uri" \
-X POST \
-H "Content-Type: application/json" \
-H "User-Agent: Aghanim/0.1.0" \
-H "X-Aghanim-Signature: 2e45ed4dede5e09506717490655d2f78e96d4261040ef48cc623a780bda38812" \
-H "X-Aghanim-Signature-Timestamp: 1725548450" \
-d '{
"event_type": "player.marketing_consent.updated",
"event_data": {
"player_id": "2D2R-OP3C",
"email": {
"address": "[email protected]",
"granted_at": 1704067200,
"revoked_at": null
}
},
"event_time": 1725548450,
"event_id": "whevt_eCacGbJVbvToOgzjXUgOCitkQE",
"idempotency_key": null,
"request_id": "d1593e9c-c291-4004-8846-6679c2e5810b",
"sandbox": false,
"trigger": "hub.purchase",
"transaction_id": "whtx_eCacGbJVbvT",
"context": null,
"game_id": "gm_exTAyxPsVwh"
}'
事件 Schema
| 键名 | 类型 | 描述 |
|---|---|---|
event_id | string | 阿哈利姆生成的唯一事件标识符。 |
game_id | string | 您的游戏在阿哈利姆中的唯一标识符。 |
event_type | string | 事件的类型, player.marketing_consent.updated 在此情境下。 |
event_time | number | 以 Unix 时间戳表示的事件发生日期。 |
event_data | EventData | 包含事件特定数据的字段,其中可能包含用于继承对象的各种键值。 |
idempotency_key | string|null | 即使出现重试情况,也能确保 Webhook 操作只执行一次。 可以是 null 具体取决于事件类型。 |
request_id | string|null | 如果事件是通过 API 请求触发的,此字段将包含对应的请求 ID。 |
sandbox | boolean | 标识事件是否来自沙盒测试环境的指示器。 |
trigger | string|null | The trigger that caused the event to be sent. |
transaction_id | string | 阿哈利姆生成的交易标识符。在同一交易过程中触发的多个事件可能共享相同的交易 ID。 |
context | object|null | 事件的相关上下文信息。 |
EventData Schema
| 键名 | Type | 描述 |
|---|---|---|
player_id | string | 用于玩家身份验证的唯一 玩家 ID。 |
邮箱地址 | `EmailChannel\ | null` |
EmailChannel Schema
| 键名 | Type | 描述 |
|---|---|---|
address | string | 玩家的邮箱地址 |
granted_at | 数字 | 授予同意时的 Unix 时间戳。 |
revoked_at | `数字\ | null` |
Trigger 值
| Value | 描述 |
|---|---|
hub.purchase | 当玩家在 Checkout 期间选择加入营销时。 |
s2s.player.marketing_consent.grant | 当通过 Grant Email Marketing Consent S2S API 授予同意时。 |
s2s.player.marketing_consent.revoke | 当通过 Revoke Email Marketing Consent S2S API 撤销同意时。 |
dashboard.player.marketing_consent.revoke | 当通过 Aghanim Dashboard 撤销同意时。 |
test | 在 Dashboard 中使用"Send test event"时。 |
需要技术支持?
联系我们的集成技术团队: [email protected]