AppsFlyer 研究(四)OneLink Deep Linking Guide
一、简介深度链接是指当用户打开移动应用时向其提供个性化的内容,或将用户带到应用内特定位置的操作。通过这种操作,您可以为用户提供优质的用户体验,从而极大加强用户与应用的互动。两种深度链接类型由于用户不一定安装了移动应用,所以有两种深度链接类型:深度链接(Deep Linking)向已经安装了移动应用的现有用户直接展示个性化内容。延迟深度链接(Deferred Deep Linking)当新用户或已卸
一、简介
深度链接是指当用户打开移动应用时向其提供个性化的内容,或将用户带到应用内特定位置的操作。通过这种操作,您可以为用户提供优质的用户体验,从而极大加强用户与应用的互动。
两种深度链接类型
由于用户不一定安装了移动应用,所以有两种深度链接类型:
-
深度链接(Deep Linking)
向已经安装了移动应用的现有用户直接展示个性化内容。
-
延迟深度链接(Deferred Deep Linking)
当新用户或已卸载的用户完成安装打开移动应用时向其展示个性化内容。
借助独特的设备检测追踪链接 - OneLink™,AppsFlyer 同时支持深度链接和延迟深度链接两种方式。
设置深度链接之前,需要正确设置OneLink。
深度链接和 OneLink
OneLink 在广告和移动应用之间起到“桥梁”的作用。它可以启动应用并向移动开发者提供定制用户体验所必需的数据。要想实现这一点,移动应用在开发时必须具备深度链接功能和基础架构。
深度链接和访客找回
深度链接和 OneLink 是广告主用于与现有或曾经的用户进行再次互动(例如:访客找回)的主要工具。 关于访客找回的相关内容请参阅“访客找回指南”,相关操作在深度链接之后执行。
二、设置 深度链接的方法
为了覆盖更全面的用户群体,可以选择多种深度链接方法。 使用的方法依移动平台(iOS/Android)以及用户的系统版本而定。
方法 | 描述 | 适用于 |
---|---|---|
URI Scheme | 直接打开应用并重定向至URL 参数中指定的af_dp \* *行为路径 | Android 所有版本(可以选择不包括 Android 6 及更高版本)iOS 8 及更低版本iOS 9 及更高版本(当使用的浏览器或移动应用不支持通用链接Universal Links时) |
通用链接Universal Links | 直接打开移动应用的特定页面。 需要移动开发者建立一个逻辑,根据 OneLink URL 参数进行重定向或者提供定制内容,例如 af_dp 或 af_sub1 | iOS 9 及更高版本 |
App Links | Android 6 及更高版本 |
1、URI Scheme
(1) 、URI Scheme 介绍
URI Scheme本质上是URLs,用户点击链接后直接引导用户进入移动应用的特定页面。 例如: greatapp://
Apple 和 Google 对于应用Scheme都不强制实施唯一命名。 为您的品牌选择一个独特的Scheme名称,以避免不同应用之间的Scheme发生冲突。
可以使用Scheme来创建较长的路径,自动将用户链接到应用内特定页面。 例如: greatapp://vintage_items/cars/flying_delorean
如果某应用的用户在浏览器的 URL 框中输入Scheme路径,会启动应用并进入具体页面。 AppsFlyer 使用 af_dp
参数,通过 OneLink URL 提供相同的 URI Scheme深度链接功能(必须encode)。
示例:
https://go.onelink.ly/qwerty?af_dp=greatapp%3A%2F%2Fvintage_items%2Fcars%2Fflying_delorean
重要提示!
为了使 OneLink 能够同时适用于 iOS 和 Android,必须为两个平台定义相同的Scheme。 请参阅 iOS 和 Android 的相关说明。
(2)、设置 URI Scheme
在应用的代码中设置URI Scheme,如下所示: 在 AppsFlyer 的 OneLink 模板页面也需设置相同的URI Scheme。
Android 所有版本
在应用的 Manifest 文件中,给相关的行为添加以下意图过滤器 (Intent-filter):
<activity android:label="@string/app_name" ….. ><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="your unique scheme" /> </intent-filter></activity>
示例
<activity android:label="@string/greatapp" ….. > <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="greatapp" /> </intent-filter> </activity>
iOS 8 及更低版本
-
在 Xcode 中,打开应用信息 plist 文件。
-
添加 URL 类型条目
-
展开 URL 类型和“item 0”行,添加一个新行。
-
为应用添加一个唯一的标识符作为 URL 标识符。 最好选择一个不太可能被其他应用使用的独特标识符。
-
右键点击 URL 标识符,选择“添加行”,然后选择 URI Scheme并将 Item 0 的值设置为您特有的Scheme。
设置OneLink模板:
在 AppsFlyer 控制面板中,找到深度链接自定义 URL 方案(iOS8/Android 5 及更低版本)下面的 OneLink 配置界面,填入已定义的Scheme(例如,"scheme://")。
(3)、测试 URI Scheme
-
在您的设备上安装并运行应用。
-
打开默认浏览器,在地址栏中输入您的URL Scheme(例如,"greatapp://")。
-
移动应用按默认行为启动。
2、通用链接
(1)、通用连接介绍
在 iOS 9 及更高版本中,Apple用通用链接替代 URI Scheme作为主要的深度链接方法。 这种方法的安全性更高,因为其他应用无法获取通用链接。 用户体验也更好,因为可以直接启动iOS应用,不会将用户先重定向至浏览器。
本质上,通用链接的方法是将iOS移动应用和相关的网站/域连接,例如 AppsFlyer 的 OneLink 域 (xxx.onelink.me)。 要实现这一点,需要执行以下步骤:
-
配置 OneLink 子域并链接到移动应用(通过托管 ‘apple-app-site-association’ 文件 - AppsFlyer 会处理好这一部分)
-
配置移动应用,注册已认证的域。
完成以上步骤后,每当用户点击一个已授权域的 URL 时(设备上已安装了该应用),iOS 会启动相关联的应用并打开相关页面。
建议
即使对于 iOS 9 以上的版本,仍然有必要实施 URI Scheme,因为有些浏览器或应用会不支持通用链接,仍需要使用URI Scheme的方法。
(2)、配置 OneLink 子域并链接到应用
-
要完成这个步骤,开发者必须从 Apple Developer 门户网站(‘View Account >> Account Summary’ 下面)获取 ‘Team ID’(如果是多个 Team ID,则为 ‘App Prefix’)。
-
在应用的 AppsFlyer 控制面板/设置中,点击‘配置 OneLink’>>在‘iOS’ 下面勾选‘启用Universal Links支持深度链接’复选框,填入在第1步中获取的Team ID/App Prefix。
-
选择一个OneLink子域,将其填入额外配置下面的深度链接(iOS9/Android6或以上版本)子域字段中。
(3)、配置移动应用,注册已认证的域
-
在 Apple Developer 门户网站的 Identifiers >> App IDs 下面,选择应用并启用关联域 (Associate Domain),然后生成应用的 Provisioning 文件,下载这些文件并双击安装到 Xcode 上。
-
在“功能”的Xcode中,启用已关联的域,填入在“OneLink 配置”(AppsFlyer 账户)中配置的 OneLink 域。
注意
该域必须以“applinks:”为前缀。例如:applinks:mydomain.onelink.me
3、Android 应用链接
三、深度链接的备选方案
深度链接可以提供优质的用户体验,失效的深度链接绝对不会!多种原因可导致深度链接失效,如配置错误或媒体平台上面的变化。
因此,我们强烈建议,在为深度链接创建Onelink的时候,同时做好备选方案。
af_ios_url和af_android_url可以将点击了Onelink的用户导向着陆页,而不是应用商店。但是当Onelink上面加入了深度链接,会优先打开深度链接的页面。
这意味着当使用深度链接的时候,可以同时放心加这些参数。如果深度链接正常工作,就可以让用户进入到相关页面;如果因为某些原因导致深度链接失效时,用户就会进入到设定的着陆页,比如商店页或主页,而不是直接导致页面崩溃。
四、测试和使用深度连接
1、建立 OneLink URL
您可以基于OneLink模板创建和使用OneLink URL,数量不限:
-
进入相关应用的控制面板(例如,在 OneLink 相应模板中配置的一个应用)。
-
点击Link Management, 然后点击“添加自定义跟踪链接
-
选择跨平台Onelink
-
在总配置中填写链接名称
-
填写相关归因参数,如媒体平台名称、广告系列、广告组或其他子参数。
-
如要启用再营销,开启再营销广告活动按钮
-
根据需要,选择是否添加深度链接(deeplink) 或重定向参数
-
根据需要,可在高级部分自定义点击归因窗口期。
-
根据需要,可以在跟踪链接中设置固定的安装成本。
-
点击创建链接,复制该链接并将其用于您自己的媒体或任何其他相关媒体渠道
2、测试 OneLink URL
(1)、针对URI Scheme,测试直接深度链接
-
在您的设备(或 iOS 中的 iPhone 模拟器)上安装并启动应用。 [如果刚刚安装应用,则将应用置于后台,然后再返回前台,重复两次或更多。]
-
为应用准备一个 OneLink URL,应包含 af_dp 参数并且具有有效的方案路径(例如 "greatapp://cars")。
-
在测试设备上,将该链接粘贴到电子邮件、便签、短信、二维码生成器等程序中。
-
点击链接。
预期的结果:应用应按照 af_dp 打开指定的页面。
(2)、测试通用链接或 Android 应用链接
-
在您的设备(或 iOS 中的 iPhone 模拟器)上安装并启动应用。 [如果刚刚安装应用,则将应用置于后台,然后再返回前台,重复两次或更多。]
-
为应用准备一个 OneLink URL,应包含 af_dp 参数(或另一个参数)并且具有有效的方案路径(例如 "greatapp://cars")。
-
iOS - 将该链接粘贴到便签、iMessage 中,或使用 Apple Mail 客户端粘贴到电子邮件中。 Android - 将该链接粘贴到电子邮件、Chrome、短信、二维码生成器等程序中。不要使用 Slack、Facebook 或任何其他社交应用点击该链接!
-
点击链接。
预期的结果:直接打开应用,不会通过浏览器进行重定向。可以提取 af_dp 参数,用户按照 af_dp 的值被重定向至应用内指定页面。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)