ロボット検出コンポーネントを使用した訪問者の識別
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
Sitecoreロボット検出コンポーネントは、自動化されたブラウザーやロボットからのロボットや不要なインタラクションを検出します。このコンポーネントはデフォルトで有効になっており、パイプラインプロセッサ、イベントハンドラ、JavaScriptファイル (人間の動作を検出する)、およびいくつかのロボット検出クラスで構成されています。
Webサイトでページがリクエストされるたびに、次のパイプラインプロセッサがアクティブになります。
-
Sitecore.Analytics.RobotDetection.Pipeline.InitializeTracker.Robots
プロセッサは、まず、コンテキスト サイトでロボット検出が有効になっていることを確認します。必要に応じて、ロボット検出を無効にすることができます。
連絡先の分類
連絡先の分類
ContactClassificationクラスには、分類定数とヘルパー メソッドが含まれています。次のヘルパー メソッドは、連絡先の分類をパラメーターとして受け取り、連絡先が人間かロボットかを示すブール値を返します。
-
IsHuman
-
IsRobot
-
IsAutoDetectedRobot
最初の訪問者の分類
最初の訪問者の分類
SC_ANALYTICS_GLOBAL_COOKIEには、trueまたはfalseに設定されたIsClassificationGuessedフィールドが含まれています。
新しい訪問者がWebサイトにアクセスすると、訪問者の分類がまだ決定されていないため、デフォルトではfalseに設定されます。この段階では、訪問者は人間またはロボットである可能性があります。訪問者の分類が決定されると、このフィールドはtrueに設定されます。
訪問者識別コントロール
訪問者識別コントロール
訪問者がWebサイトのページを表示すると、VisitorIdentificationコントロールがページに表示されます。まず、VisitorIdentification.ascxコントロールがlayouts/systemフォルダーに存在するかどうかを確認します。コントロールが存在する場合は、VisitorIdentification.ascxユーザー コントロールのコンテンツがページに表示され、次の処理が行われます。
-
現在のUTC時刻をVICurrentDateTimeメタタグに保存します。
-
layouts/system/VisitorIdentification.jsファイルへの参照を追加して、訪問者識別JavaScriptファイルを読み込みます。
JavaScriptによる人間の行動の検出
JavaScriptによる人間の行動の検出
訪問者がページを表示すると、VisitorIdentification.js JavaScriptファイルが読み込まれます。通常、ロボットはCSSファイルやJavaScriptファイルをロードしません。
スクリプトがサブスクライブするイベントは2つあります。
-
OnMouseMoveイベント – コンピューターのマウスが移動したときにトリガーされます。
-
OnTouchStartイベント – タブレットまたは携帯電話の画面がタッチされたときにトリガーされます。
コンピューターのマウスが移動したり、訪問者がタブレットや携帯電話の画面に触れたりすると、VisitorIdentificationCSS.aspxページを要求するコードが実行されます。このページへのURLが作成されます (直接の要求ではありません)。訪問者がロボットの場合、このCSSスタイルシートをロードする可能性は低いため、人間の訪問者がスタイルシートをブラウザにロードしようとするため、これは人間の行動を示しています。これが発生すると、VisitorIdentificationCSS.aspxページが要求され、空のスタイルシートが生成されます。このページには、ページに対する要求が行われるたびに実行されるコードも含まれています。
人間の訪問者がページの実行を引き起こした場合、このページのコードは次の変更を行います。
-
訪問者分類コードは0に設定されており、これは訪問者が人間として分類されることを意味します。
-
CookieのIsClassificationGuessedブール値はtrueに設定されます。これは、訪問者が分類されたため、ロボット検出ロジックを実行する必要がなくなったことを意味します
-
ASP.NETセッション タイムアウト設定は、人間の訪問者の既定値 (20分) にリセットされます。
タイムアウト設定の比較
タイムアウト設定の比較
タイムアウト設定の比較は、他のロボット検出対策が実行された後に実行される最終チェックです。JavaScript関数の実行は、30秒後 (デフォルト設定) に行われるようにスケジュールされています。
この関数は、VICurrentDateTimeメタタグからUTC時刻を読み取り、取得した時刻をtstampパラメータで送信してVIChecker.aspxページにリクエストを行います。
VIChecker.aspxページでは、現在のUTC時刻とtstampパラメータの時刻の差がチェックされます。訪問者が人間の訪問者の場合、このコードはページが読み込まれてから30秒後に実行されます。ロボットは30秒より速くJavaScriptを実行できるため、リクエストが30秒未満で実行されると、連絡先はロボットとして検出されます。その結果、訪問者の分類はロボットに戻されます。
メディア要求イベント ハンドラ
メディア要求イベント ハンドラ
以前のロボット検出ロジックでは、訪問者がメディア項目のダウンロードを要求した場合、訪問者は人間として識別されました。xDBロボット検出コンポーネントでは、このアプローチでは不十分です。
Sitecore.Analytics.Tracking.RobotDetection.configファイルでは、次のイベント ハンドラーによってこれが強制されます。
-
Sitecore.Analytics.RobotDetection.Media.MediaRequestEventHandler
このイベント ハンドラーが読み込まれると、メディア アイテムの追跡フィールドが処理されますが、訪問者がメディア アイテムをダウンロードしても、分類は人間に変更されません。
分類を変更するには、セッションにアクセスする必要があります。Sitecoreでは、カスタム メディア リクエスト セッション モジュール (C# クラス ファイル) により、トラッキング フィールドに何かを含むメディア アイテムへのリクエストのセッションが有効になります。トラッキングフィールドに何もない場合、セッションは不要になり、リクエストの処理時間が短縮されます。