本發明涉及數據處理技術領域,特別是指一種上報用戶行為數據的方法及裝置。
背景技術:
現有技術中,在網站或者網頁中,通常都是通過當前網頁的超鏈接連接到更加詳細的網頁或者獲取更加詳細的信息,因此,對于監控或者運營商來說,統計用戶在網頁上的訪問行為(點擊行為、點擊的次數以及點擊的軌跡),對于了解網站運營狀況以及分析用戶行為顯得尤為重要。例如:統計網站被訪問的次數、哪些用戶訪問哪些網站、用戶對某一個網頁的訪問次數等等。
發明人在實現本發明的過程中發現,現有的網站或者網頁一般是使用Ajax技術來做上報,Ajax是一種用于創建更好更快以及交互性更強的Web應用程序的技術。這種技術需要解決瀏覽器緩存問題,以及不能識別中文代碼而導致的中文亂碼問題和跨域訪問的問題。某些第三方工具解決了Ajax上報的問題,但是需要把數據上報到第三方服務器上去分析和統計,可能造成數據泄露。同時,現有的網站或者網頁上報的數據不能很好的進行實時計算。一般是存儲到業務數據庫中,后期進行抽取、轉換、加載到數據倉庫中,具有較長的時延。
技術實現要素:
有鑒于此,本發明的目的在于提出一種能夠有效完成用戶訪問行為的上報和統計的方法和裝置。
第一方面,本發明實施例提供了一種上報用戶行為數據的方法,包括:
當終端接收到用戶訪問請求后,實時監測并接收所述用戶的點擊訪問操作;
根據所述用戶的點擊訪問操作生成記錄信息,并將所述記錄信息發送給服務器。
第二方面,本發明實施例提供了一種上報用戶行為數據的方法,包括:
接收到終端發送的記錄信息后,將所述記錄信息進行緩存;
對所述記錄信息進行分級處理,并將處理后的記錄信息存入數據庫。
第三方面,本發明實施例還提供了一種上報用戶行為數據的裝置,包括:
訪問操作監測和接收模塊、記錄信息生成模塊和記錄信息發送模塊;
所述訪問操作監測和接收模塊終端用于實時監測并接收用戶的訪問操作;
所述記錄信息生成模塊用于根據所述用戶的訪問操作生成記錄信息;
所述記錄信息發送模塊用于將所述記錄信息發送給服務器。
第四方面,本發明實施例還提供了一種上報用戶行為數據的裝置,包括:緩存模塊、處理模塊和存儲模塊;
所述緩存模塊用于對所述記錄信息緩存;
所述處理模塊用于對所述記錄信息進行分級處理,并將分級處理后的記錄信息存入所述存儲模塊;
所述存儲模塊用于存儲所述分級處理后的記錄信息。
從上面所述可以看出,本發明實施例提供的一種上報用戶行為數據的方法及裝置,包括:接收到用戶訪問請求后,實時監測并接收所述用戶的點擊訪問操作;根據所述用戶的點擊訪問操作生成記錄信息,并將所述記錄信息發送給服務器。服務器接收到終端發送的記錄信息后,將所述記錄信息進行緩存;對所述記錄信息進行分級處理,并將處理后的記錄信息存入數據庫。實現了不通過第三方工具即可有效完成用戶訪問行為的上報和統計的目的,同時解決瀏覽器緩存問題,由于不能識別中文代碼導致的中文亂碼問題和跨域訪問的問題。
附圖說明
圖1為本發明上報用戶行為數據的方法的終端的一個實施例的示意圖;
圖2為本發明上報用戶行為數據的方法的終端的一個實施例的詳細流程圖;
圖3為本發明上報用戶行為數據的方法的一個實施例的示意圖;
圖4所示,為本發明實施例上報用戶行為數據的裝置的組成結構示意圖;
圖5為本發明實施例上報用戶行為數據的裝置的組成結構示意圖。
具體實施方式
為使本發明的目的、技術方案和優點更加清楚明白,以下結合具體實施例,并參照附圖,對本發明進一步詳細說明。
作為本發明的一個實施例,如圖1所示,本發明上報用戶行為數據的方法的終端的一個實施例的示意圖。從圖1中可以看出,本發明實施例提供的一種上報用戶行為數據的方法,應用于終端,包括以下步驟:
步驟101:接收到用戶訪問請求后,監測并接收所述用戶的點擊訪問操作。
當用戶訪問網頁或者網站時,終端會接收到用戶點擊操作,并從接收到用戶對網頁或者網站的點擊操作后開始,監測并接收所述用戶后續的點擊訪問操作;
步驟102:根據用戶的點擊訪問操作生成記錄信息。
當監測到用戶的訪問網頁或者網站的操作后,根據用戶的訪問網頁或者網站的操作,生成對應的記錄信息,所述記錄信息包括用戶訪問的網頁或者網站的地址、用戶的訪問軌跡,即從一個網頁或者網站訪問另一個網頁或者網站的過程。
步驟103:將所述記錄信息發送給服務器。
終端根據用戶的訪問網頁或者網站的操作生成記錄信息,并將所述記錄信息發送給服務器。
實現了不通過第三方工具即可有效完成用戶訪問行為的上報和統計的目的,同時解決瀏覽器緩存問題,由于不能識別中文代碼導致的中文亂碼問題和跨域訪問的問題。
作為本發明上報用戶行為數據的方法的另一個實施例,在上述實施例的實時監測并接收用戶的點擊訪問操作的步驟101之前還可以包括,在網頁或網站中預先配置JS-SDK程序包,所述JS-SDK程序包用于完成用戶的訪問操作的的監測和接收。js-sdk是一種完全用java腳本語言書寫的sdk開發工具包,他是面向服務的編程,它的編程速度效率是java編程的5-10倍,可快速的將用戶的訪問網頁或者網站的操作生成代碼。需要說明的是,本發明實施例的程序包但并不限于JS-SDK程序包。
作為本發明上報用戶行為數據的方法的另一個實施例,當用戶的訪問目標網站或網頁由第一域跳轉到第二域時,所述JS-SDK程序包直接根據所述第一域中訪問地址中的cookie信息獲得用戶賬戶信息,響應用戶從當前訪問的第一域跳轉到第二域的操作,監測所述第二域和所述第一域是否屬于同一用戶賬號;若屬于同一用戶賬號,將所述第一域中的cookie信息發送至所述第二域。Cookie信息中包含用戶的賬號信息,根據cookie信息獲取當前登陸用戶的賬號,進而將所述當前登陸用戶的賬號與第二域中的登陸賬號進行對比,判斷所述第一域中的當前登陸用戶的賬號和所述第二域中當前登陸用戶的賬號是否相同;若所述第一域中的當前登陸用戶的賬號和所述第二域中當前登陸用戶的賬號相同,則將所述cookie信息發送給所述第二域,這樣,第二域就不需要從服務器中查詢用戶同一賬號之前的訪問操作即可知道該用戶基于同一賬號的訪問軌跡,可實現快速的對用戶的訪問網頁或者網站的操作進行統計,提高了實時性。
作為本發明上報用戶行為數據的方法的再一個實施例,在上述實施例的步驟102根據用戶的訪問操作生成記錄信息之后,還可以包括:
終端判斷用戶登錄的網站或網頁是否為海外網站或網頁,若用戶訪問的網站或網頁是為海外網站或網頁,則將所述記錄信息先發送至海外版后臺接收服務器,以使所述海外版后臺接收服務器將所述記錄信息發送至大陸版后臺接收服務器;
若用戶訪問的網站或網頁不是海外網站或網頁,則直接將所述記錄信息發送至大陸版后臺接收服務器。
通過本發明上述實施例的方法,實現了將海外用戶的訪問網頁或者網站的操作和大陸用戶的訪問網頁或者網站的操作統一統計。
如圖2所示,為本發明上報用戶行為數據的方法的一個實施例的詳細流程圖,應用于終端。從圖中可以看出,本發明實施例包括以下步驟:
步驟201:在在網頁或網站中預先配置JS-SDK程序包,所述JS-SDK程序包用于當接收到用戶訪問請求后,實時監測并接收所述用戶的點擊訪問操作。
步驟202:監測用戶點擊操作,并生成記錄信息。當預先配置JS-SDK程序包接收到用戶的訪問請求后,開始時刻監測用戶點擊操作,并根據用戶的點擊操作生成記錄信息,將所述記錄信息以HTTP請求的方式上報。
步驟203:當用戶訪問網頁由第一域跳轉到第二域時,響應用戶從當前訪問的第一域跳轉到第二域的操作,監測所述第二域和所述第一域是否屬于同一用戶賬號;
若屬于同一用戶賬號,將所述第一域中的cookie信息發送至所述第二域。
步驟204:判斷所述網頁是否為海外網頁,若是海外網頁,則進入步驟205,若不是海外網頁,則進入步驟206。
步驟205:
若用戶訪問的網站或網頁是海外網站,則將所述記錄信息先發送至海外版后臺接收服務器,以使所述海外版后臺接收服務器將所述記錄信息發送至大陸版后臺接收服務器。
步驟206:
若用戶訪問的網站或網頁不是海外網站或網頁,則直接將所述記錄信息發送至大陸版后臺接收服務器。
通過本發明實施的上述方法,完成了針對用戶行為的上報,不僅實現了將海外用戶的訪問操作的記錄信息和大陸用戶的訪問操作的記錄信息統一發送給服務器,還解決了瀏覽器的緩存問題和跨域訪問的問題,以及不能識別中文代碼導致的中文亂碼問題。
如圖3所示,為本發明上報用戶行為數據的方法的一個實施例的示意圖,應用于服務器端。本發明實施例包括以下步驟:
步驟301:服務器接收終端發送的記錄信息。
當終端根據用戶的訪問網頁或者網站的操作生成記錄信息后,不經過緩存將所述記錄信息發送給服務器,服務器連續接收終端發送的所述記錄信息。
步驟302:將記錄信息在緩存模塊中緩存,并發送至中間服務器。
服務器接收到終端發送的記錄信息后,將記錄信息在服務器中進行緩存,代替了將記錄信息在用戶登錄的網頁或者網站中緩存,從而解決了瀏覽器緩存問題。
步驟303:對記錄信息分類處理。
將所述記錄信息分類處理,可選地,利用storm cybertron程序對所述記錄信息進行分類處理。步驟304:將分類處理后的記錄信息存入數據庫。
根據分類后記錄信息的特征和作用,將所述記錄信息分開存入不同的數據庫。將寫入HDFS的記錄信息加載到Hive數據倉庫;將數據量較小,實時性高直接存入mongoDB數據庫,供業務方使用。
通過本發明實施例的上述方法,可將終端發送的記錄信息經過分類處理后生成數據表,并將業務方需要的實時性高的數據提供給業務方,業務方可通過這類數據直觀的獲取需要的信息。同時,業務方也可以通過從Hive數據倉庫調取記錄信息,經過處理后也可以得到需要的信息根據上報和統計的記錄信息可以得出網頁的PV/UV、頁面轉化率等統計指標。
作為本發明的另一個實施例,上述實施例的步驟302還可以包括:
將所述記錄信息在kafka集群中緩存,用于臨時存儲所述記錄信息。所述kafka集群為開源的分布式的、冗余備份的、持久化存儲的日志服務,利用kafka的高性能,緩存實時數據,再使用實時的流式計算框架storm來拉取kafka中的數據,進行實時的統計計算,可以得到當前1分鐘之前的準實時統計結果,避免了較長時間的延遲。
作為本發明的另一個實施例,上述實施例的步驟303中將所述記錄信息分為兩類,具體包括:
一種是根據數據倉庫的需要,把數據拆分成各個字段,寫入HDFS。從HDFS加載的原始表會根據數據使用者的需求,進行ETL(抽取、轉換、加載),最終在數據倉庫中形成一個或多個數據表。另外一種是寫入HDFS記錄信息用來加載到Hive數據倉庫;將經過統計計算的數據量較小,實時性高的即時更新的結果,直接存入mongoDB數據庫,供業務方使用。
業務方可通過這類數據直觀的獲取需要的信息。同時,業務方也可以通過從Hive數據倉庫調取記錄信息,經過處理后也可以得到需要的信息根據上報和統計的記錄信息可以得出網頁的PV/UV、頁面轉化率等統計指標。在本發明的另一方面,還提供一種上報用戶行為數據的裝置,應用于終端,如圖4所示,為本發明上報用戶行為數據的裝置的終端的組成結構示意圖。
包括:訪問操作監測和接收模塊401、記錄信息生成模塊402和記錄信息發送模塊403;
所述訪問操作監測和接收模塊401用于實時監測并接收用戶的訪問操作。
當用戶訪問網頁或者網站時,終端中的所述訪問操作監測和接收模塊401會接收到用戶點擊操作,并從接收到用戶對網頁或者網站的點擊操作后開始,監測并接收所述用戶后續的點擊訪問操作。
所述記錄信息生成模塊402用于根據所述用戶的訪問操作生成記錄信息。
當監測到用戶的訪問網頁或者網站的操作后,所述記錄信息生成模塊402根據用戶的訪問網頁或者網站的操作,生成對應的記錄信息,所述記錄信息包括用戶訪問的網頁或者網站的地址、用戶的訪問軌跡,即從一個網頁或者網站訪問另一個網頁或者網站的過程。
所述記錄信息發送模塊403用于將所述記錄信息發送給服務器。
在所述記錄信息生成模塊402根據所述用戶的訪問操作生成記錄信息后,所示記錄信息發送模塊403將所述記錄信息發送給服務器。
本發明實施例的應用于終端的上報用戶行為數據的裝置,實現了不通過第三方工具即可有效完成用戶訪問行為的上報和統計的目的,同時解決瀏覽器緩存問題,由于不能識別中文代碼導致的中文亂碼問題和跨域訪問的問題。
在本發明的另一方面,還提供一種上報用戶行為數據的裝置,應用于服務器端,如圖5所示,為本發明上報用戶行為數據的裝置的服務器的組成結構示意圖。
包括:緩存模塊501、處理模塊502和存儲模塊503;
所述緩存模塊501用于對所述記錄信息緩存。
當終端根據用戶的訪問網頁或者網站的操作生成記錄信息后,不經過緩存將所述記錄信息發送給服務器,服務器連續接收終端發送的所述記錄信息。服務器接收到終端發送的記錄信息后,將所述記錄信息在緩存模塊中緩存。
所述處理模塊502用于對所述記錄信息進行分級處理,并將分級處理后的記錄信息存入所述存儲模塊503。
當處理模塊接收到緩存模塊發送的記錄信息后,將所述記錄信息進行分類處理可選地,可利用storm cybertron程序對所述記錄信息進行分類處理。
所述存儲模塊503用于存儲所述分級處理后的記錄信息。
根據分類后記錄信息的特征和作用,將所述記錄信息分開存入不同的數據庫。將寫入HDFS的記錄信息加載到Hive數據倉庫,將經過統計計算的數據量較小,實時性高的即時更新的結果,直接存入mongoDB數據庫,供業務方使用。
通過本發明實施例的上述裝置,可將終端發送的記錄信息經過分類處理后生成數據表,并將業務方需要的實時性高的數據提供給業務方,業務方可通過這類數據直觀的獲取需要的信息。同時,業務方也可以通過從Hive數據倉庫調取記錄信息,經過處理后也可以得到需要的信息。本發明的上述實施例完成了針對用戶行為的上報和統計,根據上報和統計的記錄信息可以得出網頁的PV/UV、頁面轉化率等統計指標。
作為本發明裝置的另一個實施例,上述實施例中的所述處理模塊具體用于:
根據數據倉庫的需要,把數據拆分成各個字段,寫入HDFS,用來加載到Hive數據倉庫,從HDFS加載的原始表會根據數據使用者的需求,進行ETL(抽取、轉換、加載),最終在數據倉庫中形成一個或多個數據表。其中,寫入HDFS記錄信息用來加載到Hive數據倉庫,將經過統計計算的數據量較小,實時性高的即時更新的結果,直接存入mongoDB數據庫,供業務方使用。或者將數據量較小,實時性高的,經過統計計算的即時更新的結果,直接存入mongoDB數據庫,供業務方使用。業務方可通過這類數據直觀的獲取需要的信息。同時,業務方也可以通過從Hive數據倉庫調取記錄信息,經過處理后也可以得到需要的信息。本發明的上述實施例完成了針對用戶行為的上報和統計,根據上報和統計的記錄信息可以得出網頁的PV/UV、頁面轉化率等統計指標。
本發明系統中所指的記錄信息包括用戶在網頁上的點擊行為、點擊次數以及點擊軌跡。
作為本發明裝置的一個實施例,可選kafka集群作為緩存模塊。所述kafka集群為開源的分布式的、冗余備份的、持久化存儲的日志服務,用于對臨時存儲所述記錄信息。利用kafka的高性能,緩存實時數據,再使用實時的流式計算框架storm來拉取kafka中的數據,進行實時的統計計算,可以得到當前1分鐘之前的準實時統計結果,避免了較長時間的延遲。
需要說明的是,本發明實施例中所有使用“第一”和“第二”的表述均是為了區分兩個相同名稱非相同的實體或者非相同的參量,可見“第一”“第二”僅為了表述的方便,不應理解為對本發明實施例的限定,后續實施例對此不再一一說明。
所屬領域的普通技術人員應當理解:以上任何實施例的討論僅為示例性的,并非旨在暗示本公開的范圍(包括權利要求)被限于這些例子;在本發明的思路下,以上實施例或者不同實施例中的技術特征之間也可以進行組合,步驟可以以任意順序實現,并存在如上所述的本發明的不同方面的許多其它變化,為了簡明它們沒有在細節中提供。
另外,為簡化說明和討論,并且為了不會使本發明難以理解,在所提供的附圖中可以示出或可以不示出與集成電路(IC)芯片和其它部件的公知的電源/接地連接。此外,可以以框圖的形式示出系統,以便避免使本發明難以理解,并且這也考慮了以下事實,即關于這些框圖系統的實施方式的細節是高度取決于將要實施本發明的平臺的(即,這些細節應當完全處于本領域技術人員的理解范圍內)。在闡述了具體細節(例如,電路)以描述本發明的示例性實施例的情況下,對本領域技術人員來說顯而易見的是,可以在沒有這些具體細節的情況下或者這些具體細節有變化的情況下實施本發明。因此,這些描述應被認為是說明性的而不是限制性的。
盡管已經結合了本發明的具體實施例對本發明進行了描述,但是根據前面的描述,這些實施例的很多替換、修改和變型對本領域普通技術人員來說將是顯而易見的。例如,其它存儲器架構(例如,動態RAM(DRAM))可以使用所討論的實施例。
本發明的實施例旨在涵蓋落入所附權利要求的寬泛范圍之內的所有這樣的替換、修改和變型。因此,凡在本發明的精神和原則之內,所做的任何省略、修改、等同替換、改進等,均應包含在本發明的保護范圍之內。