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