神策数据盛永根:微信生态——全数据采集和打通-LMLPHP 

本文根据神策数据盛永根《微信生态数字化运营跨端数据采集方案》直播整理而得,本文的主要内容如下:

·微信生态常见应用介绍
·微信生态数据采集
·各应用间的数据打通

一、微信生态介绍

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 条消息。

·订阅号不支持服务号的部分接口,服务号相对订阅号提供的功能更多。比如订阅号不支持模板消息,不支持获取地理位置,不能生成带参数的二维码,即订阅号无法识别二维码是谁分享过来的。

·订阅号个人和企业均可申请,服务号要求更加严格,仅企业可申请。

·订阅号偏信息传达,服务号偏交互服务。

·订阅号在微信中会合并在订阅号中,服务号每个是一个单独的窗口。

公众号提供了如下接口:普通消息、事件推送、回复消息、群发消息、客服消息、模板消息、一次性订阅消息、其它功能。

用户在公众号里输入一条普通消息后,后端能接收到的文本消息数据如下图左边部分: 神策数据盛永根:微信生态——全数据采集和打通-LMLPHP 

此时使用神策 Java SDK 发送文本消息事件,代码如上图右半部分。

下面具体介绍微信公众号可以采集的事件:

·普通消息。它分为文本、视频、图片、小视频、语音、链接。

·事件推送。它可以创建用户关注公众号或取消关注、扫描二维码、上报地理位置、点击自定义菜单事件。

·回复消息。它也可以分为 6 种类型:文本、图片、语音、视频、音乐、图文消息。比如用户输入一个消息——上课,后端回复一个上课的链接的回复消息,用户点击这个回复消息,就可以实现跳转到上课的页面。

·群发消息。订阅号,每天发 1 条,服务号每个月可发 4 条。

·客服消息。如果触发以下类型的交互:用户关注了公众号,支付成功,扫描了二维码,或者点击了自定义菜单中的推事件,在 48 小时内可在公众号内推送一条数据。

·模板消息。它是不需要做交互的,当触发特定模板场景下的事件时,可以针对所有人发送模板消息,且不限次数。正常情况下,关注量少于 10W 粉丝时,最多 1 天可发 10W 消息,超过 10W 时按比例提升。例如,顺丰速运服务号,用户绑定微信后就能收到快递信息,这就是模板消息。但是模板消息也会有一些限制,比如,不可推送与营销相关的东西,会存在被封号的风险。

·一次性订阅。App 或公众号,可以弹出一次性订阅消息的授权,用户确认后,可以发送模板消息。这时可以采集两个事件,一个是在前端的消息授权事件,一个是消息发送事件。

·微信卡券。比如超市的会员卡、优惠券,当被用户领取、转增、删除或者内容更新时等用户都可接收到信息,这些内容也都可以做成一个个事件。

上面介绍了可采集的数据,同时还有几个常用的运营功能:

·用户打标签:可以创建 100 个标签,但一个用户只能有一个。

·创建个性化菜单:根据用户标签、性别、手机操作系统、地区、语言提供个性化菜单。

·创建带参数的二维码:临时二维码,最长30天,数量足够大;永久二维码,无过期时间,最多 10 万个。

·长链接转短链接。 总结公众号的数据采集,简单总结下:

·公众号的事件都是后端发送的预置事件。

·针对非开发者,通过第三方平台一键授权即可采集。

·事件属性,基本不可修改,不方便扩展。

·OpenID 是默认的 ID,不会像网页一样存在 UUID。

2. 微信内网页数据采集

微信网页若没有在公众号里配置,就仅是一个浏览器打开的传统网页,没有微信的一些功能;但如果其在公众号里进行配置,可以实现两个功能:

第一,可以使用神策的 Web JS SDK 去采集数据,跟传统的浏览器打开的网页效果基本一致,但可能存在一些兼容性问题。

在微信每个网页的代码中,加入神策的 Web JS SDK,即可采集以下事件,并可以做点击分析和触达率分析:

·页面浏览事件,属性包括:前向地址、页面地址、页面路径、页面标题、广告来源、是否首日、是否首次。

·元素点击事件,即用户在页面上点击的时候,就会自动采集这一事件,属性包括:前向地址、页面地址、页面路径、页面标题、元素 ID、元素内容、元素样式名、元素类型、元素选择器、元素链接地址。

·页面滚动事件,属性包括:页面地址、页面路径、页面标题、视区高度、视区宽度、视区距顶部的位置、停留时长。

·自定义事件,属性包括:设备相关的属性(屏幕宽高、设备型号、操作系统)、浏览器相关的属性(浏览器名称、浏览器版本)、流量来源类型、搜索引擎关键词、最近一次去到相关的信息、自定义属性(结合业务需求,比如订单信息、商品信息等)。Web JS SDK 可以自定义各种事件。比如说,用户将商品加入购物车,可以设置一个加入购物车事件,把当前商品的 ID 作为它的属性。

·点击效果分析。采集到点击事件后,就可以做一个点击效果分析,比如某个按钮用户点击次数、点击率、点击占比,如下图。 神策数据盛永根:微信生态——全数据采集和打通-LMLPHP 

·触达率分析,可以查看用户页面滚动的具体位置。

第二,通过微信 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 就可以。另外如果获得用户授权后,小程序还可以采集到更多事件属性。 神策数据盛永根:微信生态——全数据采集和打通-LMLPHP ·小程序订阅消息

用户进入小程序后会弹出一个授权的模板消息,用户点击允许后,就可以为用户推送模板消息,可以跳转至小程序具体详情页。其中模板消息分为单次与永久,一般情况下它与特定的行业模板相关。

单次的模板每次都需要用户授权。永久的模板,比如小程序锁车,这是特定行业的,没有经过授权也可以推送消息。小程序订阅事件,属性包含用户信息(微信昵称、性别、头像、城市等)、通讯地址(姓名、手机号、邮编)、发票、运动步数属性。

小程序订阅消息的位置在微信号的服务通知里面,订阅消息可以实现服务的闭环。比如说用户发生支付行为后,可以给用户推一个链接消息,可以跳回到商场里看自己购买的商品,引导用户完成闭环。

·小程序的渠道

除了用户打通,其实还包括渠道打通。小程序渠道,分为渠道场景值和渠道参数。

场景值是打开小程序时候,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 就可以直接跳转。

03-23 06:59