Skip to content

合作方 Postback 交付与上线 ​

受众: 负责上线的人,需能访问配置 postback 的联盟后台。

集成校验证明你的 postback URL 是正确的。本页要证明的是你的后台真的会在真实转化时触发它——这是另一回事,也往往是出问题的那一环。

交付之前 ​

  • 集成校验中每一条必需规则都通过(PB-R-01 … PB-R-12)
  • 建议规则也通过,或已书面记下跳过了哪些、原因是什么
  • postback 在联盟平台中以服务器端方式配置,而不是像素
  • postback 规则已启用,且作用范围覆盖 RevoSurge 流量落地的广告系列或链接——没有存为草稿,也没有限定在另一个品牌上
  • 你使用的每条事件路径都已接好,并各自对应正确的 URL(只有发送 App 启动时才需要 /app-launch)
  • 已注册的 URL 中已移除 dryrun(PB-R-10)
  • k 密钥保存在平台的 postback 配置中,不出现在任何面向玩家的页面上

四项 dry run 探测 ​

请在真实测试之前先跑这几项。在 URL 后追加 dryrun=1——不会记录任何内容,响应会展示判定结果、去重键、解析出的身份标识以及解析后的取值。

dry run 响应是一份判定,而不是写入回执:它带有响应头 X-Ingest-Mode: dryrun,返回的是 decision,而不是 {"status":"ok"}。

#探测预期判定
1正常路径,带有效密钥与身份标识200,"decision": "accepted",并回显解析出的身份标识与取值
2故意填错 k403
3既无 click_id 也无 user_id200,"decision": "ignored"
4click_id 保持为字面宏,例如 {sub1}200,"decision": "ignored"

请逐字段阅读探测 1 的回显——只有在这里,你才能确认 ts 是按毫秒解析的、event_id 确实送达而没有退回到查询串哈希,以及 amount 的正负号解析正确。

探测 3 和 4 比探测 1 更重要。上线后量不及预期时,你要看的正是它们;你需要在生产环境真正发生之前,就在自己的日志里见过"被静默丢弃"是什么样子。

事后移除 dryrun

误存进后台配置的探测 URL 就是 PB-R-10,而且它失败时完全无声无息。请在配置中搜索 dryrun——dryrun、dryrun=1 和 dryrun=true 都会被接受。

dry run 会计入你的限流额度,因此请用脚本执行这些探测,而不要循环反复发送。

要交给客户经理什么 ​

交付物为什么需要例外
五个端点中你接好了哪几个决定广告系列可以按什么优化。目标设为 FTD 却没有 /first-deposit postback 的广告系列,从第一天起就会看起来是坏的。无
你的联盟平台名称与版本不同平台的宏语法与服务器端 postback 行为各不相同;大多数平台的故障模式我们都见过。无
已注册的 postback URL,k 已脱敏让我们在上线前、而不是上线后,发现错误的路径或缺失的参数。请以文本形式发送。无
一次成功测试转化的真实 event_id 与 txid,并注明时间——在上线测试后补填一个可追溯的样例能在几分钟内解决一个归因问题。无
amount 是否以 USD 发送我们不做任何币种换算。如果你以其他币种结算,我们需要在对账前知道。无
你的归因模型(如果功劳是分摊的)否则我们会把每一次转化都按全额功劳处理。若采用末次点击全额归因,可省略
哪些事件你尚未发送避免我们提出你无法支持的目标。无

URL 请以文本发送,并对密钥脱敏

后台配置的截图无法逐字符核对,而错误的路径或打错的宏,肉眼是看不出来的。

上线测试 ​

请在线上广告上真实点击一次,并走正常的玩家流程完成一次真实转化。手动触发 postback URL 测的是我们的端点,而不是你的平台。

  1. 点击一条线上的 RevoSurge 广告
  2. 落地到你的网站
  3. 注册一个新的测试账号
  4. 通过正常的收银台完成一笔小额真实充值
