From de1398f742b1f54019144c122f87b432e7f48166 Mon Sep 17 00:00:00 2001 From: Olivier Lando Date: Fri, 25 Oct 2024 12:09:39 +0200 Subject: [PATCH 1/6] Analytics updates --- oas_apivideo.yaml | 89 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 87 insertions(+), 2 deletions(-) diff --git a/oas_apivideo.yaml b/oas_apivideo.yaml index 29de866c..68568de5 100644 --- a/oas_apivideo.yaml +++ b/oas_apivideo.yaml @@ -12605,6 +12605,8 @@ paths: - `impression` is the number of times your content has been loaded and was ready for playback. You can use the aggregation `count` with this metric. - `impression-time` is the time in milliseconds that your content was loading for until the first video frame is displayed. You can use the aggregations `average` and `sum` with this metric. - `watch-time` is the cumulative time in seconds that the user has spent watching your content. You can use the aggregations `average` and `sum` with this metric. + - `ccv` TODO + - `view` TODO required: true style: simple explode: false @@ -12617,6 +12619,8 @@ paths: - impression - impression-time - watch-time + - ccv + - view - name: aggregation in: path description: | @@ -12627,6 +12631,8 @@ paths: - `total` calculates the total number of events for the `play` metric. - `average` calculates an average value for the selected metric. - `sum` adds up the total value of the select metric. + - `peak` TODO + - `live` TODO style: simple explode: false required: true @@ -12638,6 +12644,8 @@ paths: - total - average - sum + - peak + - live - name: from in: query description: | @@ -12667,6 +12675,29 @@ paths: type: string format: date-time example: 2024-02-06T00:00:00+01:00 + - name: unique + in: query + description: | + TODO + style: form + explode: false + schema: + type: boolean + example: true + - name: viewDuration + in: query + description: | + TODO + style: form + explode: false + schema: + type: string + enum: + - 3s + - 5s + - 10s + - 30s + example: 5s - $ref: '#/components/parameters/filterBy' responses: '200': @@ -12872,6 +12903,8 @@ paths: - `start` is the number of times playback was started. - `end` is the number of times playback has ended with the content watch until the end. - `impression` is the number of times your content has been loaded and was ready for playback. + - `ccv-peak` TODO + - `ccv-average` TODO required: true style: simple explode: false @@ -12884,6 +12917,9 @@ paths: - start - end - impression + - ccv-peak + - ccv-average + - view - name: breakdown in: path description: | @@ -12898,6 +12934,7 @@ paths: - `device-type`: Returns analytics based on the type of device used by the viewers. Response values can include: `computer`, `phone`, `tablet`, `tv`, `console`, `wearable`, `unknown`. - `operating-system`: Returns analytics based on the operating system used by the viewers. Response values can include `windows`, `mac osx`, `android`, `ios`, `linux`. - `browser`: Returns analytics based on the browser used by the viewers. Response values can include `chrome`, `firefox`, `edge`, `opera`. + - `referrer`: TODO style: simple explode: false required: true @@ -12911,6 +12948,7 @@ paths: - device-type - operating-system - browser + - referrer - name: from in: query description: | @@ -12973,6 +13011,28 @@ paths: - asc - desc example: asc + - name: unique + in: query + description: | + TODO + style: form + explode: false + schema: + type: boolean + example: true + - name: viewDuration + in: query + description: | + TODO + style: form + explode: false + schema: + type: string + enum: + - 3s + - 5s + - 10s + - 30s - $ref: '#/components/parameters/filterBy' - $ref: '#/components/parameters/current-page' - $ref: '#/components/parameters/page-size' @@ -13207,6 +13267,9 @@ paths: - start - end - impression + - ccv-peak + - ccv-average + - view - name: from in: query description: | @@ -13237,7 +13300,7 @@ paths: - name: interval in: query description: | - Use this query parameter to define how granularity of the data. Possible values: `hour`, `day`. + Use this query parameter to define how granularity of the data. Possible values: `minute`, `hour`, `day`. - Default: If no interval specified and the period (different between from and to) ≤ 2 days then hour, otherwise day. @@ -13246,7 +13309,7 @@ paths: explode: false schema: type: string - enum: [hour, day] + enum: [minute, hour, day] example: hour - name: sortBy in: query @@ -13283,6 +13346,28 @@ paths: - asc - desc example: asc + - name: unique + in: query + description: | + TODO + style: form + explode: false + schema: + type: boolean + example: true + - name: viewDuration + in: query + description: | + TODO + style: form + explode: false + schema: + type: string + enum: + - 3s + - 5s + - 10s + - 30s - $ref: '#/components/parameters/filterBy' - $ref: '#/components/parameters/current-page' - $ref: '#/components/parameters/page-size' From df4a203745d75f8614ca4c1cbc0923b79a0e554c Mon Sep 17 00:00:00 2001 From: szekelyzol Date: Thu, 31 Oct 2024 22:35:39 +0100 Subject: [PATCH 2/6] Add new parameters, descriptions, and examples --- oas_apivideo.yaml | 193 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 173 insertions(+), 20 deletions(-) diff --git a/oas_apivideo.yaml b/oas_apivideo.yaml index 68568de5..05e291f6 100644 --- a/oas_apivideo.yaml +++ b/oas_apivideo.yaml @@ -12605,8 +12605,8 @@ paths: - `impression` is the number of times your content has been loaded and was ready for playback. You can use the aggregation `count` with this metric. - `impression-time` is the time in milliseconds that your content was loading for until the first video frame is displayed. You can use the aggregations `average` and `sum` with this metric. - `watch-time` is the cumulative time in seconds that the user has spent watching your content. You can use the aggregations `average` and `sum` with this metric. - - `ccv` TODO - - `view` TODO + - `ccv`: is the number of concurrent viewers, or users watching at the same time. + - `view`: the total number of viewers until this point in time. required: true style: simple explode: false @@ -12631,8 +12631,8 @@ paths: - `total` calculates the total number of events for the `play` metric. - `average` calculates an average value for the selected metric. - `sum` adds up the total value of the select metric. - - `peak` TODO - - `live` TODO + - `peak` shows the highest value of the `ccv` metric in the timeframe of your request. You can use this aggregation only with the `ccv` metric. + - `live` shows the highest value of the `ccv` metric from the last 20 seconds. You can use this aggregation only with the `ccv` metric. style: simple explode: false required: true @@ -12678,7 +12678,16 @@ paths: - name: unique in: query description: | - TODO + Use this query parameter to control how viewer data is counted: + + - `true` means that a single user watchig multiple times counts as 1 unique viewer + - `false` means that all views count, even if from the same user. + + The API accepts this parameter only when you use the `ccv-peak`, `ccv-average`, or `view` metric. + + Viewers are unique for 1 day. + + The API determines uniqueness based on a viewer's `user-agent` and IP address. This means that the API can filter viewers using multiple tabs to watch the same video multiple times, but cannot filter for viewers who use multiple browsers to watch the same content multiple times. style: form explode: false schema: @@ -12687,7 +12696,11 @@ paths: - name: viewDuration in: query description: | - TODO + Use this query parameter to define how many seconds a view has to last to be counted in analytics data. + + - You can only use this parameter together with the `view` metric. + - The accepted values are `3s`, `5s`, `10s`, and `30s`. + - If you do not set this parameter, the API defaults to `5s`. style: form explode: false schema: @@ -12766,6 +12779,22 @@ paths: status: 400 detail: This field was not expected. name: from:2024-05-20T09:15:05+02:00 + Referrer too long: + description: Occurs when the value of `referrer` in your query is too long. + value: + type: https://docs.api.video/reference/request-invalid-query-parameter + title: A query parameter is invalid. + status: 400 + detail: This value should not contain more than 2048 characters. + name: filterBy[referrer] + Invalid view duration: + description: Occurs when the value of `viewDuration` is incorrect. + value: + type: https://docs.api.video/reference/request-invalid-query-parameter + title: A query parameter is invalid. + status: 400 + detail: This view duration is invalid. Use one of "3s", "5s", "10s", "30s". + name: viewDuration '404': headers: X-RateLimit-Limit: @@ -12903,8 +12932,9 @@ paths: - `start` is the number of times playback was started. - `end` is the number of times playback has ended with the content watch until the end. - `impression` is the number of times your content has been loaded and was ready for playback. - - `ccv-peak` TODO - - `ccv-average` TODO + - `ccv-peak` is the highest number of concurrent viewers in the timeframe of your request. + - `ccv-average` is the average number of concurrent viewers in the timeframe of your request. + - `view` is the total number of viewers until this point in time. required: true style: simple explode: false @@ -12934,7 +12964,7 @@ paths: - `device-type`: Returns analytics based on the type of device used by the viewers. Response values can include: `computer`, `phone`, `tablet`, `tv`, `console`, `wearable`, `unknown`. - `operating-system`: Returns analytics based on the operating system used by the viewers. Response values can include `windows`, `mac osx`, `android`, `ios`, `linux`. - `browser`: Returns analytics based on the browser used by the viewers. Response values can include `chrome`, `firefox`, `edge`, `opera`. - - `referrer`: TODO + - `referrer`: Returns the URL where the view originates from, for example a website where the video is embedded. View events from Android and iOS return empty strings as referrer. style: simple explode: false required: true @@ -13014,7 +13044,16 @@ paths: - name: unique in: query description: | - TODO + Use this query parameter to control how viewer data is counted: + + - `true` means that a single user watchig multiple times counts as 1 unique viewer + - `false` means that all views count, even if from the same user. + + The API accepts this parameter only when you use the `ccv-peak`, `ccv-average`, or `view` metric. + + Viewers are unique for 1 day. + + The API determines uniqueness based on a viewer's `user-agent` and IP address. This means that the API can filter viewers using multiple tabs to watch the same video multiple times, but cannot filter for viewers who use multiple browsers to watch the same content multiple times. style: form explode: false schema: @@ -13023,7 +13062,11 @@ paths: - name: viewDuration in: query description: | - TODO + Use this query parameter to define how many seconds a view has to last to be counted in analytics data. + + - You can only use this parameter together with the `view` metric. + - The accepted values are `3s`, `5s`, `10s`, and `30s`. + - If you do not set this parameter, the API defaults to `5s`. style: form explode: false schema: @@ -13118,6 +13161,22 @@ paths: status: 400 detail: This field was not expected. name: from:2024-05-20T09:15:05+02:00 + Referrer too long: + description: Occurs when the value of `referrer` in your query is too long. + value: + type: https://docs.api.video/reference/request-invalid-query-parameter + title: A query parameter is invalid. + status: 400 + detail: This value should not contain more than 2048 characters. + name: filterBy[referrer] + Invalid view duration: + description: Occurs when the value of `viewDuration` is incorrect. + value: + type: https://docs.api.video/reference/request-invalid-query-parameter + title: A query parameter is invalid. + status: 400 + detail: This view duration is invalid. Use one of "3s", "5s", "10s", "30s". + name: viewDuration '404': headers: X-RateLimit-Limit: @@ -13256,6 +13315,9 @@ paths: - `start` is the number of times playback was started. - `end` is the number of times playback has ended with the content watch until the end. - `impression` is the number of times your content has been loaded and was ready for playback. + - `ccv-peak` is the highest number of concurrent viewers in the timeframe of your request. + - `ccv-average` is the average number of concurrent viewers in the timeframe of your request. + - `view` is the total number of viewers. required: true style: simple explode: false @@ -13300,11 +13362,10 @@ paths: - name: interval in: query description: | - Use this query parameter to define how granularity of the data. Possible values: `minute`, `hour`, `day`. - - - Default: If no interval specified and the period (different between from and to) ≤ 2 days then hour, otherwise day. + Use this query parameter to define the granularity of the data. Possible values: `minute`, `hour`, `day`. - If you do not set a value for `interval`, and the period you set using the `from` and `to` parameters is less than or equals to 2 days, then the default assigned value is `hour`. Otherwise the API sets it to `day`. + - When you set `minute` as interval, the timeframe you define with the `from` and `to` parameters should be less than 60 minutes. style: form explode: false schema: @@ -13349,7 +13410,16 @@ paths: - name: unique in: query description: | - TODO + Use this query parameter to control how viewer data is counted: + + - `true` means that a single user watchig multiple times counts as 1 unique viewer + - `false` means that all views count, even if from the same user. + + The API accepts this parameter only when you use the `ccv-peak`, `ccv-average`, or `view` metric. + + Viewers are unique for 1 day. + + The API determines uniqueness based on a viewer's `user-agent` and IP address. This means that the API can filter viewers using multiple tabs to watch the same video multiple times, but cannot filter for viewers who use multiple browsers to watch the same content multiple times. style: form explode: false schema: @@ -13358,7 +13428,11 @@ paths: - name: viewDuration in: query description: | - TODO + Use this query parameter to define how many seconds a view has to last to be counted in analytics data. + + - You can only use this parameter together with the `view` metric. + - The accepted values are `3s`, `5s`, `10s`, and `30s`. + - If you do not set this parameter, the API defaults to `5s`. style: form explode: false schema: @@ -13457,6 +13531,38 @@ paths: status: 400 detail: This field was not expected. name: from:2024-05-20T09:15:05+02:00 + Invalid interval: + description: Occurs when the value you set for `interval` is not `minute`, `hour`, or `day`. + value: + type: https://docs.api.video/reference/request-invalid-query-parameter + title: A query parameter is invalid. + status: 400 + detail: This interval is invalid. Use one of "minute", "hour", "day". + name: interval + Timeframe does not match interval: + description: Occurs when you set `minute` as interval, and a timeframe that is longer than 60 minutes. + value: + type: https://docs.api.video/reference/request-invalid-query-parameter + title: A query parameter is invalid. + status: 400 + detail: This interval cannot be used with a timeframe over 60 minutes. + name: interval + Referrer too long: + description: Occurs when the value of `referrer` in your query is too long. + value: + type: https://docs.api.video/reference/request-invalid-query-parameter + title: A query parameter is invalid. + status: 400 + detail: This value should not contain more than 2048 characters. + name: filterBy[referrer] + Invalid view duration: + description: Occurs when the value of `viewDuration` is incorrect. + value: + type: https://docs.api.video/reference/request-invalid-query-parameter + title: A query parameter is invalid. + status: 400 + detail: This view duration is invalid. Use one of "3s", "5s", "10s", "30s". + name: viewDuration '404': headers: X-RateLimit-Limit: @@ -15969,7 +16075,7 @@ components: type: object properties: metric: - description: Returns the metric you selected. + description: Returns the metric and relevant parameters you selected. type: string enum: - play @@ -15978,6 +16084,17 @@ components: - impression - impression-time - watch-time + - ccv + - unique-ccv + - view-3 + - view-5 + - view-10 + - view-30 + - unique-view + - unique-view-3 + - unique-view-5 + - unique-view-10 + - unique-view-30 example: impression aggregation: description: Returns the aggregation you selected. @@ -16018,7 +16135,7 @@ components: type: object properties: metric: - description: Returns the metric you selected. + description: Returns the metric and relevant parameters you selected. type: string enum: - play @@ -16026,6 +16143,19 @@ components: - start - end - impression + - ccv-average + - ccv-peak + - unique-ccv-average + - unique-ccv-peak + - view-3 + - view-5 + - view-10 + - view-30 + - unique-view + - unique-view-3 + - unique-view-5 + - unique-view-10 + - unique-view-30 example: impression breakdown: description: Returns the dimension you selected. @@ -16080,7 +16210,7 @@ components: type: object properties: metric: - description: Returns the metric you selected. + description: Returns the metric and relevant parameters you selected. type: string enum: - play @@ -16088,11 +16218,25 @@ components: - start - end - impression + - ccv-average + - ccv-peak + - unique-ccv-average + - unique-ccv-peak + - view-3 + - view-5 + - view-10 + - view-30 + - unique-view + - unique-view-3 + - unique-view-5 + - unique-view-10 + - unique-view-30 example: impression interval: description: Returns the interval you selected. type: string enum: + - minute - hour - day example: day @@ -16111,7 +16255,7 @@ components: format: date-time example: '2024-05-29T11:15:07+00:00' data: - description: Returns an array of metrics and the timestamps . + description: Returns an array of metrics and the timestamps. type: array items: type: object @@ -16445,6 +16589,7 @@ components: - `operatingSystem`: Returns analytics based on the operating system used by the viewers. Response values can include `windows`, `mac osx`, `android`, `ios`, `linux`. - `browser`: Returns analytics based on the browser used by the viewers. Response values can include `chrome`, `firefox`, `edge`, `opera`. - `tag`: Returns analytics for videos using this tag. This filter only accepts a single value and is case sensitive. Read more about tagging your videos [here](https://docs.api.video/vod/tags-metadata). + - `referrer`: Filters data based on the URL where the view is originating from. Accepts an empty string as a value to filter view events where no referrer is available. in: query required: false example: filterBy[country]=FR&filterBy[operatingSystem]=windows&filterBy[browser][]=firefox&filterBy[browser][]=chrome&filterBy[tag]=Cool videos @@ -16500,6 +16645,14 @@ components: type: string description: Returns analytics for videos using this tag. This filter only accepts a single value and is case sensitive. Read more about tagging your videos [here](https://docs.api.video/vod/tags-metadata). example: Cool videos + referrer: + type: array + items: + type: string + format: uri + maxLength: 2048 + description: Filters data based on the URL where the view is originating from. This filter parameter accepts an empty string to filter view events where no referrer is available. + example: ['http://my.list/of-videos'] current-page: name: currentPage in: query From 0d8f0632a660e4d78a87c9f5ae1d7914de0eae53 Mon Sep 17 00:00:00 2001 From: Olivier Lando Date: Fri, 25 Oct 2024 12:09:39 +0200 Subject: [PATCH 3/6] Analytics updates --- oas_apivideo.yaml | 89 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 87 insertions(+), 2 deletions(-) diff --git a/oas_apivideo.yaml b/oas_apivideo.yaml index 35309019..8e28fef1 100644 --- a/oas_apivideo.yaml +++ b/oas_apivideo.yaml @@ -13006,6 +13006,8 @@ paths: - `impression` is the number of times your content has been loaded and was ready for playback. You can use the aggregation `count` with this metric. - `impression-time` is the time in milliseconds that your content was loading for until the first video frame is displayed. You can use the aggregations `average` and `sum` with this metric. - `watch-time` is the cumulative time in seconds that the user has spent watching your content. You can use the aggregations `average` and `sum` with this metric. + - `ccv` TODO + - `view` TODO required: true style: simple explode: false @@ -13018,6 +13020,8 @@ paths: - impression - impression-time - watch-time + - ccv + - view - name: aggregation in: path description: | @@ -13028,6 +13032,8 @@ paths: - `total` calculates the total number of events for the `play` metric. - `average` calculates an average value for the selected metric. - `sum` adds up the total value of the select metric. + - `peak` TODO + - `live` TODO style: simple explode: false required: true @@ -13039,6 +13045,8 @@ paths: - total - average - sum + - peak + - live - name: from in: query description: | @@ -13068,6 +13076,29 @@ paths: type: string format: date-time example: 2024-02-06T00:00:00+01:00 + - name: unique + in: query + description: | + TODO + style: form + explode: false + schema: + type: boolean + example: true + - name: viewDuration + in: query + description: | + TODO + style: form + explode: false + schema: + type: string + enum: + - 3s + - 5s + - 10s + - 30s + example: 5s - $ref: '#/components/parameters/filterBy' responses: '200': @@ -13273,6 +13304,8 @@ paths: - `start` is the number of times playback was started. - `end` is the number of times playback has ended with the content watch until the end. - `impression` is the number of times your content has been loaded and was ready for playback. + - `ccv-peak` TODO + - `ccv-average` TODO required: true style: simple explode: false @@ -13285,6 +13318,9 @@ paths: - start - end - impression + - ccv-peak + - ccv-average + - view - name: breakdown in: path description: | @@ -13299,6 +13335,7 @@ paths: - `device-type`: Returns analytics based on the type of device used by the viewers. Response values can include: `computer`, `phone`, `tablet`, `tv`, `console`, `wearable`, `unknown`. - `operating-system`: Returns analytics based on the operating system used by the viewers. Response values can include `windows`, `mac osx`, `android`, `ios`, `linux`. - `browser`: Returns analytics based on the browser used by the viewers. Response values can include `chrome`, `firefox`, `edge`, `opera`. + - `referrer`: TODO style: simple explode: false required: true @@ -13312,6 +13349,7 @@ paths: - device-type - operating-system - browser + - referrer - name: from in: query description: | @@ -13374,6 +13412,28 @@ paths: - asc - desc example: asc + - name: unique + in: query + description: | + TODO + style: form + explode: false + schema: + type: boolean + example: true + - name: viewDuration + in: query + description: | + TODO + style: form + explode: false + schema: + type: string + enum: + - 3s + - 5s + - 10s + - 30s - $ref: '#/components/parameters/filterBy' - $ref: '#/components/parameters/current-page' - $ref: '#/components/parameters/page-size' @@ -13608,6 +13668,9 @@ paths: - start - end - impression + - ccv-peak + - ccv-average + - view - name: from in: query description: | @@ -13638,7 +13701,7 @@ paths: - name: interval in: query description: | - Use this query parameter to define how granularity of the data. Possible values: `hour`, `day`. + Use this query parameter to define how granularity of the data. Possible values: `minute`, `hour`, `day`. - Default: If no interval specified and the period (different between from and to) ≤ 2 days then hour, otherwise day. @@ -13647,7 +13710,7 @@ paths: explode: false schema: type: string - enum: [hour, day] + enum: [minute, hour, day] example: hour - name: sortBy in: query @@ -13684,6 +13747,28 @@ paths: - asc - desc example: asc + - name: unique + in: query + description: | + TODO + style: form + explode: false + schema: + type: boolean + example: true + - name: viewDuration + in: query + description: | + TODO + style: form + explode: false + schema: + type: string + enum: + - 3s + - 5s + - 10s + - 30s - $ref: '#/components/parameters/filterBy' - $ref: '#/components/parameters/current-page' - $ref: '#/components/parameters/page-size' From dafa1e202bd4148f16b0d2effc5e0daa6d36c6b8 Mon Sep 17 00:00:00 2001 From: szekelyzol Date: Thu, 31 Oct 2024 22:35:39 +0100 Subject: [PATCH 4/6] Add new parameters, descriptions, and examples --- oas_apivideo.yaml | 193 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 173 insertions(+), 20 deletions(-) diff --git a/oas_apivideo.yaml b/oas_apivideo.yaml index 8e28fef1..350e55de 100644 --- a/oas_apivideo.yaml +++ b/oas_apivideo.yaml @@ -13006,8 +13006,8 @@ paths: - `impression` is the number of times your content has been loaded and was ready for playback. You can use the aggregation `count` with this metric. - `impression-time` is the time in milliseconds that your content was loading for until the first video frame is displayed. You can use the aggregations `average` and `sum` with this metric. - `watch-time` is the cumulative time in seconds that the user has spent watching your content. You can use the aggregations `average` and `sum` with this metric. - - `ccv` TODO - - `view` TODO + - `ccv`: is the number of concurrent viewers, or users watching at the same time. + - `view`: the total number of viewers until this point in time. required: true style: simple explode: false @@ -13032,8 +13032,8 @@ paths: - `total` calculates the total number of events for the `play` metric. - `average` calculates an average value for the selected metric. - `sum` adds up the total value of the select metric. - - `peak` TODO - - `live` TODO + - `peak` shows the highest value of the `ccv` metric in the timeframe of your request. You can use this aggregation only with the `ccv` metric. + - `live` shows the highest value of the `ccv` metric from the last 20 seconds. You can use this aggregation only with the `ccv` metric. style: simple explode: false required: true @@ -13079,7 +13079,16 @@ paths: - name: unique in: query description: | - TODO + Use this query parameter to control how viewer data is counted: + + - `true` means that a single user watchig multiple times counts as 1 unique viewer + - `false` means that all views count, even if from the same user. + + The API accepts this parameter only when you use the `ccv-peak`, `ccv-average`, or `view` metric. + + Viewers are unique for 1 day. + + The API determines uniqueness based on a viewer's `user-agent` and IP address. This means that the API can filter viewers using multiple tabs to watch the same video multiple times, but cannot filter for viewers who use multiple browsers to watch the same content multiple times. style: form explode: false schema: @@ -13088,7 +13097,11 @@ paths: - name: viewDuration in: query description: | - TODO + Use this query parameter to define how many seconds a view has to last to be counted in analytics data. + + - You can only use this parameter together with the `view` metric. + - The accepted values are `3s`, `5s`, `10s`, and `30s`. + - If you do not set this parameter, the API defaults to `5s`. style: form explode: false schema: @@ -13167,6 +13180,22 @@ paths: status: 400 detail: This field was not expected. name: from:2024-05-20T09:15:05+02:00 + Referrer too long: + description: Occurs when the value of `referrer` in your query is too long. + value: + type: https://docs.api.video/reference/request-invalid-query-parameter + title: A query parameter is invalid. + status: 400 + detail: This value should not contain more than 2048 characters. + name: filterBy[referrer] + Invalid view duration: + description: Occurs when the value of `viewDuration` is incorrect. + value: + type: https://docs.api.video/reference/request-invalid-query-parameter + title: A query parameter is invalid. + status: 400 + detail: This view duration is invalid. Use one of "3s", "5s", "10s", "30s". + name: viewDuration '404': headers: X-RateLimit-Limit: @@ -13304,8 +13333,9 @@ paths: - `start` is the number of times playback was started. - `end` is the number of times playback has ended with the content watch until the end. - `impression` is the number of times your content has been loaded and was ready for playback. - - `ccv-peak` TODO - - `ccv-average` TODO + - `ccv-peak` is the highest number of concurrent viewers in the timeframe of your request. + - `ccv-average` is the average number of concurrent viewers in the timeframe of your request. + - `view` is the total number of viewers until this point in time. required: true style: simple explode: false @@ -13335,7 +13365,7 @@ paths: - `device-type`: Returns analytics based on the type of device used by the viewers. Response values can include: `computer`, `phone`, `tablet`, `tv`, `console`, `wearable`, `unknown`. - `operating-system`: Returns analytics based on the operating system used by the viewers. Response values can include `windows`, `mac osx`, `android`, `ios`, `linux`. - `browser`: Returns analytics based on the browser used by the viewers. Response values can include `chrome`, `firefox`, `edge`, `opera`. - - `referrer`: TODO + - `referrer`: Returns the URL where the view originates from, for example a website where the video is embedded. View events from Android and iOS return empty strings as referrer. style: simple explode: false required: true @@ -13415,7 +13445,16 @@ paths: - name: unique in: query description: | - TODO + Use this query parameter to control how viewer data is counted: + + - `true` means that a single user watchig multiple times counts as 1 unique viewer + - `false` means that all views count, even if from the same user. + + The API accepts this parameter only when you use the `ccv-peak`, `ccv-average`, or `view` metric. + + Viewers are unique for 1 day. + + The API determines uniqueness based on a viewer's `user-agent` and IP address. This means that the API can filter viewers using multiple tabs to watch the same video multiple times, but cannot filter for viewers who use multiple browsers to watch the same content multiple times. style: form explode: false schema: @@ -13424,7 +13463,11 @@ paths: - name: viewDuration in: query description: | - TODO + Use this query parameter to define how many seconds a view has to last to be counted in analytics data. + + - You can only use this parameter together with the `view` metric. + - The accepted values are `3s`, `5s`, `10s`, and `30s`. + - If you do not set this parameter, the API defaults to `5s`. style: form explode: false schema: @@ -13519,6 +13562,22 @@ paths: status: 400 detail: This field was not expected. name: from:2024-05-20T09:15:05+02:00 + Referrer too long: + description: Occurs when the value of `referrer` in your query is too long. + value: + type: https://docs.api.video/reference/request-invalid-query-parameter + title: A query parameter is invalid. + status: 400 + detail: This value should not contain more than 2048 characters. + name: filterBy[referrer] + Invalid view duration: + description: Occurs when the value of `viewDuration` is incorrect. + value: + type: https://docs.api.video/reference/request-invalid-query-parameter + title: A query parameter is invalid. + status: 400 + detail: This view duration is invalid. Use one of "3s", "5s", "10s", "30s". + name: viewDuration '404': headers: X-RateLimit-Limit: @@ -13657,6 +13716,9 @@ paths: - `start` is the number of times playback was started. - `end` is the number of times playback has ended with the content watch until the end. - `impression` is the number of times your content has been loaded and was ready for playback. + - `ccv-peak` is the highest number of concurrent viewers in the timeframe of your request. + - `ccv-average` is the average number of concurrent viewers in the timeframe of your request. + - `view` is the total number of viewers. required: true style: simple explode: false @@ -13701,11 +13763,10 @@ paths: - name: interval in: query description: | - Use this query parameter to define how granularity of the data. Possible values: `minute`, `hour`, `day`. - - - Default: If no interval specified and the period (different between from and to) ≤ 2 days then hour, otherwise day. + Use this query parameter to define the granularity of the data. Possible values: `minute`, `hour`, `day`. - If you do not set a value for `interval`, and the period you set using the `from` and `to` parameters is less than or equals to 2 days, then the default assigned value is `hour`. Otherwise the API sets it to `day`. + - When you set `minute` as interval, the timeframe you define with the `from` and `to` parameters should be less than 60 minutes. style: form explode: false schema: @@ -13750,7 +13811,16 @@ paths: - name: unique in: query description: | - TODO + Use this query parameter to control how viewer data is counted: + + - `true` means that a single user watchig multiple times counts as 1 unique viewer + - `false` means that all views count, even if from the same user. + + The API accepts this parameter only when you use the `ccv-peak`, `ccv-average`, or `view` metric. + + Viewers are unique for 1 day. + + The API determines uniqueness based on a viewer's `user-agent` and IP address. This means that the API can filter viewers using multiple tabs to watch the same video multiple times, but cannot filter for viewers who use multiple browsers to watch the same content multiple times. style: form explode: false schema: @@ -13759,7 +13829,11 @@ paths: - name: viewDuration in: query description: | - TODO + Use this query parameter to define how many seconds a view has to last to be counted in analytics data. + + - You can only use this parameter together with the `view` metric. + - The accepted values are `3s`, `5s`, `10s`, and `30s`. + - If you do not set this parameter, the API defaults to `5s`. style: form explode: false schema: @@ -13858,6 +13932,38 @@ paths: status: 400 detail: This field was not expected. name: from:2024-05-20T09:15:05+02:00 + Invalid interval: + description: Occurs when the value you set for `interval` is not `minute`, `hour`, or `day`. + value: + type: https://docs.api.video/reference/request-invalid-query-parameter + title: A query parameter is invalid. + status: 400 + detail: This interval is invalid. Use one of "minute", "hour", "day". + name: interval + Timeframe does not match interval: + description: Occurs when you set `minute` as interval, and a timeframe that is longer than 60 minutes. + value: + type: https://docs.api.video/reference/request-invalid-query-parameter + title: A query parameter is invalid. + status: 400 + detail: This interval cannot be used with a timeframe over 60 minutes. + name: interval + Referrer too long: + description: Occurs when the value of `referrer` in your query is too long. + value: + type: https://docs.api.video/reference/request-invalid-query-parameter + title: A query parameter is invalid. + status: 400 + detail: This value should not contain more than 2048 characters. + name: filterBy[referrer] + Invalid view duration: + description: Occurs when the value of `viewDuration` is incorrect. + value: + type: https://docs.api.video/reference/request-invalid-query-parameter + title: A query parameter is invalid. + status: 400 + detail: This view duration is invalid. Use one of "3s", "5s", "10s", "30s". + name: viewDuration '404': headers: X-RateLimit-Limit: @@ -16528,7 +16634,7 @@ components: type: object properties: metric: - description: Returns the metric you selected. + description: Returns the metric and relevant parameters you selected. type: string enum: - play @@ -16537,6 +16643,17 @@ components: - impression - impression-time - watch-time + - ccv + - unique-ccv + - view-3 + - view-5 + - view-10 + - view-30 + - unique-view + - unique-view-3 + - unique-view-5 + - unique-view-10 + - unique-view-30 example: impression aggregation: description: Returns the aggregation you selected. @@ -16577,7 +16694,7 @@ components: type: object properties: metric: - description: Returns the metric you selected. + description: Returns the metric and relevant parameters you selected. type: string enum: - play @@ -16585,6 +16702,19 @@ components: - start - end - impression + - ccv-average + - ccv-peak + - unique-ccv-average + - unique-ccv-peak + - view-3 + - view-5 + - view-10 + - view-30 + - unique-view + - unique-view-3 + - unique-view-5 + - unique-view-10 + - unique-view-30 example: impression breakdown: description: Returns the dimension you selected. @@ -16639,7 +16769,7 @@ components: type: object properties: metric: - description: Returns the metric you selected. + description: Returns the metric and relevant parameters you selected. type: string enum: - play @@ -16647,11 +16777,25 @@ components: - start - end - impression + - ccv-average + - ccv-peak + - unique-ccv-average + - unique-ccv-peak + - view-3 + - view-5 + - view-10 + - view-30 + - unique-view + - unique-view-3 + - unique-view-5 + - unique-view-10 + - unique-view-30 example: impression interval: description: Returns the interval you selected. type: string enum: + - minute - hour - day example: day @@ -16670,7 +16814,7 @@ components: format: date-time example: '2024-05-29T11:15:07+00:00' data: - description: Returns an array of metrics and the timestamps . + description: Returns an array of metrics and the timestamps. type: array items: type: object @@ -17004,6 +17148,7 @@ components: - `operatingSystem`: Returns analytics based on the operating system used by the viewers. Response values can include `windows`, `mac osx`, `android`, `ios`, `linux`. - `browser`: Returns analytics based on the browser used by the viewers. Response values can include `chrome`, `firefox`, `edge`, `opera`. - `tag`: Returns analytics for videos using this tag. This filter only accepts a single value and is case sensitive. Read more about tagging your videos [here](https://docs.api.video/vod/tags-metadata). + - `referrer`: Filters data based on the URL where the view is originating from. Accepts an empty string as a value to filter view events where no referrer is available. in: query required: false example: filterBy[country]=FR&filterBy[operatingSystem]=windows&filterBy[browser][]=firefox&filterBy[browser][]=chrome&filterBy[tag]=Cool videos @@ -17059,6 +17204,14 @@ components: type: string description: Returns analytics for videos using this tag. This filter only accepts a single value and is case sensitive. Read more about tagging your videos [here](https://docs.api.video/vod/tags-metadata). example: Cool videos + referrer: + type: array + items: + type: string + format: uri + maxLength: 2048 + description: Filters data based on the URL where the view is originating from. This filter parameter accepts an empty string to filter view events where no referrer is available. + example: ['http://my.list/of-videos'] current-page: name: currentPage in: query From a496a990332dca4baad6a64b8794173f7961bfe7 Mon Sep 17 00:00:00 2001 From: Olivier Lando Date: Mon, 4 Nov 2024 09:00:43 +0100 Subject: [PATCH 5/6] Bump versions --- config/android.yaml | 2 ++ config/csharp.yaml | 2 ++ config/go.yaml | 2 ++ config/java.yaml | 2 ++ config/nodejs.yaml | 2 ++ config/php.yaml | 2 ++ config/python.yaml | 2 ++ config/swift5.yaml | 2 ++ 8 files changed, 16 insertions(+) diff --git a/config/android.yaml b/config/android.yaml index af13b4fb..45ecdbc5 100644 --- a/config/android.yaml +++ b/config/android.yaml @@ -1,4 +1,6 @@ changelog: + - 1.6.6 (2024-11-04): + - Analytics updates (ccv, views, ...) - 1.6.5 (2024-10-21): - Add summary feature - 1.6.4 (2024-10-08): diff --git a/config/csharp.yaml b/config/csharp.yaml index c1faa6f3..23edc417 100644 --- a/config/csharp.yaml +++ b/config/csharp.yaml @@ -1,4 +1,6 @@ changelog: + - 1.6.6 (2024-11-04): + - Analytics updates (ccv, views, ...) - 1.6.5 (2024-10-21): - Add summary feature - 1.6.4 (2024-10-08): diff --git a/config/go.yaml b/config/go.yaml index e2f639a8..08ee22a2 100644 --- a/config/go.yaml +++ b/config/go.yaml @@ -1,4 +1,6 @@ changelog: + - 1.4.6 (2024-11-04): + - Analytics updates (ccv, views, ...) - 1.4.5 (2024-10-21): - Add summary feature - 1.4.4 (2024-10-08): diff --git a/config/java.yaml b/config/java.yaml index 5fd2b147..927c25f9 100644 --- a/config/java.yaml +++ b/config/java.yaml @@ -1,4 +1,6 @@ changelog: + - 1.4.6 (2024-11-04): + - Analytics updates (ccv, views, ...) - 1.4.5 (2024-10-21): - Add summary feature - 1.4.4 (2024-10-08): diff --git a/config/nodejs.yaml b/config/nodejs.yaml index 6d8d9dc0..f1c1e93a 100644 --- a/config/nodejs.yaml +++ b/config/nodejs.yaml @@ -1,4 +1,6 @@ changelog: + - 2.6.7 (2024-11-04): + - Analytics updates (ccv, views, ...) - 2.6.6 (2024-10-21): - Add summary feature - 2.6.5 (2024-10-17): diff --git a/config/php.yaml b/config/php.yaml index abbcac8b..a994fee6 100644 --- a/config/php.yaml +++ b/config/php.yaml @@ -1,4 +1,6 @@ changelog: + - 1.4.6 (2024-11-04): + - Analytics updates (ccv, views, ...) - 1.4.5 (2024-10-21): - Add summary feature - 1.4.4 (2024-10-08): diff --git a/config/python.yaml b/config/python.yaml index abb449df..efdc3235 100644 --- a/config/python.yaml +++ b/config/python.yaml @@ -1,4 +1,6 @@ changelog: + - 1.4.6 (2024-11-04): + - Analytics updates (ccv, views, ...) - 1.4.5 (2024-10-21): - Add summary feature - 1.4.4 (2024-10-08): diff --git a/config/swift5.yaml b/config/swift5.yaml index 6d2c9e74..fa500761 100644 --- a/config/swift5.yaml +++ b/config/swift5.yaml @@ -1,4 +1,6 @@ changelog: + - 1.3.6 (2024-11-04): + - Analytics updates (ccv, views, ...) - 1.3.5 (2024-10-21): - Add summary feature - Add support for Alamofire 5.10 From 8ae27568d3f6d9ee659e7dd6ac89e8c64a298928 Mon Sep 17 00:00:00 2001 From: szekelyzol Date: Mon, 4 Nov 2024 15:39:25 +0100 Subject: [PATCH 6/6] Review fixes --- oas_apivideo.yaml | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/oas_apivideo.yaml b/oas_apivideo.yaml index 350e55de..6d45fd19 100644 --- a/oas_apivideo.yaml +++ b/oas_apivideo.yaml @@ -13081,10 +13081,10 @@ paths: description: | Use this query parameter to control how viewer data is counted: - - `true` means that a single user watchig multiple times counts as 1 unique viewer + - `true` means that a single user watching multiple times counts as 1 unique viewer - `false` means that all views count, even if from the same user. - The API accepts this parameter only when you use the `ccv-peak`, `ccv-average`, or `view` metric. + The API accepts this parameter only when you use the `ccv` or `view` metric. Viewers are unique for 1 day. @@ -13099,7 +13099,7 @@ paths: description: | Use this query parameter to define how many seconds a view has to last to be counted in analytics data. - - You can only use this parameter together with the `view` metric. + - You can only use this parameter with the `view` metric. - The accepted values are `3s`, `5s`, `10s`, and `30s`. - If you do not set this parameter, the API defaults to `5s`. style: form @@ -13365,7 +13365,7 @@ paths: - `device-type`: Returns analytics based on the type of device used by the viewers. Response values can include: `computer`, `phone`, `tablet`, `tv`, `console`, `wearable`, `unknown`. - `operating-system`: Returns analytics based on the operating system used by the viewers. Response values can include `windows`, `mac osx`, `android`, `ios`, `linux`. - `browser`: Returns analytics based on the browser used by the viewers. Response values can include `chrome`, `firefox`, `edge`, `opera`. - - `referrer`: Returns the URL where the view originates from, for example a website where the video is embedded. View events from Android and iOS return empty strings as referrer. + - `referrer`: Returns the URL where the view originates from, for example a website where the video is embedded. View events from Android and iOS return empty strings as the value for `referrer`. style: simple explode: false required: true @@ -13447,7 +13447,7 @@ paths: description: | Use this query parameter to control how viewer data is counted: - - `true` means that a single user watchig multiple times counts as 1 unique viewer + - `true` means that a single user watching multiple times counts as 1 unique viewer - `false` means that all views count, even if from the same user. The API accepts this parameter only when you use the `ccv-peak`, `ccv-average`, or `view` metric. @@ -13766,7 +13766,7 @@ paths: Use this query parameter to define the granularity of the data. Possible values: `minute`, `hour`, `day`. - If you do not set a value for `interval`, and the period you set using the `from` and `to` parameters is less than or equals to 2 days, then the default assigned value is `hour`. Otherwise the API sets it to `day`. - - When you set `minute` as interval, the timeframe you define with the `from` and `to` parameters should be less than 60 minutes. + - When you set `minute` as interval, the timeframe you define with the `from` and `to` parameters must be less than 60 minutes. style: form explode: false schema: @@ -13813,7 +13813,7 @@ paths: description: | Use this query parameter to control how viewer data is counted: - - `true` means that a single user watchig multiple times counts as 1 unique viewer + - `true` means that a single user watching multiple times counts as 1 unique viewer - `false` means that all views count, even if from the same user. The API accepts this parameter only when you use the `ccv-peak`, `ccv-average`, or `view` metric. @@ -17210,8 +17210,12 @@ components: type: string format: uri maxLength: 2048 - description: Filters data based on the URL where the view is originating from. This filter parameter accepts an empty string to filter view events where no referrer is available. - example: ['http://my.list/of-videos'] + description: |- + Filters data based on the URL where the view is originating from. This filter parameter accepts an empty string to filter view events where no referrer is available. + + - The API filters for exact matches. Include the trailing `/` characters if needed. + - The URLs you add must be URL encoded. + example: ['https%3A%2F%2Fmy-awesome-videos.com'] current-page: name: currentPage in: query