adjust-icon

设置深度链接

您可以创建深度链接来将用户转到应用中的特定页面。针对用户是否已在设备上安装您的应用,Adjust SDK 会使用不同的逻辑:

  • 直接深度链接:用于用户已经安装应用的情况。用户会被转向链接中指定的页面。
  • 如果用户尚未安装应用,那么就会发生延迟深度链接。链接首先会将用户转向应用商店页面来安装应用。用户安装后,就会被带到链接中指定的页面。

用户通过链接打开应用后,SDK 就可以读取深度链接数据了。

配置方案名称

如果用户已经安装了您的应用,那么在与包含深度链接信息的链接互动时,应用就会打开。Adjust SDK 中包含的工具能够解析深度链接信息,在应用中使用。要设置深度链接,请选择一个唯一的 Scheme 名称

您可以进行设置,在用户与深度链接互动时启动特定活动。为此请进行下列操作:

  1. 在您的 AndroidManifest.xml 文件中为活动指定 scheme 名称
  2. 向活动定义添加一个 intent-filter 节点。
  3. intent-filter 节点中添加一个包含 Scheme 名称android:scheme 数据节点。

示例

该示例展示了如何设置名为 MainActivity 的活动,并以 Scheme 名称 adjustExample 将其打开。

AndroidManifest.xml
<activity android:name=".MainActivity" android:configChanges="orientation|keyboardHidden" android:label="@string/app_name" android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="adjustExample" />
</intent-filter>
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" android:host="insights.go.link" />
<data android:scheme="https" android:host="insights.go.link" />
</intent-filter>
</activity>

您的应用现在将可以处理 URI scheme。如果用户点击了带有 deep_link 参数的连接,且该参数中包含您的 Scheme 名称 ,那么活动就会触发。

https://app.adjust.com/abc123?deep_link=adjustExample%3A%2F%2F

对于安卓应用链接,添加intent过滤器至您的AndroidManifest.xml文件,指定应用可以处理的 URL。在intent过滤器中纳入带android:autoVerify="true"属性的data元素。

<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" android:host="insights.go.link" />
<data android:scheme="https" android:host="insights.go.link" />
</intent-filter>
```xml
<Callout type="info">
`insights.go.link` 是被定义为安卓应用链接的品牌化域名。
</Callout>
您的应用现在可以处理安卓应用链接了。当有用户点击了带有`insights.go.link`域名的链接时,您的应用会自动打开。
```html
https://insights.go.link/login?adj_t=abc123

您可以指定 deep_link 参数内容的发送位置。为此,请在 AndroidManifest.xml 文件中设置活动的 android:launchMode 属性。

Adjust SDK 会使用 onCreateonNewIntent 方法,传递活动 intent 对象中的深度连接信息。应用启动,且上述方法之一被调用后,您就可以读取深度链接内容了。然后,您可以在应用的其他位置访问这些信息。

onCreateonNewIntent 方法中调用 getData() 方法,以提取深度链接信息。

延迟深度链接

Adjust SDK 默认自动打开延迟深度链接。无需额外设置。如果您想禁用该行为,则需要使用 setOnDeeplinkResponseListener 方法设置一个延迟深度链接回传。

方法签名
public void setOnDeeplinkResponseListener(OnDeeplinkResponseListener onDeeplinkResponseListener)

您可以配置 Adjust SDK,使其在接收到延迟深度链接时调用一个委托函数。委托函数会以 String 参数的形式接收深度链接。

如果想打开深度链接,请在委托函数中返回 true 。如果不想打开,请返回 false

示例

本示例展示了如何通过在回传函数中返回 false 值来阻止 SDK 启动活动。

方法签名
public static void appWillOpenUrl(Uri url, Context context)

Adjust 支持使用深度链接进行再交互推广活动。要了解更多信息,请查看如何在 Campaign Lab 中设置深度链接

要对用户进行再归因,请在应用收到深度链接内容时调用 appWillOpenUrl 方法。这样,Adjust SDK 就会在深度链接中寻找新的归因信息。如果 SDK 找到新信息,就会将其转发至 Adjust 服务器进行再归因。

方法签名
public static void resolveLink(final String url,
final String[] resolveUrlSuffixArray,
final AdjustLinkResolutionCallback adjustLinkResolutionCallback)

有的电子邮件服务提供商 (ESP) 会针对营销推广活动使用自有的自定义域名。如果您需要通过自定义域名监测点击,就要设置 SDK 以解析链接。为此,请调用 AdjustLinkResolution 类的 resolveLink 方法。此时,Adjust SDK 就会跟随自定义链接,在打开深度链接时进行解析。这样,您就能记录用户与电子邮件推广活动的互动了。

resolveLinkWithUrl 方法使用下列参数:

  • url (String):打开应用的深度链接。
  • resolveUrlSuffixArray (String[]):需要解析的、已设置推广活动的自定义域名。
  • adjustLinkResolutionCallback (AdjustLinkResolutionCallback):返回最终 URL 的回传。

该方法会比对深度链接和 resolveUrlSuffixArray中的域。如果找不到任何匹配,就会按原样转发深度链接 URL。如果找到了匹配,就会尝试解析链接并返回得出的深度链接,然后将其保存在回传参数中。

此时,您就可以使用返回的深度链接进行用户再归因了。为此,请将深度链接传递至 Adjust.appWillOpenUrl 方法。