一、iOS部分

当您按照上述步骤测试遇到问题时,我们为您提供了排查思路:

Q1:为什么请求https://yourcompany.link.trackingio.com/apple-app-site-association无法下载JSON文件?
A1:热云服务端为apple-app-site-association文件配置的路径是https://yourcompany.link.trackingio.com/.well-known/apple-app-site-association,测试时缺少.well-known目录请求该地址将会报错。
注:.well-known是苹果要求的目录名称,热云已在服务端为您配置好,您只需要按照“热云后台配置Universal link”中的步骤进行配置即可,JSON文件会在App第一次安装在设备上时下载到本地。
正常情况apple-app-site-association文件的格式如下,其中paths为您在创建热云监测短链时填写的path,我们将所有您填写过的path都写入这个文件中,保证不同监测短链(path)能跳转到不同页面。

{
	"applinks": {
		"apps": [],
		"details": [{
			"paths": ["/ry/*", "/ry/http","*"],
			"appID": "AppIDPrefix.BundleID"
		}]
	}
}

Q2:为什么直接在Safari输入热云监测短链无法调起App?测试工具的作用是什么?
A2:直接在Safari输入热云监测短链,无论使用的是URL Scheme还是Universal link实现Deeplink,直接浏览器访问,由于没有点击动作触发,是无法正常使用的,都将跳转至App Store,而非调起App,所以热云提供了测试小工具模拟用户点击广告时上报热云监测短链的场景,此时短链通过点击触发后,经过重定向,能够执行URL Scheme和Universal Link。

Q3:延迟Deeplink的callback方法为什么总是返回空,日志中的status都代表什么?
如果callback返回空,即代表此次install事件(初始化)归因的结果不是deeplink广告带来的,status的返回值以及说明如下:

status归因状态callback
0激活匹配到了deeplink点击,延迟调起callback中会返回dp_url和dp_path
120激活匹配到了新客获取活动的点击空字典
121未匹配到任何点击,自然激活空字典
101请求参数异常,系统异常空字典

如果遇到不能调起到指定页面(表象),或callback中没有任何值(原因),但直接调起App没有问题时(说明URL scheme或Universal Link可以正产工作),此时请确保您的延迟Deeplink测试步骤是否正确,因为延迟deeplink的实现完全依赖于热云的归因结果,步骤梳理如下:
1.将设备id加入热云白名单,15分钟生效;
2.复制监测链接,移除参数noredirect=true(如果有),替换IDFA参数,并粘贴至测试工具,点击【打开应用】,此时设备中不应安装App;
3.准备好打印log后,在您的xcode项目中运行App,搜索关键字dpquery,查看callback的status和键值内容;
4.查看是否成功调用callback中的dp_url或dp_path
5.确保您在合适的时机触发dp_url或dp_path

Q4:为什么延迟Deeplink的callback获取到了,但仍未跳转到指定页面?
A4:没有任何设置的情况下,您的App在打开时会跳转到默认的页面(一般是首页),而调用延迟deeplink的callback方法将改变打开App时跳转的首个页面,此时需要注意默认页面和callback页面的调用逻辑,一般情况下,callback中有页面地址,则打开页面地址,没有地址,则打开默认页面。

二、Android部分

当您按照上述步骤测试遇到问题时,我们为您提供了排查思路:

Q1:为什么直接在浏览器输入热云监测短链无法调起App?测试工具的作用是什么?
A1:直接在浏览器输入热云监测短链,无论使用的是URL Scheme还是App links实现Deeplink,直接浏览器访问,由于没有点击动作触发,是无法正常使用的,都将跳转至应用商店,而非调起App,所以热云提供了测试工具模拟用户点击广告时上报热云监测短链的场景,此时短链通过点击触发后,经过重定向,能够执行URL Scheme和App Links。

Q2:延迟Deeplink的callback方法为什么总是返回null,日志中的dpquery.response.statusCode都代表什么?
A2:如果callback返回null,即代表此次install事件(初始化)归因的结果不是deeplink广告带来的,status的返回值以及说明如下:

status归因状态callback
0激活匹配到了deeplink点击,延迟调起dpUrl和dpPath中带有归因结果
120激活匹配到了新客获取活动的点击null
121未匹配到任何点击,自然激活null
101请求参数异常,系统异常null

如果遇到不能调起到指定页面(表象),或callback中没有任何值(原因),但直接调起App没有问题时(说明URL scheme或App Links可以正产工作),此时请确保您的测试步骤是否正确,因为延迟deeplink的实现完全依赖于热云的归因结果,步骤梳理如下:
1.将设备id加入热云白名单,15分钟生效;
2.复制监测链接,移除参数noredirect=true(如果有),替换IMEI,并粘贴至测试工具,点击【打开应用】,此时设备中不应安装App;
3.准备好打印log后,在您的Android项目中运行App,搜索关键字dpquery,查看dpquery.response.statusCode;
4.查看是否成功调用callback中的dpUrl或dpPath
5.确保您在合适的时机触发dpUrl或dpPath

Q3:为什么延迟Deeplink的callback获取到了,但仍未跳转到指定页面?
A3:没有任何设置的情况下,您的App在打开时会跳转到默认的页面(一般是首页),而调用延迟deeplink的callback方法将改变打开App时跳转的首个页面,此时需要注意默认页面和callback页面的调用逻辑,一般情况下,callback中有页面地址,则打开页面地址,没有地址,则打开默认页面。