向所有认证公众号开发者开放数据接口。通过数据接口,开发者可以获取与公众平台官网统计模块类似但更灵活的数据,还可根据需要进行高级处理。

在公众号登录授权机制的权限集划分中,图文分析数据接口属于群发与通知权限。

请注意:

  1. 接口侧的公众号数据的数据库中仅存储了2014年12月1日之后的数据,将查询不到在此之前的日期,即使有查到,也是不可信的脏数据;
  2. 请开发者在调用接口获取数据后,将数据保存在自身数据库中,即加快下次用户的访问速度,也降低了微信侧接口调用的不必要损耗。
  3. 额外注意,获取图文群发每日数据接口的结果中,只有中间页阅读人数+原文页阅读人数+分享转发人数+分享转发次数+收藏次数 >=3的结果才会得到统计,过小的阅读量的图文消息无法统计。
  4. 为确保公众号数据已完成统计和处理,请于每天上午8点后查询公众号前一天的数据。
  5. 2020年2月28日起,获取图文统计数据(getuserread)、图文统计分时数据(getuserreadhour)数据接口的结果中,中间页阅读、分享统一提供user_source字段,用于区分<传播渠道>与<全部>数据,详见参数说明;额外注意,原文页阅读、收藏,只在图文统计数据(getuserread)中提供,并只提供<全部>数据。

图文分析数据接口指的是用于获得公众平台官网数据统计模块中图文分析数据的接口,具体接口列表如下:

接口名称 最大时间跨度 接口调用地址(必须使用https)
获取图文群发每日数据(getarticlesummary) 1 https://api.weixin.qq.com/datacube/getarticlesummary?access_token=ACCESS_TOKEN
获取图文群发总数据(getarticletotal) 1 https://api.weixin.qq.com/datacube/getarticletotal?access_token=ACCESS_TOKEN
获取图文统计数据(getuserread) 3 https://api.weixin.qq.com/datacube/getuserread?access_token=ACCESS_TOKEN
获取图文统计分时数据(getuserreadhour) 1 https://api.weixin.qq.com/datacube/getuserreadhour?access_token=ACCESS_TOKEN
获取图文分享转发数据(getusershare) 7 https://api.weixin.qq.com/datacube/getusershare?access_token=ACCESS_TOKEN
获取图文分享转发分时数据(getusersharehour) 1 https://api.weixin.qq.com/datacube/getusersharehour?access_token=ACCESS_TOKEN

最大时间跨度是指一次接口调用时最大可获取数据的时间范围,如最大时间跨度为7是指最多一次性获取7天的数据。access_token的实际值请通过“获取access_token”来获取。

接口调用请求说明

图文分析数据接口(包括接口列表中的所有接口)需要向相应接口调用地址POST以下示例数据包:

{ 
    "begin_date": "2014-12-08", 
    "end_date": "2014-12-08"
}

调用参数说明

参数 是否必须 说明
access_token 调用接口凭证
begin_date 获取数据的起始日期,begin_date和end_date的差值需小于“最大时间跨度”(比如最大时间跨度为1时,begin_date和end_date的差值只能为0,才能小于1),否则会报错
end_date 获取数据的结束日期,end_date允许设置的最大值为昨日

返回说明

正常情况下,获取图文群发每日数据接口的返回JSON数据包如下:

{ 
    "list": [ 
        { 
            "ref_date": "2014-12-08", 
            "msgid": "10000050_1", 
            "title": "12月27日 DiLi日报", 
            "int_page_read_user": 23676, 
            "int_page_read_count": 25615, 
            "ori_page_read_user": 29, 
            "ori_page_read_count": 34, 
            "share_user": 122, 
            "share_count": 994, 
            "add_to_fav_user": 1, 
            "add_to_fav_count": 3
        } 
 	 //后续会列出该日期内所有被阅读过的文章(仅包括群发的文章)在当天的阅读次数等数据
    ]
}

