移动开发者都知道,shareinstall最近推出了一个个性化安装的功能。这个功能主要应用在,对于需要加入ROOM的游戏,可以通过个性化安装实现邀请好友下载或拉起App后自动加入ROOM开始游戏。个性化安装使游戏组队的操作步骤简化,极大地提高了游戏用户的体验。
首先,我们来了解一下shareinstall SDK的集成流程。
邀请用户得奖励,是千年不变的推广利器;一般情况下,被邀请用户需要填写一个邀请码,这样往往会给人以反感,一般人都是拒绝的;而shareinstall这个第三方可以达到一种免填建立关系的方法,实际上邀请码还有,但是是隐性的。(因为是App应用,有一个前提就是,用户是需要下载这个应用的,而不是在网页上)。
起源于社交项目,当时候知聊采取了类似的形式(免填邀请码,但很可惜没有研究到它用的是什么技术),这种上下级关系类似传销一样的爆炸开来,用户量猛增,也使我们的业主也想这么做。但得知有这个第三方时,社交类的项目已经到了第三个了,所以只在蜗伴里有用到。
涉及三个方面:分享页面的js,Android的SDK,iOS的SDK。
SDK集成
官方介绍:
shareinstall能够让开发者将URL参数传递给安装后的APP,从而免去用户安装APP后繁琐的参数填写,例如免去用户手动填写邀请码、绑定信息,甚至是注册、登录等繁琐流程步骤,APP流程优化,大大改善用户首次使用体验,使之尽快到达APP的核心业务功能。
流程上:
A用户要推荐别人安装应用,A分享了一个链接给那个人(B),链接上的页面集成了shareinstall的js,这个js动态获取到A的邀请码,B打开那个页面,触发了js(比如点击下载应用按钮),这个时候shareinstall会将A的邀请码以某种形式告诉即将下载好的应用,B下载好之后,初次打开就可以获取到这个值,然后在注册的时候带给接口去搭配关系就好了
shareinstall在IOS和Android上个性化安装的区别
shareinstall在IOS和Android两个系统里个性化安装的区别主要体现在JS编写上:
Android:
在APP需要个性化安装参数时(由web网页中传递过来的,如邀请码、游戏房间号等 自定义参数),调用以下方法,在回调中获取参数。
ShareInstall.getInstance().getInstallParams(new AppGetInstallListener() {
@Override
public void onGetInstallFinish(String info) {
// 客户端获取到的参数是json字符串格式 Log.d("ShareInstall", "info = " + info);
try {
JSONObject object = new JSONObject(info);
// 通过该方法拿到设置的渠道值,剩余值为自定义的其他参数 String channel = object.optString("channel");
Log.d("ShareInstall", "channel = " + channel);
} catch (JSONException e) {
e.printStackTrace();
}
}
});
IOS:
当应用安装后首次打开时,iOS sdk会收到网页端通过js sdk传来的自定义动态参数,精确的获取app每一次安装的分享(或推广)来源。比如通过在分享链接url中附带app邀请人的用户id,就可达到免填邀请码的效果;url中可拼接自定义的参数。在AppDelegate中,添加获取安装参数的回调方法,代码如下所示:
#pragma mark ShareInstallDelegate
//通过ShareInstall获取自定义参数,数据为空时也会调用此方法
- (void)getInstallParamsFromSmartInstall:(id) params withError: (NSError *) error{
NSLog(@"安装参数params=%@",params);
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"直接点击App进来的" message: params delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
//弹出提示框(便于调试,调试完成后删除此代码)
[alert show];
}
需要注意的地方:那个唯一的邀请码只会出现一次,App端应该保存起来,将它用于第一个注册的用户。