本發(fā)明涉及電子技術(shù)領(lǐng)域,尤其涉及一種用戶信息獲取方法及相關(guān)設(shè)備。
背景技術(shù):
用戶畫像是根據(jù)用戶社會(huì)屬性、生活習(xí)慣和消費(fèi)行為等信息而抽象出的一個(gè)標(biāo)簽化的用戶模型,構(gòu)建用戶畫像的核心工作即是給用戶貼“標(biāo)簽”,而標(biāo)簽是通過對(duì)用戶信息分析而來(lái)的高度精煉的特征標(biāo)識(shí)。
有些軟件的使用用戶有很大量級(jí),細(xì)分用戶需求并準(zhǔn)確建立用戶畫像是當(dāng)前需要解決的問題。在為軟件用戶創(chuàng)建用戶畫像時(shí),并不知道具體用戶在使用客戶端軟件時(shí)的喜好與使用頻率,例如,喜歡玩什么游戲、一周內(nèi)玩該游戲次數(shù)、喜歡看什么類型的視頻、更偏向于使用哪款視頻播放軟件等等問題。建立用戶畫像的準(zhǔn)確性將會(huì)影響后續(xù)為畫像用戶提供更多服務(wù)時(shí)的體驗(yàn)。
在現(xiàn)有技術(shù)方案中,如圖1所述,圖1是現(xiàn)有技術(shù)方案提供的一種用于建立用戶畫像的用戶信息獲取方法的流程示意圖。首先軟件的線程周期性啟動(dòng),并主動(dòng)獲取用戶系統(tǒng)內(nèi)的應(yīng)用相關(guān)信息,例如,是否有安裝軟件、是否有桌面快捷方式、是否有快速啟動(dòng)欄圖標(biāo)、程序是否在運(yùn)行中、或程序上次運(yùn)行時(shí)間等等,并將應(yīng)用相關(guān)信息上報(bào)給應(yīng)用服務(wù)器,應(yīng)用服務(wù)器可以根據(jù)應(yīng)用相關(guān)信息建立用戶畫像,并基于用戶畫像選擇出推送給該用戶的服務(wù)信息。但是,這種獲取用戶信息的方法不能保證實(shí)時(shí)性,獲取信息的準(zhǔn)確性不高。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種用戶信息獲取方法及相關(guān)設(shè)備??梢越鉀Q現(xiàn)有技術(shù)方案中信息獲取準(zhǔn)確度不高的技術(shù)問題。
本發(fā)明第一方面提供了一種用戶信息獲取方法,包括:
獲取應(yīng)用服務(wù)器發(fā)送的配置文件,所述配置文件包括信息上報(bào)條件;
當(dāng)檢測(cè)到用戶對(duì)目標(biāo)資源進(jìn)行訪問時(shí),獲取訪問所述目標(biāo)資源的進(jìn)程的用戶進(jìn)程消息;
確定所述用戶進(jìn)程消息是否滿足所述信息上報(bào)條件;
若所述用戶進(jìn)程消息滿足所述信息上報(bào)條件,則向所述應(yīng)用服務(wù)器發(fā)送所述用戶進(jìn)程消息。
其中,所述獲取訪問所述目標(biāo)資源的進(jìn)程的用戶進(jìn)程消息包括:
注冊(cè)Hook函數(shù)監(jiān)控訪問所述目標(biāo)資源的進(jìn)程;
通過注冊(cè)的所述Hook函數(shù)獲取訪問所述目標(biāo)資源的進(jìn)程的用戶進(jìn)程消息。
其中,所述接收應(yīng)用服務(wù)器發(fā)送的配置文件之前,還包括:
接收所述應(yīng)用服務(wù)器發(fā)送的配置信息,所述配置信息包括當(dāng)前的配置文件的第一信息摘要值;
判斷所述第一信息摘要值與本地配置文件的第二信息摘要值是否相同;
若不相同,則從所述應(yīng)用服務(wù)器下載當(dāng)前的所述配置文件替換所述本地配置文件。
其中,所述若所述用戶進(jìn)程消息滿足所述信息上報(bào)條件,則向所述應(yīng)用服務(wù)器發(fā)送所述用戶進(jìn)程消息之后,還包括:
接收所述應(yīng)用服務(wù)器推送的服務(wù)信息,所述服務(wù)信息為所述應(yīng)用服務(wù)器根據(jù)所述用戶進(jìn)程消息選擇出的推送消息。
相應(yīng)地,本發(fā)明第二方面提供了一種用戶信息獲取方法,包括:
向用戶終端發(fā)送配置文件,所述配置文件包括信息上報(bào)條件,以使所述用戶終端當(dāng)檢測(cè)到用戶對(duì)目標(biāo)資源進(jìn)行訪問時(shí)獲取訪問所述目標(biāo)資源的進(jìn)程的用戶進(jìn)程消息、并在確定所述用戶進(jìn)程消息滿足所述信息上報(bào)條件時(shí)向所述應(yīng)用服務(wù)器發(fā)送所述用戶進(jìn)程消息;
接收所述用戶終端發(fā)送的所述用戶進(jìn)程消息。
其中,所述向用戶終端發(fā)送配置文件之前,還包括:
向所述用戶終端發(fā)送配置信息,所述配置信息包括當(dāng)前的配置文件的第一信息摘要值,以使所述用戶終端判斷所述第一信息摘要值與本地配置文件的第二信息摘要值不相同時(shí)從所述應(yīng)用服務(wù)器下載當(dāng)前的所述配置文件替換所述本地配置文件。
其中,所述接收所述用戶終端發(fā)送的所述用戶進(jìn)程消息之后,還包括:
根據(jù)所述用戶進(jìn)程消息,選擇推送給所述用戶的服務(wù)信息;
向所述用戶終端發(fā)送選擇的所述服務(wù)信息。
相應(yīng)地,本發(fā)明第三方面提供了一種用戶終端,包括:
信息接收模塊,用于獲取應(yīng)用服務(wù)器發(fā)送的配置文件,所述配置文件包括信息上報(bào)條件;
消息獲取模塊,用于當(dāng)檢測(cè)到用戶對(duì)目標(biāo)資源進(jìn)行訪問時(shí),獲取訪問所述目標(biāo)資源的進(jìn)程的用戶進(jìn)程消息;
信息確定模塊,用于確定所述用戶進(jìn)程消息是否滿足所述信息上報(bào)條件;
信息發(fā)送模塊,用于若所述用戶進(jìn)程消息滿足所述信息上報(bào)條件,則向所述應(yīng)用服務(wù)器發(fā)送所述用戶進(jìn)程消息。
其中,所述消息獲取模塊具體用于:
注冊(cè)Hook函數(shù)監(jiān)控訪問所述目標(biāo)資源的進(jìn)程;
通過注冊(cè)的所述Hook函數(shù)獲取訪問所述目標(biāo)資源的進(jìn)程的用戶進(jìn)程消息。
其中,所述信息接收模塊,還用于接收所述應(yīng)用服務(wù)器發(fā)送的配置信息,所述配置信息包括當(dāng)前的配置文件的第一信息摘要值;判斷所述第一信息摘要值與本地配置文件的第二信息摘要值是否相同;若不相同,則從所述應(yīng)用服務(wù)器下載當(dāng)前的所述配置文件替換所述本地配置文件。
其中,所述信息接收模塊,還用于接收所述應(yīng)用服務(wù)器推送的服務(wù)信息,所述服務(wù)信息為所述應(yīng)用服務(wù)器根據(jù)所述用戶進(jìn)程消息選擇出的推送消息。
相應(yīng)地,本發(fā)明第四方面提供了一種應(yīng)用服務(wù)器,包括:
信息發(fā)送模塊,用于向用戶終端發(fā)送配置文件,所述配置文件包括信息上報(bào)條件,以使所述用戶終端當(dāng)檢測(cè)到用戶對(duì)目標(biāo)資源進(jìn)行訪問時(shí)獲取訪問所述目標(biāo)資源的進(jìn)程的用戶進(jìn)程消息、并在確定所述用戶進(jìn)程消息滿足所述信息上報(bào)條件時(shí)向所述應(yīng)用服務(wù)器發(fā)送所述用戶進(jìn)程消息;
信息接收模塊,用于接收所述用戶終端發(fā)送的所述用戶進(jìn)程消息。
其中,所述信息發(fā)送模塊,還用于向所述用戶終端發(fā)送配置信息,所述配置信息包括當(dāng)前的配置文件的第一信息摘要值,以使所述用戶終端判斷所述第一信息摘要值與本地配置文件的第二信息摘要值不相同時(shí)從所述應(yīng)用服務(wù)器下載當(dāng)前的所述配置文件替換所述本地配置文件。
其中,所述信息發(fā)送模塊,還用于根據(jù)所述用戶進(jìn)程消息,選擇推送給所述用戶的服務(wù)信息;向所述用戶終端發(fā)送選擇的所述服務(wù)信息。
相應(yīng)地,本發(fā)明第五方面提供了一種用戶信息獲取設(shè)備,包括:存儲(chǔ)器、通信總線以及處理器,其中,所述存儲(chǔ)器用于存儲(chǔ)程序代碼,所述處理器用于調(diào)用所述程序代碼,執(zhí)行以下操作:
獲取應(yīng)用服務(wù)器發(fā)送的配置文件,所述配置文件包括信息上報(bào)條件;
當(dāng)檢測(cè)到用戶對(duì)目標(biāo)資源進(jìn)行訪問時(shí),獲取訪問所述目標(biāo)資源的進(jìn)程的用戶進(jìn)程消息;
確定所述用戶進(jìn)程消息是否滿足所述信息上報(bào)條件;
若所述用戶進(jìn)程消息滿足所述信息上報(bào)條件,則向所述應(yīng)用服務(wù)器發(fā)送所述用戶進(jìn)程消息。
實(shí)施本發(fā)明實(shí)施例,首先獲取應(yīng)用服務(wù)器發(fā)送的配置文件,所述配置文件包括信息上報(bào)條件;然后當(dāng)檢測(cè)到用戶對(duì)目標(biāo)資源進(jìn)行訪問時(shí),獲取訪問所述目標(biāo)資源的進(jìn)程的用戶進(jìn)程消息;其次確定所述用戶進(jìn)程消息是否滿足所述信息上報(bào)條件;最后若所述用戶進(jìn)程消息滿足所述信息上報(bào)條件,則向所述應(yīng)用服務(wù)器發(fā)送所述用戶進(jìn)程消息,可以更加準(zhǔn)確的獲取用戶信息,進(jìn)而根據(jù)用戶信息進(jìn)行消息推送。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是現(xiàn)有技術(shù)方案提供的一種用戶信息獲取方法的流程示意圖;
圖2是本發(fā)明提出的一種用戶信息獲取方法的第一實(shí)施例的流程示意圖;
圖3是本發(fā)明實(shí)施例提供的一種配置文件獲取方法的流程示意圖;
圖4是本發(fā)明提出的一種用戶信息獲取方法的第二實(shí)施例的流程示意圖;
圖5是本發(fā)明實(shí)施例提供的一種用戶終端的結(jié)構(gòu)示意圖;
圖6是本發(fā)明實(shí)施例提供的一種應(yīng)用服務(wù)器的結(jié)構(gòu)示意圖;
圖7是本發(fā)明實(shí)施例提供的一種用戶信息獲取設(shè)備的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
請(qǐng)參考圖2,圖2是本發(fā)明提出的一種用戶信息獲取方法的第一實(shí)施例的流程示意圖。如圖所示,本發(fā)明實(shí)施例中的方法包括:
S201,獲取應(yīng)用服務(wù)器發(fā)送的配置文件,所述配置文件包括信息上報(bào)條件。
具體實(shí)現(xiàn)中,可以首先在用戶終端安裝應(yīng)用管家客戶端,通過應(yīng)用管家客戶端對(duì)用戶終端上的其他應(yīng)用軟件進(jìn)行管理,監(jiān)控其他應(yīng)用軟件的使用情況(如:用戶打開什么類型的軟件、使用軟件的頻率等等),應(yīng)用服務(wù)器當(dāng)檢測(cè)到用戶終端已安裝應(yīng)用管家客戶端時(shí),向已安裝應(yīng)用管家客戶端的用戶終端發(fā)送配置文件。其中,信息上報(bào)條件包括信息類型、進(jìn)程標(biāo)識(shí)、使用頻率等等。
可選的,如圖3所示,圖3提供了一種配置文件獲取方法的流程示意圖。用戶終端可以首先接收所述應(yīng)用服務(wù)器發(fā)送的配置信息,其中,所述配置信息包括當(dāng)前的配置文件的第一信息摘要值,然后檢測(cè)應(yīng)用服務(wù)器的配置開關(guān)是否開啟、且是否存在本地配置文件,如果應(yīng)用服務(wù)器配置開關(guān)已開啟并且存在本地配置文件,則判斷所述第一信息摘要值與本地配置文件的第二信息摘要值是否相同;若不相同,則從所述應(yīng)用服務(wù)器下載當(dāng)前的所述配置文件替換所述本地配置文件;若相同,則說(shuō)明用戶終端的本地配置文件為最新文件,不需從應(yīng)用服務(wù)器下載配置文件,解析本地配置文件獲取所述信息上報(bào)條件,信息摘要值可以為MD2值、MD5值等等。需要說(shuō)明的是,應(yīng)用服務(wù)器可以動(dòng)態(tài)的修改配置文件,并將修改的配置文件下發(fā)給用戶終端,通過動(dòng)態(tài)修改配置文件獲取應(yīng)用服務(wù)器所期望的數(shù)據(jù)。
S202,當(dāng)檢測(cè)到用戶對(duì)目標(biāo)資源進(jìn)行訪問時(shí),獲取訪問所述目標(biāo)資源的進(jìn)程的用戶進(jìn)程消息。其中,用戶進(jìn)程消息可以包括進(jìn)程標(biāo)識(shí)、窗口標(biāo)題名稱以及進(jìn)程使用次數(shù)等等
具體實(shí)現(xiàn)中,可以對(duì)系統(tǒng)提供的API(Application Programming Interface,應(yīng)用程序編程接口)接口中的idProcess和idThresd進(jìn)行置空,獲取當(dāng)前系統(tǒng)內(nèi)的所有用戶進(jìn)程消息,然后通過進(jìn)程處理函數(shù)處理這些用戶進(jìn)程消息,最后對(duì)這些已處理過的用戶進(jìn)程消息進(jìn)行標(biāo)識(shí),從而實(shí)現(xiàn)在不影響其他程序正常運(yùn)行的同時(shí),異步地獲取到其他程序的進(jìn)程名稱和打開窗口名稱。
可選的,可以在應(yīng)用管家客戶端中注冊(cè)Hook函數(shù)監(jiān)控訪問所述目標(biāo)資源的進(jìn)程;通過在應(yīng)用管家客戶端中注冊(cè)的所述Hook函數(shù)獲取訪問所述目標(biāo)資源的進(jìn)程的用戶進(jìn)程消息。其中,Hook(鉤子)函數(shù)是Windows消息處理機(jī)制的一個(gè)平臺(tái),應(yīng)用程序可以在上面設(shè)置子程序以監(jiān)視窗口消息,而且所監(jiān)視的窗口可以是其他進(jìn)程所創(chuàng)建的,當(dāng)窗口消息到達(dá)后,在執(zhí)行窗口處理函數(shù)之前處理該窗口消息。另外,Hook機(jī)制允許應(yīng)用程序截獲處理Window消息或特定事件,鉤子實(shí)際上是一個(gè)處理消息的程序段,通過系統(tǒng)調(diào)用,將Hook函數(shù)掛入系統(tǒng),在彈窗消息未到達(dá)目標(biāo)窗口之前,Hook函數(shù)就先捕獲該窗口消息,進(jìn)而Hook函數(shù)可以加工處理該窗口消息,也可以不作處理而繼續(xù)傳遞該窗口消息,還可以強(qiáng)制結(jié)束該窗口消息的傳遞。
S203,確定所述用戶進(jìn)程消息是否滿足所述信息上報(bào)條件。
具體實(shí)現(xiàn)中,可以判斷獲取到進(jìn)程標(biāo)識(shí)是否符合所述配置文件中規(guī)定的進(jìn)程標(biāo)識(shí),或判斷獲取到的窗口標(biāo)題名稱是否符合所述配置文件中規(guī)定的窗口類型,或判斷打開目標(biāo)窗口的次數(shù)是否超過所述配置文件中規(guī)定的操作頻率等等。若確定所述用戶進(jìn)程消息不滿足所述信息上報(bào)條件,則不再執(zhí)行下述操作步驟。
S204,若所述用戶進(jìn)程消息滿足所述信息上報(bào)條件,則向所述應(yīng)用服務(wù)器發(fā)送所述用戶進(jìn)程消息。
具體實(shí)現(xiàn)中,若獲取到進(jìn)程標(biāo)識(shí)與所述配置文件中規(guī)定的進(jìn)程標(biāo)識(shí)相同,或/和若獲取到的窗口標(biāo)題名稱符合所述配置文件中規(guī)定的窗口類型,或/和若打開目標(biāo)窗口的次數(shù)超過所述配置文件中規(guī)定的操作頻率等等,則將該用戶進(jìn)程消息上報(bào)至應(yīng)用服務(wù)器。
可選的,可以接收所述應(yīng)用服務(wù)器推送的服務(wù)信息,所述服務(wù)信息為所述應(yīng)用服務(wù)器根據(jù)所述用戶進(jìn)程消息選擇出的推送消息。
具體的,應(yīng)用服務(wù)器接收到用戶終端發(fā)送的用戶進(jìn)程消息之后,可以根據(jù)用戶進(jìn)程消息判斷用戶喜歡玩什么游戲、一周內(nèi)玩該游戲次數(shù)、喜歡看什么類型的視頻、更偏向于使用哪款視頻播放軟件等等信息,并抽象出的一個(gè)標(biāo)簽化的用戶模型,根據(jù)該用戶模型,選擇性的向該用戶終端推送服務(wù)信息(如:用戶喜歡看的視頻)。
例如,在用戶終端上安裝應(yīng)用管家客戶端,對(duì)使用應(yīng)用軟件的情況進(jìn)行監(jiān)控,在用戶打開視頻軟件觀看視頻時(shí),可以通過Hook函數(shù)獲取打開的視頻的窗口標(biāo)題名稱,然后確定該視頻的窗口標(biāo)題名稱是否符合應(yīng)用服務(wù)器下發(fā)的配置文件規(guī)定的窗口類型,如果符合,則將該窗口標(biāo)題名稱發(fā)送到應(yīng)用服務(wù)器,應(yīng)用服務(wù)器通過窗口標(biāo)題名稱獲取該用戶所看的視頻名稱,進(jìn)而向該用戶終端推送相類似的其他視頻或該視頻名稱對(duì)應(yīng)的其他視頻消息。
在本發(fā)明實(shí)施例中,首先獲取應(yīng)用服務(wù)器發(fā)送的配置文件,所述配置文件包括信息上報(bào)條件;然后當(dāng)檢測(cè)到用戶對(duì)目標(biāo)資源進(jìn)行訪問時(shí),獲取訪問所述目標(biāo)資源的進(jìn)程的用戶進(jìn)程消息;其次確定所述用戶進(jìn)程消息是否滿足所述信息上報(bào)條件;最后若所述用戶進(jìn)程消息滿足所述信息上報(bào)條件,則向所述應(yīng)用服務(wù)器發(fā)送所述用戶進(jìn)程消息,可以更加準(zhǔn)確的獲取用戶信息,進(jìn)而根據(jù)用戶信息進(jìn)行消息推送。
請(qǐng)參考圖4,圖4是本發(fā)明提出的一種用戶信息獲取方法的第二實(shí)施例的流程示意圖。如圖所示,本發(fā)明實(shí)施例中的方法包括:
S401,應(yīng)用服務(wù)器向用戶終端發(fā)送配置文件,所述配置文件包括信息上報(bào)條件。
具體實(shí)現(xiàn)中,可以首先在用戶終端安裝應(yīng)用管家客戶端,通過應(yīng)用管家客戶端對(duì)用戶終端上的其他應(yīng)用軟件進(jìn)行管理,監(jiān)控其他應(yīng)用軟件的使用情況(如:用戶打開什么類型的軟件、使用軟件的頻率等等),應(yīng)用服務(wù)器當(dāng)檢測(cè)到用戶終端已安裝應(yīng)用管家客戶端時(shí),向已安裝應(yīng)用管家客戶端的用戶終端發(fā)送配置文件。其中,信息上報(bào)條件包括信息類型、進(jìn)程標(biāo)識(shí)、使用頻率等等。
可選的,如圖3所示,圖3提供了一種配置文件的獲取方法的流程示意圖。用戶終端可以首先接收所述應(yīng)用服務(wù)器發(fā)送的配置信息,其中,所述配置信息包括當(dāng)前的配置文件的第一信息摘要值,然后檢測(cè)應(yīng)用服務(wù)器的配置開關(guān)是否開啟、且是否存在本地配置文件,如果應(yīng)用服務(wù)器配置開關(guān)已開啟并且存在本地配置文件,則判斷所述第一信息摘要值與本地配置文件的第二信息摘要值是否相同;若不相同,則從所述應(yīng)用服務(wù)器下載當(dāng)前的所述配置文件替換所述本地配置文件;若相同,則說(shuō)明用戶終端的本地配置文件為最新文件,不需從應(yīng)用服務(wù)器下載配置文件,解析本地配置文件獲取所述信息上報(bào)條件,信息摘要值可以為MD2值、MD5值等等。需要說(shuō)明的是,應(yīng)用服務(wù)器可以動(dòng)態(tài)的修改配置文件,并將修改的配置文件下發(fā)給用戶終端,通過動(dòng)態(tài)修改配置文件獲取應(yīng)用服務(wù)器所期望的數(shù)據(jù)。
S402,用戶終端當(dāng)檢測(cè)到用戶對(duì)目標(biāo)資源進(jìn)行訪問時(shí),獲取訪問所述目標(biāo)資源的進(jìn)程的用戶進(jìn)程消息。
具體實(shí)現(xiàn)中,可以對(duì)系統(tǒng)提供的API(Application Programming Interface,應(yīng)用程序編程接口)接口中的idProcess和idThresd進(jìn)行置空,獲取當(dāng)前系統(tǒng)內(nèi)的所有用戶進(jìn)程消息,然后通過進(jìn)程處理函數(shù)處理這些用戶進(jìn)程消息,最后對(duì)這些已經(jīng)處理過的用戶進(jìn)程消息進(jìn)行標(biāo)識(shí),從而實(shí)現(xiàn)在不影響其他程序正常運(yùn)行的同時(shí),異步地獲取到其他程序的進(jìn)程名稱和打開窗口名稱。
可選的,可以在應(yīng)用管家客戶端中注冊(cè)Hook函數(shù)監(jiān)控訪問所述目標(biāo)資源的進(jìn)程;通過在應(yīng)用管家客戶端中注冊(cè)的所述Hook函數(shù)獲取訪問所述目標(biāo)資源的進(jìn)程的用戶進(jìn)程消息。其中,Hook(鉤子)函數(shù)是Windows消息處理機(jī)制的一個(gè)平臺(tái),應(yīng)用程序可以在上面設(shè)置子程序以監(jiān)視窗口消息,而且所監(jiān)視的窗口可以是其他進(jìn)程所創(chuàng)建的,當(dāng)窗口消息到達(dá)后,在執(zhí)行窗口處理函數(shù)之前處理該窗口消息。另外,Hook機(jī)制允許應(yīng)用程序截獲處理Window消息或特定事件,鉤子實(shí)際上是一個(gè)處理消息的程序段,通過系統(tǒng)調(diào)用,將Hook函數(shù)掛入系統(tǒng),在彈窗消息未到達(dá)目標(biāo)窗口之前,Hook函數(shù)就先捕獲該窗口消息,進(jìn)而Hook函數(shù)可以加工處理該窗口消息,也可以不作處理而繼續(xù)傳遞該窗口消息,還可以強(qiáng)制結(jié)束該窗口消息的傳遞。
S403,用戶終端確定所述用戶進(jìn)程消息是否滿足所述信息上報(bào)條件。
具體實(shí)現(xiàn)中,可以判斷獲取到進(jìn)程標(biāo)識(shí)是否符合所述配置文件中規(guī)定的進(jìn)程標(biāo)識(shí),或判斷獲取到的窗口標(biāo)題名稱是否符合所述配置文件中規(guī)定的窗口類型,或判斷打開目標(biāo)窗口的次數(shù)是否超過所述配置文件中規(guī)定的操作頻率等等。若確定所述用戶進(jìn)程消息不滿足所述信息上報(bào)條件,則不再執(zhí)行下述操作步驟。
S404,用戶終端若所述用戶進(jìn)程消息滿足所述信息上報(bào)條件,則向所述應(yīng)用服務(wù)器發(fā)送所述用戶進(jìn)程消息。
具體實(shí)現(xiàn)中,若獲取到進(jìn)程標(biāo)識(shí)與所述配置文件中規(guī)定的進(jìn)程標(biāo)識(shí)相同,或若獲取到的窗口標(biāo)題名稱符合所述配置文件中規(guī)定的窗口類型,或若打開目標(biāo)窗口的次數(shù)超過所述配置文件中規(guī)定的操作頻率等等,則將用戶進(jìn)程消息上報(bào)至應(yīng)用服務(wù)器。
S405,應(yīng)用服務(wù)器根據(jù)所述用戶進(jìn)程消息,選擇推送給所述用戶的服務(wù)信息。
具體的,應(yīng)用服務(wù)器接收到用戶終端發(fā)送的用戶進(jìn)程消息之后,可以根據(jù)用戶進(jìn)程消息判斷用戶喜歡玩什么游戲、一周內(nèi)玩該游戲次數(shù)、喜歡看什么類型的視頻、更偏向于使用哪款視頻播放軟件等等信息,并抽象出的一個(gè)標(biāo)簽化的用戶模型,根據(jù)該用戶模型,選擇性的向該用戶終端推送服務(wù)信息(如,用戶喜歡看的視頻)。
S406,應(yīng)用服務(wù)器向所述用戶終端發(fā)送選擇的所述服務(wù)信息。
例如,在用戶終端上安裝應(yīng)用管家客戶端,對(duì)使用應(yīng)用軟件的情況進(jìn)行監(jiān)控,在用戶打開視頻軟件觀看視頻時(shí),可以通過Hook函數(shù)獲取打開的視頻的窗口標(biāo)題名稱,然后確定該視頻的窗口標(biāo)題名稱是否符合應(yīng)用服務(wù)器下發(fā)的配置文件規(guī)定的窗口類型,如果符合,則將該窗口標(biāo)題名稱發(fā)送到應(yīng)用服務(wù)器,應(yīng)用服務(wù)器通過窗口標(biāo)題名稱獲取該用戶所看的視頻名稱,進(jìn)而向該用戶終端推送相類似的其他視頻或該視頻名稱對(duì)應(yīng)的其他視頻消息。
在本發(fā)明實(shí)施例中,首先獲取應(yīng)用服務(wù)器發(fā)送的配置文件,所述配置文件包括信息上報(bào)條件;然后當(dāng)檢測(cè)到用戶對(duì)目標(biāo)資源進(jìn)行訪問時(shí),獲取訪問所述目標(biāo)資源的進(jìn)程的用戶進(jìn)程消息;其次確定所述用戶進(jìn)程消息是否滿足所述信息上報(bào)條件;最后若所述用戶進(jìn)程消息滿足所述信息上報(bào)條件,則向所述應(yīng)用服務(wù)器發(fā)送所述用戶進(jìn)程消息,可以更加準(zhǔn)確的獲取用戶信息,進(jìn)而根據(jù)用戶信息進(jìn)行消息推送。
請(qǐng)參考圖5,圖5是本發(fā)明實(shí)施例提出的一種用戶終端的結(jié)構(gòu)示意圖。如圖所示,本發(fā)明實(shí)施例中的用戶終端包括:
信息接收模塊501,用于獲取應(yīng)用服務(wù)器發(fā)送的配置文件,所述配置文件包括信息上報(bào)條件;
具體實(shí)現(xiàn)中,可以首先在用戶終端安裝應(yīng)用管家客戶端,通過應(yīng)用管家客戶端對(duì)用戶終端上的其他應(yīng)用軟件進(jìn)行管理,監(jiān)控其他應(yīng)用軟件的使用情況(如:用戶打開什么類型的軟件、使用軟件的頻率等等),應(yīng)用服務(wù)器當(dāng)檢測(cè)到用戶終端已安裝應(yīng)用管家客戶端時(shí),向已安裝應(yīng)用管家客戶端的用戶終端發(fā)送配置文件。其中,信息上報(bào)條件包括信息類型、進(jìn)程標(biāo)識(shí)、使用頻率等等。
可選的,如圖3所示,圖3提供了一種配置文件的獲取方法的流程示意圖。用戶終端可以首先接收所述應(yīng)用服務(wù)器發(fā)送的配置信息,其中,所述配置信息包括當(dāng)前的配置文件的第一信息摘要值,然后檢測(cè)應(yīng)用服務(wù)器的配置開關(guān)是否開啟、且是否存在本地配置文件,如果應(yīng)用服務(wù)器配置開關(guān)已開啟并且存在本地配置文件,則判斷所述第一信息摘要值與本地配置文件的第二信息摘要值是否相同;若不相同,則從所述應(yīng)用服務(wù)器下載當(dāng)前的所述配置文件替換所述本地配置文件;若相同,則說(shuō)明用戶終端的本地配置文件為最新文件,不需從應(yīng)用服務(wù)器下載配置文件,解析本地配置文件獲取所述信息上報(bào)條件,信息摘要值可以為MD2值、MD5值等等。需要說(shuō)明的是,應(yīng)用服務(wù)器可以動(dòng)態(tài)的修改配置文件,并將修改的配置文件下發(fā)給用戶終端,通過動(dòng)態(tài)修改配置文件獲取應(yīng)用服務(wù)器所期望的數(shù)據(jù)。
消息獲取模塊502,用于當(dāng)檢測(cè)到用戶對(duì)目標(biāo)資源進(jìn)行訪問時(shí),獲取訪問所述目標(biāo)資源的進(jìn)程的用戶進(jìn)程消息;
具體實(shí)現(xiàn)中,可以對(duì)系統(tǒng)提供的API(Application Programming Interface,應(yīng)用程序編程接口)接口中的idProcess和idThresd進(jìn)行置空,獲取當(dāng)前系統(tǒng)內(nèi)的所有用戶進(jìn)程消息,然后通過進(jìn)程處理函數(shù)處理這些用戶進(jìn)程消息,最后對(duì)這些已經(jīng)處理過的用戶進(jìn)程消息進(jìn)行標(biāo)識(shí),從而實(shí)現(xiàn)在不影響其他程序正常運(yùn)行的同時(shí),異步地獲取到其他程序的進(jìn)程名稱和打開窗口名稱。
可選的,可以在應(yīng)用管家客戶端中注冊(cè)Hook函數(shù)監(jiān)控訪問所述目標(biāo)資源的進(jìn)程;通過在應(yīng)用管家客戶端中注冊(cè)的所述Hook函數(shù)獲取訪問所述目標(biāo)資源的進(jìn)程的用戶進(jìn)程消息。其中,Hook(鉤子)函數(shù)是Windows消息處理機(jī)制的一個(gè)平臺(tái),應(yīng)用程序可以在上面設(shè)置子程序以監(jiān)視窗口消息,而且所監(jiān)視的窗口可以是其他進(jìn)程所創(chuàng)建的,當(dāng)窗口消息到達(dá)后,在執(zhí)行窗口處理函數(shù)之前處理該窗口消息。另外,Hook機(jī)制允許應(yīng)用程序截獲處理Window消息或特定事件,鉤子實(shí)際上是一個(gè)處理消息的程序段,通過系統(tǒng)調(diào)用,將Hook函數(shù)掛入系統(tǒng),在彈窗消息未到達(dá)目標(biāo)窗口之前,Hook函數(shù)就先捕獲該窗口消息,進(jìn)而Hook函數(shù)可以加工處理該窗口消息,也可以不作處理而繼續(xù)傳遞該窗口消息,還可以強(qiáng)制結(jié)束該窗口消息的傳遞。
信息確定模塊403,用于確定所述用戶進(jìn)程消息是否滿足所述信息上報(bào)條件;
具體實(shí)現(xiàn)中,可以判斷獲取到進(jìn)程標(biāo)識(shí)是否符合所述配置文件中規(guī)定的進(jìn)程標(biāo)識(shí),或判斷獲取到的窗口標(biāo)題名稱是否符合所述配置文件中規(guī)定的窗口類型,或判斷打開目標(biāo)窗口的次數(shù)是否超過所述配置文件中規(guī)定的操作頻率等等。若確定所述用戶進(jìn)程消息不滿足所述信息上報(bào)條件,則不再執(zhí)行下述操作步驟。
信息發(fā)送模塊404,用于若所述用戶進(jìn)程消息滿足所述信息上報(bào)條件,則向所述應(yīng)用服務(wù)器發(fā)送所述用戶進(jìn)程消息。
具體實(shí)現(xiàn)中,若獲取到進(jìn)程標(biāo)識(shí)與所述配置文件中規(guī)定的進(jìn)程標(biāo)識(shí)相同,或若獲取到的窗口標(biāo)題名稱符合所述配置文件中規(guī)定的窗口類型,或若打開目標(biāo)窗口的次數(shù)超過所述配置文件中規(guī)定的操作頻率等等,則將用戶進(jìn)程消息上報(bào)至應(yīng)用服務(wù)器。
可選的,可以接收所述應(yīng)用服務(wù)器推送的服務(wù)信息,所述服務(wù)信息為所述應(yīng)用服務(wù)器根據(jù)所述用戶進(jìn)程消息選擇出的推送消息。具體的,應(yīng)用服務(wù)器接收到用戶終端發(fā)送的用戶進(jìn)程消息之后,可以根據(jù)用戶進(jìn)程消息判斷用戶喜歡玩什么游戲、一周內(nèi)玩該游戲次數(shù)、喜歡看什么類型的視頻、更偏向于使用哪款視頻播放軟件等等信息,并抽象出的一個(gè)標(biāo)簽化的用戶模型,根據(jù)該用戶模型,選擇性的向該用戶終端推送服務(wù)信息(如:用戶喜歡看的視頻)。
例如,用戶使用視頻軟件打開需要觀看視頻時(shí),可以通過Hook函數(shù)獲取打開的視頻的窗口標(biāo)題名稱,然后將確定該視頻的窗口標(biāo)題名稱是否符合應(yīng)用服務(wù)器下發(fā)的配置文件規(guī)定的窗口類型,如果是,則將該窗口標(biāo)題名稱發(fā)送到應(yīng)用服務(wù)器,應(yīng)用服務(wù)器通過窗口標(biāo)題名稱獲取該用戶所看的視頻名稱,進(jìn)而向該用戶終端推送相類似的其他視頻或該視頻名稱對(duì)應(yīng)的其他視頻消息。
在本發(fā)明實(shí)施例中,首先獲取應(yīng)用服務(wù)器發(fā)送的配置文件,所述配置文件包括信息上報(bào)條件;然后當(dāng)檢測(cè)到用戶對(duì)目標(biāo)資源進(jìn)行訪問時(shí),獲取訪問所述目標(biāo)資源的進(jìn)程的用戶進(jìn)程消息;其次確定所述用戶進(jìn)程消息是否滿足所述信息上報(bào)條件;最后若所述用戶進(jìn)程消息滿足所述信息上報(bào)條件,則向所述應(yīng)用服務(wù)器發(fā)送所述用戶進(jìn)程消息,可以更加準(zhǔn)確的獲取用戶信息,進(jìn)而根據(jù)用戶信息進(jìn)行消息推送。
請(qǐng)參考圖6,圖6是本發(fā)明實(shí)施例提出的一種應(yīng)用服務(wù)器的結(jié)構(gòu)示意圖。如圖所示,本發(fā)明實(shí)施例中的應(yīng)用服務(wù)器包括:
信息發(fā)送模塊601,用于向用戶終端發(fā)送配置文件,所述配置文件包括信息上報(bào)條件,以使所述用戶終端當(dāng)檢測(cè)到用戶對(duì)目標(biāo)資源進(jìn)行訪問時(shí)獲取訪問所述目標(biāo)資源的進(jìn)程的用戶進(jìn)程消息、并在確定所述用戶進(jìn)程消息滿足所述信息上報(bào)條件時(shí)向所述應(yīng)用服務(wù)器發(fā)送所述用戶進(jìn)程消息。
具體實(shí)現(xiàn)中,用戶終端接收到配置文件之后,當(dāng)檢測(cè)到用戶對(duì)目標(biāo)資源進(jìn)行訪問時(shí),獲取訪問所述目標(biāo)資源的進(jìn)程的用戶進(jìn)程消息;確定所述用戶進(jìn)程消息是否滿足所述信息上報(bào)條件;若所述用戶進(jìn)程消息滿足所述信息上報(bào)條件,則向所述應(yīng)用服務(wù)器發(fā)送所述用戶進(jìn)程消息,若確定所述用戶進(jìn)程消息不滿足所述信息上報(bào)條件,則不再執(zhí)行下述操作步驟。
可選的,信息發(fā)送模塊601,還用于向所述用戶終端發(fā)送配置信息,所述配置信息包括當(dāng)前的配置文件的第一信息摘要值。
具體實(shí)現(xiàn)中,用戶終端接收到配置信息之后,判斷所述第一信息摘要值與本地配置文件的第二信息摘要值是否相同;若不相同,則從所述應(yīng)用服務(wù)器下載當(dāng)前的所述配置文件替換所述本地配置文件,從而實(shí)現(xiàn)動(dòng)態(tài)的修改下發(fā)給用戶終端的配置文件的目的;若相同,則說(shuō)明用戶終端的本地配置文件為最新文件,不需從應(yīng)用服務(wù)器下載配置文件,解析本地配置文件獲取所述信息上報(bào)條件,應(yīng)用服務(wù)器可以通過配置并修改配置文件獲取期望得到的數(shù)據(jù)。其中,信息上報(bào)條件可以包括進(jìn)程標(biāo)識(shí)、窗口類型以及使用頻率等等,信息摘要值可以為MD2值、MD5值等等。
信息接收模塊602,用于接收所述用戶終端發(fā)送的所述用戶進(jìn)程消息。
可選的,信息發(fā)送模塊602,還用于根據(jù)所述用戶進(jìn)程消息,選擇推送給所述用戶的服務(wù)信息;向所述用戶終端發(fā)送選擇的所述服務(wù)信息。
具體實(shí)現(xiàn)中,應(yīng)用服務(wù)器接收到用戶終端發(fā)送的用戶進(jìn)程消息之后,可以根據(jù)用戶進(jìn)程消息判斷用戶喜歡玩什么游戲、一周內(nèi)玩該游戲次數(shù)、喜歡看什么類型的視頻、更偏向于使用哪款視頻播放軟件等等信息,并抽象出的一個(gè)標(biāo)簽化的用戶模型,根據(jù)該用戶模型,選擇性的向該用戶終端推送服務(wù)信息(如,用戶喜歡看的視頻)。
例如,用戶使用視頻軟件打開需要觀看視頻時(shí),可以通過Hook函數(shù)獲取打開的視頻的窗口標(biāo)題名稱,然后將確定該視頻的窗口標(biāo)題名稱是否符合應(yīng)用服務(wù)器下發(fā)的配置文件規(guī)定的窗口類型,如果是,則將該窗口標(biāo)題名稱發(fā)送到應(yīng)用服務(wù)器,應(yīng)用服務(wù)器通過窗口標(biāo)題名稱獲取該用戶所看的視頻名稱,進(jìn)而向該用戶終端推送相類似的其他視頻或該視頻名稱對(duì)應(yīng)的其他視頻消息。
請(qǐng)參考圖7,圖7是本發(fā)明實(shí)施例提出的一種用戶信息獲取設(shè)備的結(jié)構(gòu)示意圖。如圖所示,該設(shè)備可以包括:至少一個(gè)處理器701,例如CPU,至少一個(gè)通信接口702,至少一個(gè)存儲(chǔ)器703,至少一個(gè)總線707。其中,總線707用于實(shí)現(xiàn)這些組件之間的連接通信。其中,本發(fā)明實(shí)施例中設(shè)備的通信接口702是有線發(fā)送端口,也可以為無(wú)線設(shè)備,例如包括天線裝置,用于與其他節(jié)點(diǎn)設(shè)備進(jìn)行信令或數(shù)據(jù)的通信。存儲(chǔ)器703可以是高速RAM存儲(chǔ)器,也可以是非不穩(wěn)定的存儲(chǔ)器(non-volatile memory),例如至少一個(gè)磁盤存儲(chǔ)器。存儲(chǔ)器703可選的還可以是至少一個(gè)位于遠(yuǎn)離前述處理器701的存儲(chǔ)裝置。存儲(chǔ)器703中存儲(chǔ)一組程序代碼,且處理器701用于調(diào)用存儲(chǔ)器中存儲(chǔ)的程序代碼,用于執(zhí)行以下操作:
獲取應(yīng)用服務(wù)器發(fā)送的配置文件,所述配置文件包括信息上報(bào)條件;
當(dāng)檢測(cè)到用戶對(duì)目標(biāo)資源進(jìn)行訪問時(shí),獲取訪問所述目標(biāo)資源的進(jìn)程的用戶進(jìn)程消息;
確定所述用戶進(jìn)程消息是否滿足所述信息上報(bào)條件;
若所述用戶進(jìn)程消息滿足所述信息上報(bào)條件,則向所述應(yīng)用服務(wù)器發(fā)送所述用戶進(jìn)程消息。
其中,處理器701還用于執(zhí)行如下操作步驟:
注冊(cè)Hook函數(shù)監(jiān)控訪問所述目標(biāo)資源的進(jìn)程;
通過注冊(cè)的所述Hook函數(shù)獲取訪問所述目標(biāo)資源的進(jìn)程的用戶進(jìn)程消息。
其中,處理器701還用于執(zhí)行如下操作步驟:
接收所述應(yīng)用服務(wù)器發(fā)送的配置信息,所述配置信息包括當(dāng)前的配置文件的第一信息摘要值;
判斷所述第一信息摘要值與本地配置文件的第二信息摘要值是否相同;
若不相同,則從所述應(yīng)用服務(wù)器下載當(dāng)前的所述配置文件替換所述本地配置文件。
其中,處理器701還用于執(zhí)行如下操作步驟:
接收所述應(yīng)用服務(wù)器推送的服務(wù)信息,所述服務(wù)信息為所述應(yīng)用服務(wù)器根據(jù)所述用戶進(jìn)程消息選擇出的推送消息。
需要說(shuō)明的是,對(duì)于前述的各個(gè)方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某一些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說(shuō)明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本發(fā)明所必須的。
在上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有詳細(xì)描述的部分,可以參見其他實(shí)施例的相關(guān)描述。
本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來(lái)指令相關(guān)的硬件來(lái)完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)可以包括:閃存盤、只讀存儲(chǔ)器(英文:Read-Only Memory,簡(jiǎn)稱:ROM)、隨機(jī)存取器(英文:Random Access Memory,簡(jiǎn)稱:RAM)、磁盤或光盤等。
以上對(duì)本發(fā)明實(shí)施例所提供的內(nèi)容下載方法及相關(guān)設(shè)備、系統(tǒng)進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。