Feed直玩订阅(抖音)

业务场景

抖音小游戏:为了提升游戏曝光,推荐流直出小游戏。

渠道侧业务场景具体业务请看:https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/guide/open-ability/feed/minigame-feedpush-setting-guide

流程图

调用示例

用户直玩订阅

检查用户订阅情况

  • 未订阅,提示用户完订阅活动
  • 已订阅
// 订阅状态查询
var checkFeedParams = {
  type: 'play', // play=直玩(该场景必传scene)
  scene: 1,
  onSuccess: (isCheck) => {
    if (!isCheck) {
      // 用户没有订阅,需提供入口,让用户点击订阅【点击事件不继承,需重新发起】
    }
  },
  onFailed: (errorInfo) => {
    // 失败
  },
};
SDKManager.checkFeedSubscribeStatus(checkFeedParams);

用户未订阅

点击调用订阅弹窗:

  • 不要和一般订阅 requestSubscribeMessage 同时调用,会存在冲突导致其中一个 API 失效
  • 一般订阅 和 直玩订阅的弹窗效果不一致,请注意甄别
  • 直玩订阅所有弹窗都能正常弹出才算验收成功
// 订阅
var subscribeParams = {
  type: 'play', // play=直玩(该场景必传scene)
  scene: 1, // 一次只能订阅一个
  contentIDs: ['xxxx', 'xxxx'],
  onSuccess: (requestStatus) => {
    // requestStatus 用户的订阅结果(true为成功,false为失败)
  },
  onFailed: (errorInfo) => {
    // 失败
  },
};
SDKManager.requestFeedSubscribe(subscribeParams);

直玩订阅弹窗

feedSubscribe1

Feed 推流进入

检查用户是否 Feed 推流进入

  • 非 Feed 推流进入,正常流程进入游戏
  • Feed 推流进入,根据启动参数feed_game_scene,进入到对应的场景,然后上报到渠道
const launchInfo = SDKManager.getLaunchOptions();
// 判断是Feed直玩启动
if (/3041$/g.test(launchInfo.scene)) {
  const { feed_game_scene, feed_game_extra, feed_game_channel } = launchInfo.query;
  // feed_game_scene 场景值,对应订阅的scene
  // feed_game_extra - 开发者自定义字段,通过服务端进行赋值
  // feed_game_channel - Number类型,1: 访客版;2:获客版(新用户进入)
}

游戏就绪上报: Feed 推流进入

SDKManager.reportChannelGameInfo({ eventType: 6 });

服务端推送

CP 服务端需要提供一个查询用户就绪场景接口给到 SDK,具体的实现请看服务端接入文档-抖音直玩能力

涉及 API

客户端:

服务端:

FAQ

Q: 多个 content_id 都满足的情况下,推送哪个给用户?

A: 同一个 scene,多 content_id 的情况下,按返回的顺序定优先级(位置越前,优先级越高),测试时候可单独每一个一种场景,保证验收通过

Q: 用户什么情况下会收到抖音的推送?

A: 用户订阅后,退出游戏,在抖音界面刷视频的时候,如果条件满足会收到抖音的推送

Q: 服务端提供查询接口有什么要求?

A: CP 侧的服务端 + SDK 侧服务端,查询的整体时间不能超过 300 毫秒

Q: 如果调试该功能?

A: 需要使用对应的 debug 版抖音去验收,注意 IOS 目前仅能申请两台设备作为测试验收,安卓目前没限制

Q: 验收没通过,没出现弹窗?

A: 申请的场景全部都要触发对应的弹窗 UI,如果是因为已经订阅了没有出现弹窗的,去 右上角-->设置页-->游戏进入提醒-->关闭

Q: 测试过程中,没有出现游戏卡?但有提示【游戏正在预启动】等 toast 提示

A: 一般是由于用户操作过快导致的,为保证游戏卡正常出现,在上述提示出现的时候,请不要请滑动视频,直到出现场景加载完成提示,就可以正常往下刷。因为抖音下发了游戏卡后,插入到当前视频下面,例如插入到第 8 个位置,如果刷到第 7 个时候,还没检测到 游戏就绪上报,下面就不会出卡,再往下刷就删了这个游戏卡,游戏会被杀掉

Q: 上述问题中,一直在同一个视频中等待,看到 【游戏正在预启动】,一直没有 【场景加载完成】 的提示?

A: 需要 CP 检查是否在过程中出现弹窗、公告等需要用户点击才能跳过操作,导致没法正常加载到就绪场景,从而没有调用到SDKManager.reportChannelGameInfo({ eventType: 6 });