よくある質問への回答です。探している回答が見つからない場合は、コミュニティページ ↗ でほかの情報も確認してください。
ウェブサイトに Beacon を追加してページを読み込むと、is not allowed by Access-Control-Allow-Origin(CORS)を含むエラーが出ます。何が起きていますか?
このエラーは通常、分析を読み込むサイトのホスト名と、ダッシュボードで設定した分析サイト名が一致しないときに発生します。両方が同一かを再確認してください。
Cloudflare はホスト名を末尾一致で照合します。たとえば example.com に分析を設定すると、www.example.com、blog.staging.example.com、fooexample.com からの分析は許可します。一方、example.com.br からの分析は許可しません。
サイトが Referer または Origin ヘッダーを送っていない場合にも、このエラーが出ることがあります。Referer ヘッダーは必須です(代わりに Referrer-policy ヘッダーを使わないでください)。現在、Origin ヘッダーのみを必須にする変更を進めています。ブラウザー側でこれを無効にする方法はないと考えています。
Cloudflare は、これらのサービスが分析 Beacon をブロックすることを把握しています。
Cloudflare Web Analytics は JavaScript Beacon を使いますが、Cloudflare のエッジ分析はブロックできません。受信したすべてのリクエストを計測できるためです。エッジ分析は、Cloudflare 経由でトラフィックをプロキシしているすべてのお客様が使えます。現在、Pro、Business、Enterprise プランのユーザーは、エッジログを使った高度な Web 分析を利用できます。
シングルページアプリでルートが変わるたびに、変更前のルートの計測値が Beacon エンドポイントへ送られます。最後のルート変更の計測値は、ユーザーがタブを離れるか、ブラウザーウィンドウを閉じたときに送られます。そのとき visibilityState が hidden になります。そのタイミングで Beacon JS は Navigator.sendBeacon メソッド ↗ でペイロードを送ります。ブラウザーウィンドウを閉じても、通常はキャンセルされません。ただし互換性のため、古いブラウザーは AJAX(XmlHttpRequest)にフォールバックします。こちらはウィンドウを閉じるとキャンセルされるため、Beacon エンドポイントへ送る最後のペイロードが失われることがあります。また、ネットワーク状況によっては、ペイロード送信時にデータ損失が起きることもあります。
Rules で計測対象ページを制御していない場合、自動セットアップ はゾーン配下のすべてのページ(サブドメイン)に JS スニペットを挿入します。
手動セットアップ を使った場合は、JS スニペットを描画するページだけが報告されます。
Cache-Control ヘッダーが public, no-transform に設定されていると、Cloudflare プロキシはサイトの元のペイロードを変更できません。そのため Beacon スクリプトは自動挿入されず、Web Analytics は動作しません。詳しくは Origin cache control を参照してください。
/cdn-cgi/rum エンドポイントは、データ取り込みに POST リクエストだけを受け付けます。ほかの HTTP メソッド(GET、PUT、DELETE など)で送ると、エンドポイントは 405 Method Not Allowed を返し、Allow: POST, OPTIONS ヘッダーを付けます(OPTIONS は CORS ↗ 対応のため許可しています)。
Web Analytics の Beacon(beacon.min.js)は、指標の報告に常に POST を使います。ログに 405 エラーが出る場合、そのリクエストは Beacon 自体からのものではありません。
多くの場合、誤ったリクエストを送る自動テストツールが原因です。その場合は POST を使うよう修正するか、エラーを無視してください。
このエンドポイントへのカスタム連携はサポートしていません。すべてのリクエストは、当社の Beacon JavaScript から送る必要があります。
Internet Explorer 11 は Internet Explorer の最終バージョンで、2022 年に完全にサポート終了(EOL) ↗ になりました。
Beacon スクリプトは現行の構文を対象としており、Internet Explorer は対応していません。スクリプトの実行時に、ユーザーには見えないエラーが発生します。機能上の影響は、これらの古いブラウザーから Beacon が収集されないことだけです。
自動挿入を使う場合、Cloudflare は <script> タグに type="module" を付け、Internet Explorer および同様に非推奨の古いブラウザーでの読み込みを防ぎます。
手動埋め込みを使う場合は、<script> タグに自分で type="module" を追加してください。ダッシュボードのインストール手順にも、この属性を含めています。
追加できますが、必須ではありません。Cloudflare Web Analytics は、主に Cloudflare のプロキシを使わずに Web トラフィックを計測するお客様向けです。
既存の Cloudflare のお客様は、ダッシュボードの Analytics タブで、エッジから収集した分析を確認できます。JavaScript でパフォーマンスを計測するために、Web Analytics を有効にすることもできます。
Cloudflare 経由でプロキシしているドメインで 自動セットアップ を使うと、自ドメインの /cdn-cgi/rum エンドポイントに統計が送られます。JS スニペットを自分で入れた場合(手動セットアップ)は、cloudflareinsights.com/cdn-cgi/rum エンドポイントに送られます。
はい。タグマネージャーで次のように埋め込む代わりに:
<script
type="module"
src="https://static.cloudflareinsights.com/beacon.min.js"
data-cf-beacon='{"token": "$SITE_TOKEN"}'
></script>次のスクリプトを追加します。
<script
type="module"
src="https://static.cloudflareinsights.com/beacon.min.js?token=$SITE_TOKEN"
></script>サイトで Content Security Policy(CSP)を使っている場合は、この HTTP ヘッダーにエントリを追加し、ブラウザーが Beacon スクリプトをダウンロードして Cloudflare へ Beacon を送れるようにする必要があります。
警告: CSP の変更は、本番環境へ出す前にテスト環境で必ず検証してください。先に Content Security Rules ↗ を使うか、Content-Security-Policy-Report-Only で試すことを検討してください。
まず、script-src ディレクティブにスクリプトを追加し、実行を許可します。
script-src [...existing values...] https://static.cloudflareinsights.com/beacon.min.js注記: 上の Google Tag Manager の例のようにスクリプト URL にクエリ文字列がある場合は、その URL も含めてください。例: script-src [...existing values...] https://static.cloudflareinsights.com/beacon.min.js?token=$SITE_TOKEN
次に、Beacon データを送るエンドポイントも許可します。
自動挿入の場合、同じドメインになるため、connect-src に 'self' を含めてください。
connect-src [...existing values...] 'self'手動埋め込みの場合、このスクリプトは代わりに cloudflareinsights.com に接続します。そちらを含めてください。
connect-src [...existing values...] cloudflareinsights.com自動挿入(上記の手動埋め込みではない方法)を使っている場合、Cloudflare は <script> に integrity 属性を自動で付けます。ダウンロードした内容のローカルハッシュが、HTML で指定した integrity ハッシュと一致するときだけ、スクリプトが実行されます。
手動埋め込みのスクリプトを使っている場合、現状では integrity 属性を安全に付ける方法はありません。Beacon スクリプトのバージョンピン留めに対応していないためです。これは、セキュリティの維持、バグ修正、および
いいえ。ただし、apex ドメイン(「ルートドメイン」または「ネイキッドドメイン」とも呼ばれます)が同じなら、同じサイトタグを使えます。たとえば、サイト登録時にホスト名 example.com を指定した場合、abc.example.com と def.example.com にはそのサイトの JS スニペットを使えます。apex ドメインが同じだからです。ペイロードが Beacon エンドポイントへ送られるとき、ホスト名は末尾一致で検証されます。apex ドメインが同じなら動作します。
いいえ。自動セットアップ で JS スニペットを挿入できるのは、ドメインへのトラフィックが Cloudflare 経由でプロキシされている場合(オレンジクラウド)だけです。
DNS のみのドメインでは、代わりに 手動セットアップ を行ってください。
Cloudflare が JavaScript スニペットを自動で追加するには、ページが有効な HTML である必要があります。
たとえば、次のようなページでは Cloudflare は Web Analytics を有効にできません。
Hello world.Web Analytics が JavaScript スニペットを正しく挿入するには、次のような有効な HTML 出力が必要です。
<!DOCTYPE html>
<html>
<head>
<title>Title</title>
</head>
<body>
<p>Hello world.</p>
</body>
</html>Cloudflare の Real User Monitoring(RUM)は、最初のクライアントリクエストだけで動作し、Worker のサブリクエストからは指標を収集できません。これは、正確なパフォーマンス計測と、重複または誤解を招く分析データを防ぐための、アーキテクチャ上の制約です。
過去 7 日間は、サンプリングしていない Beacon データを保持します。その後は、約 10% まで集約します。
Cloudflare ダッシュボードで指標を集計する場合や、GraphQL API を照会する場合、適用したフィルターと一致する行数に応じて、サンプリング率(0.0001% から 100%)が動的に選ばれます。数値の精度を高く保ちつつ、応答時間を妥当な範囲にするためです。この手法の詳細は Cloudflare ブログ ↗ を参照してください。
注記: GraphQL API は、クエリに適用されたサンプリング率を示す sampleInterval フィールドを公開しています。
- Beacon スクリプトは、すべてのページビューで発火します。
- データ取り込みパイプラインはサンプリングしません。受信したすべての Beacon を記録します。
- サンプリングしていないデータは 7 日間保存します。
- 長期保存用に、元の量の約 10% まで集約もします。
- トラフィックが非常に少ないサイトは、集計値の精度を保つため、より高い割合でサンプリングします。
Web Analytics が表示するのはクライアントサイド分析だけです。トラフィックをプロキシしているすべての Cloudflare のお客様は、エッジのトラフィックに基づく分析も利用できます。
現在、Pro、Business、Enterprise プランのユーザーは、高度な HTTP トラフィック分析を利用できます。サーバーサイド分析で URL ごとの内訳などを見るには、この方法だけです。
現在、過去 6 か月分のデータにアクセスできます。
まだ対応していません。UTM パラメーターは、トラフィックの流入元を追跡するのに役立つ特別なクエリ文字列パラメーターです。 現在、Cloudflare Web Analytics は機密データになり得る情報を集めないよう、クエリ文字列を記録しません。将来対応する可能性があります。
まだ対応していません。将来対応する可能性があります。
はい。現時点ではアカウントあたり 10 サイトのソフト制限がありますが、Cloudflare サポートに連絡すれば調整できます。
シングルページアプリケーション(SPA)ではない従来型のウェブサイトでは、ページの読み込み完了時(load イベント)と、ユーザーがページを離れるときに、Web Analytics の Beacon が /cdn-cgi/rum/ エンドポイントへ報告します。シングルページアプリケーションでは、ページ読み込みイベントを捉えるため、ルート変更のたびに追加の指標も送ります。