メモリー中心の訪問者追跡Engageアセットを閲覧するサイト訪問者は通常、個人プロファイルを使用して自身の情報を提供します。訪問者が閲覧することで統計情報が収集されます。Sitesデータベースの過負荷を防ぎ、さらにパフォーマンスを改善するため、メモリー中心の訪問者追跡がEngageアセット用に開発されました。この章では、メモリー中心の訪問者追跡について説明するほか、このメソッドの実装に必要な条件を概説します。この章には次の項が含まれます。多数の訪問者がWebサイトを閲覧する場合、単一リポジトリにすべての個人情報を格納すると配信システムのパフォーマンスが低下します。そのため、訪問者の統計情報を収集するサイトでは、多くの場合、サイトのパフォーマンスを改善するためにリポジトリの追加が必要になります。Sitesデータベースでロードを行わないようにします。Sitesによりアドオン・リポジトリがサポートされるため、Engage開発者が独自のリポジトリを実装して訪問者のスカラー属性値を格納できます。そのリポジトリで訪問者情報を格納および取得するには、カスタム・コードを記述する必要があります。Sitesでメモリー中心の訪問者追跡メソッドを有効化する必要があります。この概要では、メモリー中心のメソッドとデータベース中心のメソッドの違いについて説明します。メモリー中心の追跡の有効化に関する情報は、この章の後半に記載している、メモリー中心の訪問者追跡機能について説明した図を参照してください。この項の内容は、次のとおりです。データベース中心のモデルデータベース中心の訪問者追跡では、次の理由により、Engage対応のWebサイト上でパフォーマンスの問題が発生します。Sitesデータベースにすべての訪問者情報が格納されます。情報を格納および取得するには、複数のデータベース・アクセスが必要になります。Sitesに大量のSystemItemCacheエントリが記録されるためパフォーマンスが低下します。Sitesデータベースに記録される依存性の数を制限する方法としてrender:overridedepsタグが導入されました。このタグは、データベース中心のモデルとメモリー中心のモデルの両方に適用されます。Sitesデータベースの負荷を減らすことによってシステム・パフォーマンスを改善します。すべての計算はメモリー内で実行されます。カスタム・コードによりアドオン・リポジトリから訪問者のスカラー属性値(年齢、性別など)が取得されると、メモリー中心のモデルでは、取得された値がメモリー内に格納され、その値を履歴属性値とともに使用することで訪問者が所属するセグメントが計算されます。メモリー中心の追跡では、メモリー内で様々な履歴属性値に関する統計が計算され、その統計がキャッシュされます。統計には、合計、数、最も古い値および最新の値が含まれます。Sitesデータベースに格納されますが、それによって訪問者情報の量およびその情報にアクセスするためのコール数がともに少なくなります。SitesデータベースにログインするためのEngageアセットの依存性の数およびタイプを指定できます。メモリー中心の追跡を有効化するには、visitor.iniのプロパティを設定して、サポート・テンプレート・コードを記述する必要があります。メモリー中心の訪問者追跡の有効化この項の内容は、次のとおりです。訪問者追跡のプロパティメモリー中心の訪問者追跡は、vis.useSessionVisitorConnectionプロパティで有効化します。Sitesのvisitor.iniファイルに手動で追加する必要があります。vis.useSessionVisitorConnection=trueを設定すると、メモリー中心の訪問者追跡が有効になります。Engage訪問者を適切に追跡するには、サポート・テンプレート・コードが配信システム上に存在する必要があり、その際には既存のコードを再利用できます。詳細は、第41.2.2項「サポート・コード」を参照してください。vis.useSessionVisitorConnection=falseを設定したり、空白のままにしたり、それをvisitor.iniから省略すると、データベース中心のメソッドが有効になります。注意:すべてのコンテンツ管理システムで、vis.useSessionVisitorConnectionをfalseに設定するか、省略する必要があります。それによって、訪問者属性を作成するか、それ以外では管理できるデータベース中心のメソッドを有効化します。(訪問者属性の管理は、データベース中心のトラッキングが有効なコンテンツ管理システムでのみサポートされます。配信システムではサポートされません。訪問者属性を配信システムに公開する必要があります。サポート・コードこの項のスケルトン・テンプレートでは、メモリー中心の追跡をサポートするために記述する必要のあるコードのタイプを示しています。注意:テンプレート・コードの実行方法は、vis.useSessionVisitorConnectionプロパティの値によって異なります。値がfalseに設定されている場合は、データベース中心の訪問者追跡が使用されます。値がtrueに設定されている場合は、メモリー中心の追跡が有効化されます。assetsvdm:recordhistory...render:overridedepsこのテンプレートの詳細は、第41.3項「メモリー中心の訪問者追跡の機能」を参照してください。Sitesデータベースに保存されます。バッチを使用した保存によってメモリーの過度な使用を回避できます(メモリーの過度な使用は、データベースへの保存速度よりも早くデータが生成される場合に発生します)。バッチによる保存プロセスでは、ファイルから一度に1つずつHistoryAttributeDef表をバッチ化し、まとめてデータベースに保存します。バッチを使用してデータベースに保存するには、Engageからデータベース情報にアクセスできる必要があります。データベース・アクセスを有効化するには、<dataSourceName>.propertiesという名前のファイルをクラスパスに追加して、driver、url、userおよびpasswordの情報を指定します。データソース名がcsDataSourceの場合は、csDataSource.propertiesという名前のファイルをクラスパスに配置します。この例では、ファイル内のプロパティを次のように設定します。JVMパラメータが追加されています。-Dvisitor.SyncInterval=<seconds>指定しない場合、パラメータの値はデフォルトの30秒に設定されます。メモリー中心の訪問者追跡の機能この章の残りの部分の図は、メモリー中心の追跡の機能を示しています。注意:次の図のアドオン・リポジトリは独自に選択可能なシステムであり、訪問者のスカラー属性値を格納および取得するために使用されます。値を格納および取得するにはカスタム・コードを記述する必要があります。この項の内容は、次のとおりです。訪問者の検出サイトへの初回ログイン時、訪問者は個人プロファイルを作成します。次のイベントが発生します。Sitesデータベースに記録されます。後続のセッションでは、訪問者が自動的に認識されます。その結果、データベースには訪問者に一意の単一IDのみが保持され、パフォーマンスが向上します。メモリー中心の訪問者追跡では訪問者ごとに一意のIDが記録される一方、既存のデータベース中心のメソッドでは訪問ごとに一意のID(再度訪問する訪問者に対しても)が記録されます。必要のないIDによってデータベースに余分な負荷がかかり、パフォーマンスが低下します。訪問者のスカラー値(年齢、性別などの個人情報)がアドオン・リポジトリに(カスタム・コードごとに)格納されます。Sitesによって収集および計算されます。Sitesで訪問者のセグメントの計算が開始されます。次のスカラー値で開始されます。Sitesによってアドオン・リポジトリから(カスタム・コードを使用して)スカラー値が取得されます。Sitesでは、vdm:setscalarタグを使用して、取得したスカラー値がメモリーに設定されます。セッション・ベースの実装により、訪問者情報(スカラー値)はhttpセッションにのみ格納されます。Sitesデータベースではなくアドオン・リポジトリを介して使用可能になります。訪問者のスカラー値の問合せパフォーマンスを最適化するために、新しいレベルのキャッシュが追加されています。訪問者のセグメントの計算には履歴属性値も必要になります。セッション中、履歴属性値が周期的に収集されます。履歴属性値を1分間隔でメモリーに収集するには、vdm:recordhistoryタグを使用します。Sitesデータベースに書き込まれます。メモリーが消去され、再度このサイクルが開始されます。訪問者の履歴属性値を最初にメモリーに収集することによって、コールごとにデータベース接続を取得する必要がなくなります。これらをファイル・システムに格納し、バッチによるデータベースへの保存を可能にすることで、メモリーおよびデータベース接続の使用が最小化され、履歴属性値の可用性が高まります。履歴属性値がデータベースにコミットされると、第41.3.4項「合計および数の計算」に示すように、合計と数の計算が始まります。Sitesでは次が実行されます。1分間隔でデータベースを読み込み、合計と数を計算して、その結果をメモリーに格納します。合計および数のキャッシュによってデータベース問合せが著しく減少するとともに、1分間隔にすることで1分以内の正確な合計と数が計算されます。Sitesには訪問者のセグメントを計算するのに十分な情報が保持されています。Sitesは、commercecontext:calculatesegmentsタグを使用して次を実行します。メモリー内の訪問者のスカラー値をセグメント・ルール内のものと比較します。データベース内の履歴属性値をセグメント・ルール内のものと比較します。メモリー内の合計と数をセグメント・ルール内の合計または数と比較します。Sitesでは訪問者のセグメントが決定されます。Sitesでは、commercecontext:getrecommendationsタグを使用して訪問者に最も関心のあるEngageアセットが決定されます。Engageアセットのテンプレートによって、推奨されるアセットが訪問者に表示されます。パフォーマンスを向上するには、render:overridedepsタグを第41.3.7項「依存性の記録」で説明するように使用します。依存性の記録render:overridedepsタグを使用して、記録されるSystemItemCacheエントリの数を減らします。ページに記録された既存の依存性をすべて削除して、render:overridedepsタグにより指定された依存性を記録するには、テンプレート(またはCSElement)の最後、</cs:ftcs>タグの直前にこのタグを挿入する必要があります。使用可能な依存性を次に示します。固有のアセット・タイプの不明な依存性render:overridedepsタグは、次のパラメータを使用します。タイプcのアセットのID。cと組み合せるとアセットのように機能し、cおよびcidによって決定されたアセットに対する依存性を記録します。