3

更新:問題は、私のアプリケーション Global.asax.cs が Sitecore.Web.Application から派生していないことでした。

それで、MongoDB 2.6.11 で Sitecore 8 をインストールしました。

テスト目的で、以下のコードをページ読み込みイベントに配置して、以前にサイトコアで作成した目標を有効にしました。

デプロイとパブリッシュによって、目標が正常に作成されました。ゴールのアイテムIDも正しいことを確認しました。

    if (Sitecore.Analytics.Tracker.IsActive && Sitecore.Analytics.Tracker.Current.CurrentPage != null)
    {
       Sitecore.Data.Items.Item GoaltoTrigger = Sitecore.Context.Database.GetItem("{EDA8EA2C-7AF5-4D0F-AF76-A9C4E6BD7169}");
       if (GoaltoTrigger != null)
       {
           Sitecore.Analytics.Data.Items.PageEventItem registerthegoal = new Sitecore.Analytics.Data.Items.PageEventItem(GoaltoTrigger);
           Sitecore.Analytics.Model.PageEventData eventData = Sitecore.Analytics.Tracker.Current.CurrentPage.Register(registerthegoal);
           eventData.Data = GoaltoTrigger["Description"];
           Sitecore.Analytics.Tracker.Current.Interaction.AcceptModifications();
       }
    }
    Session.Abandon();

悲しいことに、これは機能せず、Interactions の下の xDB に目標が表示されません。

私が調べた他のことは、私のレイアウトには間違いなくタグがあるということです

<sc:VisitorIdentification runat="server" />

私の Global.asax は Sitecore.Web.Application を実装します

public class Global : Sitecore.Web.Application

まだ運がありません。インタラクションは、Mongo で見られる場所ではありません (mongo シェルと roboMongo を使用してコレクションを検索します)。他に何か不足していますか?

ここに画像の説明を入力

ここに画像の説明を入力

サイトコア エラー

ManagedPoolThread #3 16:43:00 INFO  Job ended: Sitecore.ListManagement.Analytics.UnlockContactListsAgent (units processed: )
12980 16:43:05 INFO  Cache created: '[no name]' (max size: 976KB, running total: 2918MB)
12980 16:43:05 INFO  Cache created: '[no name]' (max size: 976KB, running total: 2919MB)
12980 16:43:05 INFO  Cache created: '[no name]' (max size: 976KB, running total: 2920MB)
12980 16:43:05 INFO  Cache created: '[no name]' (max size: 976KB, running total: 2921MB)
12980 16:43:05 INFO  Cache created: '[no name]' (max size: 976KB, running total: 2922MB)
ManagedPoolThread #5 16:43:06 ERROR Failed to perform MaxMind lookup
ManagedPoolThread #5 16:43:06 ERROR Failed to perform GeoIp lookup for 127.0.0.1
Exception: Sitecore.Analytics.Lookups.CannotParseResponseException
Message: Unexpected format. Cannot parse the MaxMind response for IP address: 127.0.0.1

Source: Sitecore.Analytics
   at Sitecore.Analytics.Lookups.MaxMindProvider.GetInformationByIp(String ip)
   at Sitecore.Analytics.Lookups.GeoIpManager.GetDataFromLookupProvider(GeoIpHandle geoIpHandle)

12980 16:43:08 INFO  Cache created: 'WebUtil.QueryStringCache' (max size: 19KB, running total: 2922MB)
2700 16:43:08 INFO  HttpModule is being initialized
12360 16:43:08 INFO  HttpModule is being initialized
7068 16:43:08 INFO  HttpModule is being initialized
9940 16:43:10 INFO  [Experience Analytics]: Reduce agent found zero segments to process
ManagedPoolThread #1 16:43:10 INFO  Job started: Sitecore.ListManagement.Analytics.UnlockContactListsAgent
ManagedPoolThread #1 16:43:10 INFO  Job ended: Sitecore.ListManagement.Analytics.UnlockContactListsAgent (units processed: )
4

