您可以创建深度链接来将用户转到应用中的特定页面。针对用户是否已在设备上安装您的应用,Adjust SDK 会使用不同的逻辑:
- 直接深度链接:用于用户已经安装应用的情况。用户会被转向链接中指定的页面。
- 如果用户尚未安装应用,那么就会发生延迟深度链接。链接首先会将用户转向应用商店页面来安装应用。用户安装后,就会被带到链接中指定的页面。
用户通过链接打开应用后,SDK 就可以读取深度链接数据了。
如果用户已经安装了您的应用,那么在与包含深度链接信息的链接互动时,应用就会打开。Adjust SDK 中包含的工具能够解析深度链接信息,在应用中使用。要设置深度链接,请选择一个唯一的 Scheme 名称 。
您可以进行设置,在用户与深度链接互动时启动特定活动。为此请进行下列操作:
- 在您的
AndroidManifest.xml
文件中为活动指定 scheme 名称 。
- 向活动定义添加一个
intent-filter
节点。
- 在
intent-filter
节点中添加一个包含 Scheme 名称 的android:scheme
数据节点。
示例
该示例展示了如何设置名为 MainActivity
的活动,并以 Scheme 名称 adjustExample
将其打开。
您的应用现在将可以处理 URI scheme。如果用户点击了带有 deep_link
参数的连接,且该参数中包含您的 Scheme 名称 ,那么活动就会触发。
请确保配置 scheme 名称,即便是设置安卓应用链接用于深度链接时也不例外。
对于安卓应用链接,添加intent
过滤器至您的AndroidManifest.xml
文件,指定应用可以处理的 URL。在intent
过滤器中纳入带android:autoVerify="true"
属性的data
元素。
您的应用现在可以处理安卓应用链接了。当有用户点击了带有insights.go.link
域名的链接时,您的应用会自动打开。
您可以指定 deep_link
参数内容的发送位置。为此,请在 AndroidManifest.xml
文件中设置活动的 android:launchMode
属性。
Adjust SDK 会使用 onCreate
或 onNewIntent
方法,传递活动 intent 对象中的深度连接信息。应用启动,且上述方法之一被调用后,您就可以读取深度链接内容了。然后,您可以在应用的其他位置访问这些信息。
在 onCreate
或 onNewIntent
方法中调用 getData()
方法,以提取深度链接信息。
延迟深度链接
Adjust SDK 默认自动打开延迟深度链接。无需额外设置。如果您想禁用该行为,则需要使用 setOnDeeplinkResponseListener
方法设置一个延迟深度链接回传。
设置延迟深度链接回传
您可以配置 Adjust SDK,使其在接收到延迟深度链接时调用一个委托函数。委托函数会以 String
参数的形式接收深度链接。
如果想打开深度链接,请在委托函数中返回 true
。如果不想打开,请返回 false
。
示例
本示例展示了如何通过在回传函数中返回 false
值来阻止 SDK 启动活动。
通过深度链接进行再归因
Adjust 支持使用深度链接进行再交互推广活动。要了解更多信息,请查看如何在 Campaign Lab 中设置深度链接。
要对用户进行再归因,请在应用收到深度链接内容时调用 appWillOpenUrl
方法。这样,Adjust SDK 就会在深度链接中寻找新的归因信息。如果 SDK 找到新信息,就会将其转发至 Adjust 服务器进行再归因。
链接解析
有的电子邮件服务提供商 (ESP) 会针对营销推广活动使用自有的自定义域名。如果您需要通过自定义域名监测点击,就要设置 SDK 以解析链接。为此,请调用 AdjustLinkResolution
类的 resolveLink
方法。此时,Adjust SDK 就会跟随自定义链接,在打开深度链接时进行解析。这样,您就能记录用户与电子邮件推广活动的互动了。
resolveLinkWithUrl
方法使用下列参数:
url
(String
):打开应用的深度链接。
resolveUrlSuffixArray
(String[]
):需要解析的、已设置推广活动的自定义域名。
adjustLinkResolutionCallback
(AdjustLinkResolutionCallback
):返回最终 URL 的回传。
该方法会比对深度链接和 resolveUrlSuffixArray
中的域。如果找不到任何匹配,就会按原样转发深度链接 URL。如果找到了匹配,就会尝试解析链接并返回得出的深度链接,然后将其保存在回传参数中。
此时,您就可以使用返回的深度链接进行用户再归因了。为此,请将深度链接传递至 Adjust.appWillOpenUrl
方法。