本發(fā)明涉及大數(shù)據(jù)的數(shù)據(jù)采集技術(shù)領(lǐng)域,特別涉及一種數(shù)據(jù)采集方法、裝置、終端及存儲(chǔ)介質(zhì)。
背景技術(shù):
隨著互聯(lián)網(wǎng)的發(fā)展,基于用戶行為數(shù)據(jù)的采集和分析在企業(yè)的運(yùn)營和決策中占有越來越重要的地位。
目前大部分的數(shù)據(jù)采集都是采用傳統(tǒng)的數(shù)據(jù)埋點(diǎn)技術(shù),數(shù)據(jù)埋點(diǎn)技術(shù)需要經(jīng)歷“梳理線上業(yè)務(wù)、提出埋點(diǎn)需求、評(píng)估埋點(diǎn)排期、技術(shù)人員進(jìn)行集成統(tǒng)計(jì)代碼并進(jìn)行埋點(diǎn)、埋點(diǎn)測(cè)試驗(yàn)收”等一系列流程;流程比較復(fù)雜,人力資源耗費(fèi)大,開發(fā)周期時(shí)間長,并且部分埋點(diǎn)會(huì)影響應(yīng)用程序的自身邏輯;另外產(chǎn)品一經(jīng)上線,即使發(fā)現(xiàn)有遺漏的埋點(diǎn)也只能通過發(fā)版來補(bǔ)充,同時(shí)歷史數(shù)據(jù)也無法追溯,不能靈活的滿足相關(guān)分析人員(如:產(chǎn)品經(jīng)理、運(yùn)營人員或者是后臺(tái)維護(hù)人員等能夠獲得指標(biāo)定義權(quán)限的人員)的分析需求,效率低下。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本申請(qǐng)?zhí)峁┮环N能夠自動(dòng)采集數(shù)據(jù),減少人工操作以及簡化數(shù)據(jù)采集流程的數(shù)據(jù)采集方法、裝置、終端及存儲(chǔ)介質(zhì)。
一方面,本申請(qǐng)?zhí)峁┮环N數(shù)據(jù)采集方法,應(yīng)用程序中集成有數(shù)據(jù)采集軟件開發(fā)工具包(softwaredevelopmentkit,sdk),所述方法包括:
所述數(shù)據(jù)采集sdk自動(dòng)獲取所述應(yīng)用程序的運(yùn)行數(shù)據(jù);
所述數(shù)據(jù)采集sdk將獲取到的所述應(yīng)用程序的運(yùn)行數(shù)據(jù)轉(zhuǎn)換為數(shù)據(jù)文件;
所述數(shù)據(jù)采集sdk將所述數(shù)據(jù)文件上傳至服務(wù)器。
可選地,所述數(shù)據(jù)采集sdk自動(dòng)獲取所述應(yīng)用程序的運(yùn)行數(shù)據(jù)包括:
監(jiān)聽所述應(yīng)用程序的用戶界面,獲取所述用戶界面的運(yùn)行數(shù)據(jù);
遍歷所述用戶界面的元素,采集所述元素的運(yùn)行數(shù)據(jù)。
可選地,所述數(shù)據(jù)采集sdk將所述數(shù)據(jù)文件上傳至服務(wù)器包括:
獲取所述服務(wù)器配置的數(shù)據(jù)上報(bào)方式;
將所述數(shù)據(jù)文件按照所述數(shù)據(jù)上報(bào)方式上傳至服務(wù)器。
可選地,所述數(shù)據(jù)上報(bào)方式包括:實(shí)時(shí)上報(bào)和非實(shí)時(shí)上報(bào);所述非實(shí)時(shí)上報(bào)包括按條數(shù)上報(bào)、按文件大小上報(bào)和/或按時(shí)間間隔上報(bào)。
另一方面,本申請(qǐng)?zhí)峁┮环N數(shù)據(jù)采集裝置,包括應(yīng)用程序和數(shù)據(jù)采集sdk,所述應(yīng)用程序中集成有所述數(shù)據(jù)采集軟件開發(fā)工具包sdk,所述數(shù)據(jù)采集sdk包括:
數(shù)據(jù)獲取模塊,用于所述數(shù)據(jù)采集sdk自動(dòng)獲取所述應(yīng)用程序的運(yùn)行數(shù)據(jù);
數(shù)據(jù)轉(zhuǎn)換模塊,用于所述數(shù)據(jù)采集sdk將獲取到的所述應(yīng)用程序的運(yùn)行數(shù)據(jù)轉(zhuǎn)換為數(shù)據(jù)文件;
數(shù)據(jù)上報(bào)模塊,用于所述數(shù)據(jù)采集sdk將所述數(shù)據(jù)文件上傳至服務(wù)器。
可選地,所述數(shù)據(jù)獲取模塊包括:
監(jiān)聽模塊,用于監(jiān)聽所述應(yīng)用程序的用戶界面,獲取所述用戶界面的運(yùn)行數(shù)據(jù);
遍歷模塊,用于遍歷所述用戶界面的元素,采集所述元素的運(yùn)行數(shù)據(jù)。
可選地,所述數(shù)據(jù)上傳模塊包括:
配置模塊,用于獲取所述服務(wù)器配置的數(shù)據(jù)上報(bào)方式;
上傳模塊,用于將所述數(shù)據(jù)文件按照所述數(shù)據(jù)上報(bào)方式上傳至服務(wù)器。
可選地,所述數(shù)據(jù)上報(bào)方式包括:實(shí)時(shí)上報(bào)和非實(shí)時(shí)上報(bào);所述非實(shí)時(shí)上報(bào)包括按條數(shù)上報(bào)、按文件大小上報(bào)和/或按時(shí)間間隔上報(bào)。
另一方面,本申請(qǐng)?zhí)峁┮环N數(shù)據(jù)采集終端,包括處理器和存儲(chǔ)器,所述存儲(chǔ)器存儲(chǔ)集成有數(shù)據(jù)采集軟件開發(fā)工具包(softwaredevelopmentkit,sdk)的應(yīng)用程序,所述處理器調(diào)用所述應(yīng)用程序并執(zhí)行上述的數(shù)據(jù)采集方法。
另一方面,本申請(qǐng)?zhí)峁┮环N存儲(chǔ)介質(zhì),存儲(chǔ)集成有數(shù)據(jù)采集軟件開發(fā)工具包(softwaredevelopmentkit,sdk)的應(yīng)用程序,所述應(yīng)用程序執(zhí)行上述的數(shù)據(jù)采集方法。
本發(fā)明申請(qǐng)實(shí)施例提供的一種數(shù)據(jù)采集方法、裝置、終端及存儲(chǔ)介質(zhì)采用在應(yīng)用程序中集成智能sdk實(shí)現(xiàn)自動(dòng)采集應(yīng)用程序的運(yùn)行數(shù)據(jù),無需手動(dòng)埋點(diǎn),簡化數(shù)據(jù)采集流程,實(shí)現(xiàn)歷史數(shù)據(jù)的可追溯;并且采用集成智能sdk還可以規(guī)避手動(dòng)埋點(diǎn)影響應(yīng)用程序代碼邏輯的問題。
附圖說明
圖1為本申請(qǐng)一實(shí)施例提供的數(shù)據(jù)采集方法的流程圖;
圖2為本申請(qǐng)一實(shí)施例提供的數(shù)據(jù)采集方法的流程圖;
圖3為本申請(qǐng)一實(shí)施例提供的數(shù)據(jù)采集裝置的結(jié)構(gòu)示意圖;
圖4為本申請(qǐng)一實(shí)施例提供的數(shù)據(jù)采集裝置的結(jié)構(gòu)示意圖;
圖5為本申請(qǐng)一實(shí)施例提供的數(shù)據(jù)采集終端執(zhí)行數(shù)據(jù)采集方法流程圖一;
圖6為本申請(qǐng)一實(shí)施例提供的數(shù)據(jù)采集終端執(zhí)行數(shù)據(jù)采集方法流程圖二;
圖7為本申請(qǐng)一實(shí)施例提供的數(shù)據(jù)采集sdk的內(nèi)部工作流程圖;
圖8為本申請(qǐng)一實(shí)施例提供的實(shí)現(xiàn)可視化操作的工作流程圖;
圖9-1為本申請(qǐng)一實(shí)施例提供的可視化頁面指標(biāo)定義界面圖;
圖9-2為本申請(qǐng)一實(shí)施例提供的可視化元素指標(biāo)定義界面圖;
圖9-3為本申請(qǐng)一實(shí)施例提供的定義指標(biāo)完成在后臺(tái)的展示圖;
圖10為本申請(qǐng)一實(shí)施例提供的電子設(shè)備的硬件結(jié)構(gòu)示意圖。
具體實(shí)施方式
傳統(tǒng)的數(shù)據(jù)埋點(diǎn)技術(shù)需要經(jīng)歷“梳理線上業(yè)務(wù)、提出埋點(diǎn)需求、評(píng)估埋點(diǎn)排期、技術(shù)人員進(jìn)行集成統(tǒng)計(jì)代碼并進(jìn)行埋點(diǎn)、埋點(diǎn)測(cè)試驗(yàn)收”的流程。流程復(fù)雜,耗費(fèi)較大的人力,需要付出較高的時(shí)間成本和溝通成本;而且部分埋點(diǎn)會(huì)影響應(yīng)用自身邏輯;另外產(chǎn)品一經(jīng)上線,即使發(fā)現(xiàn)有遺漏的埋點(diǎn)也只能通過發(fā)版來補(bǔ)充,同時(shí)歷史數(shù)據(jù)也無法追溯,不能靈活的滿足相關(guān)分析人員(如:產(chǎn)品經(jīng)理、運(yùn)營人員或者是后臺(tái)維護(hù)人員等能夠獲得指標(biāo)定義權(quán)限的人員)的分析需求,效率低下。
基于現(xiàn)有技術(shù)中數(shù)據(jù)采集方法的不足,本申請(qǐng)實(shí)施例提供的一種數(shù)據(jù)采集方法及裝置,能夠自動(dòng)采集數(shù)據(jù),無需埋點(diǎn),簡化數(shù)據(jù)采集流程,并且實(shí)現(xiàn)歷史數(shù)據(jù)的可追溯。
下面結(jié)合本發(fā)明的附圖對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整的描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明的一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
參見圖1,本申請(qǐng)一實(shí)施例提供的數(shù)據(jù)采集方法,包括步驟101至步驟104。
步驟101:應(yīng)用程序中集成有數(shù)據(jù)采集軟件開發(fā)工具包(softwaredevelopmentkit,sdk)。
所述應(yīng)用程序包括手機(jī)應(yīng)用程序和電腦應(yīng)用程序。
步驟102:所述數(shù)據(jù)采集sdk自動(dòng)獲取所述應(yīng)用程序的運(yùn)行數(shù)據(jù)。
所述數(shù)據(jù)采集sdk為智能采集sdk,所述智能采集sdk自動(dòng)獲取的運(yùn)行數(shù)據(jù)是約定好規(guī)范的數(shù)據(jù)和自定義數(shù)據(jù);在采集頁面時(shí)將頁面類名作為唯一標(biāo)識(shí),采集元素時(shí)將元素的路徑和元素上的文字作為元素的唯一標(biāo)識(shí)。
步驟103:所述數(shù)據(jù)采集sdk將獲取到的所述應(yīng)用程序的運(yùn)行數(shù)據(jù)轉(zhuǎn)換為數(shù)據(jù)文件。
步驟104:所述數(shù)據(jù)采集sdk將所述數(shù)據(jù)文件上傳至服務(wù)器。
本實(shí)施例中,所述數(shù)據(jù)采集sdk集成在應(yīng)用程序中,規(guī)避了手動(dòng)埋點(diǎn)影響應(yīng)用程序代碼邏輯的問題;當(dāng)所述應(yīng)用程序啟動(dòng)后,無需人工埋點(diǎn)就可以對(duì)用戶在應(yīng)用程序操作過程中產(chǎn)生的交互數(shù)據(jù)進(jìn)行自動(dòng)采集,極大的節(jié)省了人力成本和時(shí)間成本,并且相關(guān)分析人員(如:產(chǎn)品經(jīng)理、運(yùn)營人員或者是后臺(tái)維護(hù)人員等能夠獲得指標(biāo)定義權(quán)限的人員)能夠隨時(shí)去查看元素的歷史數(shù)據(jù)來輔助優(yōu)化以及決策。
本申請(qǐng)一實(shí)施例中,數(shù)據(jù)采集sdk自動(dòng)獲取所述應(yīng)用程序的運(yùn)行數(shù)據(jù)包括:
監(jiān)聽所述應(yīng)用程序的用戶界面,獲取所述用戶界面的運(yùn)行數(shù)據(jù);監(jiān)聽所述應(yīng)用程序的啟動(dòng)和退出事件,監(jiān)聽?wèi)?yīng)用程序的鎖屏和應(yīng)用程序解鎖屏幕,所述應(yīng)用程序進(jìn)入后臺(tái)和切回前臺(tái)、應(yīng)用崩潰和應(yīng)用報(bào)錯(cuò)以及界面類名(安卓中的activity、ios中的controller、js中的url)變化等。
遍歷所述用戶界面的元素,采集所述元素的運(yùn)行數(shù)據(jù);通過監(jiān)聽獲得所述應(yīng)用程序的當(dāng)前用戶界面,獲取到當(dāng)前用戶界面的整個(gè)布局結(jié)構(gòu),拆解所述應(yīng)用程序中的布局,然后通過遞歸算法遍歷查詢所述當(dāng)前用戶界面整個(gè)布局中的節(jié)點(diǎn)元素,為所述元素分配唯一id,方便在服務(wù)器通過id對(duì)所述元素進(jìn)行統(tǒng)計(jì)計(jì)算,這個(gè)id保證在所述應(yīng)用程序的所有版本是一致的,所述id和界面類名的唯一性都是保證采集的數(shù)據(jù)在時(shí)間軸上連續(xù)可識(shí)別的重要保證。
所述數(shù)據(jù)采集sdk基于對(duì)于頁面布局的拆解,為全局的ui元素分配了唯一id,當(dāng)所述數(shù)據(jù)采集sdk將獲取到的運(yùn)行數(shù)據(jù)上傳至服務(wù)器后,無論是歷史版本還是當(dāng)前版本的元素,相關(guān)分析人員都可以通過數(shù)據(jù)統(tǒng)計(jì)客戶端對(duì)用戶界面元素進(jìn)行可視化的定義,無需撰寫代碼,直接為需要統(tǒng)計(jì)的元素命名即可創(chuàng)建統(tǒng)計(jì)指標(biāo)。
本實(shí)施例中,用戶客戶端中的應(yīng)用程序中集成數(shù)據(jù)采集sdk,所述數(shù)據(jù)采集sdk自動(dòng)獲取所述客戶端中的應(yīng)用程序的運(yùn)行數(shù)據(jù),再將所述運(yùn)行數(shù)據(jù)壓縮成數(shù)據(jù)文件按照服務(wù)器的數(shù)據(jù)上報(bào)方式提交至服務(wù)器,相關(guān)分析人員通過數(shù)據(jù)統(tǒng)計(jì)客戶端與所述服務(wù)器的數(shù)據(jù)接口可以對(duì)用戶界面元素進(jìn)行可視化的定義,無需撰寫代碼,直接為需要統(tǒng)計(jì)的元素命名即可創(chuàng)建統(tǒng)計(jì)指標(biāo)。
所述運(yùn)行數(shù)據(jù)包括用戶的點(diǎn)擊行為數(shù)據(jù)和用戶的瀏覽行為數(shù)據(jù),所述用戶行為數(shù)據(jù)包括用戶的點(diǎn)擊行為、瀏覽行為等,所述智能sdk還會(huì)采集啟動(dòng)應(yīng)用程序各個(gè)終端的設(shè)備、網(wǎng)絡(luò)、位置信息,界面切換和元素被點(diǎn)擊是用戶行為觸發(fā)的,通過頁面和元素的監(jiān)聽實(shí)現(xiàn)對(duì)用戶行為數(shù)據(jù)的采集,元素被點(diǎn)擊產(chǎn)生數(shù)據(jù),數(shù)據(jù)記錄了用戶的行為。
本申請(qǐng)一實(shí)施例中,數(shù)據(jù)采集sdk能夠?yàn)樵O(shè)備生成唯一標(biāo)識(shí)來標(biāo)記用戶的設(shè)備,能夠?qū)⒂脩粼诮缑嬷械奶D(zhuǎn)路徑(包括原生與h5界面之間的跳轉(zhuǎn))通過日志的形式記錄下來,能夠通過生成會(huì)話標(biāo)記來拆解用戶使用應(yīng)用的次數(shù);追蹤用戶行為的日志,在應(yīng)用被啟動(dòng)、監(jiān)測(cè)到網(wǎng)絡(luò)、應(yīng)用鎖屏、應(yīng)用進(jìn)入后臺(tái)時(shí)均會(huì)上傳到服務(wù)器。
數(shù)據(jù)采集sdk在應(yīng)用程序的用戶界面發(fā)生切換時(shí),記錄界面切換及相關(guān)屬性信息;在所述用戶界面的元素被點(diǎn)擊時(shí),記錄點(diǎn)擊事件及相關(guān)屬性信息;在所述應(yīng)用程序被啟動(dòng)時(shí),記錄所述應(yīng)用程序的啟動(dòng)事件及相關(guān)屬性信息;在所述應(yīng)用程序發(fā)生異常時(shí),記錄所述應(yīng)用程序的異常事件及相關(guān)屬性信息;并且將上述所有信息通過日志的形式記錄并上傳至服務(wù)器,日志的形式為logname:{key1:value;key2:value2…keyn:valuen},日志遵循一定的數(shù)據(jù)規(guī)范,上述日志均為數(shù)據(jù)采集sdk采集應(yīng)用程序的運(yùn)行數(shù)據(jù)。
所述數(shù)據(jù)采集sdk能夠采集的數(shù)據(jù)覆蓋接入應(yīng)用程序以下相關(guān)數(shù)據(jù):應(yīng)用程序版本號(hào);應(yīng)用程序的賬號(hào)相關(guān)信息:如用戶標(biāo)識(shí);終端的相關(guān)信息:如設(shè)備型號(hào);應(yīng)用程序終端的相關(guān)時(shí)間信息:如事件發(fā)生的時(shí)間、網(wǎng)絡(luò)環(huán)境信息:如網(wǎng)絡(luò)運(yùn)營商;應(yīng)用程序終端的位置信息:如經(jīng)緯度;應(yīng)用程序頁面信息:如頁面類名;應(yīng)用程序的事件信息:如被點(diǎn)擊元素的路徑;應(yīng)用程序的會(huì)話信息:如所述數(shù)據(jù)采集sdk分配的會(huì)話id;應(yīng)用程序的異常信息:如崩潰原因;廣告相關(guān)信息:如廣告來源等;所述數(shù)據(jù)采集sdk可以獲取全量用戶行為數(shù)據(jù),并且用戶行為數(shù)據(jù)的采集項(xiàng)目不會(huì)發(fā)生變化。
本申請(qǐng)一實(shí)施例,數(shù)據(jù)采集sdk將所述數(shù)據(jù)文件上傳至服務(wù)器包括:
獲取所述服務(wù)器配置的數(shù)據(jù)上報(bào)方式;所述服務(wù)器搭建后,配置好數(shù)據(jù)接口就可以接收數(shù)據(jù)采集sdk的運(yùn)行數(shù)據(jù),配置方式可以選擇批量上報(bào)數(shù)據(jù)也可以選擇實(shí)時(shí)上報(bào)數(shù)據(jù),即所述應(yīng)用程序啟動(dòng),行為發(fā)生即刻產(chǎn)生日志數(shù)據(jù)上傳給服務(wù)器;
將所述數(shù)據(jù)文件按照所述數(shù)據(jù)上報(bào)方式上傳至服務(wù)器;所述數(shù)據(jù)采集sdk將采集到的運(yùn)行數(shù)據(jù)進(jìn)行壓縮,壓縮成數(shù)據(jù)文件按照所述服務(wù)器配置的數(shù)據(jù)上報(bào)方式發(fā)送至服務(wù)器;在服務(wù)器沒有進(jìn)行配置的情況下,默認(rèn)數(shù)據(jù)上報(bào)方式:5條/批;如果有配置則按照配置方式進(jìn)行數(shù)據(jù)上報(bào)。
本申請(qǐng)一實(shí)施例中所述數(shù)據(jù)上報(bào)方式包括:實(shí)時(shí)上報(bào)和非實(shí)時(shí)上報(bào);所述非實(shí)時(shí)上報(bào)包括按條數(shù)上報(bào)、按文件大小上報(bào)和/或按時(shí)間間隔上報(bào);在有網(wǎng)絡(luò)的情況下,數(shù)據(jù)采集sdk將獲取的應(yīng)用程序的運(yùn)行數(shù)據(jù)壓縮成數(shù)據(jù)文件按照服務(wù)器數(shù)據(jù)上報(bào)方式進(jìn)行數(shù)據(jù)文件的批量上報(bào),當(dāng)用戶進(jìn)行鎖屏或者切入后臺(tái),所述應(yīng)用程序都進(jìn)入了后臺(tái),這時(shí)用戶如果沒有殺進(jìn)程,所述數(shù)據(jù)采集sdk會(huì)在后臺(tái)進(jìn)行數(shù)據(jù)文件的上傳,減少數(shù)據(jù)的丟失,最大可能的將獲取到的數(shù)據(jù)上傳至服務(wù)器。
參見圖2,本申請(qǐng)一實(shí)施例中,以服務(wù)器端為例,一種數(shù)據(jù)采集方法,包括步驟201至步驟203。
步驟201:接收集成在應(yīng)用程序的數(shù)據(jù)采集軟件開發(fā)工具包(softwaredevelopmentkit,sdk)自動(dòng)獲取的數(shù)據(jù)文件。
本實(shí)施例中,數(shù)據(jù)文件包括:對(duì)運(yùn)行數(shù)據(jù)進(jìn)行轉(zhuǎn)換,得到數(shù)據(jù)文件。
步驟202:分析所述數(shù)據(jù)文件,得到所述應(yīng)用程序不同類型的運(yùn)行數(shù)據(jù)。
本實(shí)施例中,服務(wù)器根據(jù)數(shù)據(jù)采集sdk獲取運(yùn)行數(shù)據(jù)的日志類型開發(fā)數(shù)據(jù)接口,接收所述數(shù)據(jù)采集sdk獲取的運(yùn)行數(shù)據(jù)文件后將所述數(shù)據(jù)文件解壓成運(yùn)行數(shù)據(jù)。
步驟203:將所述不同類型的運(yùn)行數(shù)據(jù)分別存儲(chǔ)到對(duì)應(yīng)的數(shù)據(jù)表中。
本實(shí)施例中,服務(wù)器根據(jù)數(shù)據(jù)采集sdk獲取運(yùn)行數(shù)據(jù)的日志類型開發(fā)數(shù)據(jù)接口,接收所述數(shù)據(jù)采集sdk獲取的運(yùn)行數(shù)據(jù)文件后將所述數(shù)據(jù)文件解壓成運(yùn)行數(shù)據(jù),然后按照所述運(yùn)行數(shù)據(jù)的日志類型分別存儲(chǔ)在所述服務(wù)器的數(shù)據(jù)表中,相關(guān)分析人員能夠隨時(shí)去查看歷史數(shù)據(jù)來輔助優(yōu)化以及決策。
本實(shí)施例中,所述接收集成在應(yīng)用程序的數(shù)據(jù)集成sdk獲取的數(shù)據(jù)文件還包括:若所述數(shù)據(jù)文件接收成功,則刪除所述數(shù)據(jù)文件在所述應(yīng)用程序的緩存;若所述數(shù)據(jù)文件接收不成功,則繼續(xù)接收來自所述應(yīng)用程序的數(shù)據(jù)文件。
本實(shí)施例中,服務(wù)器接收數(shù)據(jù)成功會(huì)給所述應(yīng)用程序所在客戶端返回值,客戶端得知接收成功則刪除本地?cái)?shù)據(jù),否則會(huì)在下一個(gè)觸發(fā)上傳數(shù)據(jù)的點(diǎn)繼續(xù)進(jìn)行上傳。
參見圖3,本申請(qǐng)一實(shí)施例提供一種數(shù)據(jù)采集裝置,包括應(yīng)用程序和數(shù)據(jù)采集sdk,所述應(yīng)用程序中集成有所述數(shù)據(jù)采集軟件開發(fā)工具包sdk,所述數(shù)據(jù)采集sdk包括:
數(shù)據(jù)獲取模塊301,用于所述數(shù)據(jù)采集sdk自動(dòng)獲取所述應(yīng)用程序的運(yùn)行數(shù)據(jù);
數(shù)據(jù)轉(zhuǎn)換模塊302,用于所述數(shù)據(jù)采集sdk將獲取到的所述應(yīng)用程序的運(yùn)行數(shù)據(jù)轉(zhuǎn)換為數(shù)據(jù)文件;
數(shù)據(jù)上報(bào)模塊303,用于所述數(shù)據(jù)采集sdk將所述數(shù)據(jù)文件上傳至服務(wù)器。
可選地,所述數(shù)據(jù)獲取模塊301包括:
監(jiān)聽模塊,用于監(jiān)聽所述應(yīng)用程序的用戶界面,獲取所述用戶界面的運(yùn)行數(shù)據(jù);
遍歷模塊,用于遍歷所述用戶界面的元素,采集所述元素的運(yùn)行數(shù)據(jù)。
可選地,所述數(shù)據(jù)上傳模塊303包括:
配置模塊,用于獲取所述服務(wù)器配置的數(shù)據(jù)上報(bào)方式;
上傳模塊,用于將所述數(shù)據(jù)文件按照所述數(shù)據(jù)上報(bào)方式上傳至服務(wù)器;
可選地,所述數(shù)據(jù)上報(bào)方式包括:實(shí)時(shí)上報(bào)和非實(shí)時(shí)上報(bào);所述非實(shí)時(shí)上報(bào)包括按條數(shù)上報(bào)、按文件大小上報(bào)和/或按時(shí)間間隔上報(bào)。
本實(shí)施例中,智能數(shù)據(jù)采集sdk動(dòng)態(tài)獲取服務(wù)器配置的數(shù)據(jù)上傳策略參數(shù),另外在用戶鎖屏及進(jìn)入后臺(tái)的場(chǎng)景下也能夠進(jìn)行數(shù)據(jù)的上傳;同時(shí),數(shù)據(jù)采集sdk會(huì)對(duì)網(wǎng)絡(luò)狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)控,以在監(jiān)測(cè)到網(wǎng)絡(luò)訊號(hào)時(shí)進(jìn)行數(shù)據(jù)的上傳;對(duì)于應(yīng)用程序的啟動(dòng),以及用戶在對(duì)用戶界面元素操作過程中產(chǎn)生的交互數(shù)據(jù),不需要人工手動(dòng)埋點(diǎn),數(shù)據(jù)采集sdk可通過優(yōu)化的遞歸算法進(jìn)行全量數(shù)據(jù)的采集。
上述為本實(shí)施例的數(shù)據(jù)采集裝置的示意性方案。需要說明的是,該數(shù)據(jù)采集裝置的技術(shù)方案與上述的數(shù)據(jù)采集方法的技術(shù)方案屬于同一構(gòu)思,數(shù)據(jù)采集裝置的技術(shù)方案未詳細(xì)描述的細(xì)節(jié)內(nèi)容,均可以參見上述數(shù)據(jù)采集方法的技術(shù)方案的描述。
參見圖4,本申請(qǐng)一實(shí)施例提供一種數(shù)據(jù)采集裝置,設(shè)置于服務(wù)器中,包括:
數(shù)據(jù)接收模塊401,用于接收集成在應(yīng)用程序的數(shù)據(jù)采集sdk獲取的數(shù)據(jù)文件;
數(shù)據(jù)分析模塊402,用于分析所述數(shù)據(jù)文件,得到所述應(yīng)用程序不同類型的運(yùn)行數(shù)據(jù);
所述運(yùn)行數(shù)據(jù)包括用戶的點(diǎn)擊行為數(shù)據(jù)和用戶的瀏覽行為數(shù)據(jù),所述用戶行為數(shù)據(jù)包括用戶的點(diǎn)擊行為、瀏覽行為等,所述智能sdk還會(huì)采集啟動(dòng)應(yīng)用程序各個(gè)終端的設(shè)備、網(wǎng)絡(luò)、位置信息,界面切換和元素被點(diǎn)擊是用戶行為觸發(fā)的,通過頁面和元素的監(jiān)聽實(shí)現(xiàn)對(duì)用戶行為數(shù)據(jù)的采集,元素被點(diǎn)擊產(chǎn)生數(shù)據(jù),數(shù)據(jù)記錄了用戶的行為。
數(shù)據(jù)存儲(chǔ)模塊403,用于將所述不同類型的運(yùn)行數(shù)據(jù)分別存儲(chǔ)到對(duì)應(yīng)的數(shù)據(jù)表中。
可選地,所述數(shù)據(jù)文件包括:對(duì)運(yùn)行數(shù)據(jù)進(jìn)行轉(zhuǎn)換,得到數(shù)據(jù)文件。
可選地,所述數(shù)據(jù)接收模塊401還包括:
判斷模塊,若所述數(shù)據(jù)文件接收成功,則刪除所述數(shù)據(jù)文件在所述應(yīng)用程序的緩存;若所述數(shù)據(jù)文件接收不成功,則繼續(xù)接收來自所述應(yīng)用程序的數(shù)據(jù)文件。
傳統(tǒng)埋點(diǎn)邏輯中,沒有手動(dòng)埋點(diǎn)的元素的用戶界面事件是不可追溯歷史的,通過本實(shí)施例數(shù)據(jù)采集sdk對(duì)全量數(shù)據(jù)的采集,相關(guān)分析人員能夠隨時(shí)去查看元素的歷史數(shù)據(jù)來輔助優(yōu)化以及決策;所述數(shù)據(jù)采集sdk對(duì)于應(yīng)用程序來說是通用的統(tǒng)計(jì)工具,不需要手動(dòng)埋點(diǎn)的同時(shí),規(guī)避了手動(dòng)埋點(diǎn)影響應(yīng)用代碼邏輯的問題。
上述為本實(shí)施例的數(shù)據(jù)采集裝置的示意性方案。需要說明的是,該數(shù)據(jù)采集裝置的技術(shù)方案與上述的數(shù)據(jù)采集方法的技術(shù)方案屬于同一構(gòu)思,數(shù)據(jù)采集裝置的技術(shù)方案未詳細(xì)描述的細(xì)節(jié)內(nèi)容,均可以參見上述數(shù)據(jù)采集方法的技術(shù)方案的描述。
參見圖5,本申請(qǐng)?zhí)峁┮环N數(shù)據(jù)采集終端,包括處理器和存儲(chǔ)器,所述存儲(chǔ)器存儲(chǔ)集成有數(shù)據(jù)采集軟件開發(fā)工具包(sdk)的應(yīng)用程序,所述處理器調(diào)用所述應(yīng)用程序并執(zhí)行步驟501至步驟503的數(shù)據(jù)采集方法。
步驟501:所述數(shù)據(jù)采集sdk自動(dòng)獲取所述應(yīng)用程序的運(yùn)行數(shù)據(jù)。
步驟502:所述數(shù)據(jù)采集sdk將獲取到的所述應(yīng)用程序的運(yùn)行數(shù)據(jù)轉(zhuǎn)換為數(shù)據(jù)文件。
步驟503:所述數(shù)據(jù)采集sdk將所述數(shù)據(jù)文件上傳至服務(wù)器。
可選地,所述數(shù)據(jù)采集sdk自動(dòng)獲取所述應(yīng)用程序的運(yùn)行數(shù)據(jù)包括:
監(jiān)聽所述應(yīng)用程序的用戶界面,獲取所述用戶界面的運(yùn)行數(shù)據(jù);
遍歷所述用戶界面的元素,采集所述元素的運(yùn)行數(shù)據(jù);
可選地,所述數(shù)據(jù)采集sdk將所述數(shù)據(jù)文件上傳至服務(wù)器包括:
獲取所述服務(wù)器配置的數(shù)據(jù)上報(bào)方式;
將所述數(shù)據(jù)文件按照所述數(shù)據(jù)上報(bào)方式上傳至服務(wù)器。
可選地,所述數(shù)據(jù)上報(bào)方式包括:實(shí)時(shí)上報(bào)和非實(shí)時(shí)上報(bào);所述非實(shí)時(shí)上報(bào)包括按條數(shù)上報(bào)、按文件大小上報(bào)和/或按時(shí)間間隔上報(bào)。
本實(shí)施例中,智能數(shù)據(jù)采集sdk動(dòng)態(tài)獲取服務(wù)器配置的數(shù)據(jù)上傳策略參數(shù),另外在用戶鎖屏及進(jìn)入后臺(tái)的場(chǎng)景下也能夠進(jìn)行數(shù)據(jù)的上傳;同時(shí),數(shù)據(jù)采集sdk會(huì)對(duì)網(wǎng)絡(luò)狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)控,以在監(jiān)測(cè)到網(wǎng)絡(luò)訊號(hào)時(shí)進(jìn)行數(shù)據(jù)的上傳;對(duì)于應(yīng)用程序的啟動(dòng),以及用戶在對(duì)用戶界面元素操作過程中產(chǎn)生的交互數(shù)據(jù),不需要人工手動(dòng)埋點(diǎn),數(shù)據(jù)采集sdk可通過優(yōu)化的遞歸算法進(jìn)行全量數(shù)據(jù)的采集
上述為本實(shí)施例的數(shù)據(jù)采集終端的示意性方案。需要說明的是,該數(shù)據(jù)采集終端的技術(shù)方案與上述的數(shù)據(jù)采集方法的技術(shù)方案屬于同一構(gòu)思,數(shù)據(jù)采集終端的技術(shù)方案未詳細(xì)描述的細(xì)節(jié)內(nèi)容,均可以參見上述數(shù)據(jù)采集方法的技術(shù)方案的描述。
參見圖6,本申請(qǐng)一實(shí)施例提供一種數(shù)據(jù)采集終端,包括處理器和存儲(chǔ)有計(jì)算機(jī)程序的存儲(chǔ)器,所述處理器調(diào)用所述計(jì)算機(jī)程序并執(zhí)行步驟601至步驟603的數(shù)據(jù)采集方法。
步驟601:接收集成在應(yīng)用程序的數(shù)據(jù)采集軟件開發(fā)工具包(softwaredevelopmentkit,sdk)自動(dòng)獲取的數(shù)據(jù)文件。
步驟602:分析所述數(shù)據(jù)文件,得到所述應(yīng)用程序不同類型的運(yùn)行數(shù)據(jù)。
步驟603:將所述不同類型的運(yùn)行數(shù)據(jù)分別存儲(chǔ)到對(duì)應(yīng)的數(shù)據(jù)表中。
可選地,所述數(shù)據(jù)文件包括:對(duì)運(yùn)行數(shù)據(jù)進(jìn)行轉(zhuǎn)換,得到數(shù)據(jù)文件。
可選地,所述接收集成在應(yīng)用程序的數(shù)據(jù)集成sdk獲取的數(shù)據(jù)文件還包括:
若所述數(shù)據(jù)文件接收成功,則刪除所述數(shù)據(jù)文件在所述應(yīng)用程序的緩存;
若所述數(shù)據(jù)文件接收不成功,則繼續(xù)接收來自所述應(yīng)用程序的數(shù)據(jù)文件。
傳統(tǒng)埋點(diǎn)邏輯中,沒有手動(dòng)埋點(diǎn)的元素的用戶界面事件是不可追溯歷史的,通過本實(shí)施例數(shù)據(jù)采集sdk對(duì)全量數(shù)據(jù)的采集,相關(guān)分析人員能夠隨時(shí)去查看元素的歷史數(shù)據(jù)來輔助優(yōu)化以及決策;所述數(shù)據(jù)采集sdk對(duì)于應(yīng)用程序來說是通用的統(tǒng)計(jì)工具,不需要手動(dòng)埋點(diǎn)的同時(shí),規(guī)避了手動(dòng)埋點(diǎn)影響應(yīng)用代碼邏輯的問題。
上述為本實(shí)施例的數(shù)據(jù)采集終端的示意性方案。需要說明的是,該數(shù)據(jù)采集終端的技術(shù)方案與上述的數(shù)據(jù)采集方法的技術(shù)方案屬于同一構(gòu)思,數(shù)據(jù)采集終端的技術(shù)方案未詳細(xì)描述的細(xì)節(jié)內(nèi)容,均可以參見上述數(shù)據(jù)采集方法的技術(shù)方案的描述。
本申請(qǐng)一實(shí)施例提供一種存儲(chǔ)介質(zhì),存儲(chǔ)集成有數(shù)據(jù)采集軟件開發(fā)工具包(sdk)的應(yīng)用程序,所述應(yīng)用程序執(zhí)行以下數(shù)據(jù)采集方法:
所述數(shù)據(jù)采集sdk自動(dòng)獲取所述應(yīng)用程序的運(yùn)行數(shù)據(jù);
所述數(shù)據(jù)采集sdk將獲取到的所述應(yīng)用程序的運(yùn)行數(shù)據(jù)轉(zhuǎn)換為數(shù)據(jù)文件;
所述數(shù)據(jù)采集sdk將所述數(shù)據(jù)文件上傳至服務(wù)器。
上述為本實(shí)施例的一種存儲(chǔ)介質(zhì)的示意性方案。需要說明的是,該存儲(chǔ)介質(zhì)的技術(shù)方案與上述的數(shù)據(jù)采集方法的技術(shù)方案屬于同一構(gòu)思,存儲(chǔ)介質(zhì)的技術(shù)方案未詳細(xì)描述的細(xì)節(jié)內(nèi)容,均可以參見上述數(shù)據(jù)采集方法的技術(shù)方案的描述。
本申請(qǐng)一實(shí)施例提供一種存儲(chǔ)介質(zhì),存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序執(zhí)行以下數(shù)據(jù)采集方法:
接收集成在應(yīng)用程序的數(shù)據(jù)采集軟件開發(fā)工具包(softwaredevelopmentkit,sdk)自動(dòng)獲取的數(shù)據(jù)文件;
分析所述數(shù)據(jù)文件,得到所述應(yīng)用程序不同類型的運(yùn)行數(shù)據(jù);
將所述不同類型的運(yùn)行數(shù)據(jù)分別存儲(chǔ)到對(duì)應(yīng)的數(shù)據(jù)表中。
上述為本實(shí)施例的一種存儲(chǔ)介質(zhì)的示意性方案。需要說明的是,該存儲(chǔ)介質(zhì)的技術(shù)方案與上述的數(shù)據(jù)采集方法的技術(shù)方案屬于同一構(gòu)思,存儲(chǔ)介質(zhì)的技術(shù)方案未詳細(xì)描述的細(xì)節(jié)內(nèi)容,均可以參見上述數(shù)據(jù)采集方法的技術(shù)方案的描述。
參見圖7,本申請(qǐng)一實(shí)施例中,數(shù)據(jù)采集sdk工作流程包括如下步驟701至步驟719。
步驟701:流程開始。
步驟702:啟動(dòng)應(yīng)用程序,獲取上報(bào)方式。
向服務(wù)器申請(qǐng)數(shù)據(jù)的上傳方式,在獲取不到的情況下,會(huì)按照默認(rèn)方式5條/批進(jìn)行數(shù)據(jù)上傳;在獲取成功的情況下,按照服務(wù)器配置的數(shù)據(jù)上報(bào)方式進(jìn)行數(shù)據(jù)上報(bào)。
步驟703:打印啟動(dòng)日志,寫入緩存。
數(shù)據(jù)采集sdk打印應(yīng)用程序的啟動(dòng)日志,記錄用戶啟動(dòng)應(yīng)用程序的相關(guān)信息,其中包括“項(xiàng)目標(biāo)識(shí)、包名、應(yīng)用版本號(hào)、渠道號(hào)、設(shè)備唯一標(biāo)識(shí)、設(shè)備型號(hào)、操作系統(tǒng)、操作系統(tǒng)版本號(hào)、屏幕分辨率、廣告標(biāo)識(shí)符號(hào)、處理器、日志打印客戶端時(shí)間、聯(lián)網(wǎng)方式、網(wǎng)絡(luò)運(yùn)營商、聯(lián)網(wǎng)ip、經(jīng)度、緯度”,并且分配會(huì)話id,會(huì)話id的分配規(guī)則是“時(shí)間戳_隨機(jī)數(shù)”,用于劃分用戶與應(yīng)用的每一次交互。
步驟704:判斷是否有網(wǎng)絡(luò)。
若有網(wǎng)絡(luò),則進(jìn)入步驟705;若沒有網(wǎng)絡(luò)則判斷無網(wǎng)絡(luò)情況下應(yīng)用程序內(nèi)是否可以進(jìn)行操作,不可以操作就不產(chǎn)生日志,反之可以產(chǎn)生日志,若可以操作則進(jìn)入步驟717,若不可以操作則進(jìn)入步驟716;其中用戶的行為日志會(huì)主要是用戶切換頁面的日志和用戶的點(diǎn)擊行為日志。
用戶切換頁面日志會(huì)采集進(jìn)入ui界面的相關(guān)信息及用戶的相關(guān)信息,包括“項(xiàng)目標(biāo)識(shí)、應(yīng)用版本號(hào)、渠道號(hào)、用戶id、廣告標(biāo)識(shí)符號(hào)、設(shè)備唯一標(biāo)識(shí)、操作系統(tǒng)、頁面類名、進(jìn)入頁面的客戶端時(shí)間、會(huì)話id、聯(lián)網(wǎng)ip、頁面類型”;用戶的點(diǎn)擊行為日志會(huì)采集用戶點(diǎn)擊元素的信息,點(diǎn)擊元素所在頁面信息及用戶信息,具體包括“事件id、項(xiàng)目標(biāo)識(shí)、應(yīng)用版本號(hào)、渠道號(hào)、用戶id、廣告標(biāo)識(shí)符號(hào)、設(shè)備唯一標(biāo)識(shí)、操作系統(tǒng)、日志打印客戶端時(shí)間、操作類型、操作橫坐標(biāo)、操作縱坐標(biāo)、元素上文字、元素路徑、元素類型、各層級(jí)元素索引md5加密形式、元素所在頁面、會(huì)話id、頁面類型、聯(lián)網(wǎng)ip”。
步驟705:需要上報(bào)啟動(dòng)/崩潰日志;判斷本地緩存中是否有需要上報(bào)的啟動(dòng)日志或崩潰日志,若需要上報(bào)則進(jìn)入步驟706;若不需要上報(bào)則進(jìn)入步驟707。
步驟706:上報(bào)啟動(dòng)日志/崩潰日志。
進(jìn)行啟動(dòng)日志或崩潰日志的上報(bào),崩潰日志在app發(fā)生崩潰的時(shí)候會(huì)產(chǎn)生并且保存在本地緩存,崩潰日志采集了應(yīng)用發(fā)生崩潰時(shí)的相關(guān)信息,包括“項(xiàng)目標(biāo)識(shí)、異常類型、異常信息詳情、應(yīng)用運(yùn)行內(nèi)存、應(yīng)用版本號(hào)、渠道號(hào)、用戶id、設(shè)備唯一標(biāo)識(shí)、設(shè)備型號(hào)、操作系統(tǒng)、日志打印客戶端時(shí)間、操作系統(tǒng)版本號(hào)、廣告標(biāo)識(shí)符號(hào)、處理器、是否越獄、是否破解、當(dāng)前剩余內(nèi)存、會(huì)話id聯(lián)網(wǎng)ip”。
步驟707:判斷用戶對(duì)否進(jìn)行其他操作。
判斷用戶是否有點(diǎn)擊或切換頁面的操作,如果有的話進(jìn)入步驟708,沒有的話進(jìn)入步驟716。
步驟708:打印日志寫入緩存。
生成用戶的交互日志并寫入本地緩存。
步驟709:判斷是否有網(wǎng)絡(luò)。
若網(wǎng)絡(luò)服務(wù)正常,則進(jìn)入步驟710,若網(wǎng)絡(luò)服務(wù)異常則進(jìn)入步驟718。
步驟710:判斷是否達(dá)到服務(wù)器配置上報(bào)條件。
數(shù)據(jù)采集sdk判斷是否達(dá)到服務(wù)器配置的上報(bào)條件,若已經(jīng)達(dá)到條件則進(jìn)入步驟711,根據(jù)配置上傳緩存日志;若沒有達(dá)到條件則進(jìn)入步驟712。
步驟711:根據(jù)服務(wù)器配置上傳緩存日志。
步驟712:判斷是否進(jìn)入后臺(tái)或鎖屏或退出應(yīng)用。
判斷此時(shí)app是否進(jìn)入后臺(tái)、用戶是否進(jìn)行了鎖屏或退出應(yīng)用的操作,若滿足上述三個(gè)條件之一,則數(shù)據(jù)采集sdk會(huì)開始執(zhí)行步驟713,開始批量上報(bào)緩存中的日志。
步驟713:批量上報(bào)緩存中的日志。
步驟714:判斷服務(wù)器是否接收成功。
服務(wù)器接收成功則進(jìn)入步驟715,刪除已經(jīng)上報(bào)成功的日志在本地的緩存;若服務(wù)器沒有反饋接收成功,則進(jìn)入步驟709。
步驟715:刪除已經(jīng)上傳成功日志在本地緩存。
步驟716:判斷是否退出應(yīng)用。
若沒有退出則進(jìn)入步驟704,若退出應(yīng)用則進(jìn)入步驟719,結(jié)束全部流程。
步驟717:打印行為日志寫入緩存。
步驟718:判斷app內(nèi)是否可操作。
步驟719:結(jié)束。
參見圖8、圖9-1至圖9-3,本申請(qǐng)一實(shí)施例中,相關(guān)分析人員對(duì)數(shù)據(jù)采集sdk獲取到的數(shù)據(jù)實(shí)現(xiàn)可視化操作包括如下步驟801至步驟813。
步驟801:流程開始。
步驟802:啟動(dòng)app;所述app為相關(guān)分析人員才能獲得權(quán)限來進(jìn)行操作,普通用戶無法進(jìn)行操作。
步驟803:選中內(nèi)容。
在app頁面通過藍(lán)色光標(biāo)來選擇需要進(jìn)行定義的元素,若點(diǎn)擊光標(biāo)表示選中了當(dāng)前頁面;通過移動(dòng)光標(biāo)覆蓋元素來選中具體的元素。
步驟804:高亮選中內(nèi)容;即選中的元素突出顯示。
步驟805:進(jìn)入指標(biāo)定義頁面;填寫完整定義指標(biāo)的必要信息。
所述指標(biāo)包括頁面的指標(biāo)和元素的指標(biāo)等可視化行為指標(biāo),具體指標(biāo)包括頁面的瀏覽量、瀏覽用戶數(shù)、瀏覽帳號(hào)數(shù);元素的點(diǎn)擊量、元素點(diǎn)擊用戶數(shù)據(jù)、元素點(diǎn)擊帳號(hào)數(shù)等。
步驟806:判斷是否保存指標(biāo);分析人員填寫完整定義指標(biāo)的必要信息并提交保存則進(jìn)入步驟807,反之則進(jìn)入步驟803,重新選擇需要定義的元素。
步驟807:判斷指標(biāo)是否名稱重復(fù)/指標(biāo)定義重復(fù)。
若出現(xiàn)名稱重復(fù)則會(huì)進(jìn)入步驟809提示用戶修改指標(biāo),用戶修改之后會(huì)進(jìn)入步驟806進(jìn)行保存;若在沒有重復(fù)則進(jìn)入步驟808。
步驟808:判斷服務(wù)器是否反饋成功保存;若保存成功則進(jìn)入步驟811。若保存失敗則進(jìn)入步驟810。
步驟809:提示用戶修改指標(biāo)。
步驟810:指標(biāo)定義失敗。
步驟811:指標(biāo)定義成功。
步驟812:判斷是否退出指標(biāo)定義;步驟810和步驟811結(jié)束后進(jìn)入步驟812判斷分析人員是否退出指標(biāo)定義,若相關(guān)分析人員退出指標(biāo)定義則進(jìn)入步驟813,若沒有退出指標(biāo)定義則進(jìn)入步驟803。
步驟813:結(jié)束。
本實(shí)施例中,所述數(shù)據(jù)采集sdk自動(dòng)獲取所述客戶端中的應(yīng)用程序的運(yùn)行數(shù)據(jù),再將所述運(yùn)行數(shù)據(jù)壓縮成數(shù)據(jù)文件按照服務(wù)器的數(shù)據(jù)上報(bào)方式提交至服務(wù)器,相關(guān)分析人員通過數(shù)據(jù)統(tǒng)計(jì)客戶端與所述服務(wù)器的數(shù)據(jù)接口對(duì)用戶界面元素進(jìn)行可視化的定義,無需撰寫代碼,直接為需要統(tǒng)計(jì)的的元素命名即可創(chuàng)建統(tǒng)計(jì)指標(biāo)。
下面以集成有智能數(shù)據(jù)采集sdk的安卓系統(tǒng)客戶端的應(yīng)用程序?yàn)槔M(jìn)行說明。
獲取頁面跳轉(zhuǎn)瀏覽日志:通過注冊(cè)一個(gè)安卓系統(tǒng)activity生命周期的監(jiān)聽,對(duì)原生頁面獲取焦點(diǎn)和銷毀的時(shí)候分別去做監(jiān)聽,獲取頁面的變化,就可以記錄上一個(gè)頁面到當(dāng)前頁面的數(shù)據(jù)日志。當(dāng)手機(jī)切到后臺(tái)超過30s的時(shí)間就代表用戶的一個(gè)操作會(huì)話結(jié)束,當(dāng)用戶鎖屏超過30s的時(shí)間也代表用戶的一個(gè)操作會(huì)話結(jié)束,這個(gè)時(shí)候會(huì)打印一條頁面跳轉(zhuǎn)結(jié)束的日志。
抓取用戶行為點(diǎn)擊日志:當(dāng)應(yīng)用程序啟動(dòng),界面呈現(xiàn)給用戶時(shí),智能采集sdk會(huì)自動(dòng)監(jiān)聽獲取當(dāng)前頁面,然后可以獲取到頁面的整個(gè)布局結(jié)構(gòu),通過列遞歸算法遍歷查詢布局結(jié)構(gòu)中的所有節(jié)點(diǎn)元素;
當(dāng)用戶點(diǎn)擊一個(gè)頁面元素的時(shí)候,可以抓取到手指點(diǎn)擊所在屏幕的坐標(biāo),同時(shí)開啟一個(gè)子線程,用被點(diǎn)擊元素的狀態(tài)變化,過濾不符合條件的元素,再用這個(gè)坐標(biāo)點(diǎn)通過遞歸算法,計(jì)算過濾剩下不符合條件的元素,最終確定是哪個(gè)元素被點(diǎn)擊了,并記錄用戶的點(diǎn)擊行為數(shù)據(jù)日志。
安卓原生控件在響應(yīng)事件的時(shí)候,會(huì)有一個(gè)事件響應(yīng)狀態(tài)值的變化,再加上手指觸發(fā)事件所在的位置和遍歷的元素的所在范圍做計(jì)算,就可以找到響應(yīng)事件的元素了。
收集數(shù)據(jù):抓取到用戶的行為數(shù)據(jù)和業(yè)務(wù)數(shù)據(jù)后,根據(jù)服務(wù)配置的上報(bào)的方式上報(bào)數(shù)據(jù),在沒有網(wǎng)絡(luò)的情況下,會(huì)緩存到本地,在有網(wǎng)絡(luò)或者重新啟動(dòng)或者條件合適的時(shí)候再次將本地緩存的數(shù)據(jù)上報(bào)到服務(wù)器。
可視化行為指標(biāo)定義:傳統(tǒng)的數(shù)據(jù)收集的方式比較繁瑣,需要在收集的點(diǎn)添加收集數(shù)據(jù)的方法,造成接入比較混亂,而且在后臺(tái)維護(hù)和使用起來也非常麻煩,集成本實(shí)施例的智能數(shù)據(jù)采集sdk后,可以通過可視化行為指標(biāo)定義在移動(dòng)端查看當(dāng)前指標(biāo)元素的瀏覽量或者點(diǎn)擊量,使用起來非常方便,不用預(yù)先將別名寫死。
在可視化行為指標(biāo)定義的時(shí)候,手指移動(dòng)定位選擇圓點(diǎn),在移動(dòng)的同時(shí),遍歷查詢當(dāng)前頁面的所有節(jié)點(diǎn)元素,根據(jù)當(dāng)前藍(lán)色小圈的位置(手指的位置),計(jì)算最小范圍的頁面布局節(jié)點(diǎn),獲取這個(gè)節(jié)點(diǎn)的區(qū)域范圍,計(jì)算手指所在坐標(biāo)是否在這個(gè)元素節(jié)點(diǎn)的區(qū)域范圍內(nèi),如果藍(lán)色小圈的坐標(biāo)點(diǎn)在這個(gè)元素節(jié)點(diǎn)區(qū)域范圍內(nèi),就根據(jù)當(dāng)前的節(jié)點(diǎn)元素的坐標(biāo)范圍,在它上面添加一個(gè)藍(lán)色覆蓋層,表示目前選中一個(gè)元素;當(dāng)相關(guān)分析人員確定要查看這個(gè)元素的相關(guān)數(shù)據(jù)信息(比如點(diǎn)擊量、瀏覽量)時(shí)松開手指就可以了,智能采集sdk會(huì)自動(dòng)到后臺(tái)查詢這個(gè)節(jié)點(diǎn)元素的相關(guān)數(shù)據(jù),然后展示給相關(guān)分析人員,相關(guān)分析人員可以為選中的元素命名,方便以后在平臺(tái)上查看。
上述數(shù)據(jù)采集方法、裝置、終端及存儲(chǔ)介質(zhì)適用于所有系統(tǒng),不僅限于安卓系統(tǒng),并且可以同時(shí)被大量用戶使用,各個(gè)終端的智能采集sdk分別獨(dú)立運(yùn)行,進(jìn)行數(shù)據(jù)采集和上傳。
圖10是本申請(qǐng)實(shí)施例提供的數(shù)據(jù)采集方法的電子設(shè)備的硬件結(jié)構(gòu)示意圖,如圖10所示,該電子設(shè)備包括:
一個(gè)或多個(gè)處理器1001以及存儲(chǔ)器1002,圖10中以一個(gè)處理器1001為例。
執(zhí)行數(shù)據(jù)存儲(chǔ)方法的設(shè)備還可以包括:輸入裝置1003和輸出裝置1004。
處理器1001、存儲(chǔ)器1002、輸入裝置1003和輸出裝置1004可以通過總線或者其他方式連接,圖10中以通過總線1005連接為例。
存儲(chǔ)器1002作為一種非易失性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),可用于存儲(chǔ)非易失性軟件程序、非易失性計(jì)算機(jī)可執(zhí)行程序以及模塊,如本申請(qǐng)實(shí)施例中的數(shù)據(jù)存儲(chǔ)方法對(duì)應(yīng)的程序指令/模塊(例如,附圖3所示的各個(gè)模塊)。處理器1001通過運(yùn)行存儲(chǔ)在存儲(chǔ)器1002中的非易失性軟件程序、指令以及模塊,從而執(zhí)行服務(wù)器的各種功能應(yīng)用以及數(shù)據(jù)處理,即實(shí)現(xiàn)上述方法實(shí)施例的數(shù)據(jù)存儲(chǔ)方法。
存儲(chǔ)器1002可以包括存儲(chǔ)程序區(qū)和存儲(chǔ)數(shù)據(jù)區(qū),其中,存儲(chǔ)程序區(qū)可存儲(chǔ)操作系統(tǒng)、至少一個(gè)功能所需要的應(yīng)用程序;存儲(chǔ)數(shù)據(jù)區(qū)可存儲(chǔ)根據(jù)數(shù)據(jù)存儲(chǔ)裝置的使用所創(chuàng)建的數(shù)據(jù)等。此外,存儲(chǔ)器1002可以包括高速隨機(jī)存取存儲(chǔ)器,還可以包括非易失性存儲(chǔ)器,例如至少一個(gè)磁盤存儲(chǔ)器件、閃存器件、或其他非易失性固態(tài)存儲(chǔ)器件。在一些實(shí)施例中,存儲(chǔ)器1002可選包括相對(duì)于處理器1001遠(yuǎn)程設(shè)置的存儲(chǔ)器,這些遠(yuǎn)程存儲(chǔ)器可以通過網(wǎng)絡(luò)連接至數(shù)據(jù)存儲(chǔ)裝置。上述網(wǎng)絡(luò)的實(shí)例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動(dòng)通信網(wǎng)及其組合。
輸入裝置1003可接收輸入的數(shù)字或字符信息,以及產(chǎn)生與數(shù)據(jù)存儲(chǔ)裝置的用戶設(shè)置以及功能控制有關(guān)的鍵信號(hào)輸入。輸出裝置1004可包括顯示屏等顯示設(shè)備。
所述一個(gè)或者多個(gè)模塊存儲(chǔ)在所述存儲(chǔ)器1002中,當(dāng)被所述一個(gè)或者多個(gè)處理器1001執(zhí)行時(shí),執(zhí)行上述任意方法實(shí)施例中的數(shù)據(jù)存儲(chǔ)方法。
上述產(chǎn)品可執(zhí)行本申請(qǐng)實(shí)施例所提供的方法,具備執(zhí)行方法相應(yīng)的功能模塊和有益效果。未在本實(shí)施例中詳盡描述的技術(shù)細(xì)節(jié),可參見本申請(qǐng)實(shí)施例所提供的方法。
本發(fā)明實(shí)施例的電子設(shè)備以多種形式存在,包括但不限于:
(1)移動(dòng)通信設(shè)備:這類設(shè)備的特點(diǎn)是具備移動(dòng)通信功能,并且以提供話音、數(shù)據(jù)通信為主要目標(biāo)。這類終端包括:智能手機(jī)、多媒體手機(jī)、功能性手機(jī),以及低端手機(jī)等。
(2)超移動(dòng)個(gè)人計(jì)算機(jī)設(shè)備:這類設(shè)備屬于個(gè)人計(jì)算機(jī)的范疇,有計(jì)算和處理功能,一般也具備移動(dòng)上網(wǎng)特性。這類終端包括:掌上電腦(pdapersonaldigitalassistant)、移動(dòng)互聯(lián)網(wǎng)設(shè)備(mid,mobileinternetdevice)和超級(jí)移動(dòng)個(gè)人計(jì)算機(jī)(umpc,ultra-mobilepersonalcomputer)設(shè)備等。
(3)便攜式娛樂設(shè)備:這類設(shè)備可以顯示和播放多媒體內(nèi)容。該類設(shè)備包括:音頻、視頻播放器,掌上游戲機(jī),電子書,以及智能玩具和便攜式車載導(dǎo)航設(shè)備。
(4)服務(wù)器:提供計(jì)算服務(wù)的設(shè)備,服務(wù)器的構(gòu)成包括處理器、硬盤、內(nèi)存、系統(tǒng)總線等,服務(wù)器和通用的計(jì)算機(jī)架構(gòu)類似,但是由于需要提供高可靠的服務(wù),因此在處理能力、穩(wěn)定性、可靠性、安全性、可擴(kuò)展性、可管理性等方面要求較高。
(5)其他具有數(shù)據(jù)交互功能的電子裝置。
在本申請(qǐng)所提供的多個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的裝置和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的檢測(cè)裝置的實(shí)施例僅僅是示意性的,例如,所述模塊的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)模塊或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信鏈接可以是通過一些接口,模塊的間接耦合或通信鏈接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說明的模塊可以是或者也可以不是物理上分開的,作為模塊顯示的部件可以是或者也可以不是物理模塊,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)模塊上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能模塊可以集成在一個(gè)處理模塊中,也可以是各個(gè)模塊單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上模塊集成在一個(gè)模塊中。上述集成的模塊既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的形式實(shí)現(xiàn)。
所述集成的模塊如果以軟件功能模塊的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:u盤、移動(dòng)硬盤、只讀存儲(chǔ)器(rom,read-onlymemory)、隨機(jī)存取存儲(chǔ)器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
需要說明的是,對(duì)于前述的各方法實(shí)施例,為了簡便描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其它順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定都是本發(fā)明所必須的。
在上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有詳述的部分,可以參見其它實(shí)施例的相關(guān)描述。
以上公開的本發(fā)明優(yōu)選實(shí)施例只是用于幫助闡述本發(fā)明??蛇x實(shí)施例并沒有詳盡敘述所有的細(xì)節(jié),也不限制該發(fā)明僅為所述的具體實(shí)施方式。顯然,根據(jù)本說明書的內(nèi)容,可作很多的修改和變化。本說明書選取并具體描述這些實(shí)施例,是為了更好地解釋本發(fā)明的原理和實(shí)際應(yīng)用,從而使所屬技術(shù)領(lǐng)域技術(shù)人員能很好地理解和利用本發(fā)明。本發(fā)明僅受權(quán)利要求書及其全部范圍和等效物的限制。