本文根據(jù)神策數(shù)據(jù)盛永根《微信生態(tài)數(shù)字化運(yùn)營(yíng)跨端數(shù)據(jù)采集方案》直播整理而得,本文的主要內(nèi)容如下:
一、微信生態(tài)介紹
1.微信公眾平臺(tái)
公眾平臺(tái)主要包含小程序、服務(wù)號(hào)、訂閱號(hào)和微信網(wǎng)頁(yè)。日常運(yùn)營(yíng)都是在公眾平臺(tái)進(jìn)行,比如修改公眾號(hào)文章,上傳小程序等。
2.微信開放平臺(tái)
開放平臺(tái)通常包含四個(gè)方面:
移動(dòng)應(yīng)用。若App要給用戶提供微信的分享功能、支付功能等,就需要接入到開放平臺(tái)中。接入后,用戶就可以分享內(nèi)容到小程序,或者跳轉(zhuǎn)到小程序。
網(wǎng)站應(yīng)用。若網(wǎng)站需要提供微信登錄功能,也需要在開放平臺(tái)綁定,綁定后用戶就可以用微信掃碼登錄網(wǎng)站。
第三方平臺(tái)開發(fā)。一些公眾號(hào)的運(yùn)營(yíng)者沒有開發(fā)能力,這時(shí)候借助第三方平臺(tái),只要授權(quán)就可以使用需要開發(fā)的功能。
賬號(hào)綁定。在這里把小程序、公眾號(hào)賬號(hào)綁定后,才能得到一個(gè)一致的UnionID。
3.微信
微信群聊、微信朋友圈、微信視頻號(hào)、微信收藏等,這些是微信本身自帶的功能。
4.微信生態(tài)用戶信息
微信生態(tài)的數(shù)據(jù)打通,關(guān)鍵在用戶的ID是否打通。下面我們分析下微信生態(tài)用戶標(biāo)識(shí)中常見的幾個(gè)ID的概念:
AppID和AppSecret:公眾號(hào)和小程序都會(huì)有一個(gè)AppID用來標(biāo)識(shí)當(dāng)前的微信應(yīng)用,而如果需要開發(fā)的話,接口的請(qǐng)求都需要用到AppSecret。
微信用戶ID:微信用戶ID是有加密的,是無法拿到的。一般我們使用微信機(jī)器人開發(fā)的話,常用的是微信號(hào)或者微信昵稱作為ID。
OpenID:在微信應(yīng)用(公眾號(hào)、小程序等)默認(rèn)使用OpenID,在開發(fā)中請(qǐng)求的接口返回的一般都是OpenID。在小程序或微信網(wǎng)頁(yè)里不用做授權(quán),靜默情況下也能拿到OpenID??梢哉fOpenID是微信生態(tài)里最重要的一個(gè)ID??梢岳斫釵penID是通過AppID和微信用戶ID加密得到的,其與微信應(yīng)用(每個(gè)應(yīng)用會(huì)有AppID)相關(guān),每個(gè)微信應(yīng)用都會(huì)生成一個(gè)唯一的用戶的識(shí)別。
UnionID:在微信開放平臺(tái)里面,做了賬號(hào)綁定后,就會(huì)生成一個(gè)統(tǒng)一的UnionID,綁定后的微信應(yīng)用(小程序、公眾號(hào)等)都可以使用一個(gè)ID。獲取UnionID需要經(jīng)過用戶授權(quán)。
UUID:主要是針對(duì)于前端的設(shè)備,比如小程序或者網(wǎng)頁(yè)的,因?yàn)楂@取OpenID需要一定的開發(fā),所以如果在獲取不到的情況下,我們一般會(huì)給當(dāng)前瀏覽器或者小程序生成一個(gè)隨機(jī)的ID。
UserID:用戶的真實(shí)ID,一般是存在數(shù)據(jù)庫(kù)的ID。
二、微信生態(tài)數(shù)據(jù)采集
常見的微信生態(tài)的數(shù)據(jù)采集主要包括:公眾號(hào)的數(shù)據(jù)采集、微信內(nèi)網(wǎng)頁(yè)數(shù)據(jù)采集、小程序和小游戲數(shù)據(jù)采集、微信本身的數(shù)據(jù)采集。
1.公眾號(hào)的數(shù)據(jù)采集
公眾號(hào)分為服務(wù)號(hào)及訂閱號(hào),簡(jiǎn)單列舉幾條不同點(diǎn):
訂閱號(hào)一天能發(fā)一條消息,但服務(wù)號(hào)一個(gè)月僅可發(fā)4條消息。
訂閱號(hào)不支持服務(wù)號(hào)的部分接口,服務(wù)號(hào)相對(duì)訂閱號(hào)提供的功能更多。比如訂閱號(hào)不支持模板消息,不支持獲取地理位置,不能生成帶參數(shù)的二維碼,即訂閱號(hào)無法識(shí)別二維碼是誰分享過來的。
訂閱號(hào)個(gè)人和企業(yè)均可申請(qǐng),服務(wù)號(hào)要求更加嚴(yán)格,僅企業(yè)可申請(qǐng)。
訂閱號(hào)偏信息傳達(dá),服務(wù)號(hào)偏交互服務(wù)。
訂閱號(hào)在微信中會(huì)合并在訂閱號(hào)中,服務(wù)號(hào)每個(gè)是一個(gè)單獨(dú)的窗口。
公眾號(hào)提供了如下接口:普通消息、事件推送、回復(fù)消息、群發(fā)消息、客服消息、模板消息、一次性訂閱消息、其它功能。
用戶在公眾號(hào)里輸入一條普通消息后,后端能接收到的文本消息數(shù)據(jù)如下圖左邊部分:
此時(shí)使用神策Java SDK發(fā)送文本消息事件,代碼如上圖右半部分。
下面具體介紹微信公眾號(hào)可以采集的事件:
普通消息。它分為文本、視頻、圖片、小視頻、語(yǔ)音、鏈接。
事件推送。它可以創(chuàng)建用戶關(guān)注公眾號(hào)或取消關(guān)注、掃描二維碼、上報(bào)地理位置、點(diǎn)擊自定義菜單事件。
回復(fù)消息。它也可以分為6種類型:文本、圖片、語(yǔ)音、視頻、音樂、圖文消息。比如用戶輸入一個(gè)消息——上課,后端回復(fù)一個(gè)上課的鏈接的回復(fù)消息,用戶點(diǎn)擊這個(gè)回復(fù)消息,就可以實(shí)現(xiàn)跳轉(zhuǎn)到上課的頁(yè)面。
群發(fā)消息。訂閱號(hào),每天發(fā)1條,服務(wù)號(hào)每個(gè)月可發(fā)4條。
客服消息。如果觸發(fā)以下類型的交互:用戶關(guān)注了公眾號(hào),支付成功,掃描了二維碼,或者點(diǎn)擊了自定義菜單中的推事件,在48小時(shí)內(nèi)可在公眾號(hào)內(nèi)推送一條數(shù)據(jù)。
模板消息。它是不需要做交互的,當(dāng)觸發(fā)特定模板場(chǎng)景下的事件時(shí),可以針對(duì)所有人發(fā)送模板消息,且不限次數(shù)。正常情況下,關(guān)注量少于10W粉絲時(shí),最多1天可發(fā)10W消息,超過10W時(shí)按比例提升。例如,順豐速運(yùn)服務(wù)號(hào),用戶綁定微信后就能收到快遞信息,這就是模板消息。但是模板消息也會(huì)有一些限制,比如,不可推送與營(yíng)銷相關(guān)的東西,會(huì)存在被封號(hào)的風(fēng)險(xiǎn)。
一次性訂閱。App或公眾號(hào),可以彈出一次性訂閱消息的授權(quán),用戶確認(rèn)后,可以發(fā)送模板消息。這時(shí)可以采集兩個(gè)事件,一個(gè)是在前端的消息授權(quán)事件,一個(gè)是消息發(fā)送事件。
微信卡券。比如超市的會(huì)員卡、優(yōu)惠券,當(dāng)被用戶領(lǐng)取、轉(zhuǎn)增、刪除或者內(nèi)容更新時(shí)等用戶都可接收到信息,這些內(nèi)容也都可以做成一個(gè)個(gè)事件。
上面介紹了可采集的數(shù)據(jù),同時(shí)還有幾個(gè)常用的運(yùn)營(yíng)功能:
用戶打標(biāo)簽:可以創(chuàng)建100個(gè)標(biāo)簽,但一個(gè)用戶只能有一個(gè)。
創(chuàng)建個(gè)性化菜單:根據(jù)用戶標(biāo)簽、性別、手機(jī)操作系統(tǒng)、地區(qū)、語(yǔ)言提供個(gè)性化菜單。
創(chuàng)建帶參數(shù)的二維碼:臨時(shí)二維碼,最3天,數(shù)量足夠大;永久二維碼,無過期時(shí)間,最多10萬個(gè)。
長(zhǎng)鏈接轉(zhuǎn)短鏈接。
總結(jié)公眾號(hào)的數(shù)據(jù)采集,簡(jiǎn)單總結(jié)下:
公眾號(hào)的事件都是后端發(fā)送的預(yù)置事件。
針對(duì)非開發(fā)者,通過第三方平臺(tái)一鍵授權(quán)即可采集。
事件屬性,基本不可修改,不方便擴(kuò)展。
OpenID是默認(rèn)的ID,不會(huì)像網(wǎng)頁(yè)一樣存在UUID。
2.微信內(nèi)網(wǎng)頁(yè)數(shù)據(jù)采集
微信網(wǎng)頁(yè)若沒有在公眾號(hào)里配置,就僅是一個(gè)瀏覽器打開的傳統(tǒng)網(wǎng)頁(yè),沒有微信的一些功能;但如果其在公眾號(hào)里進(jìn)行配置,可以實(shí)現(xiàn)兩個(gè)功能:
第一,可以使用神策的Web JS SDK去采集數(shù)據(jù),跟傳統(tǒng)的瀏覽器打開的網(wǎng)頁(yè)效果基本一致,但可能存在一些兼容性問題。
在微信每個(gè)網(wǎng)頁(yè)的代碼中,加入神策的Web JS SDK,即可采集以下事件,并可以做點(diǎn)擊分析和觸達(dá)率分析:
頁(yè)面瀏覽事件,屬性包括:前向地址、頁(yè)面地址、頁(yè)面路徑、頁(yè)面標(biāo)題、廣告來源、是否首日、是否首次。
元素點(diǎn)擊事件,即用戶在頁(yè)面上點(diǎn)擊的時(shí)候,就會(huì)自動(dòng)采集這一事件,屬性包括:前向地址、頁(yè)面地址、頁(yè)面路徑、頁(yè)面標(biāo)題、元素ID、元素內(nèi)容、元素樣式名、元素類型、元素選擇器、元素鏈接地址。
頁(yè)面滾動(dòng)事件,屬性包括:頁(yè)面地址、頁(yè)面路徑、頁(yè)面標(biāo)題、視區(qū)高度、視區(qū)寬度、視區(qū)距頂部的位置、停留時(shí)長(zhǎng)。
自定義事件,屬性包括:設(shè)備相關(guān)的屬性(屏幕寬高、設(shè)備型號(hào)、操作系統(tǒng))、瀏覽器相關(guān)的屬性(瀏覽器名稱、瀏覽器版本)、流量來源類型、搜索引擎關(guān)鍵詞、最近一次去到相關(guān)的信息、自定義屬性(結(jié)合業(yè)務(wù)需求,比如訂單信息、商品信息等)。Web JS SDK可以自定義各種事件。比如說,用戶將商品加入購(gòu)物車,可以設(shè)置一個(gè)加入購(gòu)物車事件,把當(dāng)前商品的ID作為它的屬性。
點(diǎn)擊效果分析。采集到點(diǎn)擊事件后,就可以做一個(gè)點(diǎn)擊效果分析,比如某個(gè)按鈕用戶點(diǎn)擊次數(shù)、點(diǎn)擊率、點(diǎn)擊占比,如下圖。
觸達(dá)率分析,可以查看用戶頁(yè)面滾動(dòng)的具體位置。
第二,通過微信JS SDK增強(qiáng)微信數(shù)據(jù)采集。原理是,微信在WebView中通過注入JSBridge相關(guān)腳本,使得網(wǎng)頁(yè)擁有部分微信App的功能(這也就是所謂的Hybrid技術(shù))。
只需要在微信各個(gè)網(wǎng)頁(yè)代碼中,加入微信JS-SDK,就可以使用,但使用時(shí)需要在公眾號(hào)后臺(tái)中做設(shè)置:
需要設(shè)置“JS接口安全域名”才能使用JS-SDK。
需要設(shè)置“業(yè)務(wù)域名”才能去掉安全提示,否則有可能出現(xiàn)安全提示。比如,在微信打開一個(gè)本地的IP地址,就會(huì)出現(xiàn)提示,“這個(gè)頁(yè)面不安全”。
微信的JS-SDK可以采集的事件:
常見的是微信的分享的事件,如果用戶觸發(fā)了分享。我們可以采集分享成功事件,屬性包括:頁(yè)面地址、分享標(biāo)題、分享描述、分享鏈接、分享圖片。
除此之外還有如圖片、錄音、搖一搖、微信掃碼、微信支付等事件。
例如,在微信網(wǎng)頁(yè)里用戶也能夠像在App中一樣打開圖片,并且進(jìn)行上傳和下載,在網(wǎng)頁(yè)里面還可以去錄音,這些都可以做為事件。
其次,微信的JS-SDK還可以采集到一些額外的屬性,如網(wǎng)絡(luò)的類型(Wifi、3G、4G)、地理位置(經(jīng)度、緯度、地址詳情、縮放比例)、收貨地址(姓名、郵編、詳細(xì)地址、電話)等,這些屬性都是在傳統(tǒng)的網(wǎng)頁(yè)中無法獲取的。
簡(jiǎn)單總結(jié)微信網(wǎng)頁(yè)內(nèi)數(shù)據(jù)采集:
默認(rèn)的ID是UUID,建議用OpenID,但從前端獲取OpenID有一定的技術(shù)開發(fā)工作,不一定都能取到。
通過微信JS-SDK可以新增微信分享等預(yù)置事件。
通過微信JS-SDK可以新增網(wǎng)頁(yè)本身不能采集到的地理位置,網(wǎng)絡(luò)類型等屬性。
微信網(wǎng)頁(yè)中可以直接使用神策Web JS SDK。
3.小程序和小游戲數(shù)據(jù)采集
有些人可能認(rèn)為小游戲也是小程序,其實(shí)是不同的:
開發(fā)方式不同。小游戲基于Canvas開發(fā)一般都會(huì)使用游戲引擎開發(fā),比如Cocos、Egret、Laya、Unity等;小程序使用微信自定義的WXML,WXSS,類似于傳統(tǒng)網(wǎng)頁(yè)的HTML和CSS開發(fā),常用的框架比如Mpvue、Wepy、Taro。
小程序有頁(yè)面的概念,小游戲是基于畫面幀數(shù)。
部分API不通用。
小程序和小游戲也有共同點(diǎn):
生命周期類似,都會(huì)有啟動(dòng)、顯示、隱藏。
微信提供的系統(tǒng)API基本一致,發(fā)送請(qǐng)求,獲取網(wǎng)絡(luò)信息。
系統(tǒng)都提供了相同開放能力,比如訂閱消息。
都是基于JS開發(fā)。
小程序與網(wǎng)頁(yè)都屬于前端事件,一般建議使用OpenID,但是OpenID需要一定開發(fā)量,所以默認(rèn)會(huì)使用UUID。用戶登陸之后,同樣建議以一個(gè)真實(shí)的ID即UserID為準(zhǔn)實(shí)現(xiàn)用戶關(guān)聯(lián)。
下面是使用神策微信小程序SDK和微信小游戲SDK后,共同可采集的預(yù)置事件:
小程序啟動(dòng),屬性包括:?jiǎn)?dòng)場(chǎng)景、頁(yè)面參數(shù)、頁(yè)面路徑、UTM相關(guān)的廣告系列參數(shù)、是否首次、分享相關(guān)屬性(層級(jí)、分享者、分享時(shí)的頁(yè)面路徑)。
小程序顯示,屬性包括:?jiǎn)?dòng)場(chǎng)景、頁(yè)面參數(shù)、頁(yè)面路徑、UTM相關(guān)的廣告系列參數(shù)、分享相關(guān)屬性(層級(jí)、分享者、分享時(shí)的頁(yè)面路徑)。
小程序分享,轉(zhuǎn)發(fā)的時(shí)候就會(huì)觸發(fā)這個(gè)事件,屬性包括:分享時(shí)的層級(jí)、頁(yè)面路徑。
小程序進(jìn)入后臺(tái),屬性包括:頁(yè)面停留時(shí)長(zhǎng)和頁(yè)面路徑。
小程序頁(yè)面瀏覽(僅限微信小程序),屬性包括:頁(yè)面參數(shù)、頁(yè)面路徑、UTM相關(guān)的廣告系列參數(shù)。
小程序收藏,屬性包括:頁(yè)面路徑。
上述事件不做任何操作都可以采集到的,即只需要使用SDK就可以。另外如果獲得用戶授權(quán)后,小程序還可以采集到更多事件屬性。
小程序訂閱消息
用戶進(jìn)入小程序后會(huì)彈出一個(gè)授權(quán)的模板消息,用戶點(diǎn)擊允許后,就可以為用戶推送模板消息,可以跳轉(zhuǎn)至小程序具體詳情頁(yè)。其中模板消息分為單次與永久,一般情況下它與特定的行業(yè)模板相關(guān)。
單次的模板每次都需要用戶授權(quán)。永久的模板,比如小程序鎖車,這是特定行業(yè)的,沒有經(jīng)過授權(quán)也可以推送消息。小程序訂閱事件,屬性包含用戶信息(微信昵稱、性別、頭像、城市等)、通訊地址(姓名、手機(jī)號(hào)、郵編)、發(fā)票、運(yùn)動(dòng)步數(shù)屬性。
小程序訂閱消息的位置在微信號(hào)的服務(wù)通知里面,訂閱消息可以實(shí)現(xiàn)服務(wù)的閉環(huán)。比如說用戶發(fā)生支付行為后,可以給用戶推一個(gè)鏈接消息,可以跳回到商場(chǎng)里看自己購(gòu)買的商品,引導(dǎo)用戶完成閉環(huán)。
小程序的渠道
除了用戶打通,其實(shí)還包括渠道打通。小程序渠道,分為渠道場(chǎng)景值和渠道參數(shù)。
場(chǎng)景值是打開小程序時(shí)候,API能自動(dòng)獲取的,可以看用戶是從什么渠道跳轉(zhuǎn)到小程序,比如是掃碼過來的,從小程序跳轉(zhuǎn)過來的。
場(chǎng)景值只能大概判斷是從哪種方式打開的,如果要精確到具體是哪個(gè)人,需要使用渠道參數(shù)。包括掃描普通鏈接二維碼、小程序碼、小程序二維碼、微信廣告跳轉(zhuǎn)、朋友圈和公眾號(hào)以及小程序的廣告等,都可以設(shè)置一個(gè)帶參數(shù)的Path,然后就可以解析出具體的參數(shù)。
總結(jié)小程序和小游戲的數(shù)據(jù)采集:
小程序和小游戲的生命周期類似,且提供的API類似,所以預(yù)置的事件和屬性,也基本類似。
小程序是一個(gè)個(gè)頁(yè)面,所以可以采集頁(yè)面打開、關(guān)閉、點(diǎn)擊等事件。而小游戲基于畫面幀數(shù),需要基于游戲特性做自定義事件。
小程序和小游戲除了前端事件,還可以采集訂閱消息等后端事件。
前端默認(rèn)使用UUID,建議使用OpenID,但是需要一定的開發(fā)成本和權(quán)限。
4.微信數(shù)據(jù)采集
公眾號(hào)和小程序都有官方提供的接口去采集,但是微信沒有提供這樣的官方接口,微信機(jī)器人一般是通過模擬微信網(wǎng)頁(yè)版的接口來實(shí)現(xiàn)的,所以你也只能取到你在微信中所能看到的:微信號(hào)、微信昵稱、聊天內(nèi)容等信息。不過這里也可以做一些智能化的操作,通過神策的ID關(guān)聯(lián)功能,使得微信號(hào)和公眾號(hào)中OpenID進(jìn)行關(guān)聯(lián)綁定,可以實(shí)現(xiàn)自動(dòng)發(fā)微信消息。
三、各應(yīng)用間的數(shù)據(jù)打通
1.各應(yīng)用使用的ID整理
微信公眾號(hào)是后端事件,建議使用OpenID;微信網(wǎng)頁(yè)建議使用OpenID,但實(shí)際默認(rèn)UUID,所以一般建議客戶關(guān)聯(lián)UserID;小程序和小游戲與微信網(wǎng)一樣,但是前者還會(huì)有一個(gè)后端事件,這個(gè)時(shí)候默認(rèn)使用OpenID。所以此時(shí)就存在多個(gè)ID。
而只有ID是一致的,才可以把用戶關(guān)聯(lián)起來。如果您使用的是神策的用戶關(guān)聯(lián)進(jìn)行打通,建議使用如下方式:
如果公司是純微信生態(tài),不可能有PC、App等,建議OpenID作為“匿名ID”,使用UnionID作為“真實(shí)ID”。實(shí)際可能UUID作為作為“匿名ID”,UnionID作為“真實(shí)ID”。
如果公司業(yè)務(wù)線比較寬廣,PC,App都可能有,建議OpenID作為“匿名ID”,使用UserID作為“真實(shí)ID”。實(shí)際可能UUID作為“匿名ID”,UserID作為“真實(shí)ID”。
2.渠道打通
服務(wù)號(hào)。創(chuàng)建一個(gè)帶參數(shù)的二維碼就可以知道用戶是從什么渠道來的。
小程序和小游戲。在Path后面加自定義參數(shù),就能知道用戶是從哪個(gè)場(chǎng)景跳轉(zhuǎn)過來的。
微信頁(yè)網(wǎng)頁(yè)。給URL加自定義參數(shù),即可打通。
3.渠道間的互相跳轉(zhuǎn)
網(wǎng)頁(yè)跳轉(zhuǎn)App,必須滿足兩個(gè)情況:服務(wù)號(hào)內(nèi)安全域名里配備了網(wǎng)頁(yè);App和網(wǎng)頁(yè)必須在開放平臺(tái)綁定。
網(wǎng)頁(yè)跳轉(zhuǎn)程序,滿足兩種情況下任一都可以:一種情況是服務(wù)號(hào)內(nèi)安全域名有這個(gè)網(wǎng)頁(yè),網(wǎng)頁(yè)通過微信的JS-SDK就可以直接跳轉(zhuǎn)到小程序;還有一種情況在小程序云開發(fā)的靜態(tài)網(wǎng)站托管了綁定的域名。
App跳轉(zhuǎn)小程序,必須在開放平臺(tái)里綁定App,即可跳轉(zhuǎn)任意合法小程序。
小程序跳轉(zhuǎn)App,只能通過App分享的消息卡片或者從App打開的場(chǎng)景打開時(shí),才可以跳轉(zhuǎn)回App。
公眾號(hào)跳轉(zhuǎn)小程序有三種方式:公眾號(hào)菜單跳轉(zhuǎn)、公眾號(hào)文章跳轉(zhuǎn)、公眾號(hào)綁定小程序跳轉(zhuǎn)。
小程序跳轉(zhuǎn)公眾號(hào),在小程序后臺(tái)里配置公眾號(hào)關(guān)注組件,主體必須是一致的,即必須是公司的,然后通過公眾號(hào)組件顯示,讓客戶關(guān)注公眾號(hào)。
小程序跳轉(zhuǎn)小程序,只要指定AppID就可以直接跳轉(zhuǎn)。
感謝聆聽,本文的分享到此結(jié)束。