2020-08-23 分類: 網(wǎng)站建設(shè)
一、背景
在Android和IOS的設(shè)備上的某些瀏覽器,可以通過deeplink的鏈接調(diào)起相應(yīng)的App,調(diào)起App之后,需要對調(diào)起的時(shí)間長度進(jìn)行統(tǒng)計(jì),以及從搜索結(jié)果頁到App內(nèi)的用戶在調(diào)起后在App中的停留時(shí)間,并通過這些統(tǒng)計(jì)數(shù)據(jù)來分析,從搜索結(jié)果分發(fā)的流量是否能夠給用戶帶來更好的體驗(yàn)。
二、調(diào)起的流程
調(diào)起的整個(gè)過程簡單的來說,就是從網(wǎng)頁中點(diǎn)擊調(diào)起的按鈕,然后打開對應(yīng)的App。
1、前端頁面中,將點(diǎn)擊的Url設(shè)置成調(diào)起的Uri;
2、打開對應(yīng)的應(yīng)用,應(yīng)用解析相應(yīng)的調(diào)起Uri參數(shù);
3、SDK獲取調(diào)起的統(tǒng)計(jì)參數(shù),SDK發(fā)送統(tǒng)計(jì)字段。
三、SDK設(shè)計(jì)
四、SDK的功能
產(chǎn)品的需求是統(tǒng)計(jì)App從網(wǎng)頁中點(diǎn)擊到App打開的調(diào)起時(shí)間,以及調(diào)起之后用戶在App中停留的時(shí)間。SDK的功能是統(tǒng)計(jì)調(diào)起時(shí)間和用戶在調(diào)起的App中的停留時(shí)間。
調(diào)起時(shí)間的實(shí)現(xiàn)方式和計(jì)算規(guī)則。用戶點(diǎn)擊Web頁面中的按鈕,生成一個(gè)時(shí)間戳,App打開后,將相應(yīng)的Web的時(shí)間戳通過Uri參數(shù)的形式帶入到App中,并解析,同時(shí)生成一個(gè)當(dāng)前的系統(tǒng)時(shí)間戳,兩者的差值即為調(diào)起時(shí)長。
調(diào)起時(shí)長 = App打開時(shí)間戳— 網(wǎng)頁上鏈接點(diǎn)擊時(shí)間戳
App中的停留時(shí)間的實(shí)現(xiàn)方式和計(jì)算規(guī)則。停留的截止點(diǎn)存在兩種情況,一種是App退出了,一種情況是App被用戶切換到后臺了,無論哪種情況,會在這兩個(gè)時(shí)間點(diǎn)中選擇一個(gè)截止時(shí)間點(diǎn)。
停留時(shí)長 = App到后臺或者退出的時(shí)間— App打開的時(shí)間戳。
五、SDK的兼容性
SDK在設(shè)計(jì)的過程中已經(jīng)考慮了對現(xiàn)有的調(diào)起生態(tài)的兼容,部分應(yīng)用已經(jīng)有自定義的Scheme,SDK不會改變現(xiàn)有的調(diào)起的Scheme,與Scheme無關(guān)。SDK是通過在現(xiàn)有的應(yīng)用的Scheme后添加參數(shù)的方式新增字段來處理,理論上應(yīng)用開發(fā)者通過提取data中的值就可以實(shí)現(xiàn)對有沒有新增參數(shù)進(jìn)行兼容,但部分開發(fā)者存在代碼中的hardcode,或者考慮不全等問題,因此新增參數(shù)也需要考慮新舊版本的兼容性。
應(yīng)用中已經(jīng)在manifest中注冊的Scheme,不會新增或者改變已有的調(diào)起Scheme,如下samplecode:
//產(chǎn)品線保持不變
android:host="hybrid"/>
為了更好的突出代碼重點(diǎn),例圖如下:
App調(diào)起后,請求中會新增調(diào)起參數(shù),需要考慮到對新增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的改變或者不一致帶來的變化,會將該部分的兼容性處理放在前端進(jìn)行,從而保證SDK在盡可能大的范圍內(nèi)對現(xiàn)有的App的Scheme進(jìn)行兼容。
cookie + timespam,timespam本身也要用于調(diào)起時(shí)長的處理;
pv-id,沿用百度搜索現(xiàn)有的處理方式。
單用戶單次點(diǎn)擊的區(qū)分
Web的進(jìn)程空間和App的進(jìn)程空間是獨(dú)立的,如何將Web中的單個(gè)用戶的單次點(diǎn)擊和App中的單個(gè)用戶的該次調(diào)起行為進(jìn)行統(tǒng)一是SDK需要考慮的一個(gè)設(shè)計(jì)點(diǎn)。目前的單個(gè)用戶的通過cookie進(jìn)行區(qū)分,多瀏覽器的多cookie,默認(rèn)當(dāng)做多個(gè)用戶進(jìn)行區(qū)分,單個(gè)用戶的單次點(diǎn)擊通過點(diǎn)擊的timespam進(jìn)行區(qū)分。但搜索本身有單個(gè)用戶的單次點(diǎn)擊的統(tǒng)計(jì)字段pv-id,因此,前端在擴(kuò)展字段中傳入pv-id也是支持的。那么整體來說,有兩種區(qū)分辦法:
1. cookie + timespam,timespam本身也要用于調(diào)起時(shí)長的處理;
2. pv-id,沿用百度搜索現(xiàn)有的處理方式。
六、防作弊策略
目前SDK設(shè)計(jì)上,充分考慮可能出現(xiàn)的作弊場景,依托成熟的商業(yè)化反作弊策略,完成了對于作弊行為的監(jiān)控。
監(jiān)控到異常情況,會根據(jù)相關(guān)數(shù)據(jù)進(jìn)行追查,確認(rèn)如果存在作弊行為,將會進(jìn)行嚴(yán)肅處理。
七、Android SDK接入方法
1.在工程目錄下導(dǎo)入appsearch-android-SDK.jar。
2. 在網(wǎng)頁鏈接調(diào)用App的Activity文件下添加
八、IOS SDK接入方法
1.獲取SDK:SDK包含libappsearch.a靜態(tài)庫與BaiDuAppSearch.h頭文件
2.將libappsearch.a和BaiDuAppSearch.h拷貝到工程目錄下
3.將libappsearch.a和BaiDuAppSearch.h加入工程
4.查看項(xiàng)目->build phase->link binary with libraries->是否存在libappsearch.a的依賴
如果不存在,請點(diǎn)擊左下角+號并且添加靜態(tài)鏈接庫依賴
5.在UiApplication的委派對象(AppDelegate)中復(fù)寫openURL和applicationDidEnterBackground方法并在其內(nèi)添加相關(guān)的SDK代碼
九、百度APP調(diào)起SDK介紹及code下載地址
Android SDK和iOS SDK code下載,均可移步至站長社區(qū)專帖。
分享題目:百度APP調(diào)起SDK詳細(xì)設(shè)計(jì)標(biāo)準(zhǔn)文檔
文章位置:http://jinyejixie.com/news/85505.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊、自適應(yīng)網(wǎng)站、Google、網(wǎng)站營銷、微信小程序、定制開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容