最近更新时间:2023.08.07 11:34:26
首次发布时间:2022.06.08 20:44:42
广告监测模块为火山引擎增长分析产品增值功能项,需额外付费购买资源包,若有疑问请咨询您的客户经理。
ALink是集智能短链、深度链接与延迟深度链接等能力的一个综合系统
使用ALink可为您的用户创造极佳体验,将其从自有媒体源(主要是私域流量,如:官网/社交App/短信/邮箱/横幅等)转换为您的移动应用用户,同时灵活构建数据报表,帮助您轻松玩转拉新、沉默用户唤醒、流失用户召回、用户裂变分享等多种营销场景。
下表罗列几个典型的使用ALink的场景类型和涉及的能力配置:
场景类型 | 目标说明 | 使用能力 |
---|---|---|
拉新 | 使用一个智能链接做App用户私域拉新,期望:
|
|
促活 | 做App的再营销促活,期望:
|
|
延迟场景还原 | 期望知晓App安装用户的来源信息,并将其按照运营策略导航到某个app内页面 |
|
拉新 + 延迟场景还原 | 拉新场景,但是又希望实现延迟深度链接 |
|
促活 + 延迟场景还原 | 再营销促活场景,但是又希望实现延迟深度链接 |
|
ALink集成是需要多方人员协作的,参考下表:
角色 | 工作 | 资源 |
---|---|---|
运营/产品/市场 |
|
|
客户端研发 |
|
|
前端研发 | - App H5落地页集成Deep Link Js SDK | |
测试 | 根据产品或者运营期望的场景能力做测试验证 |
|
简单描述下:
运营、产品、市场同学确定使用ALink的实际场景,进而确定实际上需要ALink的能力,如果需要客户端研发介入,则需要和其确定App端内跳转行为,一般来说,需要确定具体的app路由参数,举个实际例子:
电子商城App做再营销商品营销,将点击ALink链接的用户带到商品页面,这时候,运营可以和客户端研发约定使用ALink的预置参数之一:tr_param1作为商品ID,将App唤起的客户基于tr_param1导航到对应的App商品页内
客户端研发基于ALink SDK文档进行集成,并根据之前约定的运营策略进行开发,自测完成后,交给测试同学做端到端联调验证,验证包括两个部分:
App跳转是否符合预期
面板监测数据是否符合预期
营销人员应该深知自己的使用场景,确定需要配置的具体步骤,下面分3个步骤循序渐进的介绍了每种能力的集成细节,同时,也明确指出了何时让客户端开发人员参与进来
注:下面三个大步骤按照先后顺序逐步推进,有配置的依赖关系
正常集成我们的RangersLog客户端SDK,创建ALink智能短链,将没有安装你的应用程序的新用户基于设备系统发送到相关的商店或网页,用户的安装激活就会被正确归因于你设置的自定义媒体渠道,比如:官方网站、邮箱、短信或横幅页等
参与者:市场运营或者产品即可
前置条件:已正确集成RangersLog SDK
花费时间:大概20min
具体例子:
小明是一家电子商城网站的营销人员,该商城有一个移动App,叫做:Buyer Online。
小明计划一项网站的App营销活动,目标是尚未安装该应用的网站用户,但小明并不知道哪些用户是Android或者iOS设备,且想看下网站营销活动带来的App安装激活数据。
为了解决这个问题,小明使用了ALink智能短链能力,并以二维码的形式将其投放在电子商城官网上。当商城用户扫描该二维码时,它会自动将他们引导到适当的应用商店或者落地页,进而可以很容易地安装应用程序。
ALink会对这些新安装进行归因,使小明能够在监测面板上查询该营销活动带来的转化数据。
通过ALink模板,您可以保存智能短链和深度链接的基本配置,在后续创建链接时可以快速复用模板配置,方便快捷地创建ALink链接。
模版名称:应该填写有意义的名称,仅支持中英文字符、数字、下划线
子域:仅支持英文小写、数字和"-",长度限制6个字符以内。子域通常设置为品牌名称以加强用户对您的链接的信任度,比如:京东 -> jd, 腾讯 -> tencent
Android地址:安卓移动设备点击时将跳转到该地址,通常是您的App下载地址,当然也可以填写成app的落地页地址
iOS地址:iOS移动设备点击时将跳转到该地址,通常是您的app store地址,当然也可以是app的落地页地址
其它设备:除Android和iOS设备外,其它设备例如PC Windows/iPad点击时,将跳转到该地址,通常可设置为您的官网地址
深度链接:这个在深度链接章节内介绍
注意:一个app只允许创建三个模版,请谨慎使用
创建完模版后,可以基于此模版创建短链接
链接名称:自定义即可,仅支持中英文字符、数字、下划线,如:双十一拉新
自定义渠道:选择您的推广渠道,仅支持自定义渠道,可在渠道管理里创建, 则会出现在下拉列表内,比如:短信/Email
活动组:可选,选择您创建的活动组
自定义参数:我们提供6个预置的自定义参数给到您,用于各维度推广分析
您可以在这里选择并配置写死value,也可以动态拼接在后续生成的短链接上,比如:将tr_shareuser拼接在短链接后,value写成每个地推人员的名字,${URL}?tr_shareuser=小王
之后,便可以在监测面板上分析每个地推人员带来的转化数据
再营销开关:由于是拉新,所以这里默认关闭即可
点击下一步,到智能短链,如下图所示:
默认情况下,这里的地址栏都会被之前的模版配置的所填充,但,也可以在这里更新修改,之后便会在该链接中生效
发送到测试的手机上,一定要是未安装app的新手机,
iOS点击链接,则跳转到itunes上,安装App并打开
Android跳转到Android应用下载地址,安装App并打开
然后,在监测面板上的推广活动上选择该链接名称,看报表是否有点击和激活产生,有的话,则测试成功,如下图所示:
深度链接是指通过手机系统级提供的能力将已安装App的用户从App端外直接带进端内的技术。
通过这种操作,您可以为用户提供优质的用户体验,从而极大加强用户与应用的互动,提升用户的数据转化。
基于此章节的步骤可创建ALink自定义链接,并通过系统地集成深度链接,将已安装App的用户直接发送至App内部的某个页面
参与者:
市场运营或者产品
H5前端开发(如果配置落地页的话需要)
iOS开发
Android开发
前置条件:已正确完成上一步智能短链的配置
花费时间:大概2hour
具体例子:
快到双十一了,小明想针对已注册的老用户,做部分商城商品的促销活动,期望已注册老用户点击推广链接时可以直达App内的商品活动页面,增加购买转化
为了达到这个目的,小明将包含ALink链接的营销内容通过短信发送至已注册老用户的手机上,当用户收到短信并点击链接时可以直接直达双十一商品活动页,如果是已经卸载的用户,应该直接跳转到app应用下载链接,促使老用户安装app
主要是更新模版的深度链接部分,如下图所示:
示例如下:
# 安卓应用签名 12:9C:23:45:1A:41:5C:7C:49:C7:E8:AB:33:9A:11:3D:32:3F:D7:F1:D9:DE:2B:5E:A3:BC:FA:36:91:AC:0F:84 # 安卓包名 com.game.player
示例如下:
# iOS Team ID ABC9T5ADEF # Bundle ID com.game.player
示例如下:
jd://product/1
配置好直接保存即可
深度链接是再营销的一种技术手段,配置上需要启动再营销开关(如下左图所示),之后,便可以在再营销查询面板上看该链接的再互动数据(如下右图所示):
再营销活动:开启即可,打开后,该链接的数据也将在在再营销活动分析中构建
再互动窗口:再营销广告的点击与转化的时间间隔小于该窗口期,才会被计为有效转化。例如,再互动窗口设置为10天,一个用户点击ALink调起应用,在第二天付费8元,在第12天付费20元,因为第12天的付费超出了再互动窗口,将不再计入这个再营销活动的转化
直接点击下一步,保存即可
当App唤醒后,客户端需要知道将用户导航到哪个页面,我们可以为链接设置深度链接内容参数(deeplink_value),而客户端根据此参数决定导航逻辑,设置如下所示:
市场或者产品和客户端开发一定要从长远的角度考虑和规划deeplink_value(和任何其他参数,比如:6个预置自定义参数(tr_shareuser/tr_admaster/tr_param1-4))的值,以最大限度地减少额外的应用程序更新。
拿小明的商城多个单一商品营销为例,给两类参数选择:
deeplink_value:将deeplink_value规划为商品的ID,当通过推广链接唤起App后,客户端基于此参数将用户导航至对应的商品页面,具体客户端操作的伪代码会在客户端SDK集成ALink章节详细说明;另需注意:这个深度链接最大20个字符;
tr_param1:将tr_param1规划为商品ID,拼接在短链上,示例:${URL}? tr_param1=product123456
由于设备系统唤起的限制,除了短信/Email等投放媒介可直接点击ALink链接唤起App,其他投放媒介一般都需要借助H5页来唤起,因此,最好配置H5落地页,提升各种场景的App唤起率
注:只有启用了再营销才允许单独配置落地页
落地页url:填写App的推广H5落地页地址
配置代码:是兼容多种社交App和浏览器,尽可能提升App唤起的Deep Link JS SDK,联系前端同学,将此段代码集成到上面填写的H5落地页中,其中几个参数解释如下:
Token: 当前链接的唯一标识,这个会在生成Deep Link JS代码的时候自动填充,可以不用管
enableClip:是表示是否开启剪切板,默认关闭,这个会在下面的延迟深度链接章节详细介绍
recordClick: 是否记录点击,默认情况下不需要开启,否则会重复记录点击数据,具体场景参考下面的FAQ章节:FAQ- 10:想用自己的H5链接投放
button:是触发唤醒或者下载app的按钮,需要做绑定,使用H5中button的id替换默认的downloadButton
注:私部环境下,ALink的域名是使用客户自己提供的,因此,生成的Deep Link JS SDK Script中会增加一个domain的配置,客户手动填写为当前ALink链接的域名(要带schema)即可,比如:https://alinkdemo.cn/
, 尾部的/一定要加
后续私有化390版本不需要客户手动输入,服务会自动填充并处理,减少手动输入有可能带来的问题
补充几个集成H5的特殊case:
// 下面是旧的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(); }
目前,invokeOrInstall函数支持可选预置参数的入参,注意:参数的值一定要是字符串
伪代码样例如下:
// 调用示例 var myObj = {tr_shareuser: "syz", tr_param1: "ID123434", other: "extra"}; invokeOrInstall(myObj);
根据自己的需求,按照预置的6个自定义参数传入进去即可
注:私有化3.11.0大版本才支持,SaaS已经支持
好了,前置配置已完成,现在联系客户端开发同学做SDK集成开发
Android集成:直接跳到Android集成ALink SDK
iOS集成:直接跳到iOS集成ALink SDK
在onALinkData接口中,app开发者可以根据返回的数据来决定用户的接下来的动作,拿一开始小明的双十一商品页营销举例,使用配置的deeplink_value写下如下伪代码:
func onALinkData(alinkData map[string]string) { if alinkData['deeplink_value'] == '双十一' { navagateToDoubleElevenPage() // 将当前用户路由到双十一营销页面会场 } }
当然,返回的字段较多,你也可以直接使用其他字段来路由,比如:当前配置的推广活动链接名称:小明_双十一_商品营销
,对应变量名:name
可以直接通过我们成熟的联调工具,使得整个流程先端到端串起来,步骤如下:
联调管理
, 添加联调设备(Android和iOS可以分别走一遍联调流程),如下图所示:设备名称:可任意自定义
设备操作系统:根据您实际添加的设备操作系统选择;
ios:国内和海外均使用idfa,可扫码采集获取
android:
国内:使用imei/meid/oaid,手机拨号输入“*#06#”,并按下拨号键,即可查看。(注意区分imei和meid,如有两个imei,为确保准确,可分别使用两个imei创建两个联调设备)
国外:使用Google Aid。
在联调设备列表中,找到您添加的联调设备,点击【开始联调】,选择【深度链接与延迟深度链接】,如下图所示:
链接类型:直接选择ALink
选择链接:选择刚创建的链接即可
选择设备联调已安装应用,这个是用于联调深度链接的
正式进入深度链接联调:确保您的设备已安装APP,使用任意可扫码的APP(推荐使用自带浏览器)扫码页面二维码,然后进入落地页,点击打开App,查看App调起和页面跳转是否符合预期,如下图所示:
查询是否正确上报再互动数据(App唤醒数据),在再营销活动分析页面查询,如下图所示:
注:
实时数据有5min的cache,联调后大概等个5min再查询
使用设备联调工具做唤起测试时,不会有点击产生,下面的真实场景测试是有的
上面,我们以设备联调工具走通了整个流程,但正式把链接投出前,我们需要完成真实场景的端到端联调
前置:保证设备上已经安装的App
点击ALink链接,进入真实的App H5落地页(如果是短信的话,可以立即唤起App)
点击H5落地页的按钮,查看App调起和页面跳转是否符合预期
查询数据:主要是点击和再互动数据
当使用短信/Eamil等可以通过点击ALink链接直接吊起已安装App的场景,是不会产生点击数据的
其他场景:未安装App的短信/Eamil用户或者需要借助H5承载唤起的场景都会有点击数据
为了让所有用户(无论是现有用户还是新用户)都能有一样的深度链接体验,ALink提供了延迟深度链接解决方案,当新用户安装应用时,并在第一次打开时,ALink会为应用提供归因信息,包括链接上配置的任何参数,客户端开发者可以使用这些数据将新用户转至应用内的指定页面。
参与者:
市场运营或者产品
H5前端开发(如果配置落地页的话需要)
iOS开发
Android开发
前置条件:已正确完成前两步智能短链和深度链接的配置
花费时间:大概2hour
具体例子:
小明关于双十一的短信商品营销活动成功地将老客户直达App内双十一商品营销页
然而,小明也知道,可能一些收到短信的人已经卸载了或者从未安装过这款商城应用Buyer Online。他希望这些潜在用户享受与现有用户相同的活动产品,以提高转化率和用户满意度。
为了达到这个目的,小明在和客户端开发人员的合作下,集成了ALink的延迟深度链接功能。收到短信的未安装用户在点击短信链接并安装后,第一次打开就会被直接带到双十一商品营销页
之前的章节3)深度链接 - 参数配置 已经做了deeplink_value或者tr_param的配置,延迟深度链接完全可以沿用之前的配置,不做任何更新,当然,也可以换另外一个参数用于延迟唤醒
如果,上面深度链接配置的落地页并且集成了Deep Link JS SDK,则可以通过启用剪切板来提升延迟唤醒的准确度
原理:H5上sdk会将用户点击信息存入设备剪切板,当安装App并打开后,客户端SDK读取以达到精准的场景还原
只需要把Deep Link JS SDK中配置enableClip
设置成true即可,这个也需要客户端SDK对应开启配置,请参考下文
现在联系客户端开发同学做SDK集成开发
Android集成:直接跳到Android SDK集成延迟深度链接
iOS集成:直接跳到iOS SDK集成延迟深度链接
在onAttributionData接口中,app开发者可以根据返回的数据来决定用户的接下来的动作,拿一开始小明的双十一商品页营销举例,使用配置的deeplink_value写下如下伪代码:
func onAttributionData(attributionData map[string]string) { if attributionData['deeplink_value'] == '双十一' { navagateToDoubleElevenPage() // 将当前用户路由到双十一营销页面会场 } }
当然,返回的字段较多,你也可以直接使用其他字段来路由,比如:当前配置的推广活动链接名称:小明_双十一_商品营销
,对应变量名:name
如果是刚卸载过的,记得把测试的Debug包渠道号或者版本换下,之后发正式包再改回来
设备联调未安装应用
,如下图所示:扫码进入联调落地页,然后点击按钮并且安装App
查看App安装后第一次打开的页面跳转是否符合预期
查询是否正确上报点击和安装激活数据:
再归因:卸载重装用户
新激活:完全的新安装用户
在再营销活动分析页面查询,如下图所示:
注:实时数据有5min的cache,联调后大概等个5min再查询
上面,我们以设备联调工具走通了整个流程,但正式把链接投出前,我们需要完成真实场景的端到端联调
前置:保证设备上未安装App的debug包(如果安装了先卸载,并把这个debug包换下渠道或者版本号)
点击ALink链接,进入真实的App H5落地页
点击H5落地页的按钮,并安装App,查看Appdi第一次打开的页面跳转是否符合预期
查询数据:主要是点击/再归因和新用户激活数据
TBD
这里列出做ALink联调可能遇到的问题,并给出自查步骤,如果自查步骤验证后无法解决,可以直接联系您的CSM反馈
唤起的前置条件:
当前App在手机中是已安装状态
正确按照深度链接配置
可按照以下几点自查下:
联调方式是什么?
直接扫码或者直接点击ALink短链是唤起不了的(在短信里是可以的),一般都是需要使用H5页面做承载,具体教程参考:深度链接 - 配置****落地页
通过设备联调工具来做联调的,那看下一步
如果是URI Schema联调:确保iOS或者Android都已经在App内配置好
Android参考文档:Android URI Schema配置指南
iOS参考文档:iOS URI Schema配置指南
且,当前App是手机中是已安装状态
如果是ALink的链接联调:
Android: 联调页主要是使用URI Schema唤起,所以需要看下APP内是否正确配置,参考Android URI Schema配置指南
iOS:联调页主要是用Universal Links唤起,参考文档:iOS Universal Links配置,检查点包括:
监测配置面板的BundleID和TeamID配置,访问:https://${subdomain}.``volctracer.com/.well-known/apple-app-site-association
, 看是否可以下载文件,以及文件中的内容是否符合预期
SDK的Universal Links集成是否正确
如果是使用短信来做真实场景测试联调:这里主要用到了Android的App Links和iOS和Universal Links
和上述基本一致,提前检查监测面板和SDK对应配置是否正确,额外注意一点:ALink只会跳转形如:${domain}/a/${token}
的链接,直接点击域名是不会唤醒的
唤起的前置条件:
当前App在手机中是已安装状态
正确按照深度链接配置
联调正常唤醒App,并到指定页面
使用设备联调工具不会产生点击数据
使用短信媒介直接点击ALink链接唤起的场景也不会有点击(此时,Http请求会被系统拦截,所以没有点击)
页面实时数据查询有5min的cache,因此联调后大概等个5min再查询
唤起的前置条件:
正确按照深度链接配置
联调正常唤醒App,并到指定页面
如果保证上述前置条件满足,一般肯定会有再互动数据
如果唤起现象是正常唤起主页,但没有按预期跳转到指定页面,一般来说,是SDK没有正确回调onALinkData接口,因而也不会上报再互动事件数据
首先,SDK开启Debug日志并关闭加密,看下/service/2/alink_data接口请求和返回的结果是什么,要确保:SDK设置的appid和ALink所在的appid必须一致,否则接口会返回400,当然也不会回调
唤起的前置条件:
联调手机未安装App包
正确按照延迟深度链接配置
如果是Android,要确保开启延迟深度链接开关,iOS660及以后版本也增加了开关,和Android对齐,升级时注意启用开关
如果不是新手机,确保每次安装的Debug包的渠道或者版本号换下,否则不会产生安装激活数据,就不会有归因,当然不会回调onAttributionData接口
开启Debug日志,并关闭加密,看下接口/service/2/attributuion_data的请求和响应数据,并联系CSM内部提oncall查看
唤起的前置条件:
联调手机未安装App包
正确按照延迟深度链接配置
按预期正确延迟唤醒App,导航到指定页面
确保跳转逻辑是否在onAttributionData里做的
如果不是,业务里一般会将参数临时保存,在跳转完成后要及时清理这个临时数据,否则每次打开都会跳转
唤起的前置条件:
联调手机未安装App包
正确按照延迟深度链接配置
按预期正确延迟唤醒App,导航到指定页面
再归因数据:老设备的卸载重装数据,新用户激活:完全的新设备安装激活数据
一般确保前置条件满足,肯定会有激活数据产生,可以看下是否是实时查询的5min缓存导致
不需要,一旦正确集成了我们的Deep Link JS SDK,未安装的商店跳转都由落地页SDK控制,跳转的商店地址使用的是链接中配置的Android和iOS的URL,所以,这里注意点:Android和iOS URL栏最好填写下载地址,而不是另外一个落地页,下图补充下配置了落地页的跳转链路:
暂时无法在飞书文档外展示此内容
SaaS场景下由广告监测提供ALink短域名,并允许客户定义三个子域名,但在私有化场景下,由客户提供域名支持ALink链接生成,默认使用埋点日志上报域名
如果客户想增加新的短域名用于ALink使用,步骤如下:
客户侧:申请新的短域名,将其按照埋点日志域名步骤转发到私部机器上,一般做A记录解析
Rangers侧:增加ALink短域名解析和配置
上面两侧做好后,客户便可以在建立模版时选择该新的短域名,用于ALink链接创建,如下图所示:
客户的技术侧需要集成的sdk中增加新增的短域名,增加后再进行联调使用。
技术侧调整如下:
iOS端:配置Universal Links时domain配置,在原来的ALink域名处增加新的短域名;(文档中客户端SDK**集成ALink-iOS集成-1.2Universal Links)
Android端:配置App Links时domain配置,在原来的ALink域名处增加新的短域名;(文档中客户端SDK**集成ALink-Android集成-1.2配置App Links)
H5端:Deep Link JS SDK Script中domain配置,在原来的ALink域名处增加新的短域名。(文档中集成步骤-2.深度链接-配置步骤-4;3.延迟深度链接-配置步骤-2)
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时,跳转到应用商店便会记录点击数据,用于延迟深度链接归因