站长平台上线APP信息数据提交工具 附APP调起SDK…
2019-04-08 10:03:37来源: 站长之家 阅读 ()
站长之家(Chinaz.com)12月30日消息 12月24日,百度站长平台举办了百度万物归移高端沙龙,会上介绍了APPLINK项目,并推出《百度APP调起SDK详细设计标准文档》(见附件)。此外,百度站长平台还上线了APP信息数据提交工具:APP属性工具和APPLINK数据提交工具。
APP属性工具截图:
APPLINK数据提交示意图:
附件:《百度APP调起SDK详细设计标准文档》
在Android和IOS的设备上的某些浏览器,可以通过deeplink的链接调起相应的App,调起App之后,需要对调起的时间长度进行统计,以及从搜索结果页到App内的用户在调起后在App中的停留时间,并通过这些统计数据来分析,从搜索结果分发的流量是否能够给用户带来更好的体验。
调起的流程
调起的整个过程简单的来说,就是从网页中点击调起的按钮,然后打开对应的App。
1、前端页面中,将点击的Url设置成调起的Uri;
2、打开对应的应用,应用解析相应的调起Uri参数;
3、SDK获取调起的统计参数,SDK发送统计字段。
SDK设计
SDK的功能
产品的需求是统计App从网页中点击到App打开的调起时间,以及调起之后用户在App中停留的时间。SDK的功能是统计调起时间和用户在调起的App中的停留时间。
调起时间的实现方式和计算规则。用户点击Web页面中的按钮,生成一个时间戳,App打开后,将相应的Web的时间戳通过Uri参数的形式带入到App中,并解析,同时生成一个当前的系统时间戳,两者的差值即为调起时长。
调起时长 = App打开时间戳— 网页上链接点击时间戳
App中的停留时间的实现方式和计算规则。停留的截止点存在两种情况,一种是App退出了,一种情况是App被用户切换到后台了,无论哪种情况,会在这两个时间点中选择一个截止时间点。
停留时长 = App到后台或者退出的时间— App打开的时间戳。
SDK的兼容性
SDK在设计的过程中已经考虑了对现有的调起生态的兼容,部分应用已经有自定义的Scheme,SDK不会改变现有的调起的Scheme,与Scheme无关。SDK是通过在现有的应用的Scheme后添加参数的方式新增字段来处理,理论上应用开发者通过提取data中的值就可以实现对有没有新增参数进行兼容,但部分开发者存在代码中的hardcode,或者考虑不全等问题,因此新增参数也需要考虑新旧版本的兼容性。
应用中已经在manifest中注册的Scheme,不会新增或者改变已有的调起Scheme,如下samplecode:
<activity android:name="com.example.android.RecipeActivity" android:label="@string/title_recipe" >
<intent-filter android:label="@string/filter_title_viewrecipe">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- Accepts URIs that begin with " baidumusic://hybrid "-->
//产品线保持不变
<data android:Scheme="baidumusic"
android:host="hybrid"/>
</intent-filter>
</activity>
为了更好的突出代码重点,例图如下:
App调起后,请求中会新增调起参数,需要考虑到对新增Uri的兼容性处理,以百度翻译App为例如下:
旧Uri为
baidutranslate://home?query=such%20as&from=en&to=zh
新Uri为
baidutranslate://home?query=such%20as&from=en&to=zh&origin_appsearch=XXXXX1 &baiduid=XXXXXXX2&ts_appsearch=XXXXX3
SDK会忽略Scheme的改变或者不一致带来的变化,会将该部分的兼容性处理放在前端进行,从而保证SDK在尽可能大的范围内对现有的App的Scheme进行兼容。
cookie + timespam,timespam本身也要用于调起时长的处理;
pv-id,沿用百度搜索现有的处理方式。
单用户单次点击的区分
Web的进程空间和App的进程空间是独立的,如何将Web中的单个用户的单次点击和App中的单个用户的该次调起行为进行统一是SDK需要考虑的一个设计点。目前的单个用户的通过cookie进行区分,多浏览器的多cookie,默认当做多个用户进行区分,单个用户的单次点击通过点击的timespam进行区分。但搜索本身有单个用户的单次点击的统计字段pv-id,因此,前端在扩展字段中传入pv-id也是支持的。那么整体来说,有两种区分办法:
1.cookie + timespam,timespam本身也要用于调起时长的处理;
2.pv-id,沿用百度搜索现有的处理方式。
防作弊策略
目前SDK设计上,充分考虑可能出现的作弊场景,依托成熟的商业化反作弊策略,完成了对于作弊行为的监控。
监控到异常情况,会根据相关数据进行追查,确认如果存在作弊行为,将会进行严肃处理。
Android SDK接入方法
1.在工程目录下导入appsearch-android-SDK.jar。
2. 在网页链接调用App的Activity文件下添加:...
import com.baidu.appsearchlib.NASLib;
...
在onCreate()函数中添加函数NASLib.onclient(Contextcontext);
Demo:
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
...
NASLib.onclient(this);
...
}
为了更好的突出代码重点,例图如下:
IOS SDK接入方法
1.获取SDK:SDK包含libappsearch.a静态库与BaiDuAppSearch.h头文件
2.将libappsearch.a和BaiDuAppSearch.h拷贝到工程目录下
3.将libappsearch.a和BaiDuAppSearch.h加入工程
4.查看项目->build phase->link binary with libraries->是否存在libappsearch.a的依赖
如果不存在,请点击左下角+号并且添加静态链接库依赖
5.在UiApplication的委派对象(AppDelegate)中复写openURL和applicationDidEnterBackground方法并在其内添加相关的SDK代码
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplicationannotation:(id)annotation
{
[[BaiDuAppSearchsharedInstance] onClient:[url absoluteString]];
returnYES;
}
- (void)ppplicationDidEnterBackground:(UIApplication *)application {
[[BaiDuAppSearch sharedInstance] onExit];
}
为了更好的突出代码重点,例图如下:
百度APP调起SDK介绍及code下载地址:http://bbs.zhanzhang.baidu.com/thread-52698-1-1.html
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 什么是百度智能小程序单卡?如何获取智能小程序单卡 2020-03-16
- 今日头条站长平台:头条搜索爬虫spider介绍 2019-11-29
- 开发者利好!百度智能小程序推出“鱼跃扶持计划” 2019-11-13
- 88VIP 上线一周年,阿里的付费会员在做一门怎样的生意? 2019-08-09
- 百度移动落地页体验规范常见问题说明 2019-07-15
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash