RUM ビーコンは、Cloudflare のお客様が Web Analytics または Observatory で RUM を有効にすると動作する JavaScript スニペットです。このスクリプトは、ユーザーがお客様のサイトを訪れたときにブラウザで実行され、ページ読み込み時間などのパフォーマンス関連データを収集して、Cloudflare のシステムへ送信して処理します。この データ はお客様に提示され、ウェブサイトのパフォーマンスと利用状況の把握に役立ちます。
RUM ビーコンのスクリプトは、次の 2 通りの方法でウェブページに有効にできます。
-
ワンクリックセットアップ: Cloudflare でプロキシしているサイト で Web Analytics が有効な場合、自動挿入オプションを有効にするだけで、HTML レスポンスが Cloudflare のエッジネットワークを経由してブラウザへ届くときに、スニペットをページへ 自動で 挿入できます。
-
手動セットアップ: ウェブサイトは、ページにコードスニペットを埋め込むことで、スクリプトを 手動で 追加できます。HTML へスニペットを手動挿入する方法は、Cloudflare でプロキシしていないサイト を参照してください。
ブラウザへダウンロードされると、RUM ビーコンのスクリプトはブラウザ上で JavaScript として実行されます。ブラウザの API ↗ からパフォーマンスデータを収集し、処理のため Cloudflare へ送信します。
ブラウザから収集するデータは、次の表のとおりです。
| フィールド | 例 | 説明 | 収集方法 |
|---|---|---|---|
pageloadId |
0c698922-8d60-40bf-85ac-7982b5f8034d | ページの一意の ID。 | ブラウザ側のコードで生成します。 |
referrer |
https://cfrumtest.com/ ↗ | 参照元ページの URL。 | マルチページアプリケーション(MPA)の場合は document.referrer ↗ から生成します。シングルページアプリケーション(SPA)の場合は、ビーコンコード内のメモリ上の変数に保存した直前の URL から生成します。 |
startTime |
1693488419352 | パフォーマンス関連タイムスタンプの基準。 | performance.timeOrigin ↗ |
memory |
{ totalJSHeapSize: 39973671, usedJSHeapSize: 39127515, jsHeapSizeLimit: 4294705152 } |
メモリヒープサイズを計測します。 | performance.memory ↗(非推奨) |
timings |
PerformanceTiming ↗ のオブジェクト | タイミングデータ。 | performance.timing ↗(非推奨。timingV2 が使えないときのフォールバック) |
timingV2 |
PerformanceNavigationTiming ↗ の配列 | ナビゲーションタイミングデータ。 | performance.getEntriesByType("navigation") ↗ |
resources |
PerformanceResourceTiming ↗ の配列 | リソースタイミングデータ。 | performance.getEntriesByType("resource") ↗ |
firstPaint |
PerformancePaintTiming ↗ の配列 | ペイントタイミングデータ。 | performance.getEntriesByType("paint") ↗ |
firstContentfulPaint |
209 | First Contentful Paint メトリクス。 | web-vitals モジュール ↗ 1 |
FCP |
209 | First Contentful Paint メトリクス。 | web-vitals モジュール ↗ 1 |
LCP |
209 | Largest Contentful Paint メトリクス。 | web-vitals モジュール ↗ 1 |
CLS |
0.001 | Cumulative Layout Shift メトリクス。 | web-vitals モジュール ↗ 1 |
TTFB |
0.03 | Time to First Byte メトリクス。 | web-vitals モジュール ↗ 1 |
INP |
1.23 | Interaction to Next Paint メトリクス。 | web-vitals モジュール ↗ 1 |
landingPath |
https://cfrumtest.com/ ↗ | ランディングページの URL。 | performance.getEntriesByType("navigation") ↗ |
RUM データは通常、着信リクエストのルーティング先に基づき、最も近い Cloudflare データセンターで処理されます。ルーティングは Anycast ↗ や Unimog ↗ などを含む複数の要因で決まります。RUM データは位置情報サービスを使わないため、発生元とは別の国またはリージョンで処理されることがあります。RUM サービスは通常の HTTP リクエスト処理の一環としてビーコンからクライアント/送信元 IP アドレスを受け取りますが、最も近い Cloudflare データセンターでその IP アドレスを破棄し、コアデータベースやログには保存しません。
RUM ビーコンのスクリプトは、ブラウザにデータを保存せず、Cookie ↗、localStorage ↗、sessionStorage ↗、IP アドレス、IndexedDB ↗ などのストレージデータにもアクセスしません。収集するのは、ブラウザのパフォーマンス API ↗ からのパフォーマンスデータです。このパフォーマンスデータは一時的で、現在表示しているウェブページにのみ関係します。ユーザーがブラウザを更新すると、それまでのパフォーマンスデータはなくなり、新しいパフォーマンスデータが使えるようになります。このデータはデバイス上のどこにも保存・参照されず、メモリ上のデータとしてのみ存在します。
お客様は RUM をグローバルに有効にするか、EEA/EU 内の Cloudflare データセンターに接続するユーザーを除外するかを選べます。後者を選ぶと、RUM ビーコンは次の国(ISO コード)にある Cloudflare データセンターへ接続するユーザーのパフォーマンスデータを処理しません。AT、BE、BG、HR、CY、CZ、DK、EE、FI、FR、DE、GR、HU、IS、IE、IT、LV、LI、LT、LU、MT、NL、NO、PL、PT、RO、SK、SI、ES、SE、CH、GB。
Free プランのお客様は、EU トラフィックを除外した状態で RUM が自動で有効になります。不要な場合はオフにできます。ほかのプランのお客様は、必要に応じて RUM を有効にできます。
