Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

GraphQL Analytics API

最終更新 Markdown で表示Agent セットアップ

Stream は、ライブ動画と Stream にアップロードした動画の両方について、次の GraphQL API と、Cloudflare ダッシュボードの Stream Analytics ページでアナリティクスを提供します。

Analytics を開く ↗

Stream Analytics API は Cloudflare GraphQL Analytics API を使います。この API は多くの Cloudflare 製品で共通です。GraphQL、レート制限、フィルター、ソートの詳細は Cloudflare GraphQL Analytics API のドキュメント を参照してください。

はじめに

  1. Cloudflare ダッシュボードで Account API tokens ページを開きます。

    Account API tokens を開く ↗
  2. Account Analytics 権限付きの API トークンを発行します。

  3. 任意の GraphQL クライアントで最初のクエリを実行します。Postman には組み込みの GraphQL クライアントがあり、最初のクエリ実行と、GraphQL スキーマのイントロスペクションに使えます。

利用できる指標、ディメンション、フィールド、クエリ例は、以降のセクションを参照してください。

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

Stream は、Stream Player を使うかどうかにかかわらず、HLS または DASH で再生されたすべてのライブ動画とオンデマンド動画について、視聴者へ配信した動画の分数を収集します。

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

Field Description
date 日付
datetime DateTime
uid 動画の UID
clientCountryName 動画を視聴したクライアントの ISO 3166 alpha2 国コード
creator 各動画に関連付けられた Creator ID(ある場合)

date などの一部のフィルターは、下のクエリ例のように gt(より大きい)や lt(より小さい)などの演算子と組み合わせて使えます。より高度なフィルターは フィルタリング を参照してください。

指標

Node Field Description
streamMinutesViewedAdaptiveGroups minutesViewed 配信した動画の分数

国別の視聴分数を取得する

GraphQL requestgraphql
query StreamGetMinutesExample($accountTag: string!, $start: Date, $end: Date) {
	viewer {
		accounts(filter: { accountTag: $accountTag }) {
			streamMinutesViewedAdaptiveGroups(
				filter: { date_geq: $start, date_lt: $end }
				orderBy: [sum_minutesViewed_DESC]
				limit: 100
			) {
				sum {
					minutesViewed
				}
				dimensions {
					uid
					clientCountryName
				}
			}
		}
	}
}
GraphQL responsejson
{
	"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 querygraphql
query StreamPaginationExample(
	$accountTag: string!
	$start: Date
	$end: Date
	$uId: string
) {
	viewer {
		accounts(filter: { accountTag: $accountTag }) {
			videoPlaybackEventsAdaptiveGroups(
				filter: { date_geq: $start, date_lt: $end, uid_gt: $uId }
				orderBy: [uid_ASC]
				limit: 2
			) {
				count
				sum {
					timeViewedMinutes
				}
				dimensions {
					uid
				}
			}
		}
	}
}

ページネーションの実装手順は次のとおりです。

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

ページネーションの詳細は Cloudflare GraphQL Analytics API のドキュメント を参照してください。

制限

  • 1 回のクエリで指定できる最大照会期間は 31 日です
  • データの最大保持期間は 90 日です

役に立ちましたか?