保利威文档中心

帮助中心

dataStatisticsService

更新时间:2024-09-19 16:56:32

1、查询某一天视频观看日志

描述

通过日志时间查询某一天的视频观看日志
接口地址(仅做说明使用):https://api.polyv.net/v2/data/%s/viewlog

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

2、从播放行为产生到数据可查询的间隔时间为1~2小时。但是每条观看记录所消耗的流量计算(flowSize字段)依赖于CDN日志,为了保证数据完整性,流量数据需要间隔一个自然日才会生成。例如1号产生的流量消耗,会在2

号晚上汇总计算,在3号才可查询到流量数据。

3、注意视频ID和分类ID为空时,查询账号当天所有视频日志;当视频ID为空、分类ID不为空时,查询对应分类ID下的日志;当视频ID不为空时查询对应视频ID的日志

单元测试

    @Test
    public void testQueryViewLogByDay() throws IOException, NoSuchAlgorithmException {
        VodQueryViewLogByDayRequest vodQueryViewLogByDayRequest = new VodQueryViewLogByDayRequest();
        List<VodQueryViewLogByDayResponse> vodQueryViewLogByDayResponseList = null;
        try {
            int year = new Date().getYear() + 1900;
            vodQueryViewLogByDayRequest.setDay(super.getDate(year, 2, 4))
                    .setVideoId(super.getTestVideoId())
                    .setCategoryId("1602300731843")
                    .setSessionId(null)
                    .setViewerId(null);
            vodQueryViewLogByDayResponseList = new VodDataStatisticsServiceImpl().queryViewLogByDay(
                    vodQueryViewLogByDayRequest);
            Assert.assertNotNull(vodQueryViewLogByDayResponseList);
            if (vodQueryViewLogByDayResponseList != null) {
                log.debug("测试查询某一天视频观看日志成功,{}", JSON.toJSONString(vodQueryViewLogByDayResponseList));
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回VodQueryViewLogByDayResponse对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.VodxxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名 必选 类型 说明
day true Date 查询某天的日志时间,格式:yyyy-MM-dd
timeStart false String 范围查询,需查询日志信息的具体时分秒,格式:HHmmss,例如:000000,timeStart和timeEnd需要搭配使用
timeEnd false String 范围查询,需查询日志信息的具体时分秒,格式:HHmmss,例如:235959,timeStart和timeEnd需要搭配使用
videoId false String 视频ID【对应api文档的vid字段】
categoryId false String 分类ID【对应api文档的cataid字段】
sessionId false String 用户自定义ID,自定义值(比如,表示学员信息的学员ID),最长不能超过50个英文字符。
viewerId false String 用户自定义ID,当和sessionId同时传递时,会以viewerId为准
param4 false String 自定义参数

返回对象描述

返回对象是List<VodQueryViewLogByDayResponse>,VodQueryViewLogByDayResponse具体元素内容如下:

参数名 类型 说明
playId String 表示此次播放动作的ID
userId String 用户ID
videoId String 视频ID
playDuration Integer 播放时长,单位为秒 (用户观看的总时间 ,例如:18:00开始看一个视频,看到了18:30,这30分钟就是播放时长)
stayDuration Integer 缓存时长,单位为秒
currentTimes Integer 播放时间,单位为秒 (用户观看的最后时间,例如:停止观看视频的时候,进度条最后的分钟数为35分钟,播放时间就是35分钟)
duration Integer 视频总时长,单位为秒
flowSize Long 流量大小,单位为字节
sessionId String 用户自定义参数,如学员ID等
param1 String POLYV系统参数
param2 String POLYV系统参数
param3 String POLYV系统参数
param4 String POLYV系统参数
param5 String POLYV系统参数
ipAddress String IP地址
country String 国家
province String 省份
city String 城市
isp String ISP运营商
referer String 播放视频页面地址
userAgent String 用户设备
operatingSystem String 操作系统
browser String 浏览器
isMobile String 是否为移动端,Y:是;N:否
currentDay Date 日志查询日期 (格式为:yyyy-MM-dd)
currentHour Integer 日志查看时间,单位为小时
viewSource String 用户观看渠道,取值有:vod_ios_sdk:ios端、vod_android_sdk:安卓端、vod_flash:flash、vod_wechat_mini_program:微信小程序;vod_pc_html5:pc端web、vod_mobile_html5:移动端web、vod_mobile_html5_v2:移动端web v2
createdTime Date 日志创建时间,格式:yyyy-MM-dd HH:mm
lastModified Date 日志更新日期,格式:yyyy-MM-dd HH:mm






2、批量查询视频观看日志

描述

通过日志月份批量查询视频观看日志信息
接口地址(仅做说明使用):https://api.polyv.net/v2/viewlog/%s/monthly/%s

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

单元测试

    @Test
    public void testGetVideoPlayLog() throws IOException, NoSuchAlgorithmException {
        VodGetVideoPlayLogRequest vodGetVideoPlayLogRequest = new VodGetVideoPlayLogRequest();
        VodGetVideoPlayLogResponse vodGetVideoPlayLogResponse = null;
        try {
            int year = new Date().getYear() + 1900;
            vodGetVideoPlayLogRequest.setMonth(super.getDate(year, 2, 1))
                    //根据自己实际需要传 Date 即可
                    .setStartTime(super.getDate(year, 2, 1))
                    //根据自己实际需要传 Date 即可
                    .setEndTime(super.getDate(year, 2, 31))
                    .setVideoId(super.getTestVideoId())
                    .setCurrentDay(null)
                    .setCurrentPage(1)
                    .setPageSize(10);
            vodGetVideoPlayLogResponse = new VodDataStatisticsServiceImpl().getVideoPlayLog(vodGetVideoPlayLogRequest);
            Assert.assertNotNull(vodGetVideoPlayLogResponse);
            if (vodGetVideoPlayLogResponse != null) {
                log.debug("测试批量查询视频观看日志成功,{}", JSON.toJSONString(vodGetVideoPlayLogResponse));
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回VodGetVideoPlayLogResponse对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.VodxxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名 必选 类型 说明
month true Date 查询月份,格式为yyyyMM
startTime false Date 查询开始日期,格式为yyyy-MM-dd【对应api文档的start字段】
endTime false Date 查询结束日期,格式为yyyy-MM-dd【对应api文档的end字段】
videoId false String 所查询视频vid,当vid为空时,查询该用户所有视频的日志【对应api文档的vid字段】
sessionId false String 用户自定义ID,自定义值
currentDay false Date 月内某一天的数据,格式为yyyy-MM-dd
param4 false String 自定义参数
currentPage false Integer 页数,默认为1【对应api文档的page字段】
pageSize false Integer 每页显示的数据条数,默认每页显示20条数据

返回对象描述

参数名 类型 说明
contents Array 返回的结果集【详见VideoPlayLog参数描述
pageSize Integer 每页显示的数据条数,默认每页显示20条数据
currentPage Integer 当前页【对应api文档的pageNumber字段】
totalItems Integer 记录总条数
totalPage Integer 总页数【对应api文档的totalPages字段】
VideoPlayLog参数描述
参数名 类型 说明
playId String 表示此次播放动作的ID
userId String 用户ID
videoId String 视频ID
playDuration Integer 播放时长 (用户观看的总时间 ,例如:18:00开始看一个视频,看到了18:30,这30分钟就是播放时长)。单位:秒
stayDuration Integer 缓存时长。单位:秒
currentTimes Integer 播放时间 (用户观看的最后时间,例如:停止观看视频的时候,进度条最后的分钟数为35分钟,播放时间就是35分钟)。单位:秒
duration Integer 视频总时长。单位:秒
flowSize Long 流量大小,单位:Bytes
sessionId String 用户自定义参数,如学员ID等 ,该参数做了UrlSafeBase64的加密,需要做解密
param1 String POLYV系统参数
param2 String POLYV系统参数
param3 String POLYV系统参数
param4 String POLYV系统参数
param5 String POLYV系统参数
ipAddress String IP地址
country String 国家
province String 省份
city String 城市
isp String ISP运营商
referer String 播放视频页面地址
userAgent String 用户设备
operatingSystem String 操作系统
browser String 浏览器
isMobile String 是否为移动端
currentDay Date 日志查询日期 (格式为:yyyy-MM-dd)
currentHour Integer 日志查看时间。单位:小时
viewSource String 用户观看渠道,取值有:vod_ios_sdk、vod_android_sdk、vod_flash、vod_pc_html5、vod_wechat_mini_program、vod_mobile_html5
createdTime Date 日志创建时间
lastModified Date 日志更新日期






3、查询视频播放量统计数据

描述

通过视频id或时间范围查询视频播放量统计数据
接口地址(仅做说明使用):https://api.polyv.net/v2/videoview/%s

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

2、查询视频播放量统计数据,从播放行为产生到数据可查询的间隔时间为1~2小时。

单元测试

    @Test
    public void testQueryVideoPlaybackStatistics() throws IOException, NoSuchAlgorithmException {
        VodQueryVideoPlaybackStatisticsRequest vodQueryVideoPlaybackStatisticsRequest =
                new VodQueryVideoPlaybackStatisticsRequest();
        List<VodQueryVideoPlaybackStatisticsResponse> vodQueryVideoPlaybackStatisticsResponseList = null;
        try {
            vodQueryVideoPlaybackStatisticsRequest.setDr("7days").setPeriod("daily");
            vodQueryVideoPlaybackStatisticsResponseList =
                    new VodDataStatisticsServiceImpl().queryVideoPlaybackStatistics(
                    vodQueryVideoPlaybackStatisticsRequest);
            Assert.assertNotNull(vodQueryVideoPlaybackStatisticsResponseList);
            if (vodQueryVideoPlaybackStatisticsResponseList != null) {
                log.debug("测试查询视频播放量统计数据成功,{}", JSON.toJSONString(vodQueryVideoPlaybackStatisticsResponseList));
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回VodQueryVideoPlaybackStatisticsResponse对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.VodxxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名 必选 类型 说明
videoId false String 视频videoId,不填vid会查所有视频的播放量统计数据【对应api文档的vid字段】
dr false String 时间段,具体值为以下几个:today(今天),yesterday(昨天),this_week(本周),last_week(上周),7days(最近7天),this_month(本月),last_month(上个月),this_year(今年),last_year(去年),默认值为7days:最近7天
period false String 显示周期,具体为以下几个值:daily(按日显示),weekly(按周显示),monthly(按月显示)。默认值为daily:按日显示。period的值受限于dr的值,当dr的值为today,yesterday,this_week,last_week,7days时,period只能为daily,当dr的值为this_month,last_month时,period只能为daily或者weekly

返回对象描述

返回对象是List<VodQueryVideoPlaybackStatisticsResponse>,VodQueryVideoPlaybackStatisticsResponse具体元素内容如下:

参数名 类型 说明
currentTime String 当前日期,格式为:yyyy-MM-dd或yyyy-MM
pcVideoView Integer pc端播放量
mobileVideoView Integer 移动端播放量






4、查询播放域名统计数据

描述

通过时间范围查询播放域名统计数据
接口地址(仅做说明使用):https://api.polyv.net/v2/domain/%s

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

2、查询播放域名统计数据

3、从播放行为产生到数据可查询的间隔时间为1~2小时。但是消耗流量(PCFlowSize字段)的计算依赖于CDN日志,为了保证数据完整性,流量数据需要间隔一个自然日才会生成。例如1号产生的流量消耗,会在2

3、号晚上汇总计算,在3号才可查询到流量数据。

单元测试

    @Test
    public void testQueryPlayDomainNameStatistics() throws IOException, NoSuchAlgorithmException {
        VodQueryPlayDomainNameStatisticsRequest vodQueryPlayDomainNameStatisticsRequest =
                new VodQueryPlayDomainNameStatisticsRequest();
        List<VodQueryPlayDomainNameStatisticsResponse> vodQueryPlayDomainNameStatisticsResponseList = null;
        try {
            int year = new Date().getYear() + 1900;
            vodQueryPlayDomainNameStatisticsRequest.setDr("7days")
                    //根据自己实际需要传 Date 即可
                    .setStartTime(super.getDate(year, 2, 18))
                    //根据自己实际需要传 Date 即可
                    .setEndTime(super.getDate(year, 2, 24));
            vodQueryPlayDomainNameStatisticsResponseList =
                    new VodDataStatisticsServiceImpl().queryPlayDomainNameStatistics(
                    vodQueryPlayDomainNameStatisticsRequest);
            Assert.assertNotNull(vodQueryPlayDomainNameStatisticsResponseList);
            if (vodQueryPlayDomainNameStatisticsResponseList != null) {
                log.debug("测试查询播放域名统计数据成功,{}", JSON.toJSONString(vodQueryPlayDomainNameStatisticsResponseList));
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回VodQueryPlayDomainNameStatisticsResponse对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.VodxxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名 必选 类型 说明
dr false String 时间段,具体值为以下几个:today(今天),yesterday(昨天),this_week(本周),last_week(上周),7days(最近7天),this_month(本月),last_month(上个月),this_year(今年),last_year(去年),默认值为7days:最近7天
startTime false Date 查询开始日期,格式为yyyy-MM-dd【对应api文档的start字段】
endTime false Date 查询结束日期,格式为yyyy-MM-dd【对应api文档的end字段】

返回对象描述

返回对象是List<VodQueryPlayDomainNameStatisticsResponse>,VodQueryPlayDomainNameStatisticsResponse具体元素内容如下:

参数名 类型 说明
domain String 域名
pcPlayDuration Integer PC端播放时长(单位:秒)
pcFlowSize Long PC端消耗流量(单位:字节)
pcVideoView Integer PC端总播放量
pcUniqueViewer Integer PC端唯一观众数
mobilePlayDuration Integer 移动端播放时长(单位:秒)
mobileVideoView Integer 移动端播放量
mobileUniqueViewer Integer 移动端播放者数量






5、查询视频终端环境统计数据

描述

通过时间范围查询视频终端环境统计数据
接口地址(仅做说明使用):https://api.polyv.net/v2/device/%s

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

2、查询视频终端环境统计数据,包括浏览器环境,操作系统环境,终端环境。从播放行为产生到数据可查询的间隔时间为1~2小时。

单元测试

    @Test
    public void testQueryVideoDeviceStatistics() throws IOException, NoSuchAlgorithmException {
        VodQueryVideoDeviceStatisticsRequest vodQueryVideoDeviceStatisticsRequest =
                new VodQueryVideoDeviceStatisticsRequest();
        VodQueryVideoDeviceStatisticsResponse vodQueryVideoDeviceStatisticsResponse = null;
        try {
            int year = new Date().getYear() + 1900;
            vodQueryVideoDeviceStatisticsRequest.setDr("7days")
                    //根据自己实际需要传 Date 即可
                    .setStartTime(super.getDate(year, 2, 18))
                    //根据自己实际需要传 Date 即可
                    .setEndTime(super.getDate(year, 2, 24));
            vodQueryVideoDeviceStatisticsResponse = new VodDataStatisticsServiceImpl().queryVideoDeviceStatistics(
                    vodQueryVideoDeviceStatisticsRequest);
            Assert.assertNotNull(vodQueryVideoDeviceStatisticsResponse);
            if (vodQueryVideoDeviceStatisticsResponse != null) {
                log.debug("测试查询视频终端环境统计数据成功,{}", JSON.toJSONString(vodQueryVideoDeviceStatisticsResponse));
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回VodQueryVideoDeviceStatisticsResponse对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.VodxxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名 必选 类型 说明
dr false String 时间段,具体值为以下几个:today(今天),yesterday(昨天),this_week(本周),last_week(上周),7days(最近7天),this_month(本月),last_month(上个月),this_year(今年),last_year(去年),默认值为7days:最近7天
startTime false Date 查询开始日期,格式为yyyy-MM-dd【对应api文档的start字段】
endTime false Date 查询结束日期,格式为yyyy-MM-dd【对应api文档的end字段】

返回对象描述

参数名 类型 说明
device Array 终端环境统计数据【详见Device参数描述
operatingSystem Array 操作系统环境统计数据【详见OperatingSystem参数描述
browser Array 浏览器环境统计数据【详见Browser参数描述
Device参数描述
参数名 类型 说明
deviceName String 终端环境名称,PC端或移动端
videoView Integer 视频总播放量
formatPlayDuration String 视频总播放时长,格式 hh:mm:ss 例如00:03:22
playDuration Integer 视频总播放时长,单位:秒
uniqueViewer Integer 视频总观众数
percentage Float 总占比
OperatingSystem参数描述
参数名 类型 说明
operateSystemName String 操作系统环境名称
videoView Integer 视频总播放量
formatPlayDuration String 视频总播放时长,格式 hh:mm:ss 例如00:03:22
playDuration String 视频总播放时长,格式 hh:mm:ss 例如00:03:22
uniqueViewer Integer 视频总观众数
percentage Float 总占比
Browser参数描述
参数名 类型 说明
browserName String 浏览器环境名称
formatPcPlayDuration String 格式化的PC播放时长,格式 hh:mm:ss 例如00:00:00
pcPlayDuration Integer PC端播放时长,单位秒
pcVideoView Integer PC端播放量
pcUniqueViewer Integer PC端唯一观众数
formatMobilePlayDuration String 格式化的移动端播放时长,格式 hh:mm:ss 例如00:00:00
mobilePlayDuration Integer 移动端播放时长,单位秒
mobileVideoView Integer 移动端播放量
mobileUniqueViewer Integer 移动端唯一观众数
pcPercentage Float PC端数据占比
mobilePercentage Float 移动端数据占比






6、查询视频播放时段统计数据

描述

通过时间范围查询视频播放时段统计数据
接口地址(仅做说明使用):https://api.polyv.net/v2/hourly/%s

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

2、从播放行为产生到数据可查询的间隔时间为1~2小时,但是统计结果中流量消耗(PCFlowSize、mobileFlowSize字段)的计算依赖于CDN

日志,为了保证数据完整性,流量数据需要间隔一个自然日才会生成。例如1号产生的流量消耗,会在2号晚上汇总计算,在3号才可查询到流量数据。

单元测试

    @Test
    public void testQueryVideoPlaybackHourlyStatistics() throws IOException, NoSuchAlgorithmException {
        VodQueryVideoPlaybackHourlyStatisticsRequest vodQueryVideoPlaybackHourlyStatisticsRequest =
                new VodQueryVideoPlaybackHourlyStatisticsRequest();
        List<VodQueryVideoPlaybackHourlyStatisticsResponse> vodQueryVideoPlaybackHourlyStatisticsResponseList = null;
        try {
            vodQueryVideoPlaybackHourlyStatisticsRequest.setDr("7days");
            vodQueryVideoPlaybackHourlyStatisticsResponseList =
                    new VodDataStatisticsServiceImpl().queryVideoPlaybackHourlyStatistics(
                    vodQueryVideoPlaybackHourlyStatisticsRequest);
            Assert.assertNotNull(vodQueryVideoPlaybackHourlyStatisticsResponseList);
            if (vodQueryVideoPlaybackHourlyStatisticsResponseList != null) {
                log.debug("测试查询视频播放时段统计数据成功,{}", JSON.toJSONString(vodQueryVideoPlaybackHourlyStatisticsResponseList));
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回VodQueryVideoPlaybackHourlyStatisticsResponse对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.VodxxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名 必选 类型 说明
dr false String 时间段,具体值为以下几个:today(今天),yesterday(昨天),this_week(本周),last_week(上周),7days(最近7天),this_month(本月),last_month(上个月),this_year(今年),last_year(去年),默认值为7days:最近7天
startTime false Date 查询开始日期,格式为yyyy-MM-dd【对应api文档的start字段】
endTime false Date 查询结束日期,格式为yyyy-MM-dd【对应api文档的end字段】

返回对象描述

返回对象是List<VodQueryVideoPlaybackHourlyStatisticsResponse>,VodQueryVideoPlaybackHourlyStatisticsResponse具体元素内容如下:

参数名 类型 说明
currentHour Integer 时间段,24小时制,例如 18
pcPlayDuration Integer pc播放时长,单位为秒
formatPcPlayDuration String pc播放时长,格式 hh:mm:ss 例如03:02:22
pcFlowSize Long pc消耗流量,单位为字节
pcVideoView Integer pc端播放量
pcUniqueViewer Integer pc端观众量
mobilePlayDuration Integer 移动端播放时长,单位为秒
formatMobilePlayDuration String 移动端播放时长,格式 hh:mm:ss 例如03:02:22
mobileFlowSize Long 移动端消耗流量,单位为字节
mobileVideoView Integer 移动端播放量
mobileUniqueViewer Integer 移动端观众量






7、查询视频播放流量统计数据

描述

通过时间范围查询视频播放流量统计数据
接口地址(仅做说明使用):https://api.polyv.net/v2/traffic/%s/video/%s

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

2、自2018年7月10日起,才可以统计到单个视频的移动端流量数据,在此之前没有移动端流量数据

3、流量消耗的计算依赖于CDN日志,为了保证数据完整性,流量数据需要间隔一个自然日才会生成。例如1号产生的流量消耗,会在2号晚上汇总计算,在3号才可查询到流量数据

单元测试

    @Test
    public void testQueryVideoPlaybackFlowSizeStatistics() throws IOException, NoSuchAlgorithmException {
        VodQueryVideoPlaybackFlowSizeStatisticsRequest vodQueryVideoPlaybackFlowSizeStatisticsRequest =
                new VodQueryVideoPlaybackFlowSizeStatisticsRequest();
        List<VodQueryVideoPlaybackFlowSizeStatisticsResponse> vodQueryVideoPlaybackFlowSizeStatisticsResponseList =
                null;
        try {
            int year = new Date().getYear() + 1900;
            vodQueryVideoPlaybackFlowSizeStatisticsRequest.setDr("7days")
                    .setVideoId("1b448be32345b255cabc3fe8d65a4d00_1")
                    //根据自己实际需要传 Date 即可
                    .setStartTime(super.getDate(year, 2, 18))
                    //根据自己实际需要传 Date 即可
                    .setEndTime(super.getDate(year, 2, 24));
            vodQueryVideoPlaybackFlowSizeStatisticsResponseList =
                    new VodDataStatisticsServiceImpl().queryVideoPlaybackFlowSizeStatistics(
                    vodQueryVideoPlaybackFlowSizeStatisticsRequest);
            Assert.assertNotNull(vodQueryVideoPlaybackFlowSizeStatisticsResponseList);
            if (vodQueryVideoPlaybackFlowSizeStatisticsResponseList != null) {
                log.debug("测试查询视频播放流量统计数据成功,{}",
                        JSON.toJSONString(vodQueryVideoPlaybackFlowSizeStatisticsResponseList));
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回VodQueryVideoPlaybackFlowSizeStatisticsResponse对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.VodxxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名 必选 类型 说明
videoId true String 视频ID【对应api文档的vid字段】
dr false String 时间段,具体值为以下几个:today(今天),yesterday(昨天),this_week(本周),last_week(上周),7days(最近7天),this_month(本月),last_month(上个月),this_year(今年),last_year(去年),默认值为7days:最近7天
startTime false Date 查询开始日期,格式为yyyy-MM-dd【对应api文档的start字段】
endTime false Date 查询结束日期,格式为yyyy-MM-dd【对应api文档的end字段】

返回对象描述

返回对象是List<VodQueryVideoPlaybackFlowSizeStatisticsResponse>,VodQueryVideoPlaybackFlowSizeStatisticsResponse具体元素内容如下:

参数名 类型 说明
currentDay Date 日期,格式 yyyy-MM-dd 例如 2021-03-24
pcFlowSize Long PC端消耗流量,单位字节
mobileFlowSize Long 移动端消耗流量,单位字节
totalFlowSize Long 总流量消耗,单位字节






8、查询视频播放地理位置统计数据

描述

通过时间范围查询视频播放地理位置统计数据
接口地址(仅做说明使用):https://api.polyv.net/v2/geo/%s

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

2、从播放行为产生到数据可查询的间隔时间为1~2小时,但是统计结果中流量消耗(PCFlowSize、mobileFlowSize字段)的计算依赖于CDN

日志,为了保证数据完整性,流量数据需要间隔一个自然日才会生成。例如1号产生的流量消耗,会在2号晚上汇总计算,在3号才可查询到流量数据。

单元测试

    @Test
    public void testQueryVideoGeographicStatistics() throws IOException, NoSuchAlgorithmException {
        VodQueryVideoGeographicStatisticsRequest vodQueryVideoGeographicStatisticsRequest =
                new VodQueryVideoGeographicStatisticsRequest();
        List<VodQueryVideoGeographicStatisticsResponse> vodQueryVideoGeographicStatisticsResponseList = null;
        try {
            int year = new Date().getYear() + 1900;
            vodQueryVideoGeographicStatisticsRequest.setDr("7days")
                    //根据自己实际需要传 Date 即可
                    .setStartTime(super.getDate(year, 2, 18))
                    //根据自己实际需要传 Date 即可
                    .setEndTime(super.getDate(year, 2, 24));
            vodQueryVideoGeographicStatisticsResponseList =
                    new VodDataStatisticsServiceImpl().queryVideoGeographicStatistics(
                    vodQueryVideoGeographicStatisticsRequest);
            Assert.assertNotNull(vodQueryVideoGeographicStatisticsResponseList);
            if (vodQueryVideoGeographicStatisticsResponseList != null) {
                log.debug("测试查询视频播放地理位置统计数据成功,{}", JSON.toJSONString(vodQueryVideoGeographicStatisticsResponseList));
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回VodQueryVideoGeographicStatisticsResponse对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.VodxxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名 必选 类型 说明
dr false String 时间段,具体值为以下几个:today(今天),yesterday(昨天),this_week(本周),last_week(上周),7days(最近7天),this_month(本月),last_month(上个月),this_year(今年),last_year(去年),默认值为7days:最近7天
startTime false Date 查询开始日期,格式为yyyy-MM-dd【对应api文档的start字段】
endTime false Date 查询结束日期,格式为yyyy-MM-dd【对应api文档的end字段】

返回对象描述

返回对象是List<VodQueryVideoGeographicStatisticsResponse>,VodQueryVideoGeographicStatisticsResponse具体元素内容如下:

参数名 类型 说明
province String 省份
pcPlayDuration Integer pc端播放时长,单位为秒
formatPcPlayDuration String 播放时长,格式 hh:mm:ss 例如00:03:22
pcFlowSize Long PC端消耗流量,单位字节
pcVideoView Integer PC端播放量
pcUniqueViewer Integer PC端观众量
mobilePlayDuration Integer 移动端播放时长,单位为秒
formatMobilePlayDuration String 移动端播放时长,格式 hh:mm:ss 例如00:03:22
mobileFlowSize Long 移动端消耗流量,单位字节
mobileVideoView Integer 移动端播放量
mobileUniqueViewer Integer 移动端观众量






9、查询视频观众量统计数据

描述

通过视频id或时间范围查询视频观众量统计数据
接口地址(仅做说明使用):https://api.polyv.net/v2/data/visitor/%s

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

2、按照日期区间或区段及视频ID查询视频的观众量统计数据,不传vid参数就表示查询用户下所有视频的观众量。

2、从播放行为产生到数据可查询的间隔时间为1~2小时。

单元测试

    @Test
    public void testQueryVideoViewership() throws IOException, NoSuchAlgorithmException {
        VodQueryVideoViewershipRequest vodQueryVideoViewershipRequest = new VodQueryVideoViewershipRequest();
        List<VodQueryVideoViewershipResponse> vodQueryVideoViewershipResponseList = null;
        try {
            int year = new Date().getYear() + 1900;
            vodQueryVideoViewershipRequest.setDr("7days")
                    //根据自己实际需要传 Date 即可
                    .setStartTime(super.getDate(year, 2, 18))
                    //根据自己实际需要传 Date 即可
                    .setEndTime(super.getDate(year, 2, 24));
            vodQueryVideoViewershipResponseList = new VodDataStatisticsServiceImpl().queryVideoViewership(
                    vodQueryVideoViewershipRequest);
            Assert.assertNotNull(vodQueryVideoViewershipResponseList);
            if (vodQueryVideoViewershipResponseList != null) {
                log.debug("测试查询视频观众量统计数据成功,{}", JSON.toJSONString(vodQueryVideoViewershipResponseList));
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回VodQueryVideoViewershipResponse对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.VodxxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名 必选 类型 说明
videoId false String 视频ID【对应api文档的vid字段】
dr false String 时间段,具体值为以下几个:today(今天),yesterday(昨天),this_week(本周),last_week(上周),7days(最近7天),this_month(本月),last_month(上个月),this_year(今年),last_year(去年),默认值为7days:最近7天
startTime false Date 查询开始日期,格式为yyyy-MM-dd【对应api文档的startDate字段】
endTime false Date 查询结束日期,格式为yyyy-MM-dd【对应api文档的endDate字段】

返回对象描述

返回对象是List<VodQueryVideoViewershipResponse>,VodQueryVideoViewershipResponse具体元素内容如下:

参数名 类型 说明
date Date 日期,格式 yyyy-MM-dd 例如 2021-03-24
pcUniqueViewer Integer pc端的观看量
mobileUniqueViewer Integer 移动端的观看量
totalUniqueViewer Integer 总的观众量






10、查询视频的播放时长统计数据

描述

描述:通过视频id或时间范围查询视频的播放时长统计数据
接口地址(仅做说明使用):https://api.polyv.net/v2/play-duration/%s

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

2、按照日期区间或时段查询视频播放时长统计数据,从播放行为产生到数据可查询的间隔时间为1~2小时。

单元测试

    @Test
    public void testQueryVideoPlayTimeStatistics() throws IOException, NoSuchAlgorithmException {
        VodQueryVideoPlayTimeStatisticsRequest vodQueryVideoPlayTimeStatisticsRequest =
                new VodQueryVideoPlayTimeStatisticsRequest();
        List<VodQueryVideoPlayTimeStatisticsResponse> vodQueryVideoPlayTimeStatisticsResponseList = null;
        try {
            int year = new Date().getYear() + 1900;
            vodQueryVideoPlayTimeStatisticsRequest.setDr("7days")
                    .setVideoId("1b448be32345b255cabc3fe8d65a4d00_1")
                    //根据自己实际需要传 Date 即可
                    .setStartTime(super.getDate(year, 2, 18))
                    //根据自己实际需要传 Date 即可
                    .setEndTime(super.getDate(year, 2, 24));
            vodQueryVideoPlayTimeStatisticsResponseList =
                    new VodDataStatisticsServiceImpl().queryVideoPlayTimeStatistics(
                    vodQueryVideoPlayTimeStatisticsRequest);
            Assert.assertNotNull(vodQueryVideoPlayTimeStatisticsResponseList);
            if (vodQueryVideoPlayTimeStatisticsResponseList != null) {
                log.debug("测试查询视频的播放时长统计数据成功,{}", JSON.toJSONString(vodQueryVideoPlayTimeStatisticsResponseList));
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回VodQueryVideoPlayTimeStatisticsResponse对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.VodxxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名 必选 类型 说明
videoId false String 视频ID,不传为查询用户级别统计【对应api文档的vid字段】
dr false String 时间段,具体值为以下几个:today(今天),yesterday(昨天),this_week(本周),last_week(上周),7days(最近7天),this_month(本月),last_month(上个月),this_year(今年),last_year(去年),默认值为7days:最近7天
startTime false Date 查询开始日期,格式为yyyy-MM-dd【对应api文档的start字段】
endTime false Date 查询结束日期,格式为yyyy-MM-dd【对应api文档的end字段】

返回对象描述

返回对象是List<VodQueryVideoPlayTimeStatisticsResponse>,VodQueryVideoPlayTimeStatisticsResponse具体元素内容如下:

参数名 类型 说明
currentDay Date 日期,格式 yyyy-MM-dd 例如 2021-03-24
pcPlayDuration Integer PC端播放时长(单位:秒)
formatPcPlayDuration String 格式化pc端播放时长,格式 hh:mm:ss 例如00:03:22
pcPlayDurationVideoAvg Integer PC端视频平均播放时长,单位秒
formatPcPlayDurationVideoAvg String 格式化PC端视频平均播放时长,格式 hh:mm:ss 例如00:03:22
pcPlayDurationPersonAvg Integer PC端人均播放时长,单位秒
formatPcPlayDurationPersonAvg String 格式化PC端人均播放时长,格式 hh:mm:ss 例如00:03:22
mobilePlayDuration Integer 移动端播放时长,单位秒
formatMobilePlayDuration String 格式化移动端播放时长,格式 hh:mm:ss 例如00:03:22
mobilePlayDurationVideoAvg Integer 移动端视频平均播放时长,单位秒
formatMobilePlayDurationVideoAvg String 格式化移动端视频平均播放时长,格式 hh:mm:ss 例如00:03:22
mobilePlayDurationPersonAvg Integer 移动端人均播放时长,单位秒
formatMobilePlayDurationPersonAvg String 格式化移动端人均播放时长,格式 hh:mm:ss 例如00:03:22






11、查询单个视频的观看热点统计数据

描述

通过视频id查询单个视频的观看热点统计数据
接口地址(仅做说明使用):https://api.polyv.net/v2/videohot/%s

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

2、按照日期区间或时间段查询单个视频的观看热点统计数据,从播放行为产生到数据可查询的间隔时间为1~2小时。

单元测试

    @Test
    public void testQueryVideoViewingHotspotStatistics() throws IOException, NoSuchAlgorithmException {
        VodQueryVideoViewingHotspotStatisticsRequest vodQueryVideoViewingHotspotStatisticsRequest =
                new VodQueryVideoViewingHotspotStatisticsRequest();
        List<VodQueryVideoViewingHotspotStatisticsResponse> vodQueryVideoViewingHotspotStatisticsResponseList = null;
        try {
            int year = new Date().getYear() + 1900;
            vodQueryVideoViewingHotspotStatisticsRequest.setDr("7days")
                    .setVideoId("1b448be3234406608b7838c7ef6b597c_1")
                    //根据自己实际需要传 Date 即可
                    .setStartTime(super.getDate(year, 2, 18))
                    //根据自己实际需要传 Date 即可
                    .setEndTime(super.getDate(year, 2, 24));
            vodQueryVideoViewingHotspotStatisticsResponseList =
                    new VodDataStatisticsServiceImpl().queryVideoViewingHotspotStatistics(
                    vodQueryVideoViewingHotspotStatisticsRequest);
            Assert.assertNotNull(vodQueryVideoViewingHotspotStatisticsResponseList);
            if (vodQueryVideoViewingHotspotStatisticsResponseList != null) {
                log.debug("测试查询单个视频的观看热点统计数据成功,{}",
                        JSON.toJSONString(vodQueryVideoViewingHotspotStatisticsResponseList));
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回VodQueryVideoViewingHotspotStatisticsResponse对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.VodxxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名 必选 类型 说明
videoId true String 视频ID【对应api文档的vid字段】
dr false String 时间段,具体值为以下几个:today(今天),yesterday(昨天),this_week(本周),last_week(上周),7days(最近7天),this_month(本月),last_month(上个月),this_year(今年),last_year(去年),默认值为7days:最近7天
startTime false Date 查询开始日期,格式为yyyy-MM-dd【对应api文档的start字段】
endTime false Date 查询结束日期,格式为yyyy-MM-dd【对应api文档的end字段】

返回对象描述

返回对象是List<VodQueryVideoViewingHotspotStatisticsResponse>,VodQueryVideoViewingHotspotStatisticsResponse具体元素内容如下:

参数名 类型 说明
second Integer 视频时长(单位:秒)
viewCount Integer 播放量【对应api文档的viewcount字段】






12、查询视频的观看比例统计数据

描述

通过视频id或时间范围查询视频的观看比例统计数据
接口地址(仅做说明使用):https://api.polyv.net/v2/play-ratio/%s

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

2、查询单个视频或全部视频在一定时间范围内的观看比例统计数据,从播放行为产生到数据可查询的间隔时间为1~2小时。

单元测试

    @Test
    public void testQueryVideoViewingRatioStatistics() throws IOException, NoSuchAlgorithmException {
        VodQueryVideoViewingRatioStatisticsRequest vodQueryVideoViewingRatioStatisticsRequest =
                new VodQueryVideoViewingRatioStatisticsRequest();
        List<VodQueryVideoViewingRatioStatisticsResponse> vodQueryVideoViewingRatioStatisticsResponseList = null;
        try {
            vodQueryVideoViewingRatioStatisticsRequest.setDr("7days");
            vodQueryVideoViewingRatioStatisticsResponseList =
                    new VodDataStatisticsServiceImpl().queryVideoViewingRatioStatistics(
                    vodQueryVideoViewingRatioStatisticsRequest);
            Assert.assertNotNull(vodQueryVideoViewingRatioStatisticsResponseList);
            if (vodQueryVideoViewingRatioStatisticsResponseList != null) {
                log.debug("测试查询视频的观看比例统计数据成功,{}", JSON.toJSONString(vodQueryVideoViewingRatioStatisticsResponseList));
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回VodQueryVideoViewingRatioStatisticsResponse对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.VodxxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名 必选 类型 说明
videoId false String 视频ID,不填为查询用户维度【对应api文档的vid字段】
dr false String 时间段,具体值为以下几个:today(今天),yesterday(昨天),this_week(本周),last_week(上周),7days(最近7天),this_month(本月),last_month(上个月),this_year(今年),last_year(去年),默认值为7days:最近7天
startTime false Date 查询开始日期,格式为yyyy-MM-dd【对应api文档的start字段】
endTime false Date 查询结束日期,格式为yyyy-MM-dd【对应api文档的end字段】

返回对象描述

返回对象是List<VodQueryVideoViewingRatioStatisticsResponse>,VodQueryVideoViewingRatioStatisticsResponse具体元素内容如下:

参数名 类型 说明
percentage String 观看比例范围,单位:% 例如 70-80
playCount Integer 观看数量






13、查询视频观看完成度

描述

通过视频id和观众id查询视频观看完成度
接口地址(仅做说明使用):https://api.polyv.net/v2/video/engagement/%s/get

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

2、该接口可查看某一观众累计观看某一视频的完成度情况。无论观众使用哪种终端、分多少次观看,接口返回的是最终的汇总的完成度。比如,视频A时长为50分钟,观众使用PC

H5观看了第0∼20分钟,使用手机H5观看了第10∼30分钟,又使用APP观看了第40∼50分钟,累计观看时长为20+20+10=50分钟,但观看的视频内容是 0∼30 和

40∼50 的部分。虽然累计观看时长与视频时长相同,但完成度为 (30+10)/50=80%。

3、数据隔天更新一次

4、该接口需联系客服开通后才能使用

单元测试

    @Test
    public void testGetVideoViewingCompletion() throws IOException, NoSuchAlgorithmException {
        VodGetVideoViewingCompletionRequest vodGetVideoViewingCompletionRequest =
                new VodGetVideoViewingCompletionRequest();
        Float vodGetVideoViewingCompletionResponse = null;
        try {
            vodGetVideoViewingCompletionRequest.setVideoId("1b448be3234406608b7838c7ef6b597c_1")
                    .setViewerId("1555313336634");
            vodGetVideoViewingCompletionResponse = new VodDataStatisticsServiceImpl().getVideoViewingCompletion(
                    vodGetVideoViewingCompletionRequest);
            Assert.assertNotNull(vodGetVideoViewingCompletionResponse);
            if (vodGetVideoViewingCompletionResponse != null) {
                log.debug("测试查询视频观看完成度成功,已完成进度比例{}", vodGetVideoViewingCompletionResponse);
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回Float对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.VodxxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名 必选 类型 说明
videoId true String 视频ID【对应api文档的vid字段】
viewerId true String 自定义观众id,例如 1555313336634

返回对象描述

已完成进度比例




14、查询观看行为列表

描述

通过视频id或时间范围分页查询观看行为列表
接口地址(仅做说明使用):https://api.polyv.net/v2/advance/play/%s

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

2、高级分析功能介绍详见:视频高级分析

3、由于数据量和计算量大,数据分析结果次日才可查询。

4、查询的时间跨度不超过31天;

5、当请求入参startTime(开始时间)有值而endTime(结束时间)为空时,返回开始日期后31天后的数据;

6、当请求入参startTime(开始时间)为空而endTime(结束时间)不为空时,返回结束日期前31天内的数据;

7、当请求入参startTime(开始时间)、endTime(结束时间)均为空时,返回最近31天的数据。

8、该接口需联系客服开通后才能使用

单元测试

    @Test
    public void testQueryViewingBehaviorList() throws IOException, NoSuchAlgorithmException {
        VodQueryViewingBehaviorListRequest vodQueryViewingBehaviorListRequest =
                new VodQueryViewingBehaviorListRequest();
        VodQueryViewingBehaviorListResponse vodQueryViewingBehaviorListResponse = null;
        try {
            vodQueryViewingBehaviorListRequest.setStartTime(super.getDate(2021, 2, 1))
                    .setEndTime(super.getDate(2021, 2, 30))
                    .setVideoId("1b448be3234406608b7838c7ef6b597c_1")
                    .setPageSize(10);
            vodQueryViewingBehaviorListResponse = new VodDataStatisticsServiceImpl().queryViewingBehaviorList(
                    vodQueryViewingBehaviorListRequest);
            Assert.assertNotNull(vodQueryViewingBehaviorListResponse);
            if (vodQueryViewingBehaviorListResponse != null) {
                log.debug("测试分页查询观看行为列表成功{}", JSON.toJSONString(vodQueryViewingBehaviorListResponse));
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回VodQueryViewingBehaviorListResponse对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.VodxxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名 必选 类型 说明
videoId false String 视频ID【对应api文档的vid字段】
startTime false Date 开始时间,格式为yyyy-MM-dd或者yyyy-MM-dd HH:mm:ss,查询范围不超过31天【对应api文档的start字段】
endTime false Date 结束时间,格式为yyyy-MM-dd或者yyyy-MM-dd HH:mm:ss,查询范围不超过31天【对应api文档的end字段】
viewerId false String 观众id,例如 1555313336634
viewerName false String 观众昵称
token false String 下一页的凭证,从当前页的返回数据里获取,第一页不需要传
pageSize false Integer 每页显示的数据条数,默认每页显示20条数据

返回对象描述

参数名 类型 说明
contents Array 返回的结果集【详见ViewingBehaviorInfo参数描述
token String 查询下一页时传的凭证
pageSize Integer 每页显示的数据条数,默认每页显示20条数据
currentPage Integer 当前页【对应api文档的pageNumber字段】
totalItems Integer 记录总条数
totalPage Integer 总页数【对应api文档的totalPages字段】
ViewingBehaviorInfo参数描述
参数名 类型 说明
startTime Date 首次观看日期,格式yyyy-MM-dd HH:mm:ss 例如 2019-10-01 11:12:05
videoId String 视频id
videoName String 视频名称
videoImage String 视频首图(没有添加协议头)
videoDuration Integer 视频时长,单位:秒
deviceClass String 设备名称
osName String 操作系统
agentName String 终端名称
agentVersion String 终端版本
referer String 来源
ip String ip地址
country String 国家
province String 省份
city String 地区
isp String 运营商
viewerId String 观众id
viewerNickName String 观众昵称
viewerAvatar String 观众头像
totalVideoCount Integer 观众看的视频总量
heatmap String 热力图(["0-1:1","3-4:2"]表示视频的0到1秒有1次观看,3到4秒有2次观看)
completionRate Float 观看完成度
status Integer 视频的状态:60/61已发布;10等待编码;20正在编码;50等待审核;51审核不通过;-1已删除;






15、查询视频分析数据

描述

通过视频id查询视频分析数据
接口地址(仅做说明使用):https://api.polyv.net/v2/advance/video/%s

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

2、高级分析功能介绍详见:视频高级分析

3、由于数据量和计算量大,数据分析结果次日才可查询。

4、该接口需联系客服开通后才能使用

单元测试

    @Test
    public void testQueryVideoAnalysisData() throws IOException, NoSuchAlgorithmException {
        VodQueryVideoAnalysisDataRequest vodQueryVideoAnalysisDataRequest = new VodQueryVideoAnalysisDataRequest();
        VodQueryVideoAnalysisDataResponse vodQueryVideoAnalysisDataResponse = null;
        try {
            vodQueryVideoAnalysisDataRequest.setVideoId("1b448be3234406608b7838c7ef6b597c_1");
            vodQueryVideoAnalysisDataResponse = new VodDataStatisticsServiceImpl().queryVideoAnalysisData(
                    vodQueryVideoAnalysisDataRequest);
            Assert.assertNotNull(vodQueryVideoAnalysisDataResponse);
            if (vodQueryVideoAnalysisDataResponse != null) {
                log.debug("测试根据视频id查询视频分析数据成功{}", JSON.toJSONString(vodQueryVideoAnalysisDataResponse));
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回VodQueryVideoAnalysisDataResponse对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.VodxxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名 必选 类型 说明
videoId true String 视频ID【对应api文档的vid字段】

返回对象描述

参数名 类型 说明
videoId String 视频id
videoName String 视频名称
duration Integer 视频时长,单位:秒
playTimes Integer 播放次数
uniqueViewerCount Integer 唯一观众数
avgCompletionRate Float 平均观看完成度
viewHeatmap String 观看热力图,例如["0-20:662","21-100:665"]代表视频内容的020秒有662次观看,21100秒有665次观看
uniqueViewHeatmap String 唯一观看热力图,例如["0-20:614","21-100:615"]代表视频内容的020秒有614个观众观看,21100秒有615个观众观看






16、查询观众分析结果

描述

通过观众id查询观众分析结果
接口地址(仅做说明使用):https://api.polyv.net/v2/advance/viewer/%s

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

2、该接口需联系客服开通后才能使用

2、高级分析功能介绍详见:视频高级分析

3、由于数据量和计算量大,数据分析结果次日才可查询。

4、该接口需联系客服开通后才能使用

单元测试

    @Test
    public void testQueryAudienceAnalysisResults() throws IOException, NoSuchAlgorithmException {
        VodQueryAudienceAnalysisResultsRequest vodQueryAudienceAnalysisResultsRequest =
                new VodQueryAudienceAnalysisResultsRequest();
        VodQueryAudienceAnalysisResultsResponse vodQueryAudienceAnalysisResultsResponse = null;
        try {
            vodQueryAudienceAnalysisResultsRequest.setViewerId("1555313336634");
            vodQueryAudienceAnalysisResultsResponse = new VodDataStatisticsServiceImpl().queryAudienceAnalysisResults(
                    vodQueryAudienceAnalysisResultsRequest);
            Assert.assertNotNull(vodQueryAudienceAnalysisResultsResponse);
            if (vodQueryAudienceAnalysisResultsResponse != null) {
                log.debug("测试根据观众id查询观众分析结果成功{}", JSON.toJSONString(vodQueryAudienceAnalysisResultsResponse));
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回VodQueryAudienceAnalysisResultsResponse对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.VodxxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名 必选 类型 说明
viewerId true String 观众id,例如 1555313336634

返回对象描述

参数名 类型 说明
userId String 用户id
viewerId String 观众id
viewerNickName String 观众昵称
viewerAvatar String 观众头像【对应api文档的viewerAatar字段】
ip String ip地址
firstWatchTime Date 首次观看时间,格式 yyyy-MM-dd HH:mm:ss
lastWatchTime Date 最后观看时间,格式 yyyy-MM-dd HH:mm:ss
totalVideoCount Integer 观看视频总数
totalWatchDuration Integer 观众总时长(秒)
avgCompletionRate Float 平均观看完成度






联系客服,在线咨询