Sitecore DMSを使用すると、プロファイルを作成し、ユーザーの訪問習慣に基づいて特定のページを表示できます。この情報はCookieを使用して保存されるため、ユーザーが戻ってきたときはいつでも同じ訪問者プロファイルを持ちます。ただし、Cookieを削除したり、ブラウザを切り替えたりすると、その情報は失われます。ここで私がやりたいのは、この訪問者情報をsitecoreユーザーに保存することです。これにより、ユーザーはログインでき、訪問者のプロファイルは、どこにいても、どのブラウザーを使用していても、離れたときと同じになります。私はしばらくの間これを理解しようとしてきましたが、成功しませんでした。ユーザーでログインして特定のプロファイルを作成すると、ログアウトするとすぐにそのプロファイルが削除されます。Cookieが絶えず削除される場合、Cookieに基づくプロファイルのみを持つのはかなりばかげているように見えるため、これはSitecoreでも可能ですか。
2 に答える
Sitecore Analyticsでは、2つの追跡Cookieがあります。1つはセッション用で、もう1つはGlobalSession用です(通常のasp.netセッションでは有効期限が切れません)。残念ながら、SitecoreはGlobalSessionに基づいてプロファイルキースコアを追跡しませんが、単一のasp.netセッションによって追跡します。システム全体がこれに基づいており、非常に残念です。'
これを回避するために、私はOMSを使用し、Reflectorを使用して分析コードの一部を分解および書き換えて、グローバルセッションで記録していました。また、いくつかのスキーマの変更と新しいルールが必要でした...かなり大規模な作業です。結局のところ、データベースのサイズと非常に限られた数の機能の必要性のために、私は1つのテーブルを作成し、その中にグローバルセッションによってプロファイルキー値を記録することになりました。
私の理解では、スキーマはOMSからDMSに変更されましたが、データがセッションごとに記録されるという最も重要な要素は変更されていません。
ユーザーIDの保存に関しては、これを「タグ」に関連付けることができます。このタグは、少なくともOMSではglobalsessionidに保存されていると思います。ただし、Sitecoreはタグレコードを更新しないため、グローバルセッションごとに複数のレコードが作成されることになります。すべてのリクエストでこの値を保存している場合、そのテーブルはすぐに肥大化します。
これにはいくつかの理由があります...特に、多くの場合、この情報を関連付けるためのログインユーザーがいないことです。プロファイルデータはCookieに保存されません...Analyticsテーブルに保存されます。ただし、これは一意のIDを持つCookieに関連付けられており、一度削除されると、そのIDは(うまくいけば!)再び使用されることはありません。
このStackOverflowの回答でこれを回避する方法の提案。