1.介绍
Facebook延迟深度链接是针对我们在Facebook投放广告,用户在未安装app时在Facebook客户端(网页端不行)点击该广告,会首先跳转到Google Play下载app,然后在用户首次打开app时,跳转到该广告配置的位置(比如跳转到商品详情页)。
2.原理
当用户未安装app时,在Facebook客户端点击广告时,会向Facebook发送一条能够标识这个设备的标识符(包含手机型号,手机分辨率,手机运营商,手机时区,广告ID等信息)如:
当用户首次打开app时,会执行我们在Activity(Facebook控制台配置的Activity)onCrate()中写的代码,我是在启动页写的:
AppLinkData.fetchDeferredAppLinkData(this) {
it?.targetUri?.apply {
deepLinkNode = DeepLinkNode(host, query, path)
}
}
在执行这段代码的时候,用户也会给Facebook服务器发送一个该设备的标识符,与之前的做匹配,如果能够匹配,就返回之前广告所配置的深度链接--AppLinkData包含深度链接跳转所需要的所有信息。
3.步骤
这个步骤就看官方提供的开发文档就可以了。 Facebook 深度链接
4.验证
我们可以使用Facebook中的广告来测试,或者使用应用广告帮手来验证。
- 在Facebook点击广告或者应用广告助手发送的推送,
- 使用Android Studio运行安装app,
- 打开app,
- 跳转到相应页面
5.坑
- 一个设备使用应用广告帮手测试时可能只有第一次能够返回AppLinkData,尽量使用正式广告,或者广告preview(要点击在动态中展示)。
- 通常我们会在启动页获取Facebook的深度链接,上述提供的是个回调方法,由于网络因素,我们可能在短时间内不能拿到返回的APPLinkData,在这里,我做了3s的限制,在3s内能够拿到数据的话就直接跳转主页面,3s内拿不到的话,就直接正常进行其他的工作,不让用户在启动页做过长时间的等待。