Data Statistics Service
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条数据
返回对象描述
pageSize
Integer
每页显示的数据条数,默认每页显示20条数据
currentPage
Integer
当前页【对应api文档的pageNumber字段】
totalItems
Integer
记录总条数
totalPage
Integer
总页数【对应api文档的totalPages字段】
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字段】
返回对象描述
deviceName
String
终端环境名称,PC端或移动端
videoView
Integer
视频总播放量
formatPlayDuration
String
视频总播放时长,格式 hh:mm:ss 例如00:03:22
playDuration
Integer
视频总播放时长,单位:秒
uniqueViewer
Integer
视频总观众数
percentage
Float
总占比
operateSystemName
String
操作系统环境名称
videoView
Integer
视频总播放量
formatPlayDuration
String
视频总播放时长,格式 hh:mm:ss 例如00:03:22
playDuration
String
视频总播放时长,格式 hh:mm:ss 例如00:03:22
uniqueViewer
Integer
视频总观众数
percentage
Float
总占比
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条数据
返回对象描述
token
String
查询下一页时传的凭证
pageSize
Integer
每页显示的数据条数,默认每页显示20条数据
currentPage
Integer
当前页【对应api文档的pageNumber字段】
totalItems
Integer
记录总条数
totalPage
Integer
总页数【对应api文档的totalPages字段】
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
平均观看完成度
Last updated
Was this helpful?