添加深度链接支持
深度链接是引导用户访问应用程序中特定内容的 URL。当用户在已安装应用程序的设备上点击深层链接时,应用程序会直接打开到目标产品页面或体验。奇异跟踪链接支持深度链接和延迟深度链接。更多详情,请参阅我们的深度链接常见问题和奇异链接常见问题。
要求
-
要为您的应用程序启用深度链接,请确保完成奇异链接先决条件。
-
实施奇异链接处理程序
奇异链接处理程序提供了一种回调机制,用于从奇异跟踪链接中检索深度链接 (_dl)、延迟深度链接 (_ddl) 和直通 (_p)参数。这些参数会在应用程序打开时(如果已安装)或安装后传递。
更新SingularConfig 对象
在 SDK 初始化期间向 SingularConfig 对象添加 SingularLinkHandler 回调,以处理传入的深度链接和延迟的深度链接数据。
private void initSingularSDK() {
SingularConfig config = new SingularConfig("SDK KEY", "SDK SECRET")
.withSingularLink(getIntent(), new SingularLinkHandler() {
@Override
public void onResolved(SingularLinkParams params) {
String deeplink = params.getDeeplink();
String passthrough = params.getPassthrough();
boolean isDeferred = params.isDeferred();
Log.d("SingularLink", "Deeplink: " + (deeplink != null ? deeplink : "null"));
Log.d("SingularLink", "Passthrough: " + (passthrough != null ? passthrough : "null"));
Log.d("SingularLink", "Is Deferred: " + isDeferred);
}
});
try {
Singular.init(getApplicationContext(), config);
Log.d("Singular", "SDK initialized successfully");
} catch (Exception e) {
Log.e("Singular", "SDK initialization failed: " + e.getMessage());
}
}
private fun initSingularSDK() {
val config = SingularConfig("SDK KEY", "SDK SECRET")
.withSingularLink(intent) { params ->
val deeplink = params.deeplink
val passthrough = params.passthrough
val isDeferred = params.isDeferred
Log.d("SingularLink", "Deeplink: ${deeplink ?: "null"}")
Log.d("SingularLink", "Passthrough: ${passthrough ?: "null"}")
Log.d("SingularLink", "Is Deferred: $isDeferred")
}
try {
Singular.init(applicationContext, config)
Log.d("Singular", "SDK initialized successfully")
} catch (e: Exception) {
Log.e("Singular", "SDK initialization failed: ${e.message}")
}
}
注: SingularLinkHandler仅在应用程序通过 Singular Link 打开时触发。更多信息,请参阅《 奇异链接常见问题解答》。
关于 SingularLinkHandler 行为的说明:
-
在全新安装时,应用程序启动时没有打开 URL。因此,Singular 必须完成最后一个接触点的归因,并确定跟踪链接是否包含已配置的深度链接或延迟深度链接 (DDL)值。这一过程发生在 Singular SDK 向 Singular 服务器发送第一个会话时。如果适用,深度链接值将返回到 SDK 的SingularLinkHandler,并显示在"deeplink "参数中。
要测试这种情况
- 从设备上卸载应用程序(如果当前已安装)。
- 重置Google 广告 ID (GAID)。
- 点击设备上的Singular 跟踪链接。确保 Singular 跟踪链接配置了深度链接值。
- 安装并打开应用程序。
专业提示:在使用不同软件包名称(如com.example.dev 而不是com.example.prod )的开发版本应用程序中测试深度链接或延迟深度链接时,请确保跟踪链接是专门为开发应用程序的软件包名称而不是生产应用程序的软件包名称配置的。此外,在设备上点击测试链接后,将开发构建直接安装到测试设备上(例如,通过 Android Studio 或 APK),而不是从应用商店下载生产应用。
归属应成功完成,DDL 值将传递给应用程序。
- 如果跟踪链接中包含passthrough (_p) 参数,SingularLinkHandler 的直通参数将包含相应数据。这对于从应用程序中的点击捕获附加数据非常有用。
- 要从跟踪链接 URL 中捕获所有查询参数,请在跟踪链接中附加_forward_params=2 参数。所有查询参数都将包含在SingularLinkHandler 的deeplink参数中。
- 如果应用程序已经安装,点击Singular链接将打开应用程序。Singular使用安卓应用链接技术来实现这一点。安卓操作系统将提供一个包含整个 Singular 跟踪链接的开放 URL。在 SDK 初始化过程中,Singular SDK 将解析 AndroidIntent ,提取深层链接和直通值,并通过SingularLinkHandler 返回。