1 に答える 1

11

トリガーゴール

まず、ゴールをトリガーする正しい方法は次のとおりです。

if (Sitecore.Analytics.Tracker.IsActive)
{
    if (Sitecore.Analytics.Tracker.Current.CurrentPage != null)
    {
        var goalId = new Sitecore.Data.ID("{EDA8EA2C-7AF5-4D0F-AF76-A9C4E6BD7169}");

        Sitecore.Analytics.Data.Items.PageEventItem goalToTrigger =
            Sitecore.Analytics.Tracker.DefinitionItems.PageEvents[goalId];

        if (goalToTrigger != null)
        {
            Sitecore.Analytics.Model.PageEventData eventData =
                Sitecore.Analytics.Tracker.Current.CurrentPage.Register(goalToTrigger);
        }
        else
        {
            Sitecore.Diagnostics.Log.Error("Goal with ID " + goalId + " does not exist", this);
        }
    }
    else
    {
        Sitecore.Diagnostics.Log.Error("Tracker.Current.CurrentPage is null", this);
    }
}
else
{
    Sitecore.Diagnostics.Log.Warn("The tracker is not active. Unable to register the goal.", this);
}

登録後にイベント データを変更しようとしないでください。

また、Interaction.AcceptModifications()このメソッドは、ある時点で xDB が内部的に使用するものであるため、 を呼び出すべきではありません。

CurrentPage.Register()あなたがする必要がある唯一のことです。

セッションの終了

の使用はお勧めしませんSession.Abandon()。これにより、ユーザーの操作がコレクション データベースに保存される可能性がありますが、この方法では、Sitecore のセッションの通常の流れが中断されます。これが引き起こす可能性のある問題の 1 つは、インタラクションの連絡先が 21 分間 (またはセッション タイムアウトが + 1 分に設定されている場合) の間ロックされたままになることです。

代わりに、テスト目的で、セッション タイムアウトを 1 分に設定し、最後のページ リクエストから 1 分待つことをお勧めします。この設定は、の属性としてWeb.config<sessionState>にあります。

インタラクションの保存に関する問題のトラブルシューティング

  1. analytics接続文字列が正しく設定されていることを確認してください。
  2. xDB のライセンスがあることを確認してください。使用可能なライセンスのリストは、Sitecore コントロール パネル –> 管理 –> インストール済みライセンスで確認できます。
    a) Sitecore 8.0 以前では、ライセンス名はSitecore.OMS.
    b) Sitecore 8.1 ではSitecore.xDB.base.
  3. xDB とその追跡サブシステムが有効になっていることを確認してください。
    a) Sitecore 8.0 以前では、Sitecore.Analytics.configAnalytics.Enabledでに設定する必要があります。 b) Sitecore 8.1 では、 Sitecore.Xdb.config で と の両方を設定する必要があります。true
    Xdb.EnabledXdb.Tracking.Enabledtrue
  4. サイト定義でも追跡を有効にする必要があります。
    a) Sitecore 8.0 以前では、 Web.config<sites>のセクションに移動し、使用しているサイトに設定されていないことを確認します。 b) Sitecore 8.1 では、 Sitecore.configでサイトに対してが設定されていることを確認する必要があります。enableAnalyticsfalse<site name="website">
    enableTrackingtrue
  5. セッションの有効期限が切れる前に、ページ リクエストを 1 回だけではなく、複数回行ってみてください。
  6. Sitecore.Analytics.Tracking.configでとの両方Analytics.Robots.IgnoreRobotsを設定して、ロボット検出を無効にしてみてください。この後にやり取りが保存された場合は、回答を更新してさらに指示を出します。Analytics.AutoDetectBotsfalse
  7. 何も解決しない場合は、記事xDB データの問題のトラブルシューティングに記載されている手順を実行してください。
于 2015-12-04T09:40:48.380 に答える