小程序現(xiàn)在火了。但是應(yīng)該如何監(jiān)測(cè)小程序的數(shù)據(jù)呢?相信這是一個(gè)大家都關(guān)心的問題。這篇文章對(duì)這個(gè)問題進(jìn)行解答。一共包括兩個(gè)部分:
1. 如何獲得小程序相關(guān)數(shù)據(jù)(常規(guī)數(shù)據(jù)和自定義事件數(shù)據(jù));
2. 如何利用這些數(shù)據(jù)(三個(gè)案例說明);
本文所使用的監(jiān)測(cè)工具是nEqual提供的 及策 小程序監(jiān)測(cè)。
在數(shù)據(jù)監(jiān)測(cè)中分為兩大部分,常規(guī)數(shù)據(jù)監(jiān)測(cè)和自定義事件數(shù)據(jù)監(jiān)測(cè)。 常規(guī)數(shù)據(jù)監(jiān)測(cè) 是指不管小程序是什么類型的,我們都需要獲取的數(shù)據(jù),除了基礎(chǔ)代碼還包括來源、頁面與頁面路徑、分享、用戶屬性等數(shù)據(jù)。 自定義事件監(jiān)測(cè) 是指一些具有特殊業(yè)務(wù)場(chǎng)景的數(shù)據(jù)監(jiān)測(cè),比如含有交易功能的小程序,在提交訂單時(shí)需要監(jiān)測(cè)訂單里的商品、數(shù)量、金額等數(shù)據(jù)。如果小程序內(nèi)有廣告位,還需要監(jiān)測(cè)廣告的曝光和點(diǎn)擊數(shù)據(jù)。接下來介紹常規(guī)數(shù)據(jù)監(jiān)測(cè)和自定義事件數(shù)據(jù)監(jiān)測(cè)具體的監(jiān)測(cè)方法。
先講解一下基礎(chǔ)代碼的部署。在部署代碼之前,你需要注冊(cè)一個(gè)小程序的賬號(hào),然后在賬號(hào)后臺(tái)添加合法域名,每個(gè)監(jiān)測(cè)工具的域名不一樣,具體域名可以咨詢你使用的工具廠商。
添加完域名后要引入JS,將下載的SDK文件放入 util 目錄下,然后在 app.js 第一行添加js代碼。SDK文件和JS代碼在工具廠商那都能下載到。其次是來源數(shù)據(jù)監(jiān)測(cè),這里先說下小程序都有哪些入口,有哪些能直接監(jiān)測(cè),有哪些不行。小程序的入口接近70個(gè),包含發(fā)現(xiàn)欄小程序主入口、頂部搜索框的搜索結(jié)果頁、朋友圈廣告、搜一搜結(jié)果頁、發(fā)現(xiàn)欄小程序主入口搜索框的搜索結(jié)果頁、聊天會(huì)話中的小程序消息卡片等,(詳細(xì)入口列表,回復(fù)“小程序”獲?。_@些入口中,有些是我們可以加參數(shù)監(jiān)測(cè)的,比如小程序的二維碼,這里說的二維碼也是用一段url生成的,和網(wǎng)站監(jiān)測(cè)原理一樣。在做網(wǎng)站來源監(jiān)測(cè)的時(shí)候,我們會(huì)在url上添加link tag來區(qū)分不同的流量渠道和廣告類型等。比如投放到新浪上的banner廣告,我們可能就會(huì)加上參數(shù)?utm_source=sina&utm_media=banner,同樣在小程序里也能用這種方式實(shí)現(xiàn),只是每個(gè)工具的參數(shù)標(biāo)識(shí)不一定一樣,有些是兼容utm的,有些有自己的標(biāo)識(shí)。比如及策用md標(biāo)識(shí)來源類型,用pl標(biāo)識(shí)來源詳情,這個(gè)鏈接pages/index?md=Qr_code&pl=mendian_a代表的是來自A門店的二維碼。和網(wǎng)站來源參數(shù)另一個(gè)共同點(diǎn)是這些參數(shù)可以只寫一個(gè),也可全都不寫。有些是無法加參數(shù)監(jiān)測(cè)的。無法添加參數(shù)的來源類型需要工具從微信那調(diào)取場(chǎng)景值。前面提到小程序有接近70個(gè)入口,每個(gè)入口都有相對(duì)應(yīng)的場(chǎng)景值,監(jiān)測(cè)工具可以通過調(diào)用小程序定義好的場(chǎng)景值來判斷各種來源帶來的用戶數(shù)據(jù)。
第三個(gè)常規(guī)監(jiān)測(cè)是分享的監(jiān)測(cè),這也是小程序數(shù)據(jù)監(jiān)測(cè)區(qū)別于網(wǎng)站數(shù)據(jù)監(jiān)測(cè)的地方,在微信的生態(tài)里讓分享監(jiān)測(cè)成為可能。分享監(jiān)測(cè)主要是要獲取三個(gè)數(shù)據(jù):分享的位置、分享頁面的標(biāo)題和分享路徑。這樣我們能夠看到某個(gè)頁面被分享到群里還是發(fā)給朋友了。有些朋友問,我想監(jiān)測(cè)頁面A被某人分享出去后帶來多少人訪問,是否能實(shí)現(xiàn)。這種場(chǎng)景是可以實(shí)現(xiàn)的,需要我們做一些自定義事件監(jiān)測(cè)。以及策這個(gè)工具為例,在 path 后動(dòng)態(tài)加上用戶動(dòng)作名稱的昵稱,這樣就可以統(tǒng)計(jì)該分享者最終帶來多少用戶了。
Page({ onShareAppMessage: function () { jice.track(“onshare”, { title: “自定義分享標(biāo)題”, path: “/page/user” + “md=share&pl=” + app.globalData.userInfo.nickName }) } }) |
一個(gè)需要介紹的字段是$share_depth,這個(gè)屬性值會(huì)記錄分享的層級(jí):如果某個(gè)小程序頁面被A、B和C三人依照 A -> B -> C 的順序進(jìn)行分享,則 A 的分享會(huì)被標(biāo)記為1級(jí)分享,B的分享會(huì)被標(biāo)記為2級(jí),C 則為3級(jí)。 如果某用戶打開自己分享的頁面不會(huì)增加 $share_depth 的值。通過這個(gè)字段可以看到某個(gè)頁面被分享的層級(jí)有多深。另一個(gè)常規(guī)監(jiān)測(cè)就是用戶屬性的數(shù)據(jù),當(dāng)用戶打開你的小程序并且使用微信登錄,會(huì)調(diào)用以下方法回傳用戶數(shù)據(jù)。
this.getUserInfo(function(userInfo){
jice.addUserIdentifier({ openid: openid, // openidid
unionid: unionid, // unionid
nickname: userInfo.nickName, //昵稱
wxgender: userInfo.gender, //性別
wxcity: userInfo.city, //微信設(shè)置城市
wxprovince: userInfo.province, //微信設(shè)置省份
wxcountry: userInfo.country, //微信設(shè)置國(guó)家
avatarurl: userInfo.avatarUrl //頭像url })})
關(guān)于用戶id打通,因?yàn)樯婕暗接脩鬷d,這里延伸介紹下監(jiān)測(cè)小程序的工具根據(jù)哪些id來判斷用戶,當(dāng)用戶在未登錄的情況下,工具會(huì)給用戶隨機(jī)生成一個(gè)id,相當(dāng)于網(wǎng)站監(jiān)測(cè)里的cookie,只是每家工具的叫法不一樣,神策的叫uuid,易觀方舟的叫originallid等。(是否有官方叫法)這種id極不穩(wěn)定,如果你換了設(shè)備或者刪除小程序,這個(gè)id隨之重新生成或者消失。當(dāng)用戶用微信登錄小程序的時(shí)候,我們會(huì)獲得用戶的open id,有可能的情況下會(huì)獲得union id,在之前我講公眾號(hào)用戶運(yùn)營(yíng)的文章里有詳細(xì)講過這兩種id的區(qū)別,如果你有多個(gè)公眾號(hào)、小程序的時(shí)候(在同一認(rèn)證主體下),假設(shè)有一個(gè)用戶關(guān)注了你三個(gè)公眾號(hào)并且登錄過一個(gè)小程序,每個(gè)公眾號(hào)和小程序都會(huì)給這個(gè)用戶記錄一個(gè)open id,并且都不一樣,這對(duì)于你來說是不符合你的業(yè)務(wù)需求的,你還是希望能把這個(gè)用戶識(shí)別為一個(gè)人,這時(shí)候微信就提供另一個(gè)id叫union id來將這個(gè)用戶的open id進(jìn)行統(tǒng)一標(biāo)識(shí),所以在你的平臺(tái)上,一個(gè)用戶對(duì)應(yīng)一個(gè)union id。除了用戶登錄后的open id或者union id,還有一個(gè)id是你收集到的用戶手機(jī)號(hào)或者郵箱,通過這個(gè)用戶id你可以將用戶訪問你網(wǎng)站、APP等平臺(tái)的數(shù)據(jù)統(tǒng)一整合進(jìn)來。
講完常規(guī)部署,接下來講解一下進(jìn)階的部署內(nèi)容。小程序和網(wǎng)站一樣,除了頁面、渠道來源等數(shù)據(jù),我們還有很多更為復(fù)雜和重要的數(shù)據(jù),比如特定交互的監(jiān)測(cè),我們稱之為事件監(jiān)測(cè);比如訂單數(shù)據(jù)監(jiān)測(cè),我們想知道某用戶提交的訂單里包含多少商品、商品的名稱都是什么、一共多少金額等,我們需要用到自定義變量的事件監(jiān)測(cè);另外如果你在其他小程序里有廣告投放,你還想知道廣告位的曝光和點(diǎn)擊次數(shù)的數(shù)據(jù)等等。為了解決好這些業(yè)務(wù)場(chǎng)景的數(shù)據(jù)監(jiān)測(cè)問題,以下內(nèi)容主要會(huì)和大家介紹特定交互監(jiān)測(cè)、自定義變量監(jiān)測(cè)、廣告位曝光點(diǎn)擊監(jiān)測(cè)。
特定交互監(jiān)測(cè)(事件監(jiān)測(cè))
拿我最常用的小程序舉例,因?yàn)槊恐芏家M織大家打籃球,要確定大部分朋友打球的時(shí)間,所以會(huì)用到投票的小程序。
如果我們監(jiān)測(cè)騰訊投票的小程序,我特別想知道頁面上點(diǎn)擊單選投票和多選投票的點(diǎn)擊數(shù)量是多少,這時(shí)候我們需要部署小程序事件的代碼,還是以及策為例,分別給這兩個(gè)按鈕部署事件代碼jice.track(‘danxuan’)和jice.track(‘duoxuan’),這樣就可以實(shí)現(xiàn)對(duì)這兩個(gè)按鈕的監(jiān)測(cè)。那有朋友就問了,如果我不僅僅想監(jiān)測(cè)這個(gè)按鈕的點(diǎn)擊次數(shù),我還想監(jiān)測(cè)這個(gè)按鈕里的文字內(nèi)容呢?這就涉及到了自定義變量了,為了更好地解釋這個(gè)問題,我直接引到自定義變量監(jiān)測(cè)模塊。
自定義變量數(shù)據(jù)監(jiān)測(cè)
當(dāng)我們想要監(jiān)測(cè)很多特定的動(dòng)態(tài)數(shù)據(jù)的時(shí)候,比如訂單信息、注冊(cè)信息等,因?yàn)槊總€(gè)用戶購(gòu)買的商品五花八門、注冊(cè)提交的手機(jī)號(hào)等信息具有唯一性,所以無法用簡(jiǎn)單的事件來監(jiān)測(cè),而是要監(jiān)測(cè)更為詳細(xì)的動(dòng)態(tài)信息,所以才有自定義變量存在的可能性。比如下圖中的訂單信息,用戶購(gòu)買了酒店的單人餐,兩份。我想要在用戶點(diǎn)擊“確認(rèn)下單”按鈕的時(shí)候,把訂單里商品名“盤古七星酒店因緣庭單人餐”、數(shù)量“2”、總額“200元”等數(shù)據(jù)監(jiān)測(cè)回來,我們需要用這樣的代碼jice.track(‘qrxd’, {spmc:‘/*商品名稱*/’,shuliang:‘/*數(shù)量*/’,zonge:’/*合計(jì)金額*/’}); 當(dāng)用戶點(diǎn)擊“確認(rèn)下單”的時(shí)候即觸發(fā)數(shù)據(jù)收集,其中“商品名稱”、“數(shù)量”和“合計(jì)金額”替換成訂單里的詳細(xì)數(shù)據(jù)。
接下來給大家介紹一下小程序內(nèi)曝光和點(diǎn)擊的監(jiān)測(cè),如果你的小程序在其他小程序里投放廣告,你想知道曝光和點(diǎn)擊的次數(shù),你需要詳細(xì)了解下如何實(shí)現(xiàn)。
廣告位曝光點(diǎn)擊監(jiān)測(cè)
要實(shí)現(xiàn)廣告位數(shù)據(jù)的監(jiān)測(cè),首先要在監(jiān)測(cè)工具中添加作為渠道方的小程序,然后嵌入基礎(chǔ)代碼以及需監(jiān)測(cè)的事件代碼、用戶屬性代碼(這些代碼前面都有詳細(xì)介紹),同時(shí)需在工具中添加廣告主的小程序,最后將以下代碼部署在廣告位上。注意:代碼中appid為廣告主的appid,即工具生成的應(yīng)用id。
Javascript//曝光 jice.adTrack(“appid”,“view”, { adtype: “banner”, //廣告位,可選banner/timeline,或自定義值 adct: “audi suv” // 廣告內(nèi)容標(biāo)識(shí) adv: “audi” //廣告主名稱 })//點(diǎn)擊 jice.adTrack(“appid”,“click”, { adtype: “banner”, //廣告位,可選banner/timeline,或自定義值 adct: “audi suv” // 廣告內(nèi)容標(biāo)識(shí) adv: “audi” //廣告主名稱 }) |
//appid 為及策為每個(gè)廣告主分配的不同應(yīng)用id;
好了,數(shù)據(jù)監(jiān)測(cè)的部分已經(jīng)講完了。
接下來和大家講解三個(gè)案例:漏斗分析、表單分析和自定義變量事件分析。
漏斗分析是很常見的做轉(zhuǎn)化流程、表單等業(yè)務(wù)分析的模型,在宋星老師的 大課堂 上有介紹過漏斗的主要形態(tài),如下圖。
最理想的狀態(tài)當(dāng)然是沒有流失,全部都轉(zhuǎn)化了,但這是不可能的嘛。正常的流程都會(huì)存在一定的流失率,但是有些嚴(yán)重的泄漏點(diǎn)是值得我們關(guān)注的,這些嚴(yán)重流失的用戶到底去了哪里,找出原因也就找到了優(yōu)化的方法。 可口可樂繼昵稱瓶、歌詞瓶、臺(tái)詞瓶之后,應(yīng)用小程序推出社交活動(dòng):密語瓶。這個(gè)活動(dòng)的玩法是用戶通過掃描小程序的二維碼進(jìn)入小程序頁面后選擇喜歡的密語,然后上傳照片與密語結(jié)合后生成圖片分享給好友,最終達(dá)到娛樂與傳播的目的。
在這個(gè)活動(dòng)中,其中有一個(gè)流程是:打開首頁-點(diǎn)擊“蜜語從哪來”按鈕-輸入密語-確認(rèn)提交-生成圖片分享。 通過數(shù)據(jù)積累,我們構(gòu)建了以下漏斗。
從上圖可以看出用戶從首頁點(diǎn)擊“蜜語從哪來”進(jìn)入密語定制流程的用戶流失率較高,只從這個(gè)數(shù)據(jù)來看,首頁的流失量是很大的,對(duì)于這個(gè)營(yíng)銷活動(dòng),最重要的目標(biāo)是引導(dǎo)用戶定制自己的密語然后分享。后來我們從另一個(gè)漏斗數(shù)據(jù)里看出沒有進(jìn)入以上漏斗的用戶中除了一部分直接退出小程序,另一部分進(jìn)入了“密語表情DIY”,進(jìn)入了另一個(gè)定制密語的流程里。所以雖然從漏斗里看出流失率大,但是并不是壞事。
第二個(gè)需要注意的泄漏點(diǎn)在最后的分享,最后一個(gè)環(huán)節(jié)的轉(zhuǎn)化率非常低,這個(gè)數(shù)據(jù)引起我們的注意,我們需要分析是不是頁面分享引導(dǎo)出現(xiàn)問題,后來經(jīng)過排查發(fā)現(xiàn)是因?yàn)椴恢С址治雠笥讶?dǎo)致很多用戶無法分享。
找到泄露的原因,也就找到優(yōu)化的方法。
在表單分析中,有幾個(gè)核心的指標(biāo)需要重點(diǎn)關(guān)注。
接下來看下看個(gè)汽車行業(yè)客戶在投放廣告后如何通過數(shù)據(jù)發(fā)現(xiàn)表單問題的。大家知道汽車廣告投放最主要的目的有預(yù)約試駕、申請(qǐng)手冊(cè)、購(gòu)車意向等,這里面都涉及到了讓用戶提交個(gè)人信息。所以提交個(gè)人信息的表單設(shè)計(jì)變得尤為重要。這個(gè)表單在用戶進(jìn)入表單頁面嘗試填寫到點(diǎn)擊提交,有將近三分之二的用戶離開了,我們想知道到底是哪些因素導(dǎo)致用戶流失。我們想知道到底是哪些因素導(dǎo)致用戶流失。在大量數(shù)據(jù)中,我們發(fā)現(xiàn)了幾個(gè)有意思的數(shù)據(jù)。其中一個(gè)是下圖中展現(xiàn)的,用戶在放棄填寫前最后互動(dòng)的表單,此圖可以分析出用戶是因?yàn)槟膫€(gè)表單項(xiàng)離開的。
大家可以看到“經(jīng)銷商”這個(gè)表單項(xiàng)是導(dǎo)致用戶離開的最主要的因素,結(jié)合重填率分析結(jié)果,發(fā)現(xiàn)用戶在選擇經(jīng)銷商時(shí)平均重復(fù)填寫超過兩次,重填率接近一半。帶著對(duì)這些數(shù)據(jù)的好奇,我體驗(yàn)了一下表單流程,發(fā)現(xiàn)在選擇經(jīng)銷商的時(shí)候表單選項(xiàng)中只有經(jīng)銷商的名稱,但是我并不知道經(jīng)銷商的位置到底離我有多遠(yuǎn),我還需要通過地圖APP去查看經(jīng)銷商的位置,這樣勢(shì)必造成用戶的重復(fù)填寫和流失。
有朋友就問了,那怎么辦呢?要不要在小程序里添加個(gè)地圖功能或者跳轉(zhuǎn)到地圖的功能?這樣處理的話明顯把問題復(fù)雜化了,這樣要增加多少開發(fā)和產(chǎn)品的工作量?有個(gè)比較簡(jiǎn)單的辦法是填寫經(jīng)銷商簡(jiǎn)稱,并在簡(jiǎn)稱后添加“近某條路”或者“近某地鐵站”之類的大致位置信息,讓用戶大概了解哪個(gè)經(jīng)銷商離自己近即可。
在前面可口可樂的案例里,在制作密語瓶的流程中,有一個(gè)環(huán)節(jié)是讓用戶提交自己想要寫的密語。那我們?nèi)绾文塬@取到用戶提交了什么密語?這里就要用到前面提到的自定義變量的事件監(jiān)測(cè)方法了。我們需要在密語提交頁面的提交按鈕上部署事件代碼,代碼示例如下:
jice.track(‘mytj’, {my:‘/*密語*/’});
部署后即可監(jiān)測(cè)用戶提交了哪些密語、提交的次數(shù)等。
從數(shù)據(jù)里面可以看出這個(gè)活動(dòng)面對(duì)的人群很大一部分是鹿晗的粉絲(為了做這個(gè)分析,專門查了“LH7”是啥意思,暴露年齡了)。有些密語對(duì)我這個(gè)“上年紀(jì)的人”確實(shí)有些費(fèi)解,大家看到有好玩的可以教我下是啥意思,幫我填補(bǔ)下鴻溝哈哈。好了,具體的分析案例不多做介紹了。相信這篇文章可以幫助大家梳理小程序數(shù)據(jù)監(jiān)測(cè)的基本方法。而案例部分,大家會(huì)發(fā)現(xiàn)與以往的網(wǎng)站分析、APP分析并沒有特別本質(zhì)的區(qū)別,而考驗(yàn)?zāi)愕牡胤皆谟趯?duì)業(yè)務(wù)與用戶的理解以及數(shù)據(jù)的定義與解讀。關(guān)于小程序的文章就先寫到這,歡迎大家留言交流。