百度APP调起SDK详细设计标准文档_第1页
百度APP调起SDK详细设计标准文档_第2页
百度APP调起SDK详细设计标准文档_第3页
百度APP调起SDK详细设计标准文档_第4页
百度APP调起SDK详细设计标准文档_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、背景在Android和IOS的设备上的某些浏览器,可以通过deeplink的链接调起相应的App,调起App之后,需要对调起的时间长度进行统计,以及从搜索结果页到App内的用户在调起后在App中的停留时间,并通过这些统计数据来分析,从搜索结果分发的流量是否能够给用户带来更好的体验。二、调起的流程调起的整个过程简单的来说,就是从网页中点击调起的按钮,然后打开对应的App。1、前端页面中,将点击的Url设置成调起的Uri;       2、打开对应的应用,应用解析相应的调起Uri参数;       3、SDK获取调

2、起的统计参数,SDK发送统计字段。三、SDK设计四、SDK的功能产品的需求是统计App从网页中点击到App打开的调起时间,以及调起之后用户在App中停留的时间。SDK的功能是统计调起时间和用户在调起的App中的停留时间。调起时间的实现方式和计算规则。用户点击Web页面中的按钮,生成一个时间戳,App打开后,将相应的Web的时间戳通过Uri参数的形式带入到App中,并解析,同时生成一个当前的系统时间戳,两者的差值即为调起时长。调起时长 = App打开时间戳 网页上链接点击时间戳App中的停留时间的实现方式和计算规则。停留的截止点存在两种情况,一种是App退出了,一种情况是Ap

3、p被用户切换到后台了,无论哪种情况,会在这两个时间点中选择一个截止时间点。停留时长 = App到后台或者退出的时间 App打开的时间戳。五、SDK的兼容性SDK在设计的过程中已经考虑了对现有的调起生态的兼容,部分应用已经有自定义的Scheme,SDK不会改变现有的调起的Scheme,与Scheme无关。SDK是通过在现有的应用的Scheme后添加参数的方式新增字段来处理,理论上应用开发者通过提取data中的值就可以实现对有没有新增参数进行兼容,但部分开发者存在代码中的hardcode,或者考虑不全等问题,因此新增参数也需要考虑新旧版本的兼容性。应用中已经在manifest中

4、注册的Scheme,不会新增或者改变已有的调起Scheme,如下samplecode:<activity     android:name="com.example.android.RecipeActivity"  android:label="string/title_recipe" >            <intent-filter android:label="string/filter_title_viewrecip

5、e">               <action  android:name="ent.action.VIEW" />                    <category  android:name="ent.category.DEFAULT" /> 

6、60;          <category  android:name="ent.category.BROWSABLE" />           <!- Accepts URIs that begin with " baidumusic:/hybrid "->/产品线保持不变                &

7、#160;  <data android:Scheme="baidumusic"                          android:host="hybrid"/>                </intent-filter>       

8、    </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_appsear

9、ch=XXXXX3 SDK会忽略Scheme的改变或者不一致带来的变化,会将该部分的兼容性处理放在前端进行,从而保证SDK在尽可能大的范围内对现有的App的Scheme进行兼容。cookie + timespam,timespam本身也要用于调起时长的处理;pv-id,沿用百度搜索现有的处理方式。单用户单次点击的区分Web的进程空间和App的进程空间是独立的,如何将Web中的单个用户的单次点击和App中的单个用户的该次调起行为进行统一是SDK需要考虑的一个设计点。目前的单个用户的通过cookie进行区分,多浏览器的多cookie,默认当做多个用户进行区分,单个用户的单次点击通过点击的

10、timespam进行区分。但搜索本身有单个用户的单次点击的统计字段pv-id,因此,前端在扩展字段中传入pv-id也是支持的。那么整体来说,有两种区分办法:1. cookie + timespam,timespam本身也要用于调起时长的处理;      2. pv-id,沿用百度搜索现有的处理方式。六、防作弊策略目前SDK设计上,充分考虑可能出现的作弊场景,依托成熟的商业化反作弊策略,完成了对于作弊行为的监控。监控到异常情况,会根据相关数据进行追查,确认如果存在作弊行为,将会进行严肃处理。七、Android SDK接入方法1.在工程目录下导入appsearch-a

11、ndroid-SDK.jar。        2. 在网页链接调用App的Activity文件下添加:.import com.baidu.appsearchlib.NASLib;        .       在onCreate()函数中添加函数NASLib.onclient(Contextcontext);       Demo:       Override   

12、       protected void onCreate(Bundle savedInstanceState)                     super.onCreate(savedInstanceState);             setContentView(R.layout.activity_main);    &

13、#160;        .             NASLib.onclient(this);             .        为了更好的突出代码重点,例图如下:八、IOS SDK接入方法1.获取SDK:SDK包含libappsearch.a静态库与BaiDuAppSearch.h头文件     

14、;  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&#

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论