在這個大資料的時代裡,資料是乙個網際網路發展的核心,除了對客戶分析重要之外,公司對自己的產品能否客觀的掌控也十分重要。
埋點的意思是在專案關鍵位置注入**,**會向伺服器傳送裝置資訊、使用者操作、時間點等資訊。
最簡單實現埋點的方法,是讓開發者在需要的地方新增一句**,用來向伺服器發起請求,匯報情況
埋點的**和業務邏輯的**是沒有直接聯絡的,如果讓開發者手動的在專案中新增**,會增加專案耦合。不僅開發者麻煩,後期維護也增加了難度。所以能通過引入外部**,自動在最常用的位置注入埋點,是更合理的一種手段。
就web端而言,一般選擇的注入點有:頁面載入完成、使用者點選鏈結、登入登出等場景。
小程式app函式有:onlaunch、onshow、onhide、onerror、onpagenotfound五個週期方法,小程式啟動時會走onlaunch方法。
小程式有後台機制,當使用者關閉當前小程式,回到微信頁面時,小程式不會直接結束程序,而是到記憶體占用到了一定量後,微信會自動對小程式進行銷毀。
onshow與onhide兩個方法對應的就是小程式前後臺轉換,當使用者從微信到小程式時,onshow會被呼叫;反之,使用者從小程式到微信介面時,會呼叫onhide。
小程式每個頁面都是乙個page,每個page有:onload/onready/onshow/onhide/onunload/onshareappmessage/onpulldownrefresh等等週期方法。
在小程式各個生命週期埋點,可以有效的收集到使用者運算元據,正常小程式開發者,這些週期方法都是由開發者宣告的。開發者可以在週期方法中寫入匯報伺服器**,但就像之前說的,通過外部**實現這一功能會是更好的選擇。
所以我們需要一些功能**,實現自動注入埋點。
小程式像是乙個定製的webview,開啟app時,小程式首先會呼叫宣告的app函式,所以我們可以通過劫持app函式,注入埋點。
var oldapp = app
app = function(args)
複製**如以上**所示,劫持app函式後,進行改寫週期函式,最後執行真正的app函式。 args及為小程式app.js中配置的模型,包含了app的週期函式和globaldata物件,例如,要在onlaunch方法中注入埋點:
function customlaunch(opt)
var oldlaunch = args.onlaunch
args.onlaunch = function(opt)
customlaunch.call(this, opt) // 自定義週期方法
}複製**其他的週期方法,也可以用這種方式進行改寫。
每個應用的需求都會不一樣,所以也需要給自動埋點賦予自定義埋點的能力。 在每個page的index.js中,我們可以用getapp()方法獲取到小程式全域性物件,app函式中的this指向的就是這個全域性物件,所以我們可以在上面**塊中定義自定義埋點方法:
--- app.js
args.onlaunch = function(opt)
...}--- page的index.js
var app = getapp()
app.track(name) // 傳送自定義報文
複製**小程式天然的生命週期相對於web應用來說,對埋點需求友好很多,如何控制和實現視覺化埋點是我們需要努力的方向。
小程式自動埋點教學
在這個大資料的時代裡,資料是乙個網際網路發展的核心,除了對客戶分析重要之外,公司對自己的產品能否客觀的掌控也十分重要。埋點的意思是在專案關鍵位置注入 會向伺服器傳送裝置資訊 使用者操作 時間點等資訊。最簡單實現埋點的方法,是讓開發者在需要的地方新增一句 用來向伺服器發起請求,匯報情況 埋點的 和業務...
MFC基本教程 小程式
1.vs2008下mfc對話方塊如何新增背景 2.vs2008下mfc 如何新增自啟動畫面 vs2008下mfc如何新增啟動畫面 1.建立乙個sdi或mdi工程 2.新建或匯入乙個id號為idb splash的 3.從cwnd類派生乙個名為csplashwnd staticcsplashwnd c ...
微信小程式元件教程
將頁面內的功能模組抽象成自定義元件,以便在不同的頁面中重複使用 也可以將複雜的頁面拆分成多個低耦合的模組,有助於 維護。自定義元件由 json wxml wxss js 4個檔案組成 首先需要在 json 檔案中進行自定義元件宣告,將 component 設為 true.json 檔案 compon...