概要:使用Web服务器到服务器(Web-S2S)事件API报告未通过Web SDK报告的事件和转化到PBA。
适用于移动设备的服务器到服务器事件API
面向基于人群的归因的Web-S2S API补充了Web SDK,允许营销人员报告发生在其网站上的事件,但超出了Web SDK的范围。例如,网站的访客(网络用户)触发了一个在线支付事件,由后端系统处理。处理后,后端使用S2S API将事件报告给AppsFlyer。
通过S2S API发送的事件:
- 与Web SDK报告的事件记录方式相似
- 如果设置为转化事件,则包含在PBA仪表板中
- 用event_source field填充PBA原始数据,设置为web S2S
API使用说明
使用以下部分创建您的API调用。
| 不可以。 | 注意事项 | 说明 |
|---|---|---|
| 1 | 唯一用户ID | |
| 2 | 时间戳 |
|
| 3 | 收入和货币 | 即使它们包含在eventValue中,您也必须填充eventRevenueCurrency和eventRevenue。这样做是因为我们在仪表板中使用它们。 |
API基础信息
API实现需要在仪表板中可用的以下凭据:
- 包ID(即品牌包ID)
- (WEB_DEV_KEY)。
获取凭据:
- 从AppsFlyer后台的顶部菜单栏中选我的应用 > 查看品牌套件。
包的列表显示。 - 复制并记录适当的:
- 品牌套件 ID
- (WEB_DEV_KEY)。
Web S2S API基础知识
| 路径 |
|
| HTTP方法 | POST |
| 内容类型要求 |
application/json |
| JSON的payload限制 |
JSON有效负载大小:最大1KB |
| 拉取频次限制 |
POST限制量:每分钟60,000个POST请求。如需提高限额,请联系您的CSM。 |
| TLS |
|
setCuId方法
| 方法名称 |
setCuId |
| 使用场景 |
将CUID与您网站的访客关联时。例如,每当您将网络 |
| 方法路径 |
|
| Payload |
JSON有效负载由此处列出的参数组成。所有参数都是必需的。 |
Curl示例setCuId
curl --location --request POST 'https://webs2s.appsflyer.com/v1/bundleId/setcuid' \
--header 'Accept-Encoding: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
"customerUserId": "1234567890abcdef",
"afUserId":"9999999-f848-4963-a091-568f0bf9a361",
"webDevKey" : "99999999-9999-9999-9999-999999999999"}
事件类型
| 方法名称 |
event_ |
| 使用场景 | 发送 |
| 方法路径 |
|
| 详情 | 事件方法详细信息本节包含有效负载详细信息、Curl示例、Python示例和测试建议。 |
事件方法详细信息
Payload参数
有效负载参数分为用户标识符和事件参数。
- _user_id您必须至少发送一个用户ID参数。
- event_根据需要发送必需参数和可选参数。
用户标识符参数(至少发送一个参数)
| 用户ID参数 | 说明 |
|---|---|
|
customerUserId |
客户用户ID(CUID)是由您设置的唯一标识符。
|
|
afUserId |
Web SDK 为每个访问您网站的用户分配的唯一用户 ID。您需要将 cookie 值传递给您的后端服务器。
|
事件参数
| 参数名称 | 必须配置 | 说明 |
|---|---|---|
|
webDevKey |
是 |
使用仪表板上可用的 web dev key 填充。
|
| 事件类型 | 是 |
AppsFlyer 内部使用的事件属性标识符。始终设置为 EVENT.
|
| eventName | 是 |
|
| timestamp | 否 |
事件发生的时间(以毫秒为单位)。作为 Unix 时间戳 发送,具有 13 位数字。
|
| Event value | 否 |
描述事件的事件参数映射。用于发送富应用内事件,如商品SKU、单价。
|
| eventRevenueCurrency | 否 |
收入事件的货币代码,为三字符 ISO 4217 货币代码。
|
| 事件收入 | 否 |
分配给事件的收入(货币价值)。 请注意:如果收入在 eventValue, 中报告,也请在 eventRevenue 中报告,并填充 eventRevenueCurrency。
|
| 否 | 此参数已弃用,将在未来某个日期从系统中删除。请改用 eventValue。 | |
| 否 |
此参数已弃用,将在未来某个日期从系统中删除。请改用 eventValue。 |
|
| _referrer | 否 |
HTTP Referrer
|
| userAgent | 否 |
用户代理请求 由浏览器发送到服务器。
|
| ip | 否 |
用户 IP 地址
|
Curl示例
curl --location --request POST 'https://webs2s.appsflyer.com/v1/bundleId/event' \
--header 'Accept-Encoding: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
"customerUserId": "1234567890abcdef",
"afUserId":"9999999-f848-4963-a091-568f0bf9a361",
"webDevKey" : "99999999-9999-9999-9999-999999999999",
"ip" : "192.0.2.1",
"eventType":"EVENT",
"timestamp" : 1234567890123,
"eventName":"my_web_event",
"eventRevenueCurrency" : "EUR",
"eventRevenue" : 1234.56,
"eventValue": {
"purchase":{
"shoes": "color",
"quantity" : "3",
"Revenue" : "1234.56",
"Currency" : "ZAR"
}
}
}'
Python示例
''' using the requests python package, install using pip install requests '''
import requests
url = "https://webs2s.appsflyer.com/v1/bundleId/event"
payload = {
"customerUserId": "1234567890abcdef",
"afUserId": "9999999-f848-4963-a091-568f0bf9a361",
"webDevKey": "99999999-9999-9999-9999-999999999999",
"ip": "192.0.2.1",
"eventType": "EVENT",
"timestamp": 1234567890123,
"eventName": "my_web_event",
"eventRevenenuCurrency": "EUR",
"eventRevenue": 1234.56,
"eventValue":
{
"purchase":
{
"shoes": "color",
"quantity": "3",
"Revenue": "1234.56",
"Currency": "ZAR"
}
}
}
headers = {
'Accept-Encoding': 'application/json',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, json=payload)
print(response.text.encode('utf8'))
测试
出于测试目的,发送多个事件如下:
- 发送事件。
- 确保您获得200 OK返回代码。如果没有,请根据返回代码和错误消息采取纠正措施。
- 在协调世界时(UTC)午夜后等待几个小时,以查看PBA原始数据中报告的事件。您必须等待,因为PBA数据每天处理一次。
其他相关信息
提取Web SDK afUserID
-
afUserId是一个唯一标识符,由Web SDK在用户首次访问您的网站时设置。 - 如果您需要
afUserId,请使用以下方法之一。
从HTTP cookie头中获取afUserId
-
afUserId由访问者的浏览器在调用您的网站时发送。 - 如有需要,从HTTP cookie头中提取。
在访问者的浏览器中查看afUserId
- 在访问者的浏览器中查看
afUserId,以进行故障排除和调试。 - 为了使其可用,访问者需要至少访问一次包含Web SDK的页面。
- 包含
afUserId的cookie是与您的域相关的第一方cookie。 - 以下程序是使用Chrome 81准备的。不同浏览器和操作系统之间可能存在一些差异。
要从访问者的浏览器获取afUserId:
响应代码
| 响应代码 | 响应消息 | 如何处理 |
|---|---|---|
| 200 | OK | |
| 404 | Not found(未找到) |
|
| 400 | Bad request(请求无效) |
|
问题排查
- 问题描述HTTP 返回代码未返回
解决方案: AppsFlyer服务器加白
发布说明
| Date | 端点版本* | 说明 |
|---|---|---|
| 2020-05-12 | 1 | 初始发布 |
| 21 | 1 | |
* 版本号与端点版本号相关。https://webs2s.appsflyer.com/v1/method
|
||