adjust-icon

智能横幅 SDK 动态深度链接

深度链接能将用户导向应用中的特定事件或页面。此功能可确保用户被直接转到他们在智能横幅中看到的内容,打造流畅无缝的体验。智能横幅 SDK 支持纯字符串动态深度链接和包含占位符的深度链接模板。占位符由 SDK 使用深度链接上下文或网页 URL 的 GET 参数填充。

在智能横幅 SDK 中配置动态深度链接的方法有两种:

使用这些函数来配置您的动态深度链接并设置动态上下文。

您必须使用setAndroidDeepLinkPathsetIosDeepLinkPath setter 函数为目标移动平台配置深度链接路径。这些函数接受一个字符串值,该值可以是绝对路径也可以是模板路径。

要设置深度链接路径,请使用各平台的事件或视图相关路径调用AdjustSmartBanner.setIosDeepLinkPathAdjustSmartBanner.setAndroidDeepLinkPath函数。

AdjustSmartBanner.setIosDeepLinkPath(
"products/jeans/?product=cool-jeans&promo=spring_10",
);

深度链接路径可以包含任意数量的位于大括号内的参数。

AdjustSmartBanner.setIosDeepLinkPath(
"products/{category}/?product={product_id}&promo={promo}",
);

智能横幅 SDK 会使用上下文中的值替换这些参数:

您可以用包含上下文值键值对的对象调用AdjustSmartBanner.setContext函数来添加动态深度链接上下文。

AdjustSmartBanner.setContext({
category: "jeans",
product_id: "cool-jeans",
promo: "spring_10",
});

智能横幅 SDK 会把所有能与上下文键匹配的占位符替换为对应的上下文值。

在此示例中,生成的 iOS动态深度链接路径为products/jeans/?product=cool-jeans&promo=spring_10

AdjustSmartBanner.setIosDeepLinkPath(
"products/{category}/?product={product_id}&promo={promo}",
);
AdjustSmartBanner.setContext({
category: "jeans",
product_id: "cool-jeans",
promo: "spring_10",
});

在此示例中,产生的安卓动态深度链接路径为products/jeans/?product=&promo=

AdjustSmartBanner.setAndroidDeepLinkPath(
"products/{category}/?product={product_id}&promo={promo}",
);
AdjustSmartBanner.setContext({ category: "jeans" });

在此示例中,对setContext的第二次调用会覆盖第一次调用的上下文。得出的动态深度链接路径为products//?product_id=blue_jeans,因为不匹配的{category}参数已被空白字符串替换。

AdjustSmartBanner.setIosDeepLinkPath(
"products/{category}/?product={product_id}",
);
AdjustSmartBanner.setContext({ category: "jeans" });
AdjustSmartBanner.setContext({ product_id: "blue_jeans" });

在本示例中,上下文已正确设置,生成的动态深度链接路径为products/shoes/?product=red-sneakers

AdjustSmartBanner.setIosDeepLinkPath(
"products/{category}/?product={product_id}",
);
AdjustSmartBanner.setContext({
category: "shoes",
product_id: "red-sneakers",
});

使用 GET 参数作为上下文

如果深度链接路径中的任何参数在context中缺失,SDK 就会尝试使用当前页面 URL 中的参数。

在以下示例中:

  • category参数使用setContext setter 方法中提供的值填充。
  • 当前页 URL 为https://my-shop.com/spring-promo?product_id=cool-jeans&promo=spring_10

SDK 会从页面 URL 中读取product_idpromo的值。产生的动态深度链接路径为products/jeans/?product=cool-jeans&promo=spring_10

AdjustSmartBanner.setAndroidDeepLinkPath(
"products/{category}/?product={product_id}&promo={promo}",
);
AdjustSmartBanner.setContext({ category: "jeans" });

在以下示例中:

  • product_id参数由setContext setter 设置。
  • 当前页 URL 为https://my-shop.com/spring-promo?product_id=cool-jeans&promo=spring_10

product_id值由setContext setter 设置,因此 URL 参数中的值会被覆盖。产生的动态深度链接路径为products/jeans/?product=floral-jeans&promo=spring_10

AdjustSmartBanner.setAndroidDeepLinkPath(
"products/jeans/?product={product_id}&promo={promo}",
);
AdjustSmartBanner.setContext({ product_id: "floral-jeans" });