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