正常情况下,获取图文群发总数据接口的返回JSON数据包如下(请注意,details中,每天对应的数值为该文章到该日为止的总量(而不是当日的量))。 额外需要注意获取图文群发每日数据(getarticlesummary)和获取图文群发总数据(getarticletotal)的区别如下:

  1. 前者获取的是某天所有被阅读过的文章(仅包括群发的文章)在当天的阅读次数等数据。
  2. 后者获取的是,某天群发的文章,从群发日起到接口调用日(但最多统计发表日后7天数据),每天的到当天的总等数据。例如某篇文章是12月1日发出的,发出后在1日、2日、3日的阅读次数分别为1万,则getarticletotal获取到的数据为,距发出到12月1日24时的总阅读量为1万,距发出到12月2日24时的总阅读量为2万,距发出到12月3日24时的总阅读量为3万。
{ 
   "list": [ 
       { 
           "ref_date": "2014-12-14", 
           "msgid": "202457380_1", 
           "title": "马航丢画记", 
           "details": [ 
               { 
                   "stat_date": "2014-12-14", 
                   "target_user": 261917, 
                   "int_page_read_user": 23676, 
                   "int_page_read_count": 25615, 
                   "ori_page_read_user": 29, 
                   "ori_page_read_count": 34, 
                   "share_user": 122, 
                   "share_count": 994, 
                   "add_to_fav_user": 1, 
                   "add_to_fav_count": 3,
                    "int_page_from_session_read_user": 657283, 
                    "int_page_from_session_read_count": 753486, 
                    "int_page_from_hist_msg_read_user": 1669, 
                    "int_page_from_hist_msg_read_count": 1920, 
                    "int_page_from_feed_read_user": 367308, 
                    "int_page_from_feed_read_count": 433422, 
                    "int_page_from_friends_read_user": 15428, 
                    "int_page_from_friends_read_count": 19645, 
                    "int_page_from_other_read_user": 477, 
                    "int_page_from_other_read_count": 703, 
                    "feed_share_from_session_user": 63925, 
                    "feed_share_from_session_cnt": 66489, 
                    "feed_share_from_feed_user": 18249, 
                    "feed_share_from_feed_cnt": 19319, 
                    "feed_share_from_other_user": 731, 
                    "feed_share_from_other_cnt": 775
               }, //后续还会列出所有stat_date符合“ref_date(群发的日期)到接口调用日期”(但最多只统计7天)的数据
           ]
       },//后续还有ref_date(群发的日期)在begin_date和end_date之间的群发文章的数据
   ]
}

正常情况下,获取图文统计数据接口的返回JSON数据包如下: 额外注意:2020年2月28日起,中间页阅读、分享统一提供user_source字段,用于区分<传播渠道>与<全部>数据,详情请见文档底部参数说明;原文页阅读、收藏只提供<全部渠道>数据

{ 
   "list": [ 
       { 
           "ref_date": "2020-02-18", 
           "user_source":99999999
           "int_page_read_user": 545497, 
           "int_page_read_count": 856093, 
           "ori_page_read_user": 191, 
           "ori_page_read_count": 240, 
           "share_user": 22603, 
           "share_count": 28487, 
           "add_to_fav_user": 3163, 
           "add_to_fav_count": 3841
       },
       { 
           "ref_date": "2020-02-18", 
           "user_source":0
           "int_page_read_user": 381272, 
           "int_page_read_count": 646629, 
           "ori_page_read_user": 0, 
           "ori_page_read_count": 0, 
           "share_user": 13110, 
           "share_count": 16469, 
           "add_to_fav_user": 0, 
           "add_to_fav_count": 0
       } , //后续会列出区分传播渠道的user_source 为1-7之间的数据,此处只列举<全部(99999999)>与<会话(0)>;以及列出ref_date在begin_date和end_date之间的数据
   ]
}

正常情况下,获取图文统计分时数据接口的返回JSON数据包如下: 额外注意:2020年2月28日起,中间页阅读、分享统一提供user_source字段,用于区分<传播渠道>与<全部>数据,详情请见文档底部参数说明;分时数据中不提供原文页阅读、收藏。

