公众号矩阵

[toc]

## 一、概述

### 1.1 背景

* 目前MC微信公众号管理采取1对N的方式,但实际限制公众号每一种type只能对应一个公众号,即一个微信公众号和一个来活渠道的订阅号。

* 实际企业由于运营需要,需要对接多个公众号,即针对微信公众号,公司是1:N的

### 1.2 目的

* 支持企业用户对于企业内多微信公众号的使用、管理、运营需求

### 1.3 目标

* 企业下不同组织构架对公众号及其相关使用的不同数据权限处理;

* 对于运营人员公众号运营数据的可视化显示

* 业务目标:支持多内容公众号接入,以及对应数据展现。

* 性能目标:能较为流畅查看公众号数据以及公众号相关数据

* 系统目标:将企业账户与内容公众号关系由1:1变为1:N,增加受众来源公众号数据。

***

## 二、需求概览

### 2.1 改动范围

![](http://ov105vcs6.bkt.clouddn.com/2017-11-22-15112472768244.jpg)

* SCRM

* 增加受众数据和来源公众号关联;

* 受众详情里面增加来源公众号的显示;

* 受众分组自动规则,增加来源公众号:

*控件属性:文本框联想搜索枚举,最终选定为枚举,默认下拉limit 100【取账号来源公众号】

运算符号,等于,不等于,为空,不为空*

* MC-系统设置-公众号设置

* 公众号信息,前端界面将内容公众号和渠道公众号分为两个category;

* 内容公众号,支持多公众号,不再做唯一约束

* 在内容公众号中增加搜索功能

* 绑定后,拉取公众号粉丝

* 定时拉取公众号粉丝

* 手动拉取公众号粉丝

* 跟组织构架关联,建立数据权限

* 受众

* 受众详情增加来源公众号的显示

* 受众默认来源公众号为未知

* 受众列表的数据权限

* 受众批量操作增加来源公众号的更改

* 受众列表增加来源公众号搜索

* 增加列表中来源公众号的显示

* 数据权限:

* 影响范围:受众列表(包括批量操作)

* 营销自动化中,简单分支以及微信事件(微信消息控件+开始条件中的微信事件)

* 营销罗盘:公众号数据查看

* 微信事件数据

* 增加受众关注和取消关注行为的获取

*这个行为的获取可以参照 https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140454*

> 来源公众号和受众关系为多对多,但目前这期不做多来源公众号受众的计算整合【即作为1对N】,但设计时请考虑此问题。

* ~~跟Fibo 的同步问题~~

* ~~将新增的受众数据同步至Fibo~~

*~~目前来看,MC这边的受众数据会多于Fibo,多的点集中于:1.手动创建的受众(包含导入的受众);2.通过粉丝列表拉取的数据;3.通过后期的关注、非关注行为获取的粉丝类手中数据~~*

* 组织构架

* 在部门中设置跟公众号的关系

* 部门中不论主管还是普通员工,都可以看到关联的公众号的受众数据以及营销自动化中的公众号选择

***

### 2.2 系统总览

![](http://ov105vcs6.bkt.clouddn.com/2017-11-22-15094379271835.jpg)

***

## 三、具体需求

### 3.1 列表页

![](http://ov105vcs6.bkt.clouddn.com/2017-11-22-15093555677505.jpg)

**原型改动:拉取粉丝下期进行**

* 原内禀规则不变;

* 交互规则:

* 校验Appid,公众号名称唯一约束;

* 其他交互规则维持原交互规则

* 单一公众号不能授权给多个企业账户

**因为这期要做数据可视化,有几个接口,在公众号授权的时候需要增加几个授权:

1.用户管理权限(用户分析数据接口);

2.群发与通知权限(图文分析数据接口);**

***

### 3.2 设定权限提示

![](http://ov105vcs6.bkt.clouddn.com/2017-11-22-15113417245629.jpg)

绑定成功后,设定组织构架与公众号的数据关系。

* 设定时的规则:

|与本部门关系|默认是否有权限|是否可通过本部门账号修改|调整时是否可见|

|---|---|---|---|

|上级部门|有权限|不可更改|修改时不可见|

|本部门|有权限|不可更改|修改时不可见|

|本部门下级部门|有权限|可更改|修改时可见|

|平级其他部门|无权限|不可更改|修改时不可见|

|不属于本部门的下级部门|无权限|不可更改|修改时不可见|

* 影响范围:

* 受众列表:只能查看有数据权限的公众号粉丝和未知来源公众号粉丝。

* 营销自动化里面,简单分支,以及微信消息,只能选择有数据权限的公众号

* 营销罗盘中的数据看板,只能看有权限公众号的数据

### ~~3.3 拉取粉丝提示~~

~~设定权限后,增加是否拉取粉丝数据的提示~~

![](http://ov105vcs6.bkt.clouddn.com/2017-11-22-15095194289318.jpg)

~~粉丝数据的获取可以参照 https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140454~~

~~拉取(自动和手动)的时候记录一下最后拉取的粉丝数据的openid,以作为下次请求的begin_openid~~

***

### 3.4 组织构架

![](http://ov105vcs6.bkt.clouddn.com/2017-11-22-15112547872017.jpg)

*在组织构架中增加公众号权限的维护*

在组织构架上方的按钮中增加一个按钮,’调整公众号权限‘

点击跳转到公众号设置页

***

### 3.5 关于粉丝数据拉取的说明

```sequence

title: 首次绑定内容公众号,粉丝数据

赢销云->>微信open:发送粉丝列表数据请求

微信open->>赢销云:返回粉丝列表数据请求

赢销云->>受众DB:创建受众数据

```

接口参照:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140840

*这个接口,需要使用token,然后用上次拉取的最后一个受众的openid 作为拉取的开始id,如果为空,default拉取所有列表,所以 拉取过一次之后需要记录最后一个openid,以作为下次的开始拉取的开始id*

***

### 3.6 客户列表文件导入

客服列表-文件导入

![](http://ov105vcs6.bkt.clouddn.com/2017-11-22-15112528955742.jpg)

### 3.7 客户详情页面

![](http://ov105vcs6.bkt.clouddn.com/2017-11-22-15112525200848.jpg)

* 左侧属性页面增加公众号的显示

![](http://ov105vcs6.bkt.clouddn.com/2017-11-22-15112529792022.jpg)

* 创建时间,增加2种类型:

* 关注公众号,用户关注公众号之后进入;

* ~~绑定公众号时获得,即用户绑定此内容公众号时,一次性拉取的受众数据~~

![](http://ov105vcs6.bkt.clouddn.com/2017-11-22-15112525034059.jpg)

* 客户时间轴:

* 增加对受众关注、取关两个行为的数据显示,拉取逻辑为微信推送,具体接口可参考:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140454

* 将原先活动和内容在前端组织显示在一起;

* 左侧增加时间轴(这个看下设计有没有有更好的方案);

***

### 3.8 营销自动化客服消息和模板消息组件

* 在组建里面显示选择要发送的公众号,default为创建时间最近的,combox下拉按照创建时间降序排列;

* ~~发送模板消息中需要过滤消息 公众号类型为服务号,过滤订阅号;~~

* 在客服消息中,增加一个文案提示,提示内容:由于微信官方限制,只有在48小时内与公众号有互动的受众可以收到客服消息。

***

### 3.9 受众分组-自动规则条件

增加自动规则中的规则项目,增加来源公众号,条件为等于,不等于,

控件类型为combox下拉,default为创建时间最近的,combox下拉按照创建时间降序排列;

***

### 3.10 漏斗分析-条件中增加来源公众号

增加自动规则中的规则项目,增加来源公众号,条件为等于,不等于,

控件类型为combox下拉,default为创建时间最近的,combox下拉按照创建时间降序排列;

***

### 3.11 营销罗盘

* 营销罗盘增加一个新的二级Category:公众号数据

* 下辖2个三级Category:

* 数据总览

* 粉丝数据

* 互动数据

* 另外 请求接口返回的数据,存储一份,因为:

* 微信有请求接口次数的限制;

* 很多数据为字符串,存储一份对于接口压力和前端渲染可视化的压力会笑一下。

* 补充,全局的按钮规则:

* 最近7天:begin_date=today()-7 end_date= today()-1

* 最近30天:begin_date=today()-30 end_date= today()-1

***

#### 公众号数据总览

![](http://ov105vcs6.bkt.clouddn.com/2017-11-22-15107343334962.jpg)

总览里面的数据用到的接口:

*公众号运营总览*

* 粉丝新增数据

* 接口:https://api.weixin.qq.com/datacube/getusersummary?access_token=ACCESS_TOKEN

* 数据:对应ref_date集合下,sum(new_user)

* 粉丝净增

* 接口:https://api.weixin.qq.com/datacube/getusersummary?access_token=ACCESS_TOKEN

* 对应ref_date集合下,sum(new_user-cancel_user)

* 图文阅读量

* 接口:https://api.weixin.qq.com/datacube/getuserread?access_token=ACCESS_TOKEN

* 数据:对应ref_date集合下,sum(int_page_read_user)

*图文总体数据概览*

* 阅读人数前五:

* 接口:https://api.weixin.qq.com/datacube/getarticlesummary?access_token=ACCESS_TOKEN

* 数据:对应ref_date集合下,sum(int_page_read_user)

* 阅读原文人数前五:

* 接口:https://api.weixin.qq.com/datacube/getarticlesummary?access_token=ACCESS_TOKEN

* 数据:对应ref_date集合下,sum(ori_page_read_user)

* 分享人数前五:

* 接口:https://api.weixin.qq.com/datacube/getarticlesummary?access_token=ACCESS_TOKEN

* 数据:对应ref_date集合下,sum(share_user)

* 收藏人数前五:

* 接口:https://api.weixin.qq.com/datacube/getarticlesummary?access_token=ACCESS_TOKEN

* 数据:对应ref_date集合下,sum(add_to_fav_user)

对应的公众号需要通过msgid去找对应的公众号。

***

刷新为整体刷新所有数据,刷新所用到的接口:

*点击刷新,请求:

接口1:https://api.weixin.qq.com/datacube/getusercumulate?access_token=ACCESS_TOKEN

入参:begin_date=today() end_date=today()

实际作用为刷新今天的数据

接口2:https://api.weixin.qq.com/datacube/getusersummary?access_token=ACCESS_TOKEN

入参:begin_date=today() end_date=today()

实际作用为刷新今天的数据

接口3:https://api.weixin.qq.com/datacube/getarticlesummary?access_token=ACCESS_TOKEN

入参:begin_date=today() end_date=today()

实际作用为刷新今天的数据*

刷新的时候看一下性能,如果时间过长,给两个提示框

![](http://ov105vcs6.bkt.clouddn.com/2017-11-22-15094221666852.jpg)

查看全部数据,分别跳转到两个页面:

![](http://ov105vcs6.bkt.clouddn.com/2017-11-22-15107343828238.jpg)

![](http://ov105vcs6.bkt.clouddn.com/2017-11-22-15107344029323.jpg)

***

#### 粉丝数据

![](http://ov105vcs6.bkt.clouddn.com/2017-11-22-15113362407382.jpg)

一共三套数据可视化

筛选项为公众号,默认创建时间最近的公众号

点击“以列表形式查看”跳转对应的表格

目前粉丝总数量,https://api.weixin.qq.com/datacube/getusercumulate?access_token=ACCESS_TOKEN

ref_date=today()的cumulate_user

***

##### 每日粉丝数据变化

*可视化*

![](http://ov105vcs6.bkt.clouddn.com/2017-11-22-15112533000034.jpg)

* 概述

* 类型:折线图

* 横坐标:日期(日),默认近七天

* 纵坐标:人数(分正负)

* 调用接口:https://api.weixin.qq.com/datacube/getusersummary?access_token=ACCESS_TOKEN

***

* 折线数据类别:

* 新增粉丝,调用https://api.weixin.qq.com/datacube/getusersummary?access_token=ACCESS_TOKEN 接口,对应ref_date下,new_user数量(不区分类型);

* 粉丝流失,调用https://api.weixin.qq.com/datacube/getusersummary?access_token=ACCESS_TOKEN 接口,对应ref_date下,cancel_user数量(不区分类型);

* 粉丝净增,为对应ref_date下,new_user和cancel_user的差;

***

* 交互:

* 点击以列表形式查看,打开列表页面;

* 下方勾选默认全选,反选,disable掉页面对应的折线;

* 点击最近30天,切换为最近30天(begin_date= today()-30,end_date=today()-1【即昨天】)

* 在对应的图上位置悬停,显示折线数据(只显示下方勾选的数据)

* 右上角的menu bar,悬停显示list,点击将当前统计图生成jpg格式下载

***

* 注意:

https://api.weixin.qq.com/datacube/getusersummary?access_token=ACCESS_TOKEN

这个接口有点奇怪,他是一个查一定时间区间内,每日粉丝增减的接口,入参只有token,begin_date,end_date 三个参数,出参为ref_date(对应日期,每天),user_source(新增粉丝的渠道),new_user(新增粉丝数量),cancel_user(取关数量),但是user_source和cancel_user是放在一个字符串上的,不知道取消关注和关注类型为什么放在一起,这个到时候可能注意下。

接口文档地址::https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141082

***

*列表*

![](http://ov105vcs6.bkt.clouddn.com/2017-11-22-15112534392182.jpg)

**每个分页显示几行,这个看鹏飞有没有什么建议**

***

##### 公众号取消/关注概览

*可视化*

![](http://ov105vcs6.bkt.clouddn.com/2017-11-22-15094192536643.jpg)

* 概述

* 类型:折线图

* 横坐标:时间段,一小时为间隔

* 纵坐标:人数

* 调用接口:这个微信没有写接口名称,他是需要提供一个url,将微信事件推送至此URL;

***

* 折线数据类别:

* 关注:取对应ref_date下,关注 消息数量的总数;

* 取消关注:取对应ref_date下,取消关注 消息数量的总数;

* 默认昨天

***

* 交互:

* 点击以列表形式查看,打开列表页面;

* 下方勾选默认全选,反选,disable掉页面对应的折线;

* 在对应的图上位置悬停,显示折线数据(只显示下方勾选的数据)

* 右上角的menu bar,悬停显示list,点击将当前统计图生成jpg格式下载

***

*列表*

![](http://ov105vcs6.bkt.clouddn.com/2017-11-22-15112540316896.jpg)

***

##### 粉丝来源渠道概览

![](http://ov105vcs6.bkt.clouddn.com/2017-11-22-15112541132592.jpg)

* 概述

* 类型:饼图

* 数据:总人数

* 调用接口:https://api.weixin.qq.com/datacube/getusersummary?access_token=ACCESS_TOKEN

***

* 数据:

* 数据为不同类型下对应所选日期范围内的,new_user的总数;

* 关于类型user_source:0代表其他合计 1代表公众号搜索 17代表名片分享 30代表扫描二维码 43代表图文页右上角菜单 51代表支付后关注(在支付完成页) 57代表图文页内公众号名称 75代表公众号文章广告 78代表朋友圈广告

***

* 交互:

* 点击以列表形式查看,打开列表页面;

* 下方勾选默认全选,反选,改变页面对应的饼块,前端需要重新渲染饼状图;

* 在对应的图上位置悬停,显示数据

* 右上角的menu bar,悬停显示list,点击将当前统计图生成jpg格式下载

***

*列表*

![](http://ov105vcs6.bkt.clouddn.com/2017-11-22-15112542333757.jpg)

***

#### 图文消息数据

![](http://ov105vcs6.bkt.clouddn.com/2017-11-22-15112542678917.jpg)

只有一个查看详细数据,查看的是总数据,只用微信的一个接口:

https://api.weixin.qq.com/datacube/getarticlesummary?access_token=ACCESS_TOKEN

这个数据要每日定时拉一次,存储数据

##### 图文数据总体概览:

![](http://ov105vcs6.bkt.clouddn.com/2017-11-22-15112542897930.jpg)

按照所选的公众号、日期限制条件显示数据;

筛选日期default:

begin_date=today()-7 end_date= today()-1【最近7天】

最近30天按钮

begin_date=today()-30 end_date= today()-1【最近30天】

***

##### 以图文为视角

![](http://ov105vcs6.bkt.clouddn.com/2017-11-22-15112543092045.jpg)

* 概述

* 类型:折线图

* 横坐标:日期(日),默认近七天

* 纵坐标:人数

* 调用接口:https://api.weixin.qq.com/datacube/getarticlesummary?access_token=ACCESS_TOKEN

* 默认:最近7填数据,图文默认为Today()-1那天阅读人数最大的图文

***

* 折线数据类别:

* 阅读人数:取对应ref_date,msgid下,int_page_read_user值

* 阅读原文人数:取对应ref_date,msgid下,ori_page_read_user值

* 分享人数:取对应ref_date,msgid下,share_user值

* 收藏人数:取对应ref_date,msgid下,add_to_fav_user值

***

* 交互:

* 下方勾选默认全选,反选,disable掉页面对应的折线;

* 在对应的图上位置悬停,显示折线数据(只显示下方勾选的数据)

* 右上角的menu bar,悬停显示list,点击将当前统计图生成jpg格式下载

***

##### 查看详细数据

![](http://ov105vcs6.bkt.clouddn.com/2017-11-22-15112543964275.jpg)

***

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容