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