本指南将引导您了解我们在 Singular Links 中最常见的深度链接和延迟深度链接(DDL)问题以及如何解决这些问题。
快速定义
| 术语 | 含义 |
|---|---|
| 深度链接 | 打开您应用内的特定屏幕或内容——仅在应用已安装的情况下有效。 |
| 延迟深度链接(DDL) | 先将新用户引导至 App Store 或 Play Store,然后在其安装后首次打开应用时将其路由到特定屏幕。 |
| 透传( _p ) | 一个通过链接将自定义数据传递到应用中的参数。 |
| 回退 / 着陆页 | 当无法打开应用时用户到达的位置。 |
| 社交着陆页 | 在将用户重定向到应用或应用商店之前显示的网页——常用于社交媒体广告系列。 |
开始之前:Universal Link 限制(iOS)
Universal Links 完全由 iOS 控制,而非 Singular。某些行为在链接以特定方式设置后就无法更改。提前了解这一点将为您节省时间:
- 如果应用已安装,iOS 将始终尝试直接打开它 ——在这种情况下,着陆页和回退 URL 将被跳过。
- 此行为无法事后更改。 使用深度链接创建的链接无法被强制改为将现有用户发送到 App Store。
- Apple 的 AASA 文件(Apple App Site Association)仅在应用安装或应用更新时刷新 ——不是即时刷新,也不是按需刷新。
- 重定向会破坏 Universal Links。 它们需要直接点击——不能有链接包装或中间重定向。
这对您意味着什么:
- 如果您需要一个始终跳转到 App Store 的链接,则必须从一开始就在不带深度链接的情况下创建它。
- 已在使用 Universal Link 的实时二维码或广告系列无法可靠地更改此行为。
-
社交着陆页仅在无法打开应用时才会出现。
常见问题 & 解决方法
可能的原因:
- 深度链接处理程序未在应用中完全实现
- 应用未读取来自 Singular SDK 的已解析深度链接
- DDL 的前提条件未完全满足
需检查的内容:
- 直接测试深度链接(不经过 Singular 链接)。
-
确认您的
SingularLinkHandler
已实现并正确读取:
- getDeeplink()
- isDeferred()
- getPassthrough()
- 验证 DDL 已启用 ( should_index_ddl = true )。
如果深度链接在直接测试时有效,但通过 Singular 链接时无效,那么问题几乎总是出在您应用的导航逻辑中——而非链接本身。
在 iOS 上(Universal Links): 这通常意味着 Universal Link 配置不完整。请检查:
- Team ID 和 iOS App Scheme 已在 Singular 中正确设置
- Associated Domains 已在 Xcode 中添加
- AASA 文件存在且包含正确的链接 ID
开发/QA 构建提示: 如果您在开发或 QA 构建上进行测试,您的设备可能尚未获得最新的 AASA 文件。请尝试在重启设备后重新安装应用。
在 Android 上: 这通常表明 intent filter 配置错误。请检查:
- App Links SHA256 指纹已正确设置(如果使用 App Links)
- assetlinks.json 可在您的 Singular 域名下访问
- intent filter 与 Singular Apps 页面上配置的内容一致
如果以上所有内容都没有问题但问题仍然存在,那么问题很可能出在您的深度链接处理程序逻辑中。
典型错误: "Safari 无法打开该页面,因为地址无效。"
发生这种情况的原因:
- Safari 在处理针对新用户的某些 Universal Links 方面存在已知限制
- _force_redirect=1 存在于链接中
这是预期行为 ,流程应按如下方式继续:用户看到错误 → 点击"确定" → 系统提示打开 App Store。
可能的原因: 透传参数( _p )未正确附加或 URL 编码。
最佳实践:
- 在将 JSON 值添加到链接之前,请始终对其进行 URL 编码
- 从以下位置读取透传数据: singularLinkParams.passthrough
透传数据在深度链接和延迟深度链接 两者 中均可用,因此如果缺失,问题几乎总是出在编码或检索方面。
发生这种情况的原因: 一旦 Singular 链接使用深度链接创建,如果应用已安装,它将始终尝试打开应用。这在操作系统级别受到控制:
- iOS:由 AASA 文件管理
- Android:由 SHA256 证书关联管理
事后无法覆盖此设置。 如果您想要一个始终将用户发送到商店的链接,则需要从一开始就在 不带 深度链接的情况下创建它。
根本原因: 设备上启用了 Apple 的 iCloud Private Relay。
它破坏 DDL 的原因: Private Relay 会在点击和安装之间更改 IP 地址,因此点击 IP 和安装 IP 不匹配——这会破坏概率归因。
建议:
- 测试时禁用 iCloud Private Relay
- 改用 Chrome 或其他非 Safari 浏览器进行测试
可能的原因: 您用于测试的追踪链接被双重 URL 编码,导致设备或 Singular 无法解析它。
发生这种情况的原因: 当包含深度链接参数(例如 _dl 或 _p )的 Singular Link 从某些环境(例如 Slack、电子邮件客户端或消息工具)复制时,URL 可能会被第二次编码。例如:
- 正确(单次编码): https://yourapp.sng.link/Xxxxx/yyyy?_dl=myapp%3A%2F%2Fstory&_p=%7B%22story_id%22%3A%22BananaStory%22%7D
- 无效(双重编码): https%3A%2F%2Fyourapp.sng.link%2FXxxxx%2Fyyyy%3F_dl%3Dmyapp%3A%2F%2Fstory%26_p%3D%7B%22story_id%22%3A%22BananaStory%22%7D
双重编码的链接将无法正确重定向,由此产生的安装或点击可能不会出现在 Singular 的归因日志中。
需检查的内容:
- 始终直接从 Singular Manage Links 页面复制追踪链接——而不是从可能已重新编码 URL 的 Slack 消息或其他工具复制。
- 验证链接以 https:// 开头(而非 https%3A%2F%2F )。如果您在 URL 的最开头看到百分号编码的字符,则整个链接已被双重编码。
- 使用 URL 解码工具(例如 urldecoder.org )检查链接是否解码为有效的 Singular Link 格式。
- 将链接解码一次,并使用生成的 URL 进行测试。
注意: _p (透传)参数的 值 仍应进行 URL 编码(例如,对于 {"story_id":"BananaStory"} ,应为 %7B%22story_id%22%3A%22BananaStory%22%7D )。只有外层 URL 结构本身 不 应被双重编码。
问题: 从 Samsung Internet 浏览器点击 Singular 链接的用户可能会被重定向到 Google Play Store——即使应用已安装且链接配置正确。
我们观察到的情况:
- Google Chrome: 链接按预期打开应用
- Samsung Internet: 同一链接却重定向到 Play Store
无论链接是直接在 Samsung Internet 中打开,还是嵌入网页并从中点击,都可能发生这种情况。
根本原因: Samsung Internet 有一个内置的隐私设置,默认阻止应用被外部打开。
- 启用时: 浏览器会阻止深度链接并回退到 Play Store
- 禁用时: 链接会正确打开应用,与 Chrome 的行为一致
我们已确认这是 浏览器设置问题,而非 Singular 配置问题 ——Android App Links 和 SHA-256 指纹均已正确设置,一旦关闭此设置,链接行为在各处都保持一致。
这对您意味着什么: 一些 Samsung 用户即使在应用已安装的情况下,也可能会落在 Play Store 上,具体取决于他们各自的浏览器隐私设置。这在我们这边无法通过编程方式控制。
如果您想引导受影响的用户: 您可以告知他们 Samsung Internet 可能默认阻止打开应用的链接,并且在 Samsung Internet 的隐私设置中启用"打开外部应用"(或类似选项)将恢复预期的应用内体验。
发生这种情况的原因: 当用户从某些社交媒体应用内浏览器中点击 Singular Link 时,浏览器可能会阻止标准的 iOS Universal Links 或 Android App Links。因此,应用可能会成功打开,但深度链接未传递给应用,导致用户落在默认主屏幕而非预期目的地。
为解决此问题,Singular 提供了 社交着陆页 ,这是一个中间着陆页,有助于保留深度链接并可靠地将用户路由到正确的应用内目的地。
支持哪些平台?
社交着陆页支持:
- iOS
- Android(Facebook、Facebook Messenger、Facebook Messenger Lite 和 Instagram 应用内浏览器)
-
合作伙伴链接,包括:
- Facebook Web
- TikTok Ads Web
- X (Twitter) Web
- Snapchat Web
如何启用社交着陆页?
在创建或编辑 Singular Link 时,在 Social Link Settings 下启用 Landing Page 。
此选项适用于:
- Custom Source 链接
- Mobile Web-to-App 链接
- 合作伙伴链接
注意: 如果您的链接已启用 iOS Landing Page,则 Android 支持也会自动启用——无需额外配置。
我应该何时使用社交着陆页?
每当您通过受支持的社交平台开展 web-to-app 广告系列时,请启用社交着陆页。它有助于确保用户被引导至预期的应用内内容而非应用的主屏幕,从而改善深度链接体验并减少由社交媒体应用内浏览器导致的失败深度链接。
故障排除检查清单(联系支持团队前请先尝试)
- [ ] 已直接测试深度链接,未经过 Singular
- [ ] 已测试已安装用户流程和全新安装流程
- [ ] 已验证 SDK 处理程序正确实现
- [ ] 已确认 iOS 和/或 Android 的平台前提条件
- [ ] 在 Safari 上测试 DDL 时已禁用 iCloud Private Relay
- [ ] 已确认未使用链接包装或 URL 缩短工具
- [ ] 已直接从 Singular Manage Links 页面复制追踪链接(而非从可能双重编码 URL 的 Slack、电子邮件或其他消息工具复制)
仍需帮助?联系支持团队
为帮助我们尽快进行调查,请包含以下内容:
- 您使用的完整追踪链接
- 设备类型、操作系统版本和浏览器
- 点击时应用是否已安装
- 预期行为 vs. 实际行为
- 截图(如果有)
- 一段简短的屏幕录制,显示:所使用的浏览器、对链接的点击以及由此产生的行为(应用打开、商店重定向、错误等)
预先提供这些信息有助于我们减少反复沟通并更快地为您解决问题。