xDBデータの問題のトラブルシューティング


解説

この記事では、Sitecore Experience Databaseのインストールにおける、Analytics Dataで最も頻繁に発生する問題のトラブルシューティングのプロセスについて説明します。

この記事のトラブルシューティング手順を使用するには、コレクション データベースへの接続の確認のドキュメントで説明されているテストを実行し、結果に応じて以下のシナリオのいずれかを選択してください:

シナリオ1.データがコレクション データベースに収集されない

解説

コンタクトがWebサイトにアクセスした後、コンタクトまたはインタラクション データがコレクション データベースに表示されない。
(データはセッションがタイムアウトするまでコレクション データベースに現れないことに注意してください。)

※新しいデータがデータベースに保存されているかどうかを確認するには、本記事の「コレクション データベースに保存されているインタラクションを確認する方法」セクションを参照してください。

データがコレクション データベースに収集されない場合のトラブルシューティング:

  1. Sitecore XP 8.0.0以降の場合MongoDBサーバーのインターネット接続とネットワーク関連の制限を確認します。ファイアウォールでMongoDBサーバーへの接続が許可されていることを確認します。
    Sitecore XP 9.0.0以降の場合、xConnectサービスがCDサーバーからアクセス可能であることを確認します。
  2. セッション状態の構成シナリオに従って、プライベートおよび共有セッション状態の双方が構成されていることを確認します。
  3. AkamaiなどのCDN・キャッシュ サービスが実行されていないことを確認します。Sitecore Analyticsがリクエストを追跡できるようにするには、すべてのリクエストをSitecoreインスタンスで処理する必要があります。
  4. プライベートまたは共有セッション状態にSitecore以外のセッション状態プロバイダーを使用している場合、そのサービスがSession_End ASP.NETイベントをサポートしている必要があります。
  5. Global.asaxファイルがWebsiteフォルダーに存在するかどうかを確認します。存在しない場合は、デフォルトのGlobal.asaxファイルを適切なSitecoreインストール アーカイブからWebsiteフォルダーにコピーします。
  6. カスタム アプリケーション クラスがGlobal.asaxファイルで定義されている場合、このクラスが標準のSitecore.Web.Applicationクラスから派生しており、どの標準のロジックもオーバーライドしないことを確認します。
  7. すべてのレイアウト ページの<head>セクションに<sc:VisitorIdentification runat="server" />タグ(MVC Web サイトの場合は@Html.Sitecore().VisitorIdentification() helper)が含まれていることを確認します。
  8. ...\layouts\systemパスまたはこのパスのファイルがWeb.configファイルの<setting name="IgnoreUrlPrefixes"...>設定に追加されていないことを確認します。
  9. Sitecore MVCを使用している場合、Sitecore.MvcAnalytics.configファイルが無効になっていないことを確認します。
  10. マルチ サーバーxDBをインストールしている場合、すべてのサーバーが構成ドキュメントに従って構成されていることを確認します。

シナリオ2. エクスペリエンス アナリティクス データが同期していないか欠落している

解説

エクスペリエンス アナリティクス にデータが表示されない。ファクト テーブルとディメンション テーブル(レポート データベース、SQL Server)には、新しいAnalytics Dataが入力されない。

既知の問題

    • デバイス検出データベースを更新できないため、処理に時間がかかる場合があります。本事象を解決するには、次のリンク先をご参照ください:KB1001448[Sitecore XP 9.0.2で修正済み] 
    • web.configファイルでexmEnabled:defineが「No」に設定されている場合、次のパッチをインストールしてください:https://github.com/SitecoreSupport/Sitecore.Support.215205/releases.[Sitecore XP 9.1.0で修正済み] 

エクスペリエンス アナリティクス データが同期していないか欠落している場合のトラブルシューティング:

  1. コレクション データベースのインタラクション コレクションに、新しいインタラクションが入力されていることを確認します。新しいインタラクションが収集されたかどうかを確認するには、本記事の「コレクション データベースに保存されているインタラクションを確認する方法」セクションを参照してください。新しいインタラクションがコレクション データベースに追加されていない場合は、本記事の「シナリオ1」を参照してください。
  2. Reference Data Serviceに、CMからアクセスできることを確認します。
  3. レポートSQLデータベースのインターネット接続とネットワーク関連の制限を確認します。ファイアウォールでSQLサーバー インスタンスへの接続が許可されていることを確認します。
  4. Sitecore XP 8.0.0~8.2.7の場合、レポートSQLデータベースのセグメント テーブルが空でないことを確認します。このテーブルが空である場合、標準のSitecoreレポート データベースからのデータを入力するか、/sitecore/admin/RedeployMarketingData.aspx管理ページからレポート定義を再デプロイします。
  5. 特定の時間内に同じクエリのシーケンスを実行して、処理プールにあるレコードの数を確認して分析します。レコード数が増加している場合は、集約速度を調整する必要があることを意味します。

注意:

シナリオ3. エクスペリエンス プロファイル データが同期していないか欠落している

解説

エクスペリエンス プロファイル データが同期していないか欠落している場合のトラブルシューティング:

Sitecore XP 8.0.0以降の場合

Sitecore 9.0.0以降の場合

注意:

シナリオ4. Pathアナライザーのデータが同期していないか欠落している

シナリオ

Pathアナライザーのデータが同期していないか欠落している場合のトラブルシューティング:

コレクション データベースに保存されているインタラクションを確認する方法

上記のすべてのリリースについて、インタラクションがコレクション データベースに正しく表示されることを確認するには、以下を実行してください:

  1. FirefoxまたはChromeでプライベート ブラウジング モード(シークレット モード)を開始し、サイトのいくつかのWebページにアクセスします。
  2. SC_ANALYTICS_GLOBAL_COOKIE cookieを見つけて、パイプの前の値を保存します。例えば、「169e920af41d4960ad9eff4d3260f8d9|Truecookieであれば、「169e920af41d4960ad9eff4d3260f8d9 」の値を取得します。
  3. Abandon.aspxページをリクエストして、データをすぐにフラッシュするか、ウィンドウを閉じてセッションの終了を待ちます。
  4. 次のいずれかのオプションを検討します:
    • 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.