この記事では、Sitecore Experience Databaseのインストールにおける、Analytics Dataで最も頻繁に発生する問題のトラブルシューティングのプロセスについて説明します。
この記事のトラブルシューティング手順を使用するには、コレクション データベースへの接続の確認のドキュメントで説明されているテストを実行し、結果に応じて以下のシナリオのいずれかを選択してください:
解説
コンタクトがWebサイトにアクセスした後、コンタクトまたはインタラクション データがコレクション データベースに表示されない。
(データはセッションがタイムアウトするまでコレクション データベースに現れないことに注意してください。)
※新しいデータがデータベースに保存されているかどうかを確認するには、本記事の「コレクション データベースに保存されているインタラクションを確認する方法」セクションを参照してください。
データがコレクション データベースに収集されない場合のトラブルシューティング:
- Sitecore XP 8.0.0以降の場合、MongoDBサーバーのインターネット接続とネットワーク関連の制限を確認します。ファイアウォールでMongoDBサーバーへの接続が許可されていることを確認します。
Sitecore XP 9.0.0以降の場合、xConnectサービスがCDサーバーからアクセス可能であることを確認します。
- セッション状態の構成シナリオに従って、プライベートおよび共有セッション状態の双方が構成されていることを確認します。
- AkamaiなどのCDN・キャッシュ サービスが実行されていないことを確認します。Sitecore Analyticsがリクエストを追跡できるようにするには、すべてのリクエストをSitecoreインスタンスで処理する必要があります。
- プライベートまたは共有セッション状態にSitecore以外のセッション状態プロバイダーを使用している場合、そのサービスがSession_End ASP.NETイベントをサポートしている必要があります。
- Global.asaxファイルがWebsiteフォルダーに存在するかどうかを確認します。存在しない場合は、デフォルトのGlobal.asaxファイルを適切なSitecoreインストール アーカイブからWebsiteフォルダーにコピーします。
- カスタム アプリケーション クラスがGlobal.asaxファイルで定義されている場合、このクラスが標準のSitecore.Web.Applicationクラスから派生しており、どの標準のロジックもオーバーライドしないことを確認します。
- すべてのレイアウト ページの<head>セクションに<sc:VisitorIdentification runat="server" />タグ(MVC Web サイトの場合は@Html.Sitecore().VisitorIdentification() helper)が含まれていることを確認します。
- ...\layouts\systemパスまたはこのパスのファイルがWeb.configファイルの<setting name="IgnoreUrlPrefixes"...>設定に追加されていないことを確認します。
- Sitecore MVCを使用している場合、Sitecore.MvcAnalytics.configファイルが無効になっていないことを確認します。
- マルチ サーバーxDBをインストールしている場合、すべてのサーバーが構成ドキュメントに従って構成されていることを確認します。
解説
エクスペリエンス アナリティクス にデータが表示されない。ファクト テーブルとディメンション テーブル(レポート データベース、SQL Server)には、新しいAnalytics Dataが入力されない。
既知の問題
-
エクスペリエンス アナリティクス データが同期していないか欠落している場合のトラブルシューティング:
- コレクション データベースのインタラクション コレクションに、新しいインタラクションが入力されていることを確認します。新しいインタラクションが収集されたかどうかを確認するには、本記事の「コレクション データベースに保存されているインタラクションを確認する方法」セクションを参照してください。新しいインタラクションがコレクション データベースに追加されていない場合は、本記事の「シナリオ1」を参照してください。
- Reference Data Serviceに、CMからアクセスできることを確認します。
- レポートSQLデータベースのインターネット接続とネットワーク関連の制限を確認します。ファイアウォールでSQLサーバー インスタンスへの接続が許可されていることを確認します。
- Sitecore XP 8.0.0~8.2.7の場合、レポートSQLデータベースのセグメント テーブルが空でないことを確認します。このテーブルが空である場合、標準のSitecoreレポート データベースからのデータを入力するか、/sitecore/admin/RedeployMarketingData.aspx管理ページからレポート定義を再デプロイします。
- 特定の時間内に同じクエリのシーケンスを実行して、処理プールにあるレコードの数を確認して分析します。レコード数が増加している場合は、集約速度を調整する必要があることを意味します。
注意:
- エクスペリエンス アナリティクス アプリケーションは、日付範囲ごとにレポート データをキャッシュします。これにより、データがレポートにすぐに表示されないという動作が発生する可能性があります。アプリケーションにレポート データベースからデータを取得させるには、アプリケーションの右上隅にある日付ピッカーを使用して日付範囲を変更します。以前に適用されていない日付範囲を使用します(たとえば、上限・下限を1日ずらします)。
- エクスペリエンス アナリティクスの「オンライン インタラクションの訪問数と訪問毎のバリュー」レポートには、オンライン チャネルのデータが表示されます。このレポートだけにデータが表示されない場合、チャネル定義がデプロイされていない可能性があります。本事象を解決するには、以下の手順を実行する必要があります:
- スタート画面→コントロール パネル→[マーケティングの定義をデプロイする]に移動し、[タクソノミー ]を選択し、デプロイを実行します。
- 新しいインタラクションを作成し、セッションの終了と集計を待ってから、レポートを再度確認します。
- 新しいインタラクションのデータが存在する場合、レポート データベースを再構築して、履歴データを取得します。
解説
- エクスペリエンス プロファイルが訪問に関する新しい情報で更新されない。
- 新しいコンタクトがエクスペリエンス プロファイル レポートに表示されない。
- エクスペリエンス プロファイル レポートにコンタクトの一覧が表示されるが、コンタクトのプロファイルを開くことができない。
- 検索が正しく機能しない。
エクスペリエンス プロファイル データが同期していないか欠落している場合のトラブルシューティング:
Sitecore XP 8.0.0以降の場合:
- MongoDBサーバーが実行されており、Sitecoreインスタンスからアクセスできることを確認します。
- コレクション データベース(MongoDB)のコンタクト コレクションに新しいコンタクトが入力されていることを確認します。新しいコンタクトを生成するには、FirefoxまたはChromeのプライベート ブラウジング モード(シークレット モード)を使用してWebサイトにアクセスします。コレクション データベースが新しいコンタクトを追加できない場合、この記事のシナリオ1を参照します。
- sitecore_analytics_indexデータとコレクションデータベース(MongoDB)データの整合性を確認します。一貫性のないデータがある場合、レポート データベースの完全な再構築を実行します。これにより、収集されたデータと一致するようにsitecore_analytics_indexも更新されます。
Sitecore 9.0.0以降の場合:
- xConnectサービスがSitecoreインスタンスからアクセスできることを確認します。
- xDBインデックスに使用されるSOLRサーバーが実行されており、xConnectインスタンスからアクセスできることを確認します。
- Shardデータベースのコンタクト コレクションに新しいコンタクトが入力されていることを確認します。
注意:
- Sitecore XP 8.2.3以降の場合、エクスペリエンス プロファイル アプリケーションは、パフォーマンスの問題を回避するために、識別されたコンタクトのみを表示します。必要に応じて、トラブルシューティングのために匿名のコンタクトのインデックス作成を有効にしてください。本番環境では無効にすることをお勧めします。
匿名のコンタクトのインデックス作成を有効にするには:
- Sitecore XP 8.2.3以降の場合、\App_Config\Include\Sitecore.ContentSearch.Analytics.configファイルで ContentSearch.Analytics.IndexAnonymousContactsの設定値を「true」に設定します。
- Sitecore XP 9.0.0以降の場合、この記事の指示に従います。
- Sitecore XP 9.xでは、PII機密データはデフォルトでインデックスに登録されません。エクスペリエンス プロファイルで使用されるEmail、FirstName、およびLastNameフィールドは、PII機密としてマークされています。その結果、これらのフィールドを使用した検索はデフォルトでは機能しません。詳細については、この記事を参照してください。
シナリオ
- Pathアナライザがデータを表示しない。
- Pathアナライザに新しいデータが入力されない。
- Pathアナライザーのデータが、エクスペリエンス アナリティクス データと同期していない。
Pathアナライザーのデータが同期していないか欠落している場合のトラブルシューティング:
- コレクション データベースのインタラクション コレクションに、新しいインタラクションが入力されていることを確認します。Webサイトの任意のページにアクセスして、新しいインタラクションを生成します。新しいインタラクションがコレクション データベースに追加されていない場合は、この記事の「シナリオ1」を参照してください。
- レポートSQL データベースのTreeDefinitionsテーブルにデータが入力されているかどうかを確認します。このテーブルが空の場合、標準のSitecoreレポート データベースからのデータを入力するか、/sitecore/admin/RedeployMarketingData.aspx管理ページからレポート定義を再デプロイします。その後、パス アナライザ マップの再構築を実行します。
- パス アナライザーのデータがエクスペリエンス アナリティクスのデータと一致しない場合、パス アナライザ マップの再構築を実行します。
上記のすべてのリリースについて、インタラクションがコレクション データベースに正しく表示されることを確認するには、以下を実行してください:
- FirefoxまたはChromeでプライベート ブラウジング モード(シークレット モード)を開始し、サイトのいくつかのWebページにアクセスします。
- SC_ANALYTICS_GLOBAL_COOKIE cookieを見つけて、パイプの前の値を保存します。例えば、「169e920af41d4960ad9eff4d3260f8d9|Truecookieであれば、「169e920af41d4960ad9eff4d3260f8d9 」の値を取得します。
- Abandon.aspxページをリクエストして、データをすぐにフラッシュするか、ウィンドウを閉じてセッションの終了を待ちます。
- 次のいずれかのオプションを検討します:
- Sitecore XP 8.0.0以降の場合、分析データベースに接続し、次のクエリを実行します:
db.getCollection('Interactions').find({ContactId: NUUID("169e920a-f41d-4960-ad9e-ff4d3260f8d9")})
//id retrieved from Cookie should go here. Add dashes to make the value correct GUID.
- Sitecore XP 9.0.0以降でSQLプロバイダーが使用されている場合、シャード データベースに接続し、それぞれに対して次のクエリを実行します:
SELECT LastKnownContactId FROM [xdb_collection].[DeviceProfiles]
WHERE DeviceProfileId = '169e920a-f41d-4960-ad9e-ff4d3260f8d9'
--id retrieved from Cookie should go here. Add dashes to make the value correct GUID.
データベースの1つにLastKnownContactIdが含まれている必要があります。インタラクションを取得するために使用します(シャードデータベースの1つにあります):
SELECT * FROM [xdb_collection].[Interactions]
WHERE ContactId = '138E219A-0A5A-0000-0000-05D0EB074C6D'
-- where 138E219A-0A5A-0000-0000-05D0EB074C6D is the copied LastKnownContactId value.
- Sitecore XP 9.0.2以降でMongoDBプロバイダーが使用されている場合、コレクションMongoDBデータベースに接続し、次のクエリを実行します:
db.getCollection('DeviceProfiles').find({"_id.id":UUID("d2dae1fa-25b7-4948-a426-863115d8af2c")})
//id retrieved from Cookie should go here. Add dashes to make the value correct GUID.
lk_contact_idフィールドの値をコピーして次のクエリを実行します:
db.getCollection('Interactions').find({"_id.parent_id":UUID("5e84dc4c-48fa-4b38-bf7c-9e8e1deb0f78")})
//where UUID("5e84dc4c-48fa-4b38-bf7c-9e8e1deb0f78") is the copied lk_contact_id value.