Cloudflare(BYOCDN)
この設定では、エージェントトラフィック(AI ボットおよび LLM ユーザーエージェントからのリクエスト)を Edge での最適化バックエンドサービス(live.edgeoptimize.net)にルーティングします。 人間の訪問者と SEO ボットは、通常どおりオリジンから引き続き提供されます。 設定をテストするには、設定が完了したら、応答のヘッダー x-edgeoptimize-request-id を探します。
前提条件
Cloudflare Workerのルーティングルールを設定する前に、次のことを確認してください。
- ドメインでワーカーが有効になっている Cloudflare アカウント。
- Cloudflare のドメイン DNS 設定へのアクセス権。
- Adobe Brand Visibility UIから取得したEdge Optimize API キー。 手順について詳しくは、API キーの取得を参照してください。
- (オプション)ステージングルーティングをテストするには、Staging API キーを参照してください。
ルーティングの仕組み
正しく設定されると、エージェント型ユーザーエージェントからドメイン(例:www.example.com/page.html)へのリクエストは、Cloudflare ワーカーによって傍受され、Edge での最適化バックエンドにルーティングされます。 バックエンドリクエストには、必要なヘッダーが含まれます。
バックエンドリクエストのテスト
Edge での最適化バックエンドに直接リクエストを行うことで、ルーティングを検証できます。
curl -svo /dev/null https://live.edgeoptimize.net/page.html \
-H 'x-forwarded-host: www.example.com' \
-H 'x-edgeoptimize-url: /page.html' \
-H 'x-edgeoptimize-api-key: $EDGE_OPTIMIZE_API_KEY' \
-H 'x-edgeoptimize-config: LLMCLIENT=TRUE;'
必須ヘッダー
Edge での最適化バックエンドへのリクエストでは、次のヘッダーを設定する必要があります。
x-forwarded-hostwww.example.comx-edgeoptimize-url/page.html または /products?id=123x-edgeoptimize-api-keyyour-api-key-herex-edgeoptimize-configLLMCLIENT=TRUE;設定オプション
EdgeでCloudflare for Optimizeを設定するには、次の2つの方法があります。
- オプション 1: Adobe Brand Visibilityでのガイド付き設定(推奨) — Adobe Brand Visibilityを使用してワーカーをデプロイし、ルートを追加し、設定を検証します。
- オプション 2:手動セットアップ — ワーカーを自分で作成および設定するための手順を説明します。 このオプションは、既にドメインのCloudflare Workerがあり、Edge Optimize コードをそのドメインにマージする必要がある場合、またはデプロイメントを完全に制御したい場合に使用します。
手動で設定するには、Workerをドメインに手動でリンクする必要があります。 「 ドメインへのルートの追加」を参照してください。
選択肢1:Adobe Brand Visibilityでのガイド付き設定
- 設定するURLの CDN設定 を開きます。
- AI エージェントに最適化をデプロイで、必要に応じて 有効 を選択します。
- 「Cloudflareでルーティングをデプロイ」を選択します。
- 「Cloudflare OAuthとの接続」を選択します。 ワーカーとワーカーのルートを管理できるCloudflare ユーザーでログインし、適切なアカウントとゾーンへのアクセスを承認します。 Adobe Brand VisibilityにAPI トークンを入力する必要はありません。
- サイトのCloudflare ゾーンを選択します。 ターゲットホスト名にプロキシ化されたDNS レコードがあり、既存のカスタムワーカーまたは重複するワーカーのルートで処理されていないことを確認します。
- ガイド付きの手順に従って、専用ワーカーをデプロイし、ルートを追加し、設定を確認します。
オプション 2:手動設定
ワーカーを手動で作成および設定するには、次の手順に従います。.
手順1:Cloudflare Workerの作成
- Cloudflare ダッシュボードにログインします。
- サイドバーの ワーカーとページ に移動します。
- 「アプリケーションを作成」をクリックし、「ワーカーを作成」をクリックします。
- ワーカーに名前を付けます(例:
edge-optimize-router)。 - 「デプロイ」をクリックし、デフォルトのコードでワーカーを作成します。
手順2:ワーカーコードの追加
ワーカーを作成したら、コードを編集をクリックし、デフォルトコードをworker.jsのコードに置き換えます。 既存のCloudflare Workerがある場合は、コードを完全に置き換えるのではなく、既存のワーカーコードと結合します。
「保存してデプロイ」をクリックし、ワーカーを公開します。
手順3:環境変数とシークレットの設定
環境変数には、API キーなどの機密性の高い設定が安全に保存されます。
-
ワーカーの設定で、設定/変数に移動します。
-
環境変数の下にある「変数を追加」をクリックします。
-
次の変数を追加します。
table 0-row-3 1-row-3 2-row-3 変数名 説明 必須 EDGE_OPTIMIZE_API_KEYアドビ提供の Edge Optimize API キー。 はい EDGE_OPTIMIZE_TARGET_HOSTEdge での最適化リクエストのターゲットホスト( x-forwarded-hostヘッダーとして送信)とフェイルオーバーのオリジンドメイン。 プロトコルなしのドメインのみを指定する必要があります(例:https://www.example.comではなくwww.example.com)。はい -
API キーの場合は、「暗号化」をクリックし、安全に保存します。
-
「保存してデプロイ」をクリックします。
ドメインにルートを追加 add-a-route-to-your-domain
手動セットアップを使用した場合は、手動でワーカーをドメインにリンクします。 このステップは、トラフィックのワーカーをアクティブにします。
- ワーカーの設定/トリガーに移動します。
- ルートの下にある「ルートを追加」をクリックします。
- ドメインパターンを入力します(例:
www.example.com/*またはexample.com/*)。 - ドロップダウンからゾーンを選択します。
- 「保存」をクリックします。
または、ゾーンレベルでルートを設定することもできます。
- Cloudflare のドメインに移動します。
- ワーカールートに移動します。
- 「ルートを追加」をクリックし、パターンとワーカーを指定します。
フェイルオーバー動作の検証
Edge での最適化が使用できない場合やエラーが返された場合、ワーカーは自動的にオリジンにフェイルオーバーします。 フェイルオーバー応答には、x-edgeoptimize-fo ヘッダーが含まれます。
< HTTP/2 200
< x-edgeoptimize-fo: 1
Cloudflare ワーカーのログでフェイルオーバーイベントを監視して、問題のトラブルシューティングを行うことができます。
ワーカーロジックについて
Cloudflare ワーカーは、次のロジックを実装します。
-
ユーザーエージェント検出:受信リクエストのユーザーエージェントが、定義済みのエージェント型ボットのいずれかと一致するかどうかを確認します(大文字と小文字を区別しません)。
-
パスターゲティング:オプションで、ターゲットパスに基づいてリクエストをフィルタリングします。 デフォルトでは、すべての HTML ページ(末尾が
/、拡張子なし、または.htmlの URL)がルーティングされます。TARGETED_PATHS配列を使用して、特定のパスを指定できます。 -
ループ保護:
x-edgeoptimize-requestヘッダーは無限ループを防ぎます。 Edge での最適化がオリジンにリクエストを戻す際、このヘッダーは"1"に設定され、ワーカーはリクエストを Edge での最適化にルーティングせずに渡します。 -
ヘッダーセキュリティ: Edge での最適化ヘッダーを設定する前に、ワーカーは受信リクエストから既存の
x-edgeoptimize-*ヘッダーを削除し、ヘッダーインジェクション攻撃を防ぎます。 -
ヘッダーマッピング:ワーカーは Edge での最適化に必要なヘッダーを設定します。
x-forwarded-host- 元のサイトドメインを特定します。x-edgeoptimize-url- 元のリクエストパスとクエリ文字列を保持します。x-edgeoptimize-api-key- Edge での最適化でリクエストを認証します。x-edgeoptimize-config- キャッシュキーの設定を指定します。
-
フェイルオーバーロジック:Edge での最適化がエラーステータスコード(4XX クライアントエラーまたは 5XX サーバーエラー)を返した場合や、ネットワークエラーによりリクエストが失敗した場合、ワーカーは
EDGE_OPTIMIZE_TARGET_HOSTを使用してオリジンに自動的にフェイルオーバーします。 フェイルオーバー応答には、フェイルオーバーが発生したことを示すx-edgeoptimize-fo: 1ヘッダーが含まれます。 -
リダイレクト処理:
redirect: "manual"オプションを指定すると、Edge での最適化からのリダイレクト応答がワーカーを経由せずにクライアントに渡されます。
設定のカスタマイズ
コードの上部にある設定定数を変更して、ワーカーの動作をカスタマイズできます。
エージェント型ボット リスト
AGENTIC_BOTS 配列を変更して、ユーザーエージェントを追加または削除します。
const AGENTIC_BOTS = [
'AdobeEdgeOptimize-AI',
'ChatGPT-User',
'GPTBot',
'OAI-SearchBot',
'PerplexityBot',
'Perplexity-User',
'ClaudeBot',
'Claude-User',
'Claude-SearchBot',
// Add additional user agents as needed
];
ターゲットパス
デフォルトでは、すべての HTML ページが Edge での最適化にルーティングされます。 特定のパスにルーティングを制限するには、TARGETED_PATHS 配列を変更します。
// Route all HTML pages (default)
const TARGETED_PATHS = null;
// Or specify exact paths to route
const TARGETED_PATHS = ['/', '/page.html', '/products', '/about-us'];
フェールオーバー設定
デフォルトでは、Edge での最適化から 4XX または 5XX エラーが発生した場合、ワーカーはフェイルオーバーします。 この動作をカスタマイズします。
// Default: failover on any 4XX or 5XX error
const FAILOVER_ON_4XX = true;
const FAILOVER_ON_5XX = true;
// Failover only on 5XX server errors (not 4XX client errors)
const FAILOVER_ON_4XX = false;
const FAILOVER_ON_5XX = true;
// Disable automatic failover (not recommended)
const FAILOVER_ON_4XX = false;
const FAILOVER_ON_5XX = false;
重要な検討事項
-
フェイルオーバー動作: Edge での最適化がエラー(4XX または 5XX ステータスコード)を返した場合や、ネットワークエラーによりリクエストが失敗した場合、ワーカーは自動的にオリジンサーバーにフェイルオーバーします。 フェイルオーバーでは、オリジンドメインとして
EDGE_OPTIMIZE_TARGET_HOSTが使用されます(Fastly のF_Default_OriginやCloudFront のDefault_Originと同様)。 フェイルオーバー応答には、監視やデバッグに使用できるx-edgeoptimize-fo: 1ヘッダーが含まれます。 -
キャッシュ: Cloudflare はデフォルトで URL に基づいて応答をキャッシュします。 エージェントトラフィックは人間のトラフィックとは異なるコンテンツを受信するので、キャッシュ設定でこの点を考慮してください。 キャッシュされたコンテンツを区別するには、Cache API またはキャッシュヘッダーの使用を検討します。
x-edgeoptimize-configヘッダーはキャッシュキーに含める必要があります。 -
レート制限:Edge での最適化の使用状況を監視し、必要に応じてエージェントトラフィックのレート制限を実装することを検討してください。
-
テスト:本番環境にデプロイする前に、常にステージング環境で設定をテストします。 エージェントトラフィックと人間のトラフィックの両方が期待どおりに動作することを検証します。 Edge での最適化のエラーをシミュレートして、フェイルオーバー動作をテストします。
-
ログ: Cloudflare ワーカーのログを有効にして、リクエストの監視や問題のトラブルシューティングを行います。 リアルタイムログを表示するには、ワーカー/お客様のワーカー/ログに移動します。 ワーカーは、デバッグの目的でフェイルオーバーイベントをログに記録します。
トラブルシューティング
x-edgeoptimize-request-id ヘッダーがないAGENTIC_BOTS 配列にあることを確認します。EDGE_OPTIMIZE_API_KEY が正しく設定されていることを検証します。 アドビに問い合わせて、API キーがアクティブであることを確認します。x-edgeoptimize-request ヘッダーの確認が行われていることを確認します。TARGETED_PATHS が正しく設定されていることを確認します。x-edgeoptimize-fo: 1 ヘッダーFAILOVER_ON_4XX と FAILOVER_ON_5XX が true に設定されていることを検証します。 ワーカーログにエラーメッセージがないかを確認します。TARGETED_PATHS(指定されている場合)にあり、HTML ページの正規表現パターンと一致していることを検証します。EDGE_OPTIMIZE_TARGET_HOST にプロトコル(例:https://)が含まれています。https://example.com ではなく example.com)。ファイアウォールルールによるEdgeでの最適化を許可する(オプション)
CDNでWAFまたはBot Managerを使用している場合:
-
WAFまたはBot Managerで
*AdobeEdgeOptimize/1.0*ユーザーエージェントを許可リストに加えるして、Optimize at Edge サービスがオリジンコンテンツを取得できるようにします。 -
ファイアウォールでユーザーエージェント以外の追加の検証が必要な場合は、秘密鍵(例:
openssl rand -hex 32)を生成し、次の操作を行います。- ルーティングルールのシークレットを他の
x-edgeoptimize-*ヘッダーと共にx-edgeoptimize-fetcher-keyを追加します。 - WAFまたはBot Manager ルールを追加して、
x-edgeoptimize-fetcher-keyが同じシークレットと一致するリクエストを許可します。
- ルーティングルールのシークレットを他の
-
Edgeで最適化すれば、このヘッダーをそのまま転送できます。ユーザーは鍵のライフサイクル全体を所有しています。
設定の検証
設定が完了したら、ボットトラフィックが Edge での最適化にルーティングされていることと、人間のトラフィックに影響がないことを確認します。
1. ボットトラフィックをテスト(最適化する必要があります)
エージェント型ユーザーエージェントを使用して、AI ボットリクエストをシミュレートします。
curl -svo /dev/null https://www.example.com/page.html \
--header "user-agent: chatgpt-user"
正常な応答には、リクエストが Edge での最適化を経由してルーティングされたことを確認する x-edgeoptimize-request-id ヘッダーが含まれます。
< HTTP/2 200
< x-edgeoptimize-request-id: 50fce12d-0519-4fc6-af78-d928785c1b85
2. 人間のトラフィックをテスト(影響を受けません)
通常の人間によるブラウザーリクエストをシミュレートします。
curl -svo /dev/null https://www.example.com/page.html \
--header "user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36"
応答には、x-edgeoptimize-request-id ヘッダーを含め ない でください。 ページのコンテンツと応答時間は、Edge での最適化を有効にする前と同じ状態を維持する必要があります。
3. 2 つのシナリオを区別する方法
x-edgeoptimize-request-idx-edgeoptimize-fo1)トラフィックルーティングのステータスは、Adobe Brand Visibility UIでも確認できます。 顧客設定に移動し、CDN設定 タブを選択します。
利用可能なオポチュニティ、自動最適化ワークフロー、FAQなど、Edgeでの最適化について詳しくは、Edgeでの最適化の概要に戻ります。