Cloud Service コンテンツリクエストについて
はじめに introduction
コンテンツリクエストには、AEM Sites に送信されるリクエストが含まれます。 これらのリクエストは、Edge Delivery ServicesまたはContent Delivery Network (CDN)などのお客様が提供するキャッシングシステムを経由します。 これらのリクエストは、構造化データを HTML 形式または JSON 形式で配信し、ページビュー(ページやエクスペリエンスフラグメントなど)または JSON 戻り値をヘッドレス方式で API を通じてサポートします。
ユーザーが HTML または JSON を使用してページを表示すると、コンテンツリクエストがカウントされます。 最初のキャッシュシステムがリクエストを受信した時点でこのリクエストを測定します。 コンテンツリクエストをカウントする目的で、特定の HTTP リクエストが含められたり除外されたりします。 HTTP の含まれるコンテンツリクエストと除外されるコンテンツリクエストの完全なリストを参照してください。
Cloud Service コンテンツリクエストについて understanding-cloud-service-content-requests
ページリクエストとは、メインページエクスペリエンスをレンダリングするのに必要なコア構造化コンテンツ(HTML や JSON など)を取得する HTTP リクエストを指します。 画像やスクリプトなどのアセットのリクエストは含まれません。
デフォルトのCDNを使用しているお客様の場合、AEM as a Cloud Serviceでは、コンテンツリクエストがサーバーサイドレベルで測定されます。 この測定は自動的に行われ、クライアントサイドの分析トラッキングに依存しません。
AEM(Adobe Experience Manager)as a Cloud Service は、AEM インスタンスによって生成され、CDN で受信された応答タイプに基づいてコンテンツリクエストを識別します。 特に、HTML(text/html)または JSON(application/json)を返すリクエストがカウントされます。 これらの形式は通常、従来のサイトレンダリングまたはヘッドレス配信のいずれかでプライマリページコンテンツを配信します。
JavaScript ファイル、CSS スタイルシート、画像などの静的アセットのリクエストは、コンテンツリクエストとしてカウントされません。
コンテンツリクエストは、応答が CDN キャッシュから提供されたか、元の AEM 環境に転送されたかに関係なく測定されます。
Cloud Service コンテンツリクエストの相違 content-requests-variances
コンテンツリクエストは、次の表にまとめられているように、組織の分析レポートツール内で差異が生じる場合があります。 一般に、サイトのコンテンツリクエスト数のレポートにクライアントサイドのインストルメンテーションに依存する分析ツールを使用しないでください。 これらのツールは、アクティブ化するユーザーの同意に依存しているため、多くの場合、トラフィックの大部分が見逃されることがあります。 ログファイルやCDN レポートでサーバーサイドのデータを収集する分析ツールは、独自のCDNをAEM as a Cloud Serviceに追加するお客様向けに、より良いカウントを提供します。
ライセンス制限に対するコンテンツリクエストの使用状況の表示とトラッキングについて詳しくは、ライセンスダッシュボードを参照してください。
サーバーサイドのコレクションルール serverside-collection
AEM as a Cloud Serviceでは、コンテンツリクエストのカウントにサーバーサイドのコレクションルールを適用します。 これらのルールでは、AIやLLMのweb クローラーが認識されるなどの既知のボット(検索エンジンweb クローラーなど)や、サイトに定期的にpingを送信する一連のモニタリングサービスは除外されます。 この除外リストに含まれていないその他の合成、自動、または監視トラフィックは、請求可能なコンテンツリクエストとしてカウントされます。
次の表に、含まれるコンテンツリクエストと除外されるコンテンツリクエストのタイプと、それぞれの簡単な説明を示します。
含まれるコンテンツリクエストのタイプ included-content-requests
HTTP Code 206:これらのリクエストは、完全なコンテンツの一部のみを配信します。 部分的なリクエストは、ページコンテンツのレンダリングに使用されるHTMLまたはJSON レスポンスの一部を配信する場合に含まれます。
・ Amazon CloudFront
・ Apache Http Client
・非同期HTTP Client
・ Axios
・ Azureus
・ Curl
・ GitHub Node Fetch
・ Guzzle
・ Go-http-client
・ ヘッドレス Chrome
・ Java™ Client
・ Jersey
・ Node Oembed
・ okhttp
・ Python Requests
・・
Netty} Wget
・ WinHTTP
・ Fast HTTP
・ GitHub Node Fetch
・ Reactor Netty
トラフィックが既知のボットとして分類されていない場合は、カスタムエージェントまたはAI駆動型の自動化を含めることもできます。
除外されたコンテンツリクエストのタイプを参照してください。
例には、次のようなものがあります。
•
Amazon-Route53-Health-Check-Service• EyeMonIT_bot_version_0.1_(https://eyemonit.com/)
• Investis-Site24x7
• Mozilla/5.0 以降(互換;UptimeRobot/2.0;https://uptimerobot.com/)
• ThousandEyes-Dragonfly-x1
• OmtrBot/1.0
• WebMon/2.0.0
<link rel="prefetch"> リクエスト<link rel="prefetch"> を使用)、これらのサーバーサイドリクエストがカウントされます。 このアプローチでは、プリフェッチされるページの数に応じて、トラフィックが増加する場合があります。 ライセンスダッシュボード も参照してください。
除外されたコンテンツリクエストのタイプ excluded-content-request
/libs/* に移動するリクエスト/system/probes/healthEdge Delivery サイトを監視する場合、Adobeでは、任意のページに対する
GET件のリクエストではなくHEAD件のリクエストを使用することをお勧めします。 /system/probes/health パスがEdge Deliveryに存在しません。例:
・AddSearchBot
・AhrefsBot
・Applebot
・Ask Jeeves Corporate Spider
・Bingbot
・BingPreview
・BLEXBot
・BuiltWith
・Bytespider
・CrawlerKengo
・Facebookexternalhit
・Google AdsBot
・Google AdsBot Mobile
・Googlebot
・Googlebot Mobile
・lmspider
・LucidWorks
•
MJ12bot・SemrushBot
・SiteImprove
・StashBot
・StatusCake
・YandexBot
・ContentKing
・Claudebot
User-Agentまたは他のボット分類シグナル) これらのリクエストには課金されません。このような除外されたボットの例としては、ChatGPT、Gmail Image Proxy、Baidu Spider、Outbrain、Yahoo! メールプロキシ、aiHitBot、Mail.Ru Bot、DomainStatsBot、Rainmeter、MetaInspector、Yahoo Gemini。
AI エージェントが既知のボットとして識別されない場合(汎用ブラウザー
User-Agentを使用するなど)、そのリクエストは請求可能なコンテンツリクエストとしてカウントされる場合があります。/api/graphql で始まります)。これらは Cloud Service の請求対象ではありません。favicon.ico を除外/content/experience-fragments/...など)に対して行われたリクエスト。例:
aem.customer.comのホームページが、同じドメインのバナーまたはカードのXFを取り込んでいます。・ URLが/content/experience-fragments/…
・ リファラードメインが
request_x_forwarded_hostと一致しますメモ: エクスペリエンスフラグメントのパスがカスタマイズされている場合(
/XFrags/...や/content/experience-fragments/以外のパスを使用するなど)、リクエストは除外されず、同じドメインの場合でもカウントされる可能性があります。 Adobeでは、除外ロジックが正しく適用されるように、Adobeの標準XF パス構造を使用することをお勧めします。コンテンツリクエストの管理 managing-content-requests
Cloud Service コンテンツリクエストの分散で述べたように、コンテンツリクエストは、CDNに到達するトラフィックなど、いくつかの理由により、予想よりも高くなる可能性があります。 AEMをご利用のお客様は、ライセンスの範囲内でコンテンツのリクエストを監視および管理できます。 コンテンツリクエストの管理は、実装技術と トラフィックフィルタールール を組み合わせて行います。
コンテンツリクエストを管理するための実装手法 implementation-techniques-to-manage-crs
- ページが見つからない応答がHTTP ステータス 404で配信されていることを確認します。 ステータスが200で返された場合、コンテンツリクエストにカウントされます。
- ヘルスチェックまたは監視ツールを/system/probes/health URLにルーティングするか、GETの代わりにHEAD メソッドを使用して、コンテンツリクエストが発生しないようにします。
- コンテンツの鮮度に対するニーズと、サイトに統合したカスタム検索web クローラーのAEMライセンスコストとのバランスを取ります。 過度にアクティブなweb クローラーは、多くのコンテンツリクエストを消費します。
- 2つの別々のコンテンツリクエストを避けるには、任意のリダイレクトをクライアントサイド(JavaScript リダイレクトを使用したステータス 200)ではなく、サーバーサイド(ステータス 301または302)として処理します。
- ページをレンダリングするために読み込まれるAEMからのJSON応答であるAPI呼び出しを組み合わせるか減らします。
- ブラウザーのユーザーエージェントがAEMに正しく渡されていることを確認します。 これにより、上記の「既知の検索エンジン」コンテンツリクエスト除外ルールが活用されます。 特定のヘッドレス実装またはCDN設定で、発信元のユーザーエージェントが失われることがあります。 そのような場合は、除外を防ぎ、ユーザーエージェントが通過した場合よりも高いコンテンツリクエストにつながる可能性があります。
コンテンツリクエストを管理するためのトラフィックフィルタールール traffic-filter-rules-to-manage-crs
コンテンツリクエストをより適切に制御するには、フィルタールールを定義する前にCDN トラフィックを分析します。 CDN ログ分析ツール を使用すると、CDNのパフォーマンスとリクエスト パターンに関するインサイトを得ることができます。 まず、トラフィックの送信元と、予期しないシグナリングパターンが存在するかどうかを確認します(一般的なボットパターンは、空のユーザーエージェントを使用することです)。
監視および記録する項目:
- 顧客国
- クライアントネットワーク(自律型システム/AS)
- クライアント IP
- ユーザーエージェントとボットのカテゴリ
リクエスト変換を使用して、リクエストログにプロパティを追加し、CDN ログとダッシュボードに表示できます。 例えば、分析のためにボット名とクライアントネットワーク(AS名)をログに記録するには、次の手順を実行します。
requestTransformations:
rules:
- name: log-on-request
when: "*"
actions:
- type: set
logProperty: bot_name
value: { reqProperty: botName }
- type: set
logProperty: cli_network
value: { reqProperty: clientAsName }
不要なトラフィック(国、ネットワーク、ボット、またはその他のシグナル)を特定したら、トラフィックフィルタールールでブロックできます。 クライアントの国、ネットワーク、またはボット名でブロックするルールの例:
trafficFilters:
rules:
- name: block-bad-client-traffic
when:
anyOf:
- { reqProperty: clientCountry, equals: "XX" }
- { reqProperty: clientAsName, equals: "UnwantedClientNetwork" }
- { reqProperty: botName, equals: "UnwantedBot" }
- { reqHeader: user-agent, exists: false }
- { reqHeader: user-agent, equals: '' }
action: block
サンプル値を、ブロックする国コード、ネットワークまたはボット名に置き換えます。 その他のオプションについては、 トラフィックフィルタールールの構文および条件構造を参照してください。
ある日トラフィックを持つサイトを過負荷にして、次の日に消えてしまうボットもあります。 このような機能は、特定のIP アドレスまたはユーザーエージェントをブロックする試みを複雑にする可能性があります。 一般的なアプローチの1つは、 レート制限ルール を導入することです。 例を確認し、リクエストの速度が速い場合に許容値と一致するルールを作成します。 一般的なレート制限を許可する例外については、条件構造構文を確認してください。