保利威文档中心

幫助中心

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 平均觀看完成度






联系客服,在线咨询