■文/康 潔 瞿弋微
移動應用分析平臺上基于Ajax實現(xiàn)客戶端應用數(shù)據(jù)采集
■文/康 潔 瞿弋微
隨著移動互聯(lián)網(wǎng)的發(fā)展和智能終端的普及,移動應用下載量和新應用需求呈井噴式增長。然而,由于大量移動應用存在內容同質化、用戶群定位不清、推廣渠道分散、異構平臺體驗不一致等問題,會使運營陷入困境。移動應用分析平臺的主要作用是通過收集移動端產品的用戶、設備、事件、使用情況等海量數(shù)據(jù),從上報信息中分析挖掘潛在價值,幫助應用開發(fā)及運營人員了解產品表現(xiàn),強化核心功能,從而在移動互聯(lián)網(wǎng)時代實現(xiàn)數(shù)據(jù)化、精細化的運營。文中介紹了移動應用分析平臺的工作原理和建設意義,對移動應用數(shù)據(jù)采集部分的技術實現(xiàn)進行了深入研究,在此基礎上提出了未來移動應用分析平臺的發(fā)展建議。
移動應用分析;移動Ajax;SDK;客戶端應用數(shù)據(jù)采集
隨著移動互聯(lián)網(wǎng)的發(fā)展和智能終端的普及,全球移動應用市場發(fā)展迅猛。預計到2017年,全球智能手機和平板電腦的應用程序下載量將達到1600億。中國作為全球第二大移動應用市場,移動應用下載量和新應用需求將呈井噴式增長,同時預示移動客戶端作為新媒體的主要載體,其影響范圍將持續(xù)擴大。
為落實中央要求、搶占新興媒體輿論陣地,新華社提出要大力開展黨政客戶端技術建設,通過在智能終端上開發(fā)信息資訊客戶端,為全國各地方黨委、政府建設自主掌控的掌上新媒體服務平臺,幫助地方政府實現(xiàn)輿論引導和政務公開,同時提供便民服務和溝通渠道,成為群眾建言獻策和參政議政的有力載體。
為全面了解新華社資訊的消費群體,及時發(fā)現(xiàn)用戶對信息服務的需求變化,和用戶建立起良性的互動關系。在新華社黨政客戶端集成管控平臺項目中將重點收集和分析用戶數(shù)據(jù),匯聚受眾基本信息如年齡段、興趣愛好、所在區(qū)域等,對用戶進行統(tǒng)一管理,提供用戶特性分析等服務;匯聚終端用戶登錄、閱讀、分享、評論等行為信息,為進一步增強內容建設,發(fā)展個性化服務產品提供數(shù)據(jù)支撐;匯聚APP產品停留時間、跳轉、退出等使用信息,為進一步提升產品設計,增強用戶黏性指明方向,最終達到資源優(yōu)化、流程優(yōu)化、體驗優(yōu)化、產品優(yōu)化的目的。
1.1 移動應用分析概念
移動應用是移動互聯(lián)網(wǎng)的重要載體,移動應用分析是指在獲得移動應用用戶使用等基本數(shù)據(jù)情況下,進行數(shù)據(jù)分析,深入挖掘用戶使用的特點,找到產品設計的不足,發(fā)現(xiàn)運營推廣的機遇,優(yōu)化產品及運營策略,提升移動應用的質量。
1.2 移動應用分析的意義
1.2.1 監(jiān)控移動應用運營狀態(tài)
移動應用分析最基本的使用場景就是實時監(jiān)控應用的運營狀態(tài)。通過收集應用每日的新增用戶、活躍用戶、留存用戶等數(shù)據(jù),并對其加以分析,以日報、周報、月報的形式進行系統(tǒng)的監(jiān)控。通過分析和比較這些核心數(shù)據(jù)的變化趨勢,用數(shù)據(jù)說話,可以幫助運營和推廣人員多維度觀察應用的運營狀態(tài),及時發(fā)現(xiàn)問題。
1.2.2 提升移動應用推廣效果
渠道是移動應用推廣的主要方式,不同渠道面對的是不一樣的用戶群體,根據(jù)渠道和推廣位置的數(shù)據(jù)分析選擇成本低、效果好的渠道可以有效地找到目標用戶,提升運營表現(xiàn),降低推廣成本。
1.2.3 發(fā)現(xiàn)移動應用產品問題
通過分析應用的訪問路徑、自定義事件點擊/轉化等數(shù)據(jù),找到用戶流失的原因,利用數(shù)據(jù)更快地定位出產品問題或策略問題,并依據(jù)規(guī)范的移動分析思路和方法找出解決方案。
1.2.4 優(yōu)化移動應用功能及體驗
作為移動互聯(lián)網(wǎng)的主要入口之一,移動應用的體驗優(yōu)秀與否在一定程度上決定了用戶的去留,通過移動應用分析找到產品問題,結合訪問路徑、用戶的人口學屬性等制定優(yōu)化策略,提升應用的吸引力和易用性。
圖1 移動應用分析工作流程
1.3 移動應用分析工作原理
目前移動應用分析的方式主要是較為流行的基于SDK(Software Development Kit,即軟件開發(fā)工具包)的分析統(tǒng)計。這種方式是在應用中嵌入一段SDK代碼,SDK代碼規(guī)定了用戶行為收集的規(guī)范,用戶的啟動和使用行為通過SDK記錄在應用中,當發(fā)送條件被觸發(fā)后,這些日志被發(fā)送到服務器來進行分析和挖掘。此方式的優(yōu)點是安裝使用簡單,用戶行為統(tǒng)計更加準確。以下為基于SDK的移動應用分析數(shù)據(jù)收集流程圖(如圖1所示)。
首先產品開發(fā)團隊向移動應用分析平臺注冊以獲取APPID,這是移動應用的唯一標識,通過APPID將采集上報信息與移動應用有機關聯(lián)起來;
第二步 根據(jù)行為收集的規(guī)則,在APP 實現(xiàn)代碼中植入SDK和發(fā)行渠道的相關信息;打包生成安裝文件,上傳到應用市場供審核發(fā)布;
第三步 配合線下活動進行應用推廣,用戶在正確下載安裝應用后,SDK在后臺自動采集用戶使用及設備信息,根據(jù)上報策略向移動應用分析平臺進行異步數(shù)據(jù)上報;
第四步 移動應用分析平臺以流方式接收上報日志文件,接收后存儲到Hbase庫中,后續(xù)使用Map-Reduce工具對日志內容進行分析和挖掘。
第五步 根據(jù)不同角色及業(yè)務需求,建立分析模式,生成各類圖表,供產品運營及開發(fā)人員分析參考。
1.4 移動應用數(shù)據(jù)采集對象
為實現(xiàn)移動統(tǒng)計分析平臺能夠根據(jù)應用發(fā)展目標直觀生成相應指標和圖表,在數(shù)據(jù)采集階段應盡量確保數(shù)據(jù)的全面性、完整性和可靠性。移動應用數(shù)據(jù)采集的對象主要包括渠道來源、受眾屬性、用戶行為和終端設備。
1.4.1 渠道來源
目前的移動應用分發(fā)主要依賴外部渠道的推廣,這里的渠道既包括App Store、Google Play等官方的應用市場和商店外,還有91助手、百度手機助手、聯(lián)盟、In App推廣等非官方渠道。渠道推廣大都是要付費的,因此產品開發(fā)團隊非常關注各個渠道推廣效果如何,渠道來源的分析就抓住了這一點強需求,從源頭上幫助開發(fā)者對比分析推廣效果,以便優(yōu)化廣告投放,提高ROI(Return On Investment,即投資回報率)。
1.4.2 受眾屬性
對于移動應用的用戶群體特性進行分析,是了解應用的受眾屬性最好的方式。掌握了受眾的屬性(如地域分布、年齡、愛好、學歷分布等),才能更加準確地指導后續(xù)運營中的廣告投放,做到有的放矢,把推廣的費用花在刀刃上。
1.4.3 用戶行為
了解了什么樣的人在使用你的應用之后,更要了解這些人是如何使用的。用戶行為包括,用戶活躍度、留存比例、新增數(shù)量、使用時長、使用頻率、使用間隔、頁面訪問路徑、頁面訪問深度等。通過這些翔實的數(shù)據(jù)分析,能夠讓用戶在應用內的行為一目了然。所以深入細致的用戶行為分析,能夠極大地幫助開發(fā)者優(yōu)化應用流程和定位應用內問題。
圖2 數(shù)據(jù)采集實現(xiàn)原理圖
1.4.4 終端設備
移動互聯(lián)網(wǎng)時代與PC互聯(lián)網(wǎng)時代相比,對于開發(fā)者最大的挑戰(zhàn)之一就是終端設備千差萬別,移動應用的適配問題常常讓人頭疼。分辨率不同、機型不一樣、操作系統(tǒng)迥異,這些都給兼容性帶來了極大的挑戰(zhàn)。因此,對于開發(fā)者來講,能夠全面掌握用戶的終端設備及網(wǎng)絡接入情況,這對產品設計具有指導性意義。
以上這些數(shù)據(jù)都是移動應用精細化運營所要研究的問題,數(shù)據(jù)分析的本質也是在于透過數(shù)據(jù)能夠挖掘出背后的問題和癥結所在,用本質原因解釋表面的現(xiàn)象,以指導運營的優(yōu)化。通過這樣的過程,數(shù)據(jù)的價值才能彰顯出來。
如圖2示,根據(jù)黨政客戶端具體業(yè)務場景,為實現(xiàn)移動應用跨平臺數(shù)據(jù)采集的總目標,分別開發(fā)iOS和Android版的移動應用統(tǒng)計SDK。SDK是一些被軟件工程師用于為特定的軟件框架、硬件平臺、操作系統(tǒng)等創(chuàng)建應用的開發(fā)工具的集合,它可以簡單的為程序設計語言提供應用程序編程接口。
移動應用統(tǒng)計SDK參考業(yè)內領先的移動應用數(shù)據(jù)采集工具,支持Android4.4安卓手機和iOS7蘋果手機。通過在iOS和Android原生應用中嵌入統(tǒng)計SDK,當自定義事件被觸發(fā)時,響應函數(shù)調用原生接口,對日志數(shù)據(jù)進行封裝后進行上報。由于移動端內存小、計算能力弱、網(wǎng)絡不穩(wěn)定等特性,在數(shù)據(jù)上報時采用移動Ajax技術進行異步上報。上報數(shù)據(jù)格式使用JSON半結構化數(shù)據(jù)格式規(guī)范。
移動應用數(shù)據(jù)上報到統(tǒng)計分析平臺后,經過收集、清洗、分析等數(shù)據(jù)處理過程,進行各項數(shù)據(jù)匯總,結合業(yè)務模式,生成各類圖表,供產品運營及開發(fā)人員分析參考。
3.1 Ajax
Ajax(Asynchronous JavaScript and XML)并不是一門新的語言 ,它實際上是由幾種主流技術以新的方式組合而成,在共同的協(xié)作中發(fā)揮各自的作用 ,并打破了使用頁面重載。
Ajax的工作原理相當于在用戶和服務器之間加了一個中間層,使用戶操作與服務器響應異步化。并不是所有的用戶請求都提交給服務器 ,像一些數(shù)據(jù)驗證和數(shù)據(jù)處理等都交給 Ajax引擎自己來做 ,只有確定需要從服務器讀取新數(shù)據(jù)時再由 Ajax引擎代為向服務器提交請求,如圖3所示。
圖3 客戶端編程模型
在 Ajax之前 ,Web站點強制用戶進入提交 /等待 /重新顯示 ,用戶的動作總是與服務器的處理時間同步。Ajax引擎提供與服務器異步通信的能力,用戶觸發(fā)請求時,使用 JavaScript和 html立即更新 U I ,并向服務器發(fā)出異步請求 ,以執(zhí)行更新或查詢等流程。當請求返回時 ,就可以使用JavaScript和 css來相應地更新 UI ,并不刷新整個頁面。如果用戶交互不需要從服務器上獲得數(shù)據(jù),Ajax引擎會自主處理這個交互;如果需要從服務器上獲取一些數(shù)據(jù),Ajax引擎會完成一個異步調用,而不打斷用戶流。借助Ajax,用戶體驗不到瀏覽器何時與服務器通信,Web應用看起來是即時響應的。
現(xiàn)在Ajax技術大量應用到移動領域,解決移動業(yè)務的如下問題:
①間斷的網(wǎng)絡連接問題:Ajax將一部分應用邏輯從服務器端移到瀏覽器端,與傳統(tǒng)Web應用的按請求獲?。‵etch on Demand)不同,Ajax采取預取(Predict ive Fet ch)模式可以提高緩存命中率,大幅減少用戶的訪問延時。
②帶寬限制問題:在一個會話中,服務器只返回一次頁面,包括模板文件、用戶導航及大量JavaScript代碼,由這些代碼決定是否離線處理或將請求傳遞給Web服務器。在整個交互過程中,Web服務器只需發(fā)送相關的數(shù)據(jù)。這樣大幅縮減了數(shù)據(jù)的傳輸量,降低帶寬的耗費。
③輸入補全:Ajax的異步機制可以在用戶輸入數(shù)據(jù)的同時從服務器取得備選數(shù)據(jù)以便自動補全,極大緩解移動設備輸入方式的壓力。
3.2 JSON
JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式,基于JavaScript的一個子集。JSON有兩種數(shù)據(jù)結構,分別是對象和數(shù)組,通過這兩種結構可以表示各種復雜的結構:
①對象:數(shù)據(jù)結構為 {key:value,key:value...}的鍵值對。取值方法為對象key 獲取屬性值,這個屬性值的類型可以是數(shù)字、字符串、數(shù)組、對象幾種。
②數(shù)組:數(shù)組在js中是中括號“[]”括起來的內容,數(shù)據(jù)結構為 [“java”“javascript”“vb”...],使用索引方式取值,字段值的類型可以是數(shù)字、字符串、數(shù)組、對象幾種。
集成移動統(tǒng)計分析SDK的應用在啟動后,根據(jù)上報策略(包括啟動上報、事件上報等),完成數(shù)據(jù)組織和封裝。根據(jù)網(wǎng)絡連接情況,以POST方式向后臺上報接口進行內容上報。在網(wǎng)絡連接不穩(wěn)定或內容提交不成功的情況下,將上報信息寫入本地日志文件,待恢復后再次提交日志,日志文件內容的去重由服務器端完成。
在日志上報實現(xiàn)過程中我們遇到一種情況,就是移動應用會并行發(fā)出多條Ajax請求。在網(wǎng)絡狀況良好時,基本上Ajax請求數(shù)對性能沒有什么影響。但是在信道資源緊張的移動網(wǎng)絡下,會造成網(wǎng)絡擁堵的問題。而一個移動應用中只有大部分主請求是有時效性要求的,所以我們引入Ajax隊列,將用戶行為上報請求滯后發(fā)送,即等主請求都返回后,再依次發(fā)送。這時,我們就需要引入Ajax隊列的概念,將Ajax請求分優(yōu)先級,優(yōu)先級低的可以滯后發(fā)送,盡量將網(wǎng)絡資源讓給主要的Ajax請求,為了方便的使用Ajax隊列,我們封裝了一個Ajax基礎庫(圖4)。
下面以事件上報為例,其數(shù)據(jù)組織上報和處理的時序圖如下,在數(shù)據(jù)上報過程中調用了異步上報接口(圖5)。
5.1 功能測試
4月中旬完成了統(tǒng)計上報SDK1.0版本的開發(fā)工作后,為測試移動應用統(tǒng)計SDK設計是否滿足數(shù)據(jù)采集需求,選取新華河北Android版應用為原型,進行集成測試工作。歷時5天,完成SDK第一階段測試工作,實現(xiàn)了對欄目點擊量、稿件點擊量、停留時長、終端信息、自定義事件等重點數(shù)據(jù)的采集功能。
圖4 異步日志上報實現(xiàn)原理圖
圖5 事件上報時序圖
集成過程遵循Android版移動應用統(tǒng)計SDK集成方案,圍繞業(yè)務需求主要對現(xiàn)有模塊進行自定義事件和啟動上報兩種方式上報數(shù)據(jù)。步驟分為后臺頁面數(shù)據(jù)注冊處理部分和前端客戶端相關模塊測試兩部分。
針對自定義上報數(shù)據(jù)方式,需首先進入自定義事件管理模塊添加事件id并通過事件上報方式與相應界面、模塊進行匹配。
其次,根據(jù)要求針對用戶登錄、欄目點擊、文章點擊、文章頂踩、評論等模塊進行事件方法的植入。
第三,利用logcat工具進行模擬器調試,確認數(shù)據(jù)組裝情況,調用接口,完成信息上報。
根據(jù)測試內容需求,客戶端登錄、欄目點擊、稿件點擊、文章評論、點贊、收藏、欄目停留時長等模塊均以事件方式上報測試數(shù)據(jù)。后臺基礎統(tǒng)計結果如圖6。
5.2 性能測試
①在本次測試中,將授權驗證startWithAppKey方法植入在新華河北客戶端用戶登錄方法中,增加登錄運行時間4-5秒,約占APP啟動時長的50%。其余上報自定義事件約占點擊響應時間10%以下。
②根據(jù)統(tǒng)計分析要求,結合SDK使用文檔說明,對原有的APP的修改主要涉及登錄界面、程序主界面、欄目列表界面、欄目訂閱、新聞詳情界面、設置界面等主要前端展示界面。涉及改動界面Activity類10個左右,每個Activity添加相關事件上報和啟動上報代碼大約20行。代碼開發(fā)量與數(shù)據(jù)采集指標、上報事件數(shù)等成正比。
圖6 APP使用時長效果圖
6.1 背景介紹
黨政客戶端項目是全社重點工程,是搶占新媒體主陣地、實現(xiàn)戰(zhàn)略轉型的突破口,是推進集成服務的新空間,搶占4G先機的制高點。今年全國兩會前,浙江分社建成、推出10個黨政客戶端,北京、上海、云南、江蘇等13個試點分社也相繼推出多個黨政客戶端應用。2014年全年目標為建成500-800個黨政客戶端,覆蓋三分之一縣市,初步建成全國最大的黨政客戶端集群,并逐步拓展行業(yè)、企事業(yè)用戶。
6.2 移動應用分析面臨的問題
6.2.1 全局數(shù)據(jù)需要打通
當我們獲取單獨APP數(shù)據(jù)時,這些數(shù)據(jù)都是孤立的,我們不太會關心用戶在其他APP中有什么樣的行為特征。而當我們擁有數(shù)十個APP時,如果能將各APP數(shù)據(jù)打通,那我們能獲得的數(shù)據(jù)價值將會呈幾何級數(shù)增長。每個用戶使用的手機MAC號通常情況下是唯一的,所以我們可以通過MAC號來將用戶打通。
6.2.2 信息需要補全
在移動應用分析中,一個棘手的問題,就是用戶信息不完整,不能有效地為其推送。用戶信息不完整的主要原因是在單個APP中留下的信息量少,如果能利用用戶在其他APP的信息來補全,則可以大大優(yōu)化用戶體驗。
6.3 應用展望
6.3.1 APP互推
APP互推是一種通過挖掘APP之間的隱含關系,將一個APP推送到另外一個相關類的App產品。在沒有打通APP數(shù)據(jù)之前,APP互推一般都是根據(jù)隨機原則、熱門APP原則、相似相近原則來進行推薦。這些方法存在命中率問題,如為不同類型用戶推薦相同的APP,推薦的APP符合用戶喜好的準確率低,推薦內容不夠豐富等。
當多個APP數(shù)據(jù)打通后,原始APP推送方法可以得到明顯的改善。一方面,我們可以獲取用戶的全局信息,利用這些信息我們可以更好地為用戶做個性化推薦;另一方面,由于APP的打通,我們能更好地將用戶、APP進行聚類分析,這樣更方便了解相似用戶對相似應用的偏好使用。
6.3.2 廣告應用
在沒有打通APP數(shù)據(jù)之前,APP的廣告一般都是根據(jù)APP的關鍵詞原則進行投放,不同用戶在登錄同一應用時可能接收到同一個廣告。這種投放方法存在明顯問題,只抓住了APP的匹配性,沒有抓住APP上具體人的匹配性。比如:一個人剛瀏覽過母嬰類的APP轉入另一個新聞類的APP時,該新聞類APP大多會為其投放既定內容廣告,而不是母嬰類的廣告。
當我們把APP數(shù)據(jù)打通后,用戶的信息更全面,可以綜合起來使用。如上例中用戶瀏覽母嬰類APP后轉入新聞類APP時,該新聞類APP會為其投放熱銷品和母嬰類的廣告。因為通過全面的用戶信息,APP已經記憶了用戶的歷史行為。所以,當上述情況發(fā)生時,新聞網(wǎng)站可以根據(jù)用戶從母嬰網(wǎng)站帶來的喜好為其投放與其喜好相近的廣告。這樣才能更加準確地抓住用戶心理,讓用戶、應用提供商及廣告商實現(xiàn)共贏。
2013年10月 , 黨政客戶端項目進入市場,現(xiàn)已先后推出了覆蓋28省300多個資訊類移動應用,受到用戶好評,初步取得了較好的社會和經濟效益。隨著覆蓋區(qū)域不斷擴大和產品功能日趨豐富,該品牌的權威性和影響力將更加突現(xiàn)。移動應用分析平臺使黨政客戶端產品進入數(shù)字化運營,科學有據(jù)的分析和合理的改進措施必將促進新華社出品移動應用的更快發(fā)展 。
[1]官建文,唐勝宏等.中國移動互聯(lián)網(wǎng)發(fā)展報告2013[M].北京:社會科學文獻出版社,2013(5):253-271.
[2]張傳福,劉麗麗,盧輝斌等.移動互聯(lián)網(wǎng)技術及業(yè)務.北京:電子工業(yè)出版社,2012(1):97-101.
[3]百度移動應用分析白皮書v1.0,2003:4-42.
(作者單位:新華社技術局)
G210.7
A
1671-0134(2017)12-099-06
10.19483/j.cnki.11-4653/n.2017.02.028