Facebook 延迟深度链接

8,391 阅读2分钟

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中的广告来测试,或者使用应用广告帮手来验证。

  1. 在Facebook点击广告或者应用广告助手发送的推送,
  2. 使用Android Studio运行安装app,
  3. 打开app,
  4. 跳转到相应页面

5.坑

  1. 一个设备使用应用广告帮手测试时可能只有第一次能够返回AppLinkData,尽量使用正式广告,或者广告preview(要点击在动态中展示)。
  2. 通常我们会在启动页获取Facebook的深度链接,上述提供的是个回调方法,由于网络因素,我们可能在短时间内不能拿到返回的APPLinkData,在这里,我做了3s的限制,在3s内能够拿到数据的话就直接跳转主页面,3s内拿不到的话,就直接正常进行其他的工作,不让用户在启动页做过长时间的等待。