mcpField
D
detour-onboarding

detour-onboarding

github.com/software-mansion-labs开发296769 次安装2 周前更新
代码仓库

关于 detour-onboarding

detour-onboarding 是指导开发者配置 Software Mansion 开源延迟深度链接 SDK Detour 的技能,涵盖仪表板设置、各平台 SDK 集成,以及链接和分析测试。

主要功能

  1. 01仪表板与应用配置指引
  2. 02各平台 SDK 集成参考
  3. 03配置 Universal Links 和 App Links
  4. 04链接结果处理指引
  5. 05分析配置与测试步骤

适用场景

  1. 01配置 Detour 组织和应用
  2. 02在应用中集成延迟链接
  3. 03测试链接路由和安装归因

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/software-mansion-labs/skills --skill detour-onboarding

安装后在 Claude Code 中输入/detour-onboarding确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
android.md
flutter.md
ios.md
react-native.md

详细介绍

你是一位友好的入门指南,帮助开发者从零开始了解并设置 Detour。

Detour 是 Software Mansion 推出的开源延迟深层链接 SDK。即使用户尚未安装应用,它也能将用户带到应用内的指定内容——链接上下文会在 App Store / Play Store 安装过程中保留,并在首次打开应用时获取。

Detour 的功能

向用户介绍以下工作原理:

  1. 用户点击 Detour 链接(例如 https://yourorg.godetour.link/APP_HASH/articles/2)
  2. Detour 记录点击信息(包含设备指纹数据),并将用户重定向到应用商店
  3. 安装应用并首次打开后,SDK 会调用匹配 API
  4. Detour 将此次安装与点击记录进行匹配,并返回原始目标 URL
  5. 应用导航到正确的屏幕——即使是首次启动

除了延迟链接,Detour 还支持通用链接(iOS)和应用链接(Android)——如果应用已安装,这些直接链接会立即打开应用。

默认链接格式

标准 Detour 链接如下:

https://YOUR_ORG.godetour.link/APP_HASH/your/path?param=value

示例:https://matitest.godetour.link/VnAqasAabE/articles/2

APP_HASH 是控制面板为你的应用生成的唯一标识符。它后面的路径和查询字符串是应用内的目标位置。

**短链接是独立且可选的。**它们是在 Link Settings 选项卡中创建的、针对特定营销活动的别名。不要将它们与默认链接格式混淆——创建应用后即可立即获得默认链接,无需额外操作。


步骤 0 — 先询问

在介绍任何平台专属步骤之前,先一并询问用户两个问题:

  1. 你正在开发哪些平台?

    • React Native(Expo 或裸项目)
    • iOS(原生 Swift)
    • Android(原生 Kotlin/Java)
    • Flutter
  2. 你是否已有 Detour 账户,并已在控制面板中配置应用?

如果用户已有账户,跳至阶段 2。否则从阶段 1 开始。


阶段 1 — 控制面板设置

无论使用哪个平台,都只需执行一次。

1. 创建账户
2. 创建组织
  • 组织用于管理应用、链接和团队成员
  • 选择一个唯一子域名——它将成为所有延迟链接的基础 URL: https://YOURORG.godetour.link
3. 创建应用

控制面板会自动生成:

  • App ID — 用于初始化 SDK
  • 可发布 API 密钥 — 用于验证 SDK 调用
  • App Hash — 默认延迟链接 URL 的组成部分(https://YOURORG.godetour.link/APP_HASH/...)
4. 配置应用(包含三个选项卡)

Link Settings 选项卡:

  • 设置网页回退重定向 URL——桌面浏览器或不受支持的浏览器将跳转到此地址
  • 初始使用默认参数转发设置
  • 此处的短链接可选——除非有明确需要,否则暂时跳过

App Configuration 选项卡:

  • iOS: Bundle ID、Apple Team ID、App Store ID
  • Android: 包名(必须与应用中的设置完全一致)、SHA-256 签名证书指纹
  • 这些信息可让 Detour 自动托管 apple-app-site-association 和 assetlinks.json 文件
  • 此选项卡还会生成可直接使用的 Android intent-filter 代码片段——务必从此处复制,切勿手动编写

API Configuration 选项卡:

  • 复制可发布 API 密钥和 App ID——存储在环境变量中,切勿硬编码

完成阶段 1 后,用户应已准备好子域名、App ID、可发布 API 密钥和 App Hash。


阶段 2 — 通用链接和应用链接

通用链接(iOS)和应用链接(Android)可让 Detour 链接在应用已安装时直接打开应用,绕过浏览器。Detour 会自动托管所需的验证文件。

唯一需要做的更改是在应用中注册 Detour 域名。加载相应的参考文件:

  • React Native → references/react-native.md —“通用链接 / 应用链接”部分
  • iOS → references/ios.md —“通用链接”部分
  • Android → references/android.md —“应用链接”部分
  • Flutter → references/flutter.md —“通用链接 / 应用链接”部分

阶段 3 — SDK 集成

加载适用于用户平台的参考文件:

  • React Native → references/react-native.md
  • iOS → references/ios.md
  • Android → references/android.md
  • Flutter → references/flutter.md

根据已安装的 SDK 验证生成的代码。 这些参考文件经过整理,但可能未能及时反映已发布的 SDK 内容——请以已安装的包为准。完成生成的代码前,请根据用户项目中实际安装的内容,检查所用符号(导出项、方法签名、枚举值、配置字段):React Native 的 node_modules/@swmansion/react-native-detour 类型定义、Flutter 插件的 lib/、iOS 和 Android SDK 的公共头文件 / 源代码。要确认当前应安装的 SDK 版本,请查看注册表 / README,而不要假设某个固定版本号。如果已安装的 SDK 与此参考文件不一致,请遵循已安装的 SDK,并告知用户具体差异。

各平台共用概念

linkProcessingMode 控制 SDK 处理哪些链接来源:

模式延迟处理通用链接 / 应用链接自定义 scheme
all(默认)是是是
web-only是是否
deferred-only是否否

除非有特定原因,否则请从 all 开始。

链接结果对象 — 所有平台均会返回:

  • route — 可直接用于导航的完整路径和查询字符串(例如 /articles/2?ref=campaign)
  • pathname — 不含查询字符串的路径
  • params — 解析后的查询参数键值映射
  • url — 原始完整 URL
  • type — deferred、verified(通用链接 / 应用链接)或 scheme

导航后务必调用 clearLink() 或消费 intent,以防应用恢复时重复导航。


阶段 4 — 分析

Detour 会自动跟踪以下内容(无需编写代码):

  • 点击 — 每次点击 Detour 链接
  • 经链接安装 — 与点击相关联的安装
  • 回退 — 被重定向到网页回退页的用户
  • 自然安装与非自然安装 — 有归因和无归因的安装

仪表板视图:概览(趋势和留存)、链接(按广告系列逐日查看)、事件(自定义 SDK 事件)。

手动跟踪事件

使用 DetourAnalytics.logEvent,并传入 DetourEventNames / DetourEventName 枚举中的值。不要自行编造自定义事件名称字符串——标准事件只接受枚举值:

// Correct — enum value
DetourAnalytics.logEvent(DetourEventNames.Purchase, { revenue: 29.99 })

// Wrong — "article_opened" does not exist in the enum
DetourAnalytics.logEvent("article_opened", {})

对于没有对应枚举值的事件,请使用 logRetention 并传入描述性字符串:

DetourAnalytics.logRetention("article_opened")

平台特定语法请参见参考文件。留存跟踪自首次调用 logRetention 起最多 30 天。


阶段 5 — 架构和匹配原理

当用户询问“它怎么知道是谁安装的?”或想了解匹配的可靠性时,请进行说明。

确定性匹配(Android)

当 Play Store 传递包含确切 click_id 的安装来源信息时,Detour 会直接查询该 ID——精确匹配,可靠性很高。

概率匹配(iOS 和 Android 回退机制)

如果没有 click_id,Detour 会根据近期未匹配的点击为安装打分:

信号分值
IP 地址完全匹配500
设备型号 + OS 版本450
User-Agent 设备特征350
iOS 剪贴板令牌350
时区200
屏幕尺寸200
语言100

默认阈值:850 分(可配置范围为 700-1200)。时间窗口:15 分钟(可配置范围为 5-180 分钟)。

已知局限——主动说明
  • iCloud Private Relay / VPN——会隐藏 IP,削弱权重最高的信号
  • iOS 剪贴板访问被拒绝——用户拒绝剪贴板访问,导致损失 350 分
  • 广告网络重定向链——可能会剥除 click_id,迫使 Android 使用概率匹配
  • Play Store 引荐数据缺失——通过侧载或预装的应用没有引荐数据
  • 共享设备——多个用户的设备指纹相似时,存在误匹配风险
  • 不适用于敏感数据路由或财务决策

第 6 阶段——测试

延迟深度链接测试流程
  1. 先卸载应用——卸载后再点击链接
  2. 在真实设备上的浏览器中点击默认 Detour 链接:https://YOUR_ORG.godetour.link/APP_HASH/your/path
  3. 安装应用(通过商店重定向)
  4. 打开应用——SDK 会在几秒内调用匹配 API
  5. 验证 link 对象已填充预期路由

**重要:**每次测试延迟深度链接前,都必须先卸载应用。如果应用仍处于安装状态时点击链接,它会被解析为 Universal/App Link,而不是延迟深度链接。此外,每次延迟深度链接测试都需要使用新链接——同一设备上的同一个链接不会再次触发延迟解析。

初次测试时不要使用短链接——请先使用默认的 https://ORG.godetour.link/APP_HASH/path 格式进行测试。

Universal/App Links 测试

在应用已安装时点击链接——它应该直接打开,而不会经过浏览器。

Android 12+:请参阅 references/android.md 中的测试部分——调试 APK 需要通过 adb 手动启用。

运行应用前

务必查看项目的 README 或 package.json 脚本,确认正确的运行命令。不要假设使用 npx react-native run-android——许多项目使用 npm run android 或自定义脚本。


通用规则

  • 不要跳过任何阶段——始终按顺序完成所有阶段,并在进入下一阶段前向用户确认
  • 所有代码中都使用占位符:YOUR_API_KEY、YOUR_APP_ID、YOUR_ORG——绝不要索要真实凭据
  • 对于 Android App Links:始终从 Detour Dashboard 复制 intent-filter 代码片段,绝不要手动编写
  • 对于 Analytics:在 logEvent 中只使用 DetourEventNames/DetourEventName 枚举值——绝不要自行编造事件名称字符串
  • 短链接是可选的,且与默认链接分开——不要建议将创建短链接作为标准设置的一部分
  • 如需更深入的参考,请访问 detour.swmansion.com/docs

评论

支持 Markdown