コンテンツにスキップ

GraphQL アナリティクス API

Stream は、以下に説明する GraphQL API を介して、ライブビデオおよび Stream にアップロードされたビデオに関するアナリティクスを提供します。また、Stream ダッシュボードでも確認できます。

Stream アナリティクス API は、Cloudflare の GraphQL アナリティクス API を使用しており、さまざまな Cloudflare 製品で利用できます。GraphQL、レート制限、フィルター、およびソートについての詳細は、Cloudflare GraphQL アナリティクス API ドキュメントを参照してください。

はじめに

  1. アカウントアナリティクスの権限を持つCloudflare API トークンを生成します。
  2. お好みの GraphQL クライアントを使用して最初のクエリを実行します。Postman には、最初のクエリを実行し、GraphQL スキーマを調査して可能なことを理解するのに役立つ組み込みの GraphQL クライアントがあります。

利用可能なメトリクス、ディメンション、フィールド、およびサンプルクエリについては、以下のセクションを参照してください。

サーバーサイドアナリティクス

Stream は、HLS または DASH を介して再生されるすべてのライブおよびオンデマンドビデオの視聴者に配信されたビデオの分数に関するデータを収集します。Stream Player を使用しているかどうかに関係なく、データが収集されます。

フィルターとディメンション

FieldDescription
date日付
datetime日時
uidビデオの UID
clientCountryNameビデオを視聴したクライアントの ISO 3166 alpha2 国コード
creator個々のビデオに関連付けられたクリエイター ID(存在する場合)

date のような一部のフィルターは、以下の例のクエリに示すように、gt(より大きい)や lt(より小さい)などの演算子と一緒に使用できます。より高度なフィルタリングオプションについては、フィルタリングを参照してください。

メトリクス

NodeFieldDescription
streamMinutesViewedAdaptiveGroupsminutesViewed配信されたビデオの分数

国別の視聴分数を取得

GraphQL リクエスト
query {
viewer {
accounts(filter:{
accountTag:"<ACCOUNT_ID>"
}) {
streamMinutesViewedAdaptiveGroups(
filter: {
date_geq: "2022-02-01"
date_lt: "2022-03-01"
}
orderBy:[sum_minutesViewed_DESC]
limit: 100
) {
sum {
minutesViewed
}
dimensions{
uid
clientCountryName
}
}
}
}
}
GraphQL レスポンス
{
"data": {
"viewer": {
"accounts": [
{
"streamMinutesViewedAdaptiveGroups": [
{
"dimensions": {
"clientCountryName": "US",
"uid": "73c514082b154945a753d0011e9d7525"
},
"sum": {
"minutesViewed": 2234
}
},
{
"dimensions": {
"clientCountryName": "CN",
"uid": "73c514082b154945a753d0011e9d7525"
},
"sum": {
"minutesViewed": 700
}
},
{
"dimensions": {
"clientCountryName": "IN",
"uid": "73c514082b154945a753d0011e9d7525"
},
"sum": {
"minutesViewed": 553
}
}
]
}
]
}
},
"errors": null
}

ページネーション

GraphQL API はシークページネーションをサポートしています。フィルターを使用して、最後のビデオ UID を指定することで、レスポンスには最後のビデオ UID の後のデータのみが含まれます。

以下のクエリは、ビデオ UID 5646153f8dea17f44d542a42e76cfd に続く 2 つのビデオのデータを返します。

GraphQL クエリ
query {
viewer {
accounts(filter:{
accountTag:"6c04ee5623f70a112c8f488e4c7a2409"
}) {
videoPlaybackEventsAdaptiveGroups(
filter: {
date_geq: "2020-09-01"
date_lt: "2020-09-25"
uid_gt:"5646153f8dea17f44d542a42e76cfd"
}
orderBy:[uid_ASC]
limit: 2
) {
count
sum {
timeViewedMinutes
}
dimensions{
uid
}
}
}
}
}

ページネーションを実装する手順は以下の通りです。

  1. uid_gt フィルターなしで最初のクエリを呼び出して最初のビデオセットを取得します。
  2. 最初のクエリのレスポンスから最後のビデオ UID を取得します。
  3. uid_gt プロパティを指定し、最後のビデオ UID に設定して次のクエリを呼び出します。これにより、次のビデオセットが返されます。

ページネーションの詳細については、Cloudflare GraphQL アナリティクス API ドキュメントを参照してください。

制限事項

  • 単一のクエリでの最大クエリ間隔は 31 日です。
  • 最大データ保持期間は 90 日です。