微信小程序數(shù)據(jù)分析之自定義分析的實(shí)現(xiàn)
在小程序后臺,微信已經(jīng)提供了強(qiáng)大的數(shù)據(jù)分析功能,包括實(shí)時(shí)統(tǒng)計(jì)、訪問分析、來源分析和用戶畫像功能,可以說對一般的數(shù)據(jù)分析已經(jīng)完全足夠了,但有時(shí)應(yīng)用需要做一些更加精準(zhǔn)的數(shù)據(jù)分析,比如具體到某一個(gè)頁面的分享,頁面中某一個(gè)button的點(diǎn)擊等,這時(shí)候就需要用到自定義分析功能。
什么是自定義分析?
引用下官方文檔:
自定義分析支持靈活多維和近實(shí)時(shí)的用戶行為分析,可以通過自定義上報(bào),對用戶在小程序內(nèi)的行為做精細(xì)化跟蹤,滿足頁面訪問等標(biāo)準(zhǔn)統(tǒng)計(jì)以外的個(gè)性化分析需求。
創(chuàng)建自定義事件
- 事件英文名稱和事件中文名稱按照說明要求填寫,這兩個(gè)名稱都是唯一的,不能設(shè)置成已經(jīng)設(shè)置過的,而且設(shè)置的時(shí)候盡量簡潔、還要見名知意
- 配置方式有:填寫配置、API上報(bào)。
- 配置模版:官方已經(jīng)提供了一些自定義事件模版,直接使用就可以,包括有:進(jìn)入頁面、離開頁面、小程序內(nèi)分享,不過這些事件的分析粒度都比較粗,針對整個(gè)應(yīng)用,可以自己修改只針對某一頁
- 填寫配置的方式支持以下幾種統(tǒng)計(jì)觸發(fā)器,有:
click 點(diǎn)擊時(shí)觸發(fā)
enterPage 進(jìn)入頁面時(shí)觸發(fā),包括新開、后退、切換到前臺都屬于進(jìn)入頁面
leavePage 離開頁面時(shí)觸發(fā),包括離開、切換到后臺都屬于離開頁面
pageLoad 新開頁面時(shí)觸發(fā),即第一次進(jìn)入頁面
pageUnload 回收頁面時(shí)觸發(fā)
pullDownRefresh 下拉刷新時(shí)觸發(fā)
launch 加載小程序時(shí)觸發(fā)
background 切換到后臺觸發(fā)
foreground 切換到前臺觸發(fā)
share 右上角菜單分享
switchTab 調(diào)用switchTab接口切換頁面時(shí)觸發(fā)
- action指出發(fā)時(shí)的動(dòng)作,一次性上報(bào),表示在每一次 click 中,收集數(shù)據(jù)并上報(bào)一條數(shù)據(jù);分步驟上報(bào)我也還沒搞懂 😅
- page指要觸發(fā)該事件的頁面,這里填寫的內(nèi)容必須要和
app.json
中配置的頁面路徑一樣 - data是選填的,是用來給事件觸發(fā)時(shí)傳遞一些數(shù)據(jù)的,其中,字段值就是當(dāng)前page的
data
中的數(shù)據(jù)名稱
舉個(gè)例子🌰
電商類小程序中,用戶會(huì)有一個(gè)點(diǎn)擊商品添加到購物車的動(dòng)作,我們可以對這個(gè)動(dòng)作進(jìn)行數(shù)據(jù)分析,以下是填寫配置
的方式:
1、填寫事件英文和中文名稱:
2、填寫事件配置,定義如何收集數(shù)據(jù):
這個(gè)例子中,用一個(gè)動(dòng)作上報(bào)“加入購物車”事件。
- trigger:觸發(fā)條件,click,表示點(diǎn)擊操作觸發(fā);
- action:觸發(fā)時(shí)動(dòng)作,一次性上報(bào),表示在每一次 click 中,收集數(shù)據(jù)并上報(bào)一條數(shù)據(jù);
- page:觸發(fā)頁面,填 viewProduct(viewProduct 是商品詳情頁);
- element:觸發(fā)元素,填 .addToCart(.addToCart 是一個(gè)“加入購物車”的按鈕);
- data:事件的數(shù)據(jù)及其來源,用“字段名 字段值”來表示,其中字段值是頁面上的一個(gè)變量。
詳細(xì)說一下字段值,他有如下規(guī)則:
- 填寫的變量名,默認(rèn)從page實(shí)例的data字段中獲取
- 若想收集由list變量渲染的列表中的某一項(xiàng)數(shù)據(jù),則可用list[].*表示,這里會(huì)根據(jù)當(dāng)前填寫的element(只能是class)得到的NodeList的第幾個(gè)來決定數(shù)組下標(biāo)。
- 若列表是二維的,則可用list[](file:///Users/wanghui/Blog/source/_posts/WeChat-miniprogram-data-analysis-custom-analysis.md#).*表示,這里element需填寫兩個(gè)class(空格隔開)分別表示父列表與子列表。
- 若想取得數(shù)組的下標(biāo),則可用list[].$INDEX表示
- 若想取得wxml中data-系列屬性的值,則可用$DATASET.表示
- 若想取得app實(shí)例的數(shù)據(jù),則可用$APP.*表示,只支持獲取基本類型的數(shù)據(jù),如number、string、boolean。
除此之外,還可以填寫一些提供的系統(tǒng)屬性,以“$”開頭,目前支持以下屬性:
$PAGE_TIME
用戶從進(jìn)入本頁面到當(dāng)前的時(shí)間(觸發(fā)action的時(shí)間點(diǎn))$APP_TIME
用戶進(jìn)入小程序到當(dāng)前的時(shí)間(觸發(fā)action的時(shí)間點(diǎn))$CURRENT_PAGE
當(dāng)前用戶所在的頁面$LAST_PAGE
上一頁
注:data可以為空,為空時(shí)該事件上報(bào)僅收集系統(tǒng)默認(rèn)字段的數(shù)據(jù)
這個(gè)例子中,data有四項(xiàng):
product_id: itemID
product_name: itemName
product_price: price
product_category: category
即:
事件的product_id字段,收集viewProduct頁面上page實(shí)例的data中的itemID字段;
事件的product_name字段,收集viewProduct頁面上page實(shí)例的data中的itemName字段;
事件的product_price字段,收集viewProduct頁面上page實(shí)例的data中的price字段;
事件的product_category字段,收集viewProduct頁面上page實(shí)例的data中的category字段;
以上內(nèi)容表示:當(dāng)用戶點(diǎn)擊 viewProduct 頁面上的 .addToCart 按鈕時(shí),上報(bào)一條記錄到 add_to_cart 事件,事件的 product_id, product_name, product_price, product_category 字段, 取值分別是頁面上的 itemID, itemName, price, category。
填寫完配置后,還要點(diǎn)擊檢查字段
。
此時(shí)會(huì)提示 add_to_cart 事件包含的具體字段,繼續(xù)補(bǔ)充字段的名稱、數(shù)據(jù)類型和備注信息。
關(guān)于API上報(bào)
API上報(bào)比填寫配置的方式更加靈活,但這也涉及到一些代碼的更改,需要發(fā)布新版本,而填寫配置的方式幾乎不需要更改代碼,所以無需發(fā)布新版本。當(dāng)我們選擇API上報(bào)
后,我們可以設(shè)置需要上報(bào)的一下參數(shù):
點(diǎn)擊生成代碼:
時(shí)間創(chuàng)建完成后,點(diǎn)擊保存,后臺就生成了一條事件記錄,并有唯一的ID與它對應(yīng):
接著,我們在小程序代碼中可以插入生成的代碼,如下是我在轉(zhuǎn)發(fā)成功后的success()
回掉函數(shù)中提交API上報(bào)。
... // 轉(zhuǎn)發(fā)成功 success: function (res) { wx.reportAnalytics('click_share', { page_path: current_page_path, from: from, }); }, ...
不管是填寫配置還是API上報(bào),都需要在填寫完配置后保存并測試。
我們在測試事件的時(shí)候,往往要過一段時(shí)間才能接收到數(shù)據(jù),大概1-2分鐘,為了能夠及時(shí)判斷正確性,我們可以在手機(jī)上的小程序應(yīng)用中,打開調(diào)試,這樣,每次觸發(fā)事件時(shí),都會(huì)在控制臺的Log中看到[自定義分析]上報(bào)成功的字樣
,點(diǎn)擊查看還能看到更多數(shù)據(jù),比如上報(bào)的參數(shù)等,里面的eventID
就對應(yīng)事件的英文名稱,可以通過這種方式快速判斷事件觸發(fā)是否符合預(yù)期,如下截圖:
通過使用,我們發(fā)現(xiàn)小程序的自定義分析功能很強(qiáng)大,你可以在頁面上分析任何元素、任何事件,使我們可以全方位的了解到小程序的使用情況,對數(shù)據(jù)加以分析總結(jié),并以數(shù)據(jù)來驅(qū)動(dòng)產(chǎn)品的迭代,提高用戶留存。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 微信小程序?qū)崿F(xiàn)頁面跳轉(zhuǎn)傳值以及獲取值的方法分析
- 微信小程序swiper組件用法實(shí)例分析【附源碼下載】
- 微信小程序tabBar模板用法實(shí)例分析【附demo源碼下載】
- 微信小程序用戶自定義模版用法實(shí)例分析
- 微信小程序模板和模塊化用法實(shí)例分析
- 微信小程序列表渲染功能之列表下拉刷新及上拉加載的實(shí)現(xiàn)方法分析
- 微信小程序wx.request實(shí)現(xiàn)后臺數(shù)據(jù)交互功能分析
- 微信小程序頁面?zhèn)髦祵?shí)例分析
- 微信小程序登錄態(tài)控制深入分析
- 微信 小程序前端源碼詳解及實(shí)例分析
相關(guān)文章
JS實(shí)用的帶停頓的逐行文本循環(huán)滾動(dòng)效果實(shí)例
下面小編就為大家?guī)硪黄狫S實(shí)用的帶停頓的逐行文本循環(huán)滾動(dòng)效果實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11用Javascript評估用戶輸入密碼的強(qiáng)度實(shí)現(xiàn)代碼
用Javascript評估用戶輸入密碼的強(qiáng)度實(shí)現(xiàn)代碼,需要的朋友可以參考下。2011-11-11