{ 
   {
   "list": [
       {
           "ref_date": "2020-02-18", 
           "ref_hour": 0, 
           "user_source": 99999999, 
           "int_page_read_user": 9028, 
           "int_page_read_count": 11815, 
           "ori_page_read_user": 0, 
           "ori_page_read_count": 0, 
           "share_user": 279, 
           "share_count": 340, 
           "add_to_fav_user": 0, 
           "add_to_fav_count": 0
       }, 
       {
           "ref_date": "2020-02-18", 
           "ref_hour": 0, 
           "user_source": 0 
           "int_page_read_user": 6812, 
           "int_page_read_count": 9172, 
           "ori_page_read_user": 0, 
           "ori_page_read_count": 0, 
           "share_user": 164, 
           "share_count": 196, 
           "add_to_fav_user": 0, 
           "add_to_fav_count": 0
       }, 
 	//后续还有ref_hour逐渐增大,只列举1天24小时的数据;以及传播渠道的user_source 为1-7之间的数据,此处只列举<全部(99999999)>与<会话(0)>
   ]
}

正常情况下,获取图文分享转发数据接口的返回JSON数据包如下:

{ 
   "list": [ 
       { 
           "ref_date": "2014-12-07", 
           "share_scene": 1, 
           "share_count": 207, 
           "share_user": 11
       }, 
       { 
           "ref_date": "2014-12-07", 
           "share_scene": 5, 
           "share_count": 23, 
           "share_user": 11
       }//后续还有不同share_scene(分享场景)的数据,以及ref_date在begin_date和end_date之间的数据
   ]
}

正常情况下,获取图文分享转发分时数据接口的返回JSON数据包如下:

{ 
   "list": [ 
       { 
           "ref_date": "2014-12-07", 
           "ref_hour": 1200, 
           "share_scene": 1, 
           "share_count": 72, 
           "share_user": 4
       }//后续还有不同share_scene的数据,以及ref_hour逐渐增大的数据。由于最大时间跨度为1,所以ref_date此处固定
   ]
}

返回参数说明

参数 说明
ref_date 数据的日期,需在begin_date和end_date之间
ref_hour 数据的小时,包括从000到2300,分别代表的是[000,100)到[2300,2400),即每日的第1小时和最后1小时
stat_date 统计的日期,在getarticletotal接口中,ref_date指的是文章群发出日期, 而stat_date是数据统计日期
msgid 请注意:这里的msgid实际上是由msgid(图文消息id,这也就是群发接口调用后返回的msg_data_id)和index(消息次序索引)组成, 例如12003_3, 其中12003是msgid,即一次群发的消息的id; 3为index,假设该次群发的图文消息共5个文章(因为可能为多图文),3表示5个中的第3个
title 图文消息的标题
int_page_read_user 图文页(点击群发图文卡片进入的页面)的阅读人数
int_page_read_count 图文页的阅读次数
ori_page_read_user 原文页(点击图文页“阅读原文”进入的页面)的阅读人数,无原文页时此处数据为0
ori_page_read_count 原文页的阅读次数
share_scene 分享的场景 1代表好友转发 2代表朋友圈 255代表其他
share_user 分享的人数
share_count 分享的次数
add_to_fav_user 收藏的人数
add_to_fav_count 收藏的次数
获取图文群发总数据接口中的详细字段解释 intpagefromsessionreaduser 公众号会话阅读人数; intpagefromsessionreadcount 公众号会话阅读次数; intpagefromhistmsgreaduser 历史消息页阅读人数; intpagefromhistmsgreadcount 历史消息页阅读次数; intpagefromfeedreaduser 朋友圈阅读人数; intpagefromfeedreadcount 朋友圈阅读次数; intpagefromfriendsreaduser 好友转发阅读人数; intpagefromfriendsreadcount 好友转发阅读次数; intpagefromotherreaduser 其他场景阅读人数; intpagefromotherreadcount 其他场景阅读次数 ;intpagefromkanyikanreaduser 看一看来源阅读人数;intpagefromkanyikanreadcount 看一看来源阅读次数;intpagefromsouyisoureaduser 搜一搜来源阅读人数;intpagefromsouyisoureadcount 搜一搜来源阅读次数;feedsharefromsessionuser 公众号会话转发朋友圈人数; feedsharefromsessioncnt 公众号会话转发朋友圈次数; feedsharefromfeeduser 朋友圈转发朋友圈人数; feedsharefromfeedcnt 朋友圈转发朋友圈次数 feedsharefromotheruser; 其他场景转发朋友圈人数 feedsharefromothercnt其他场景转发朋友圈次数
target_user 送达人数,一般约等于总粉丝数(需排除黑名单或其他异常情况下无法收到消息的粉丝)
user_source 在获取图文统计数据、图文阅读分时数据时才有该字段,代表用户从哪里进入来阅读该图文。99999999.全部;0:会话;1.好友;2.朋友圈;4.历史消息页;5.其他;6.看一看;7.搜一搜;

错误时微信会返回错误码等信息,具体错误码查询,请见:全局返回码说明