关于 install/click

2020/08/12

iOS 下 endcard 模板开启自动点击(alac=1 且 campaign.link_type 为 1)时,自动点击功能在调用 install 时会始终传递 campaign.needStorekit=1,此时可能会出现 storekit 加载失败然后 SDK 收到 install 但不执行跳转和上报

endcard 原有实现:
endcard 阶段点击触发 RewardJs/install 之后始终发送开发者点击回调

  1. 单 offer 下由 SDK 发开发者回调和上报等(type4 下虽然需要 H5 来给 click 的开发者回调,但目前二选一的实现是固定收到 type4 的 click 事件就给,只要 SDK type4 click 事件会排除 storekit 加载失败的情况,就不会有问题
  2. 但多 offer 下是否给开发者回调是由 H5 来做,所以在自动点击逻辑中需要 H5 根据 install 时 storekit 的加载状态来判断是否给回调,目前 H5 和 SDK 已经在 640 中修复了此问题,详见:http://jira.mobvista.com/browse/MTGHYB-769

现有实现(RewardPlus 大模板版本开始,也即 iOS 6.4.0):
增加了对一个特殊场景分支的处理,在 iOS 下 >= 6.4.0 且 needStorekit 为 1(alac=1&link_type=1) 时,不再始终发送开发者点击回调和 ad_tracking.click 上报,而是根据 install 时 SDK 返回的 storekit 的加载状态(skt_ready === true) 来判断,sk 加载失败时不再发送开发者回调

备注:iOS SDK 在 6.4.0 版本对 install 和 click 接口增加了调用回调,调用时如果入参 needStorekit 为 1,则调用回调中会返回 sk_ready 字段,用来标识 storekit 的加载状态(true 表示 sk 加载成功,false 加载失败),H5 根据返回的 code 和 sk_ready 判断是否需要发送开发者回调