中国APP出海之路,早已从满足用户功能及市场需求,转变为兼顾用户市场、政治因素、法律政策等的多维度考量,充满挑战。APP出海尚且如此艰难,想要进一步变现更不必说。
本篇的初衷不是来营造焦虑的,而是传递一个APP出海提升数据的好方法,走过路过的互联网出海小伙伴,以下内容不要错过!
首先,看一组2021年10月份APP非游戏出海排行榜数据:
在 10 月的中国非游戏应用出海畅销榜中,短视频/直播依然是最热门的出海赛道,除了排名前三的 TikTok、BIGO LIVE、Likee 以外,YoYo、Mico、LiveMe、Ahlan、WePlay、Hago、EleLive 同样在海外取得了出色的成绩,这些app不难发现它们都有一个共同点,没错,它们都是泛娱乐app。
众所周知,社交和游戏被称为永恒的刚需,社交app相比于游戏拉新难,但留存高,游戏则正好相反,社交+游戏的形式正好可以互相拉动。而出海畅销榜中的大部分社交app都是通过在app内植入互动小游戏,吸引用户,提高用户间的互动频率,从而提升了产品的留存、粘性及变现能力。
app出海的企业可以借鉴这一方法,为产品植入契合品牌的互动小游戏。植入方式一个是自主开发,但小游戏开发是需要一定基础的,开发周期长,成本跟人力也相对较高,并且需求没有固定导向的话,很多时候前一个需求没过多久就被后一个推翻了;另一个是找专业第三方小游戏服务,将心仪的小游戏接入到产品,对比自主开发,这种方法明显比较省时省力,性价比也高,有些专业第三方服务还能从不同维度助力企业构建差异化竞争优势,并持续在用户增长、活跃、留存等方面获得有效突破。
接入小游戏方法(以群玩服务为例):
接入方法https://www.grouplay.cn/document/index/dhome
-
方案一:题库接入 开发者通过对接api获得题库问题、答案。自定义玩法、场景等。
-
方案二:游戏接入 开发者直接嵌入游戏SDK,设置或默认服务内的游戏玩法。支持安卓、iOS系统。可以根据自己的需求,直接应用互动页面或重新设计样式等。
第一步
在布局文件中使用画板View
第二步
在代码中初始化PaintPlay
paintPlay = new PaintPlay(new PaintCallBack() {
@Override
public void onReady(int timeLimit) {
}
@Override
public void onSelectMessage(PaintSelectBean paintSelectBean) {
}
@Override
public void onPaintMessage(PaintQuestionBean paintQuestionBean) {
}
@Override
public void onPlayerAnswerMessage(PlayerAnswerBean playerAnswerBean) {
}
@Override
public void onRightAnswerMessage(AnswerBean answerBean) {
}
@Override
public void onGameOverRank(List list) {
}
});
第三步
将PaintView和PaintPlay绑定起来
paintView.bindPaintPlay(paintPlay);
*** PaintView的部分功能均需要绑定PaintPlay并连接服务器后才能正常使用
后续步骤请参考快速使用部分
PaintView API
public void initPaint(int paintSize, String paintColor, int eraserSize, int bgColor) public void setIsEraser(boolean isEraser) public void setPaintSize(int size) public void setPaintColor(int color) public void setEraserSize(int size) public void setBgColor(int color) public void forward() public void back() public void clear()PaintPlay API
public void selectWord(String word) public void answer(String answer) public void changeQuestion()回调
void onReady(int timeLimit); void onSelectMessage(PaintSelectBean paintSelectBean); void onPaintMessage(PaintQuestionBean paintQuestionBean); void onPlayerAnswerMessage(PlayerAnswerBean playerAnswerBean); void onRightAnswerMessage(AnswerBean answerBean); void onGameOverRank(List模型playerList);
题目选择模型PaintSelectBean
| 字段 | 类型 | 说明 |
|---|---|---|
| uid | String | 选词人的id |
| choice | List | 词语列表 |
| choiceTimeLimit | Integer | 倒计时 |
题目绘画模型PaintQuestionBean
| 字段 | 类型 | 说明 |
|---|---|---|
| uid | String | 绘画人的id |
| timeLimit | Integer | 倒计时 |
| tips | String | 提示 |
| answer | String | 题目答案(仅绘画人有) |
回答问题模型PlayerAnswerBean
| 字段 | 类型 | 说明 |
|---|---|---|
| uid | String | 玩家id |
| isRight | Integer | 1-正确 2-错误 3-不处理 |
| answer | String | 玩家的答案 |
| score | Integer | 答对该题增加的分数 |
正确答案模型AnswerBean
| 字段 | 类型 | 说明 |
|---|---|---|
| answer | String | 正确答案 |



