主题
Skip to content
简介
复访版是老玩家通过首页刷到游戏后进入
需求来源
是渠道必接:可选
在抖音首页推荐栏目可以刷到游戏,点击可直接和游戏进行交互
游戏供给更加偏向中重度,因此以游戏内的「关键节点」为高价值信息牵引用户复访成为效率更高的一种手段
因此,业务侧期望,发挥小游戏的即点即玩特性,且整体无限贴合抖音:刷、推信息本身的体验,尝试为用户提供一种新型的小游戏游玩体验
功能限制
项目采用Native模式时,不要发直玩,会有广告异常问题
功能前提
先申请场景值和文案ID
找发布拿到游戏的场景值和content_id
场景枚举值有:离线收益;体力恢复;重要事件
测试条件
1. 开发权限
将抖音账号信息提供给发布同事,需将自己添加到开发者权限中,原因是抖音直玩。
2. 测试设备注册
研发还需要添加设备直玩权限,否则无法测试feed直玩
具体需要找发布添加@发布,发送关键信息:添加推荐流直出游戏能力>>添加测试设备
发布可能需要研发提供抖音的UID和DID
开始接入
引导用户进行订阅Feed
是否支持feed订阅功能
c#
XYX.FeedPlay.IsSupportFeedSubscribe()
订阅feed直玩
做一个按钮,玩家主动订阅
c#
XYX.FeedPlay.Subscribe(scene,contentId,OnSuccess,OnFail);
//OnSuccess回调是玩家成功订阅
//OnFail是失败,玩家拒绝了
注意:当玩家拒绝以后,必须要过24小时以后才能再次弹出订阅弹窗
研发需要监听OnFail,自己做一个本地计时,过24小时以后才能显示订阅按钮
检测feed订阅的状态
c#
XYX.FeedPlay.CheckSubscribeStatus(scene,callback);
入口判断和事件流
当玩家冷启动游戏后(重启抖音在推荐界面刷到游戏),需要先根据isFeedEnter
是否为直玩场景进入。如果是,则直接调用reportGameReady
。
feed_game_scene用来判断是否是发布提供的
feed_game_extra为用户事件注册时传入的参数,可用来区分游戏状态
c#
long startTime = ((DateTimeOffset)DateTime.Now).ToUnixTimeMilliseconds();
startTime = startTime + (int)(0.5f * 60 * 1000);//半分钟以后开始这个事件
long endTime = startTime + (5 * 60 * 1000); //5分钟以后结束这个事件
//上报这个重要事件到后台,game_extra可自定义字符串(推荐"1")。会传递到直玩入口参数内
//时间都为毫秒时间戳
string game_extra = "1";
XYX.FeedPlay.ReportAdd(scene,contentId,game_extra,startTime,endTime);
startTime与endTime的时间间隔,最多为30天!否则将无法上报和入库!
删除直玩场景的一个事件注册
c#
//当玩家领取奖励,或者不希望玩家下次刷到时,调用这个删除方法即可
XYX.FeedPlay.ReportDelete(scene);
下面为代码示例
c#
//大厅入口页面
//检查游戏是否从feed直玩进入
//feed_game_extra是上报事件注册传进去的值,研发可自定义
XYX.FeedPlay.CheckIsFeedEnter((data) => {
if(data.isFeedEnter)
{
Debug.Log("isFeedEnter," + data.feed_game_scene + " " + data.feed_game_extra);
//跳转到对应的场景
if(data.feed_game_scene == (int)FeedPlayScene.ImportantEvent)
{
Debug.Log("跳转到直玩场景");
if(data.feed_game_extra == "1")
{
Debug.Log("打开重要事件掉落场景1");
ResLoadHelper.LoadScene("MineGameTest");
//直玩游戏准备好了
XYX.FeedPlay.ReportGameReady();
//当玩家领取了奖励,或者完成了这个重要事件时,上报删除
XYX.FeedPlay.ReportDelete(scene);
}
}
//data.feed_game_channel,1,复访版;2,获客版
}else
{
Debug.Log("isFeedEnter,false");
}
});
监听 Feed 流进入/退出小游戏事件
c#
XYX.FeedPlay.OnFeedStatusChange(Action<int> callback);
0;从 Feed 流进入小游戏
1;退出小游戏回到 Feed 流
上传测试
测试需要注意的事项
Feed直玩只能传到默认通道
测试时记得指定测试版本
测试和检查弹框
只能在真机测试。
上报事件注册以后,检测控制台打印:DY_FeedPlay ReportAdd 上报成功
之后关闭游戏,并且关闭重启抖音
抖音侧总共会弹3个弹窗,各弹框逻辑如下
预启动游戏 | 游戏首帧渲染完成 | feed直玩游戏已加载完成 | ||
---|---|---|---|---|
图例 | ![]() | ![]() | ![]() | ![]() |
时机说明 | 直玩数据推送到客户端,抖音准备向后台请求加载游戏。类似于正常链路中,看到游戏Icon手指准备去点击进游戏 | 游戏首次出现渲染画面(从黑屏变成有画面,并不代表能交互) | 触发时机是调用了reportGameReady方法 所以游戏上报本代码的地方应为进入游戏后自动触发,其过程不可被手动操作逻辑阻挡(比如点了引导按钮后才走)! | |
出不来问题排查 | 测试设备有没有添加到后台?如果之前添加过,删除后再扫码加一遍 | 游戏启动挂了,先自测调试好 | 首先通过抖音扫码进入游戏的测试版本,在右上角「···」中打开更多面板,在更多面板中选择「打开调试」,开启vconsole能力。 然后刷抖音直到出现前面两个弹框后,才能去再次扫码。此时会强制跳游戏,看下控制台 reportGameReady 为什么没有被调用 |
以上弹窗如果无法弹出时,需要先自查
自查
复访版需要先自己查看事件是否入库,查看地址如下
将下面标记红色的区域进行替换,https地址为发布配置的服务器地址
有值代表正常入库。再去看startTime和EndTime转为时间戳以后。时间范围是否正确
@发布进行联调
当自查发现入库时间都是正确时,但是仍然没刷到时,找发布去联调
问题记录
目前抖音native模式的直玩功能会有报错和插屏异常,建议native模式关闭直玩功能,等待后续官方解决
发布要求提供服务器地址
domain在Resources文件里面的Domain.json,搜索minigamescene
Path是固定值/MiniGameScene/douyin/scene/query
点我快速对接


