本文根据神策数据盛永根《微信生态数字化运营跨端数据采集方案》直播整理而得,本文的主要内容如下:
一、微信生态介绍
1.微信公众平台
公众平台主要包含小程序、服务号、订阅号和微信网页。日常运营都是在公众平台进行,比如修改公众号文章,上传小程序等。
2.微信开放平台
开放平台通常包含四个方面:
移动应用。若App要给用户提供微信的分享功能、支付功能等,就需要接入到开放平台中。接入后,用户就可以分享内容到小程序,或者跳转到小程序。
网站应用。若网站需要提供微信登录功能,也需要在开放平台绑定,绑定后用户就可以用微信扫码登录网站。
第三方平台开发。一些公众号的运营者没有开发能力,这时候借助第三方平台,只要授权就可以使用需要开发的功能。
账号绑定。在这里把小程序、公众号账号绑定后,才能得到一个一致的UnionID。
3.微信
微信群聊、微信朋友圈、微信视频号、微信收藏等,这些是微信本身自带的功能。
4.微信生态用户信息
微信生态的数据打通,关键在用户的ID是否打通。下面我们分析下微信生态用户标识中常见的几个ID的概念:
AppID和AppSecret:公众号和小程序都会有一个AppID用来标识当前的微信应用,而如果需要开发的话,接口的请求都需要用到AppSecret。
微信用户ID:微信用户ID是有加密的,是无法拿到的。一般我们使用微信机器人开发的话,常用的是微信号或者微信昵称作为ID。
OpenID:在微信应用(公众号、小程序等)默认使用OpenID,在开发中请求的接口返回的一般都是OpenID。在小程序或微信网页里不用做授权,静默情况下也能拿到OpenID。可以说OpenID是微信生态里最重要的一个ID。可以理解OpenID是通过AppID和微信用户ID加密得到的,其与微信应用(每个应用会有AppID)相关,每个微信应用都会生成一个唯一的用户的识别。
UnionID:在微信开放平台里面,做了账号绑定后,就会生成一个统一的UnionID,绑定后的微信应用(小程序、公众号等)都可以使用一个ID。获取UnionID需要经过用户授权。
UUID:主要是针对于前端的设备,比如小程序或者网页的,因为获取OpenID需要一定的开发,所以如果在获取不到的情况下,我们一般会给当前浏览器或者小程序生成一个随机的ID。
UserID:用户的真实ID,一般是存在数据库的ID。
二、微信生态数据采集
常见的微信生态的数据采集主要包括:公众号的数据采集、微信内网页数据采集、小程序和小游戏数据采集、微信本身的数据采集。
1.公众号的数据采集
公众号分为服务号及订阅号,简单列举几条不同点:
订阅号一天能发一条消息,但服务号一个月仅可发4条消息。
订阅号不支持服务号的部分接口,服务号相对订阅号提供的功能更多。比如订阅号不支持模板消息,不支持获取地理位置,不能生成带参数的二维码,即订阅号无法识别二维码是谁分享过来的。
订阅号个人和企业均可申请,服务号要求更加严格,仅企业可申请。
订阅号偏信息传达,服务号偏交互服务。
订阅号在微信中会合并在订阅号中,服务号每个是一个单独的窗口。
公众号提供了如下接口:普通消息、事件推送、回复消息、群发消息、客服消息、模板消息、一次性订阅消息、其它功能。
用户在公众号里输入一条普通消息后,后端能接收到的文本消息数据如下图左边部分:
此时使用神策Java SDK发送文本消息事件,代码如上图右半部分。
下面具体介绍微信公众号可以采集的事件:
普通消息。它分为文本、视频、图片、小视频、语音、链接。
事件推送。它可以创建用户关注公众号或取消关注、扫描二维码、上报地理位置、点击自定义菜单事件。
回复消息。它也可以分为6种类型:文本、图片、语音、视频、音乐、图文消息。比如用户输入一个消息——上课,后端回复一个上课的链接的回复消息,用户点击这个回复消息,就可以实现跳转到上课的页面。
群发消息。订阅号,每天发1条,服务号每个月可发4条。
客服消息。如果触发以下类型的交互:用户关注了公众号,支付成功,扫描了二维码,或者点击了自定义菜单中的推事件,在48小时内可在公众号内推送一条数据。
模板消息。它是不需要做交互的,当触发特定模板场景下的事件时,可以针对所有人发送模板消息,且不限次数。正常情况下,关注量少于10W粉丝时,最多1天可发10W消息,超过10W时按比例提升。例如,顺丰速运服务号,用户绑定微信后就能收到快递信息,这就是模板消息。但是模板消息也会有一些限制,比如,不可推送与营销相关的东西,会存在被封号的风险。
一次性订阅。App或公众号,可以弹出一次性订阅消息的授权,用户确认后,可以发送模板消息。这时可以采集两个事件,一个是在前端的消息授权事件,一个是消息发送事件。
微信卡券。比如超市的会员卡、优惠券,当被用户领取、转增、删除或者内容更新时等用户都可接收到信息,这些内容也都可以做成一个个事件。
上面介绍了可采集的数据,同时还有几个常用的运营功能:
用户打标签:可以创建100个标签,但一个用户只能有一个。
创建个性化菜单:根据用户标签、性别、手机操作系统、地区、语言提供个性化菜单。
创建带参数的二维码:临时二维码,最3天,数量足够大;永久二维码,无过期时间,最多10万个。
长链接转短链接。
总结公众号的数据采集,简单总结下:
公众号的事件都是后端发送的预置事件。
针对非开发者,通过第三方平台一键授权即可采集。
事件属性,基本不可修改,不方便扩展。
OpenID是默认的ID,不会像网页一样存在UUID。
2.微信内网页数据采集
微信网页若没有在公众号里配置,就仅是一个浏览器打开的传统网页,没有微信的一些功能;但如果其在公众号里进行配置,可以实现两个功能:
第一,可以使用神策的Web JS SDK去采集数据,跟传统的浏览器打开的网页效果基本一致,但可能存在一些兼容性问题。
在微信每个网页的代码中,加入神策的Web JS SDK,即可采集以下事件,并可以做点击分析和触达率分析:
页面浏览事件,属性包括:前向地址、页面地址、页面路径、页面标题、广告来源、是否首日、是否首次。
元素点击事件,即用户在页面上点击的时候,就会自动采集这一事件,属性包括:前向地址、页面地址、页面路径、页面标题、元素ID、元素内容、元素样式名、元素类型、元素选择器、元素链接地址。
页面滚动事件,属性包括:页面地址、页面路径、页面标题、视区高度、视区宽度、视区距顶部的位置、停留时长。
自定义事件,属性包括:设备相关的属性(屏幕宽高、设备型号、操作系统)、浏览器相关的属性(浏览器名称、浏览器版本)、流量来源类型、搜索引擎关键词、最近一次去到相关的信息、自定义属性(结合业务需求,比如订单信息、商品信息等)。Web JS SDK可以自定义各种事件。比如说,用户将商品加入购物车,可以设置一个加入购物车事件,把当前商品的ID作为它的属性。
点击效果分析。采集到点击事件后,就可以做一个点击效果分析,比如某个按钮用户点击次数、点击率、点击占比,如下图。
触达率分析,可以查看用户页面滚动的具体位置。
第二,通过微信JS SDK增强微信数据采集。原理是,微信在WebView中通过注入JSBridge相关脚本,使得网页拥有部分微信App的功能(这也就是所谓的Hybrid技术)。
只需要在微信各个网页代码中,加入微信JS-SDK,就可以使用,但使用时需要在公众号后台中做设置:
需要设置“JS接口安全域名”才能使用JS-SDK。
需要设置“业务域名”才能去掉安全提示,否则有可能出现安全提示。比如,在微信打开一个本地的IP地址,就会出现提示,“这个页面不安全”。
微信的JS-SDK可以采集的事件:
常见的是微信的分享的事件,如果用户触发了分享。我们可以采集分享成功事件,属性包括:页面地址、分享标题、分享描述、分享链接、分享图片。
除此之外还有如图片、录音、摇一摇、微信扫码、微信支付等事件。
例如,在微信网页里用户也能够像在App中一样打开图片,并且进行上传和下载,在网页里面还可以去录音,这些都可以做为事件。
其次,微信的JS-SDK还可以采集到一些额外的属性,如网络的类型(Wifi、3G、4G)、地理位置(经度、纬度、地址详情、缩放比例)、收货地址(姓名、邮编、详细地址、电话)等,这些属性都是在传统的网页中无法获取的。
简单总结微信网页内数据采集:
默认的ID是UUID,建议用OpenID,但从前端获取OpenID有一定的技术开发工作,不一定都能取到。
通过微信JS-SDK可以新增微信分享等预置事件。
通过微信JS-SDK可以新增网页本身不能采集到的地理位置,网络类型等属性。
微信网页中可以直接使用神策Web JS SDK。
3.小程序和小游戏数据采集
有些人可能认为小游戏也是小程序,其实是不同的:
开发方式不同。小游戏基于Canvas开发一般都会使用游戏引擎开发,比如Cocos、Egret、Laya、Unity等;小程序使用微信自定义的WXML,WXSS,类似于传统网页的HTML和CSS开发,常用的框架比如Mpvue、Wepy、Taro。
小程序有页面的概念,小游戏是基于画面帧数。
部分API不通用。
小程序和小游戏也有共同点:
生命周期类似,都会有启动、显示、隐藏。
微信提供的系统API基本一致,发送请求,获取网络信息。
系统都提供了相同开放能力,比如订阅消息。
都是基于JS开发。
小程序与网页都属于前端事件,一般建议使用OpenID,但是OpenID需要一定开发量,所以默认会使用UUID。用户登陆之后,同样建议以一个真实的ID即UserID为准实现用户关联。
下面是使用神策微信小程序SDK和微信小游戏SDK后,共同可采集的预置事件:
小程序启动,属性包括:启动场景、页面参数、页面路径、UTM相关的广告系列参数、是否首次、分享相关属性(层级、分享者、分享时的页面路径)。
小程序显示,属性包括:启动场景、页面参数、页面路径、UTM相关的广告系列参数、分享相关属性(层级、分享者、分享时的页面路径)。
小程序分享,转发的时候就会触发这个事件,属性包括:分享时的层级、页面路径。
小程序进入后台,属性包括:页面停留时长和页面路径。
小程序页面浏览(仅限微信小程序),属性包括:页面参数、页面路径、UTM相关的广告系列参数。
小程序收藏,属性包括:页面路径。
上述事件不做任何操作都可以采集到的,即只需要使用SDK就可以。另外如果获得用户授权后,小程序还可以采集到更多事件属性。
小程序订阅消息
用户进入小程序后会弹出一个授权的模板消息,用户点击允许后,就可以为用户推送模板消息,可以跳转至小程序具体详情页。其中模板消息分为单次与永久,一般情况下它与特定的行业模板相关。
单次的模板每次都需要用户授权。永久的模板,比如小程序锁车,这是特定行业的,没有经过授权也可以推送消息。小程序订阅事件,属性包含用户信息(微信昵称、性别、头像、城市等)、通讯地址(姓名、手机号、邮编)、发票、运动步数属性。
小程序订阅消息的位置在微信号的服务通知里面,订阅消息可以实现服务的闭环。比如说用户发生支付行为后,可以给用户推一个链接消息,可以跳回到商场里看自己购买的商品,引导用户完成闭环。
小程序的渠道
除了用户打通,其实还包括渠道打通。小程序渠道,分为渠道场景值和渠道参数。
场景值是打开小程序时候,API能自动获取的,可以看用户是从什么渠道跳转到小程序,比如是扫码过来的,从小程序跳转过来的。
场景值只能大概判断是从哪种方式打开的,如果要精确到具体是哪个人,需要使用渠道参数。包括扫描普通链接二维码、小程序码、小程序二维码、微信广告跳转、朋友圈和公众号以及小程序的广告等,都可以设置一个带参数的Path,然后就可以解析出具体的参数。
总结小程序和小游戏的数据采集:
小程序和小游戏的生命周期类似,且提供的API类似,所以预置的事件和属性,也基本类似。
小程序是一个个页面,所以可以采集页面打开、关闭、点击等事件。而小游戏基于画面帧数,需要基于游戏特性做自定义事件。
小程序和小游戏除了前端事件,还可以采集订阅消息等后端事件。
前端默认使用UUID,建议使用OpenID,但是需要一定的开发成本和权限。
4.微信数据采集
公众号和小程序都有官方提供的接口去采集,但是微信没有提供这样的官方接口,微信机器人一般是通过模拟微信网页版的接口来实现的,所以你也只能取到你在微信中所能看到的:微信号、微信昵称、聊天内容等信息。不过这里也可以做一些智能化的操作,通过神策的ID关联功能,使得微信号和公众号中OpenID进行关联绑定,可以实现自动发微信消息。
三、各应用间的数据打通
1.各应用使用的ID整理
微信公众号是后端事件,建议使用OpenID;微信网页建议使用OpenID,但实际默认UUID,所以一般建议客户关联UserID;小程序和小游戏与微信网一样,但是前者还会有一个后端事件,这个时候默认使用OpenID。所以此时就存在多个ID。
而只有ID是一致的,才可以把用户关联起来。如果您使用的是神策的用户关联进行打通,建议使用如下方式:
如果公司是纯微信生态,不可能有PC、App等,建议OpenID作为“匿名ID”,使用UnionID作为“真实ID”。实际可能UUID作为作为“匿名ID”,UnionID作为“真实ID”。
如果公司业务线比较宽广,PC,App都可能有,建议OpenID作为“匿名ID”,使用UserID作为“真实ID”。实际可能UUID作为“匿名ID”,UserID作为“真实ID”。
2.渠道打通
服务号。创建一个带参数的二维码就可以知道用户是从什么渠道来的。
小程序和小游戏。在Path后面加自定义参数,就能知道用户是从哪个场景跳转过来的。
微信页网页。给URL加自定义参数,即可打通。
3.渠道间的互相跳转
网页跳转App,必须满足两个情况:服务号内安全域名里配备了网页;App和网页必须在开放平台绑定。
网页跳转程序,满足两种情况下任一都可以:一种情况是服务号内安全域名有这个网页,网页通过微信的JS-SDK就可以直接跳转到小程序;还有一种情况在小程序云开发的静态网站托管了绑定的域名。
App跳转小程序,必须在开放平台里绑定App,即可跳转任意合法小程序。
小程序跳转App,只能通过App分享的消息卡片或者从App打开的场景打开时,才可以跳转回App。
公众号跳转小程序有三种方式:公众号菜单跳转、公众号文章跳转、公众号绑定小程序跳转。
小程序跳转公众号,在小程序后台里配置公众号关注组件,主体必须是一致的,即必须是公司的,然后通过公众号组件显示,让客户关注公众号。
小程序跳转小程序,只要指定AppID就可以直接跳转。
感谢聆听,本文的分享到此结束。