本文为您介绍DataFinder上进行渠道追踪时,使用Alink的操作指导。
术语 | 概念说明 | 场景示例 |
|---|---|---|
智能短链 | 正常集成我们的客户端 SDK 后,通过创建 ALink 智能短链,可将尚未安装您应用程序的新用户,根据其设备系统自动跳转至对应的应用商店或落地页。用户的安装与激活行为将被准确归因到您设置的自定义媒体渠道,例如:官方网站、邮箱、短信或横幅页面等。 | 例如,小明是一家电子商城网站的营销人员,该商城拥有一款移动应用——Buyer Online。他计划开展一次官网 App 推广活动,目标用户是尚未安装该应用的网站访客。但由于无法事先判断用户使用的是 Android 还是 iOS 设备,且希望追踪此次推广带来的 App 安装和激活数据,因此面临挑战。 |
深度链接 | 深度链接是指通过手机系统级提供的能力将已安装App的用户从App端外直接带进端内的技术。通过这种操作,您可以为用户提供优质的用户体验,从而极大加强用户与应用的互动,提升用户的数据转化。 | 例如,快到双十一了,小明想针对已注册的老用户,做部分商城商品的促销活动,期望已注册老用户点击推广链接时可以直达App内的商品活动页面,增加购买转化 |
延迟深度链接 | 为了让所有用户(无论是现有用户还是新用户)都能有一样的深度链接体验,ALink提供了延迟深度链接解决方案,当新用户安装应用时,并在第一次打开时,ALink会为应用提供归因信息,包括链接上配置的任何参数,客户端开发者可以使用这些数据将新用户转至应用内的指定页面。 | 例如,小明关于双十一的短信商品营销活动成功地将老客户直达App内双十一商品营销页 |
ALink是集合智能短链、深度链接等能力的一个综合系统,使用ALink可为您的用户创造更好的体验,将其从自有媒体源(主要是私域流量,如:官网/社交App/短信/邮箱/横幅等)转换为您的移动应用用户,同时灵活构建数据报表,帮助您轻松玩转拉新、沉默用户唤醒、流失用户召回、用户裂变分享等多种营销场景。
下表罗列几个典型的使用ALink的场景类型和涉及的能力配置。
场景类型 | 目标说明 | 使用能力 |
|---|---|---|
拉新 | 使用一个智能链接做App用户私域拉新,期望:
|
|
促活 | 做App的再营销促活,期望:
|
|
延迟场景还原 | 期望知晓App安装用户的来源信息,并将其按照运营策略导航到某个app内页面 |
|
拉新 + 延迟场景还原 | 拉新场景,但是又希望实现延迟深度链接 |
|
促活 + 延迟场景还原 | 再营销促活场景,但是又希望实现延迟深度链接 |
|
当前仅APP端支持集成Alink。
ALink集成是需要多方人员协作的,主要涉及的角色与操作流程如下。
角色 | 主要操作流程 | DataFinder的参考文档 |
|---|---|---|
运营/产品/市场 |
| 当前文档 |
客户端研发 |
| |
前端研发 |
| 不涉及,业务代码开发 |
数据分析 | 根据上报的数据进行渠道追踪分析 |
集成ALink前,您需先创建推广渠道,用于后续创建ALink自定义链接时选用对应的推广渠道。创建推广渠道的操作详情请参见step1:配置与管理渠道。
登录并进入DataFinder控制台后,单击顶部导航 运营优化 > 渠道追踪,单击页面左侧菜单栏的“ALink” 进入ALink配置页面。
单击页面顶部的“新建模板”,在弹窗中配置ALink模板信息。
注意
一个应用只允许创建3个模版,使用3个子域。
参数 | 配置说明 |
|---|---|
模板名称 | 应该填写有意义的名称,仅支持中英文字符、数字、下划线 |
子域 | 私有化场景下,子域通常为数据上报地址,您可在下拉框中选择对应的子域。 |
参数 | 配置说明 |
|---|---|
Android地址 | 安卓移动设备点击时将跳转到该地址,通常是您的App下载地址,当然也可以填写成app的落地页地址 |
iOS地址 | iOS移动设备点击时将跳转到该地址,通常是您的app store地址,当然也可以是app的落地页地址 |
其它设备 | 除Android和iOS设备外,其它设备例如PC Windows/iPad点击时,将跳转到该地址,通常可设置为您的官网地址 |
参数 | 配置说明 | 配置示例 |
|---|---|---|
App Links | 需填写Android应用签名和应用包名,需保证与app的实际信息一致,可联系您的客户端开发人员获取。该项配置用于使用App Links的方式调起应用,仅针对安卓6及以上有效。 |
|
Universal Links | 需填写iOS的Team ID和Bundle ID,可联系您的iOS客户端开发人员获取。该项配置用于使用Universal Links的方式调起应用,仅针对iOS9及以上有效。 |
|
URI Scheme | Uniuersal Links或App Links无法成功调起时,将使用URI scheme做兜底调起应用,您可任意自定义URI scheme,但需保证与您的客户端配置的一致。 |
|
创建完模版后,可以基于此模版创建自定义链接。在Alink页面中,点击【新建链接】,即可在弹窗中配置自定义链接参数。
链接创建一共分三步,首先是:基础配置。
参数 | 配置说明 |
|---|---|
链接名称 | 自定义即可,仅支持中英文字符、数字、下划线,如: |
自定义渠道 | 选择您的推广渠道,仅支持自定义渠道,可在渠道管理里创建, 则会出现在下拉列表内,比如:短信/Email。 |
活动组 | 可选,选择您创建的活动组。 |
自定义参数 | DataFinder为您提供6个预置的自定义参数,用于各维度推广分析,您可以在这里选择并配置写死value,也可以动态拼接在后续生成的短链接上。 |
再营销活动 & 再互动窗口期 | 选择是否打开再营销活动开关,打开后:
|
默认情况下,这里的地址栏都会被之前的模版配置的所填充,您也可以在这里更新修改,之后便会在该链接中生效。
深度链接是再营销的一种技术手段,配置上需要在上述步骤中启动再营销开关之后,便可以在再营销查询面板上看该链接的再互动数据。
参数 | 配置说明 |
|---|---|
深度链接 | 更新自定义链接,设置深度链接参数,用于App页面直达。
|
由于设备系统唤起的限制,除了短信/Email等投放媒介可直接点击ALink链接唤起App,其他投放媒介一般都需要借助H5页来唤起,因此,最好配置H5落地页,提升各种场景的App唤起率。
注意
仅开启了在营销活动开关时,才涉及落地页的配置。
点击完成链接创建的最右侧,选择配置落地页,如下图所示:
点击配置落地页,如下所示:
参数 | 配置说明 |
|---|---|
落地页url | 填写App的推广H5落地页地址。 |
配置代码 | 是兼容多种社交App和浏览器,尽可能提升App唤起的Deep Link JS SDK,联系前端同学,将此段代码集成到上面填写的H5落地页中,其中几个参数解释如下:
|
以下为几个集成H5的特殊case:
H5页的button比较多,都需要绑定到Deep Link上,可以自己按照button规则重写代码,比如:
// 下面是旧的button绑定 var button = document.getElementById('downloadButton'); // 新的button绑定,绑定到class上(这只是其中一个例子,完全可以按照自己需要定义绑定) var button = document.querySelectorAll(".invokeButton");
不想强制绑定页面按钮,由自己的自定义点击事件中触发
在页面中引入JS SDK,示例:<script src="``https://lf3-data.volccdn.com/obj/data-static/data/dp/openapp/index.1.4.1.cn.js``"></script>(可以从配置落地页的代码框里拿到)
页面初始化,进行JS SDK的初始化工作,并将初始化实例绑定在全局(在代码中export 全局实例也是可以的)
<script> window.__Alink__ = new window.Alink({ token: '${token}', // 填写上图中的token .... // 其他配置参数 onReady: function () {}, // 空的onReady函数,必传 }) </script>
在自己绑定的点击事件中触发唤醒或下载,如下:
function buttonClick() { // 触发唤醒或下载操作 window.__Alink__.invokeOrInstall(); }
H5页面想自定义解析参数透传到端内,而不是默认拼接在链接的查询字符串上
目前,invokeOrInstall函数支持可选预置参数的入参,注意:参数的值一定要是字符串
伪代码样例如下:
// 调用示例 var myObj = {tr_shareuser: "syz", tr_param1: "ID123434", other: "extra"}; invokeOrInstall(myObj);
根据自己的需求,按照预置的6个自定义参数传入进去即可
好了,前置配置已完成,现在联系客户端开发同学做SDK集成开发
在onALinkData接口中,app开发者可以根据返回的数据来决定用户的接下来的动作,拿一开始小明的双十一商品页营销举例,使用配置的deeplink_value写下如下伪代码:
func onALinkData(alinkData map[string]string) { if alinkData['deeplink_value'] == '双十一' { navagateToDoubleElevenPage() // 将当前用户路由到双十一营销页面会场 } }
当然,返回的字段较多,您也可以直接使用其他字段来路由,比如:当前配置的推广活动链接名称:小明_双十一_商品营销,对应变量名:name。
上述步骤中,深度链接 - 参数配置 已经做了deeplink_value或者tr_param的配置,延迟深度链接完全可以沿用之前的配置,不做任何更新,当然,也可以换另外一个参数用于延迟唤醒。
如果,上面深度链接配置的落地页并且集成了Deep Link JS SDK,则可以通过启用剪切板来提升延迟唤醒的准确度
原理:H5上sdk会将用户点击信息存入设备剪切板,当安装App并打开后,客户端SDK读取以达到精准的场景还原
只需要把Deep Link JS SDK中配置enableClip设置成true即可,这个也需要客户端SDK对应开启配置,请参考下文
现在联系客户端开发同学做SDK集成开发:
在onAttributionData接口中,app开发者可以根据返回的数据来决定用户的接下来的动作,拿一开始小明的双十一商品页营销举例,使用配置的deeplink_value写下如下伪代码:
func onAttributionData(attributionData map[string]string) { if attributionData['deeplink_value'] == '双十一' { navagateToDoubleElevenPage() // 将当前用户路由到双十一营销页面会场 } }
当然,返回的字段较多,您也可以直接使用其他字段来路由,比如:当前配置的推广活动链接名称:小明_双十一_商品营销,对应变量名:name
这里列出做ALink联调可能遇到的问题,并给出自查步骤,如果自查步骤验证后无法解决,可以直接联系您的CSM反馈
唤起的前置条件:
可按照以下几点自查下:
且,当前App是手机中是已安装状态
https://${subdomain}.``volctracer.com/.well-known/apple-app-site-association, 看是否可以下载文件,以及文件中的内容是否符合预期和上述基本一致,提前检查监测面板和SDK对应配置是否正确,额外注意一点:ALink只会跳转形如:${domain}/a/${token}的链接,直接点击域名是不会唤醒的
唤起的前置条件:
唤起的前置条件:
如果保证上述前置条件满足,一般肯定会有再互动数据
如果唤起现象是正常唤起主页,但没有按预期跳转到指定页面,一般来说,是SDK没有正确回调onALinkData接口,因而也不会上报再互动事件数据
首先,SDK开启Debug日志并关闭加密,看下/service/2/alink_data接口请求和返回的结果是什么,要确保:SDK设置的appid和ALink所在的appid必须一致,否则接口会返回400,当然也不会回调
唤起的前置条件:
唤起的前置条件:
唤起的前置条件:
不需要,一旦正确集成了我们的Deep Link JS SDK,未安装的商店跳转都由落地页SDK控制,跳转的商店地址使用的是链接中配置的Android和iOS的URL,所以,这里注意点:Android和iOS URL栏最好填写下载地址,而不是另外一个落地页,下图补充下配置了落地页的跳转链路:
暂时无法在飞书文档外展示此内容
SaaS场景下由广告监测提供ALink短域名,并允许客户定义三个子域名,但在私有化场景下,由客户提供域名支持ALink链接生成,默认使用埋点日志上报域名
如果客户想增加新的短域名用于ALink使用,步骤如下:
上面两侧做好后,客户便可以在建立模版时选择该新的短域名,用于ALink链接创建,如下图所示:
客户的技术侧需要集成的sdk中增加新增的短域名,增加后再进行联调使用。
技术侧调整如下:
config.enableDeferredALink = YES;
默认,客户拿出去做投放的链接是平台上生成的ALink短链
但,因为某种原因,想使用自己的H5落地页链接做投放,但又想实现Deep Link和Deferred Deep Link
此时,只需要在Deep Link JS SDK上开启记录点击即可,样例代码:
<script src="https://lf3-data.volccdn.com/obj/data-static/data/dp/openapp/index.1.4.3.cn.js"></script> <script> var alink = new window.Alink({ token: '${token}', enableClip: false, //是否开启剪贴板(用于分享裂变场景,默认关闭) recordClick: true, // 是否记录点击,默认不需要开启 onReady: function () { // 执行初始化操作或者事件绑定 console.log('alink ready') var m = this; var button = document.getElementById('downloadButton'); if (button) { button.onclick = function () { m.invokeOrInstall(); }; } }, }) </script>
配置完成并投放出去后,虽然没有通过ALink链接进到落地页,当未安装App时,跳转到应用商店便会记录点击数据,用于延迟深度链接归因