Waiting Room Analytics は、待機室を通過するトラフィックを、待機室の設定と比べた過去の傾向として示します。データは過去 30 日間保存されます。
Waiting Room Analytics では、次のことができます。
- 待機室を通り、サイトへ入るピーク時のトラフィックを評価する。
- ユーザーが待機室でどれだけ待ったかを把握する。
- 分析を使って、待機室の設定を調整する。
ダッシュボードで待機室の分析を開く手順は次のとおりです。
-
Cloudflare ダッシュボードで Waiting Room ページを開きます。
Waiting Room を開く ↗ -
指標を確認したい待機室の行を展開し、分析のプレビューを表示します。プレビューでは、直近 24 時間のピークトラフィックとして、Maximum active users、Maximum queued users、キューに入ったユーザーの Typical time in queue がわかります。
-
Waiting Room Analytics セクションの View More を選択し、その待機室のより長い期間の分析を開きます。
-
表示されるすべての指標の期間は、デフォルトで直近 24 時間です。期間を変えるにはドロップダウンから選びます。過去 30 日以内で、最短 30 分以上の任意の範囲を選べます。
待機室に完了済みのスケジュールイベントがある場合は、対象の待機室の行を展開し、イベント時刻を選択すると、そのイベントの分析へすぐ移動できます。リンクを開くと、その待機室の分析ビューになり、事前キュー期間からイベント終了までの情報が含まれます。
このイベント情報を残すには、Download data または Print report を選択します。イベントを削除すると、ダッシュボードから期間リンクは消えます。イベントの時刻を編集すると、期間リンクも更新されます。
イベントの分析へのリンクが出ない場合は、次のいずれかです。
- イベントがまだ始まっていない。
- イベント開始が 30 日より前。
Analytics ダッシュボードで使える指標と、その算出方法です。
キュー内の滞在時間の要約値は、キューに入ったユーザーがアプリケーションへ入るまでに待った時間を示し、体験の目安になります。選択した期間について、典型的なユーザーの待ち時間と、最も長く待ったユーザーの待ち時間を表示します。これらの値は、待機室の設定と流入トラフィックが待ち時間に与えた影響の指標です。
待ち時間が想定より長く、変更しても問題ない場合は、次のいずれか、またはすべてを検討できます。
- 設定値
total_active_usersを上げる。 - 設定値
new_users_per_minuteを上げる。 session_durationを下げる。- セッション更新を無効にする。
オリジン上の滞在時間の要約値は、待機室の対象ページで、ユーザーが離脱するまでに過ごした時間の推定です。選択した期間について、典型的なユーザーの推定滞在時間と、サイト上で最も長く過ごしたユーザーの滞在時間を確認できます。セッション更新が無効で、アクティブなキューがない場合、ユーザーには session_duration 分ごとに新しい待機室セッションが発行されます。そのため、複数セッションにわたって滞在していることがあります。これらのユーザーのオリジン上の滞在時間は、セッションが切れるたびにリセットされます。
オリジン上の滞在時間の値から、次のような判断ができます。
次に当てはまる場合は、セッション時間を延ばしてサブリクエストの余裕を持たせる、またはセッション更新を有効にすることを検討できます。
- セッション更新が無効である。
- 待ち時間が長いアクティブなキューが頻繁に発生する。
- 典型的なオリジン上の滞在時間が、設定したセッション時間のおよそ 70% である。
これらは、ユーザーがサイト上で目的の作業を終えるのに、もっと時間が必要な兆候です。
次に当てはまる場合は、セッション時間を短くする、またはセッション更新を無効にすることを検討できます。
- 上位 5% のオリジン上の滞在時間が、設定したセッション時間の 70% 未満である。
- キュー時間が長く、トラフィック上限は上げたくない。
これらは、ユーザーがサイト上でそれほど時間を必要としておらず、オリジン上の枠を占有している兆候です。
Active users チャートは時系列で、待機室の対象 URL 上の最大アクティブユーザー数と、最大キュー内ユーザー数を表示します。これらの値は、設定したアクティブユーザーの目標しきい値と比べて示します。
新しいユーザーとは、待機室の対象 URL への新規リクエストです。リクエストに待機室クッキーが付いていない場合、Waiting Room はそのリクエストを新規と数えます。リクエスト後に待機室クッキーを発行します。アクティブなキューがある場合、そのユーザーはキュー内ユーザーになります。キューを抜けてサイトへ入るとアクティブユーザーになり、待機室 URL へ少なくとも session_duration 分に 1 回 HTTP リクエストを送り続ける限り、アクティブのままです。
ピークトラフィックを見つけるには、30 日など長い期間を選びます。詳しく見たい区間の左右をドラッグしてズームインします。各棒が 1 分間隔になるまで拡大できます。ページ上のほかの指標も、選択した期間のデータに合わせて自動更新されます。
ある時点の詳細を見るには、グラフの棒にカーソルを合わせます。その棒が表す期間について、次のツールチップが表示されます。
- 到達した最大アクティブユーザー数
- 到達した最大キュー内ユーザー数
- 設定したアクティブユーザーの目標値
設定上限より下でもキューが発生することがあり、アクティブユーザーが設定上限を超えることもあります。詳しくは キューの発動 を参照してください。
New users per minute チャートは、待機室を通ってオリジンへ進んだ 1 分あたりの新規ユーザー数を、設定した New users per minute の目標しきい値と比べて示します。Active users チャートと同様に、見たい期間の左右をハイライトしてズームインでき、ほかのチャートと要約値も更新されます。ズームアウトすると各データポイントは平均化されます。そのため、ズームインすると値が変動することがあります。
Turnstile widget traffic チャートは、1 分あたりに発行されたチャレンジ数と、それらのチャレンジで見たトラフィックの内訳を示します。トラフィックは次の 3 つの区分です。
- Likely Human - 正常に解けたチャレンジの数です。
- Likely Bots - 解けなかったチャレンジの数です。
- Bots - 失敗したチャレンジの数です。
待機室で infinite queue オプションが有効な場合は、無限キュー内のボットからの更新リクエスト数を表す線がグラフに表示されます。
Waiting Room の分析データは GraphQL API で照会できます。Waiting Room analytics は待機室をほぼリアルタイムで把握でき、アプリケーションへのトラフィックと、設定した上限に沿った管理の様子を可視化できます。
はじめに使えるクエリの例です。
一定期間の total active users と new users per minute の値を取得する。
指標値を取得するシンプルなクエリです。ゾーンタグでデータを絞り、waitingRoomAnalyticsAdaptive データセットを照会します。この例では 2 つの指標だけに適用していますが、スキーマを確認し、集計メソッドを使わずに GraphQL データセットから生の値を取得できます。
{
viewer {
zones(filter: {zoneTag: "example-zone"}) {
waitingRoomAnalyticsAdaptive(limit: 3, filter: {datetime_gt: "2023-03-05T19:14:30Z", datetime_lt: "2023-03-07T19:13:00Z", waitingRoomId: "example-waiting-room-id"}) {
totalActiveUsers
newUsersPerMinutes
}
}
}{
"data": {
"viewer": {
"zones": [
{
"waitingRoomAnalyticsAdaptive": [
{
"newUsersPerMinute": 77,
"totalActiveUsers": 1023
},
{
"newUsersPerMinute": 113,
"totalActiveUsers": 1009
},
{
"newUsersPerMinute": 99,
"totalActiveUsers": 927
}
]
}
]
}
},
"errors": null
}一定期間の total active users と new users per minute の平均を求め、15 分単位で集計する。
このクエリは、total active users と new users per minute の平均を計算します。時間次元は 15 分なので、選択した期間のデータを 15 分ごとに集計します。
{
viewer {
zones(filter: {zoneTag: "example-zone"}) {
waitingRoomAnalyticsAdaptiveGroups(limit: 10, filter: {datetime_geq: "2023-03-15T04:00:00Z", datetime_leq: "2023-03-15T04:45:00Z", waitingRoomId: "example-waiting-room-id"}, orderBy: [datetimeFifteenMinutes_ASC]) {
avg {
totalActiveUsers
newUsersPerMinute
}
dimensions {
datetimeFifteenMinutes
}
}{
"data": {
"viewer": {
"zones": [
{
"waitingRoomAnalyticsAdaptiveGroups": [
{
"avg": {
"newUsersPerMinute": 119,
"totalActiveUsers": 1180
},
"dimensions": {
"datetimeFifteenMinutes": "2023-03-15T04:00:00Z"
}
},
{
"avg": {
"newUsersPerMinute": 146,
"totalActiveUsers": 961
},
"dimensions": {
"datetimeFifteenMinutes": "2023-03-15T04:15:00Z"
}
},
{
"avg": {
"newUsersPerMinute": 144,
"totalActiveUsers": 1015
},
"dimensions": {
"datetimeFifteenMinutes": "2023-03-15T04:30:00Z"
}
}
]
}
]
}
},
"errors": null
}一定期間のオリジン上の滞在時間(50 パーセンタイル)と合計待ち時間(90 パーセンタイル)の加重平均を求め、1 時間単位で集計する。
このクエリは、一定期間の指標の加重平均を 1 時間ごとに集計します。
{
viewer {
zones(filter: {zoneTag: "example-zone"}) {
waitingRoomAnalyticsAdaptiveGroups(limit: 10, filter: {datetime_geq: "2023-03-15T04:00:00Z", datetime_leq: "2023-03-15T04:45:00Z", waitingRoomId: "example-waiting-room-id"}, orderBy: [datetimeHour_ASC]) {
avgWeighted {
timeOnOriginP50
totalTimeWaitedP90
}
dimensions {
datetimeHour
}
}{
"data": {
"viewer": {
"zones": [
{
"waitingRoomAnalyticsAdaptiveGroups": [
{
"avgWeighted": {
"timeOnOriginP50": 99.19,
"totalTimeWaitedP90": 1625.63
},
"dimensions": {
"datetimeHour": "2023-03-15T04:00:00Z"
}
}
]
}
]
}
},
"errors": null
}待機室の過去データが見えない場合は、次のいずれかが当てはまります。
- 確認している期間に、待機室へトラフィックが届いていなかった。
- 確認している期間に、待機室が有効でなかった。