步骤预期结果在哪里查看
3. 注册后台触发 /registration,返回 200 {"status":"ok"}——这是已确认的持久化写入,而不只是收到你平台的 postback 日志
3. 注册click_id 以真实值到达,而不是字面宏dry run 回显,或存储的值
4. 充值后台触发 /first-deposit,返回 200 {"status":"ok"}你平台的 postback 日志
4. 充值amount 与实际充值金额一致,ts 为 13 位你平台的 postback 日志
4. 充值event_id 是真实的唯一 ID,而不是哈希兜底对等负载的 dry run 回显
两者两次调用的 user_id 相同,且与你其他追踪方式发送的一致比对两条日志中的 URL
之后测试玩家以一次注册和一次 FTD 出现,并归因到该广告系列后台报表

然后在同一账号上再做第二笔充值,确认它走到 /repeat-deposit,且不会增加 FTD。这一步能抓出 PB-R-05——否则它会在一周后,以一个谁也解释不了的 FTD 数字冒出来。

如果你会发送 App 启动,还要在同一账号上把 App 关闭再打开两次。每次启动都应触发 /app-launch 并返回 200 {"status":"ok"},各自带有独立的 event_id,user_id 与注册时相同——两次启动,两条记录。然后在全新安装、尚未注册时启动一次,并对这条负载做 dry run:如果它既没有 click_id 也没有 user_id,就会被 ignored,请告知你的客户经理。

测试失败怎么办 ​

症状检查这些规则
403PB-R-01——密钥错误,或来源 IP 不在白名单内
200 {"status":"ignored"}PB-R-03、PB-R-04——没有身份标识,或某个宏没有被替换
503PB-R-09——请重试;写入未被确认
postback 根本没有触发规则被停用、存为草稿,或作用范围指向了错误的广告系列——不是负载问题
充值被记成了注册PB-R-02——端点路径错误
多次 App 启动被记成一条PB-R-08——每次启动没有唯一的 event_id
FTD 数偏高或偏低PB-R-05——首充与复充走了同一条路径
同一次转化被计了两次PB-R-08——没有稳定的 event_id,一次重试变成了一条新记录
转化到了,但没有归因到广告系列PB-R-11、PB-O-01——标识不匹配,或没有 ctx 兜底
收入数字差了几个数量级PB-R-07——正负号问题,或金额不是 USD
时间线看起来不对,但没有任何报错PB-R-06——ts 用了秒
什么都没记录,却一律返回 200PB-R-10——已注册的 URL 上仍带着 dryrun

上线之后:哪些改动需要重新检查 ​

改动影响重新校验
联盟平台升级或迁移宏语法与 postback 规则很少能完好保留下来PB-R-04、PB-R-02,并重跑探测
轮换 k 密钥从旧密钥失效那一刻起,每条 postback 都返回 403PB-R-01
新增品牌、皮肤或新域名postback 规则通常按品牌设定作用范围,不会自动沿用PB-R-02,以及上文清单中关于作用范围的那一项
改变玩家 ID 的生成方式悄无声息地把每一份用户档案拆开PB-R-11
更换支付服务商或收银台充值触发点可能移位、重复或停止PB-R-05、PB-R-07
开始收入分成结算多出一个新端点,负金额也开始真实出现PB-R-02、PB-R-07
开始发送 App 启动 postback多出一个新端点,且常在玩家还没有 id 时触发PB-R-02、PB-R-03、PB-R-08,并重跑探测
改变归因或功劳分配模型我们的报表与你的报表会在毫无预警的情况下出现分歧PB-O-07
对 postback URL 模板的任何改动一个字符就能弄坏它,而故障的表现是 200重跑全部四项探测

后台有任何改动后,重跑四项探测

只需两分钟,而且是发现静默 ignored 唯一的低成本办法。

代理商 ​

  • 运营方持有 k 密钥与后台配置。代理商如果没有该平台的访问权限,就无法代运营方配置 postback。
  • 如果由代理商投放广告系列,请把已接好的端点清单发给他们——优化目标由他们选择,他们需要知道可以设成什么。
  • 标识不匹配(PB-R-11)无法从广告系列一侧修复,必须在生成这些 ID 的地方修复。

下一步 ​