亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于數(shù)據和狀態(tài)的移動應用可視化埋點方法

        2022-05-30 02:51:51金小俊孫艷霞趙化陳勇
        電腦知識與技術 2022年10期
        關鍵詞:移動應用數(shù)據采集可視化

        金小俊 孫艷霞 趙化 陳勇

        摘要:數(shù)據支撐業(yè)務的發(fā)展,驅動決策的落地。建立完整的數(shù)據采集、上報和分析平臺非常必要。數(shù)據埋點作為一種最常用的用戶行為統(tǒng)計方式,能夠快速、準確地采集用戶使用習慣以及App功能的反饋。埋點的本質為追蹤用戶操作或功能行為的發(fā)生,而用戶的操作則會觸發(fā)App功能的變化,這些變化最終會體現(xiàn)數(shù)據和狀態(tài)的變化。由此,該文提出了一種基于數(shù)據和狀態(tài)的移動應用可視化埋點方法,通過可視化界面設置埋點對應的數(shù)據和狀態(tài),繼而在數(shù)據和狀態(tài)發(fā)生變化時記錄相應埋點。結果表明,該文提出的埋點方法靈活高效、可擴展性更強,具有較高實際應用價值。

        關鍵詞:數(shù)據埋點;數(shù)據采集;數(shù)據和狀態(tài);移動應用;可視化

        中圖分類號:TP311.56? ? ? ? 文獻標識碼:A

        文章編號:1009-3044(2022)10-0019-02

        在發(fā)展日新月異的移動互聯(lián)網時代,數(shù)據扮演著極其重要的角色。數(shù)據支撐業(yè)務的發(fā)展,驅動決策的落地。建立完整的數(shù)據采集、上報和分析平臺非常必要,而其中數(shù)據采集的全面,精準和效率尤其重要[1]。埋點作為一種最簡單最直接的用戶行為統(tǒng)計方式,能夠全面精確地采集用戶的使用習慣以及各功能點的迭代反饋等,有了這些數(shù)據才能更好地驅動產品的決策設計和新業(yè)務場景的規(guī)劃[2]。

        傳統(tǒng)埋點方式包括代碼埋點、全埋點和可視化埋點。代碼埋點需要在代碼中手動置入相關埋點代碼,缺點為造成埋點邏輯和業(yè)務代碼強耦合,且需要發(fā)布版本才能使埋點生效[3]。全埋點不區(qū)分埋點邏輯,需要后期使用大數(shù)據技術在獲取的信息中尋找相應埋點值,查詢成本和維護成本較高??梢暬顸c通過可視化界面配置埋點信息,其埋點維護友善,但僅能設置用戶界面相關的埋點[4]。另外,由于iOS和Android系統(tǒng)界面元素不同,需要針對不同應用系統(tǒng)分別進行埋點配置,增加了使用成本[5]。為解決現(xiàn)有埋點技術存在的不足,本文提出了一種基于數(shù)據和狀態(tài)的可視化埋點方法。

        1 數(shù)據埋點方案

        埋點的本質是追蹤用戶的操作或功能行為的發(fā)生。用戶的操作會觸發(fā)App功能的變化,這些變化最終會體現(xiàn)在數(shù)據和狀態(tài)的變化。比如點擊某個按鈕,會導致頁面發(fā)生變化,或者觸發(fā)某個網絡請求后返回新的數(shù)據值。而頁面的變化其實也是數(shù)據的變化(導航?;蝽撁鎸蛹墬5膬热莅l(fā)生了變化) 。簡而言之,用戶的所有操作導致App行為的變化都可以用某個值(或者某些值的組合) 的變化來表示,因此埋點操作可以轉換為監(jiān)控這些數(shù)據,當某個(些) 數(shù)據值發(fā)生變化時記錄相應的埋點?;跀?shù)據和狀態(tài)的埋點方案總體思想為:

        (1) 總能將用戶的操作或功能行為的發(fā)生用某個(些) 數(shù)據值的變化來表示;

        (2) 埋點的發(fā)生由數(shù)據和狀態(tài)的變化來驅動;

        (3) 埋點的記錄即是在簡單的指定狀態(tài)下數(shù)據值的匹配過程。

        進一步將數(shù)據和狀態(tài)與可視化埋點方案結合。一方面,對于埋點只需將數(shù)據和狀態(tài)進行配置和管理,而無須識別頁面內的各控件,也無須對控件做唯一標識。另一方面,多平臺自然統(tǒng)一(埋點對應的數(shù)據名稱是相同的,只是在各平臺代碼中綁定的變量名不同) 。埋點方案流程如圖1所示。

        2 數(shù)據與狀態(tài)

        2.1 數(shù)據

        數(shù)據分為數(shù)據名稱,數(shù)據變量和數(shù)據值。數(shù)據名稱是指在埋點配置可視化界面中提供的供運營人員配置埋點的數(shù)據名,比如訂單狀態(tài)。數(shù)據變量是指各平臺代碼中對應的變量名,比如iOS中訂單狀態(tài)對應的變量名為self.orderType, Android中訂單狀態(tài)對應的變量名為this.orderType。數(shù)據值指程序實際運行中該變量對應的值,比如訂單狀態(tài)為已預訂的時候訂單狀態(tài)的數(shù)據值為1,訂單狀態(tài)為行程中的時候訂單狀態(tài)對應的數(shù)據值為2。數(shù)據名稱、數(shù)據變量和數(shù)據值在埋點配置界面進行綁定。如此,埋點配置流程即為,選擇訂單狀態(tài),當訂單狀態(tài)為已預訂時記錄埋點值order_reserved,當訂單狀態(tài)為行程中時記錄埋點值order_ongoing。App端接收到埋點配置表后,對相應的數(shù)據變量進行匹配,當變量值為1時記錄埋點值order_reserved,當變量值為2時記錄埋點值order_ongoing。數(shù)據綁定和配置如圖2所示。

        2.2 狀態(tài)

        App端在對數(shù)據變量值進行匹配時需要一個觸發(fā)時機,即什么時候去檢查數(shù)據的變量值。傳統(tǒng)的可視化埋點是在用戶點擊了埋點控件后在事件響應方法中記錄埋點值,也就是觸發(fā)的時機是控件事件發(fā)生時。由此,本文引入狀態(tài)的概念,在狀態(tài)發(fā)生變化的時候檢查數(shù)據的變化。狀態(tài)包含以下幾類:

        (1) 發(fā)生用戶操作事件時(hook點擊事件、手勢事件等)

        hook各類控件的各類事件響應方法,比如按鈕的點擊事件或者視圖的手勢事件等。這些事件的響應方法被觸發(fā)即代表用戶進行了某種類型的操作,當該狀態(tài)發(fā)生時對變量值進行檢測和埋點處理。

        (2) UI發(fā)生變化時,比如導航棧中的控制器發(fā)生了增減

        監(jiān)控系統(tǒng)導航棧,當導航棧的內容發(fā)生變化時,對其內的數(shù)據進行匹配檢查。具體示例:假設需要在用戶進入訂單詳情頁時記錄埋點值,則App端在導航棧發(fā)生變化及頁面發(fā)生跳轉的時候檢測當前頁面是否訂單詳情頁,若是,則記錄埋點值。

        (3) 當前頁面或Window上的視圖層發(fā)生了變化

        監(jiān)控當前頁面或者Window圖層的變化,比如用戶刪除訂單時會彈出彈窗,讓用戶確認是否刪除,并記錄埋點值user_delete_order,同時需要判斷用戶是個人用戶還是企業(yè)用戶。相應埋點配置流程為:在[視圖交互]-[彈窗]狀態(tài)時,當[彈框頁面]為[刪除訂單]時,且[用戶類型]為[個人用戶]時,記錄埋點值individual_user_delete_order。

        (4) 頁面內指定的某個函數(shù)(方法) 執(zhí)行前或執(zhí)行后

        在此情況下,狀態(tài)為某個函數(shù)的執(zhí)行。hook指定函數(shù),當函數(shù)執(zhí)行時即為狀態(tài)發(fā)生,此時檢查數(shù)據的變化進行匹配并記錄埋點。比如,當用戶請求行程預估價格時,記錄埋點值request_estimate_price,請求預估價格失敗時記錄埋點值request_estimate_price_failed。相應埋點配置流程為:在[方法執(zhí)行]-[請求行程預估價格]-[開始]狀態(tài)時,記錄埋點值request_estimate_price,在[方法執(zhí)行]-[請求行程預估價格]-[結束]狀態(tài)時,當[返回值]為[false]時,記錄埋點值request_estimate_price_failed。如此,埋點的配置過程也是一個語義化的描述過程。狀態(tài)綁定和配置如圖3所示。

        3 埋點實施

        埋點實施包含兩部分:埋點配置系統(tǒng)和移動應用埋點SDK(簡稱埋點SDK) 。

        3.1 埋點配置系統(tǒng)

        以頁面(iOS為UIViewController, Android為Activity) 為單位進行埋點配置,頁面以類名作為唯一標識。若存在該頁面的設計圖,則直接將設計圖導入埋點配置系統(tǒng),若沒有相應的設計圖,則在App端進行截屏并將該頁面截圖上傳。頁面導入成功后,由開發(fā)人員將數(shù)據名稱,數(shù)據變量和數(shù)據值進行綁定。綁定后生成數(shù)據列表,供運營人員配置埋點時使用。

        狀態(tài)配置為指定在何種情況下(觸發(fā)條件) 進行埋點值的匹配和記錄。配置系統(tǒng)默認提供3種類型的可選狀態(tài),分別為[控件交互][頁面交互]和[視圖交互]。除此之外,還提供自定義的[方法執(zhí)行]狀態(tài)。[控件交互]包括[點擊事件、長按手勢、拖動手勢、滑動手勢、縮放手勢],表示用戶對App進行交互的狀態(tài)。[頁面交互]狀態(tài)主要用來記錄PV埋點,包括[頁面進入,頁面退出],在配置系統(tǒng)可直接配置[頁面進入]和[頁面退出]分別對應的埋點值。[視圖交互]狀態(tài)包括[普通視圖,彈窗]兩種,[普通視圖]為當前頁面上添加或展現(xiàn)的視圖,[彈窗]則為Window上添加或展現(xiàn)的視圖。在設置視圖交互狀態(tài)時還需指定視圖的名稱,視圖的名稱以視圖的類名來標識,如果是非自定義的視圖(比如系統(tǒng)默認彈窗視圖) ,則不同的彈窗其類名是相同的,這種情況下視圖標識符取類名加彈窗上的標題文本(若類名相同標題亦相同則認為是同一個視圖) 。[方法執(zhí)行]狀態(tài)用來表示某種操作的進行,以頁面中的指定方法開始執(zhí)行和結束執(zhí)行為依據。其默認提供[開始]和[結束]兩個子狀態(tài),對應到埋點SDK端即hook的時候,在原方法執(zhí)行前注入埋點代碼和原方法執(zhí)行后注入埋點代碼。

        3.2 埋點SDK

        將下發(fā)的埋點配置表中的變量在狀態(tài)條件滿足時進行匹配(即讀取運行時的數(shù)據值和表中的值進行匹配) 。運行時讀取值的方法:iOS端采用KVC的方式,Android采用反射的方式。對于狀態(tài)的監(jiān)控分別為對控件交互狀態(tài)、頁面交互狀態(tài)、視圖交互狀態(tài)、方法執(zhí)行狀態(tài)進行監(jiān)控。

        控件交互狀態(tài)通過hook控件的響應事件來進行監(jiān)控。對于點擊事件,hook系統(tǒng)的點擊事件方法(iOS hook UIControl的sendAction:to:forEvent:方法,Android hook onClick方法) ,當該方法執(zhí)行時表示點擊事件發(fā)生,此時讀取埋點配置表中該狀態(tài)下的數(shù)據列表,對數(shù)據值(或數(shù)據值組合) 進行匹配,根據匹配結果記錄埋點值。手勢事件的監(jiān)控同理。

        頁面交互狀態(tài)通過對系統(tǒng)的導航棧進行監(jiān)控,若導航棧內的頁面發(fā)生變化,即代表頁面發(fā)生了跳轉(頁面交互) ,根據導航棧內頁面是增加還是減少來判斷是頁面進入或是頁面退出。

        視圖交互狀態(tài)則對當前視圖或Window視圖的所有子視圖列表進行監(jiān)控,若列表發(fā)生增減,即代表視圖發(fā)生了變化,根據發(fā)生變化的視圖標識符來進行埋點匹配。

        方法執(zhí)行狀態(tài)的監(jiān)控通過讀取系統(tǒng)下發(fā)的埋點配置表中指定的狀態(tài)方法名對所有指定的方法進行hook操作,hook時根據子狀態(tài)是[開始]還是[結束]來判斷hook的操作是在原方法執(zhí)行前生效還是執(zhí)行后生效。另外,hook方法時同時獲取方法的入參和出參(返回值) ,供埋點的子狀態(tài)下數(shù)據匹配時使用。

        4 結束語

        本研究提出了一種基于數(shù)據和狀態(tài)的可視化埋點方法。在移動應用中總能將用戶的操作或功能行為的發(fā)生用某個(些) 數(shù)據值的變化來表示,因而,埋點的發(fā)生可由數(shù)據和狀態(tài)的變化來驅動?;诖怂枷耄顸c的記錄即是簡單的指定狀態(tài)下數(shù)據值的匹配過程。通過進一步將數(shù)據和狀態(tài)與可視化埋點方案結合,則對于埋點只需對數(shù)據和狀態(tài)進行配置和管理,而無須識別頁面內的各控件,也無須對控件做唯一標識。應用表明,本文提出的埋點方法靈活高效、可擴展性更強,具有較高實際價值。

        參考文獻:

        [1] 趙強,彭瑋.新聞App用戶行為分析的實現(xiàn)[J].中國傳媒科技,2019(3):39-43.

        [2] 李旭,翟穎琳.基于數(shù)據分析平臺的App交互設計測試評估研究[J].包裝工程,2018,39(2):143-148.

        [3] 廖愛紅,羅銘濤.埋點管理系統(tǒng)分析與設計[J].辦公自動化,2020,25(16):33-35.

        [4] 蔡榆榕.運用埋點技術實現(xiàn)高校應用服務平臺過程監(jiān)控[J].中國管理信息化,2021,24(15):187-190.

        [5] 吳榮燦,羅嘉龍,鄭伙群,等.基于大數(shù)據技術的用戶行為分析平臺的設計與實現(xiàn)[J].電腦知識與技術,2021,17(12):40-42.

        【通聯(lián)編輯:代影】

        收稿日期:2021-09-22

        基金項目:國家自然科學基金項目(32072498)

        作者簡介:金小?。?987—),男,工程師,碩士,主要從事軟件工程及人工智能技術研究;孫艷霞(1988—),女,工程師,碩士,主要從事機器人及工程機械研究;趙化(1988—),男,助理工程師,學士,主要從事軟件架構與設計研究;通信作者:陳勇(1965—),男,教授,博士生導師,博士,主要從事機電一體化研究。

        猜你喜歡
        移動應用數(shù)據采集可視化
        基于CiteSpace的足三里穴研究可視化分析
        基于Power BI的油田注水運行動態(tài)分析與可視化展示
        云南化工(2021年8期)2021-12-21 06:37:54
        基于CGAL和OpenGL的海底地形三維可視化
        “融評”:黨媒評論的可視化創(chuàng)新
        傳媒評論(2019年4期)2019-07-13 05:49:14
        T學校公共設施便捷報修平臺的移動應用研究
        東方教育(2016年18期)2017-01-16 16:42:44
        云計算環(huán)境下的微課移動云平臺設計
        大數(shù)據時代下免費手機軟件盈利模式探討
        鐵路客流時空分布研究綜述
        基于廣播模式的數(shù)據實時采集與處理系統(tǒng)
        軟件工程(2016年8期)2016-10-25 15:54:18
        通用Web表單數(shù)據采集系統(tǒng)的設計與實現(xiàn)
        軟件工程(2016年8期)2016-10-25 15:52:53
        黄片视频免费在线播放观看| 国产成人香蕉久久久久| 精品亚洲视频免费观看网站| 中文有码人妻字幕在线| 99国产精品久久久蜜芽| 久久久精品免费观看国产| 国产传媒剧情久久久av| 视频一区二区三区黄色| 久久精品中文字幕大胸| 国产国产人精品视频69| 激情五月婷婷六月俺也去 | 91精品国产综合久久熟女| 午夜福利试看120秒体验区| 五月激情婷婷丁香| 日韩色久悠悠婷婷综合| 美女露出自己的性感大胸一尤内衣 | 国产一区a| 18禁成人免费av大片一区| av一区二区三区在线| 青草视频在线播放| 亚洲AV成人无码久久精品在| 亚洲国产成人久久精品美女av| 特黄 做受又硬又粗又大视频| 亚洲欧洲偷自拍图片区| 欧美日韩一区二区三区视频在线观看| 青青草视频在线观看精品在线| 亚洲欧美日韩另类精品一区| 欧美黑人又粗又大久久久| 成人综合亚洲国产成人| 亚洲人成在久久综合网站| 国产av人人夜夜澡人人爽麻豆| 亚洲一区二区在线视频播放| 亚洲av色香蕉一区二区三区潮| 午夜免费福利小电影| 极品尤物高潮潮喷在线视频| 一本久久a久久精品综合| 中国一级特黄真人片久久| 久久久精品人妻一区二区三区四| 国产又爽又黄又不遮挡视频| 亚洲第一黄色免费网站| 精东天美麻豆果冻传媒mv|