xDB не хранит никаких взаимодействий

Обновление: Итак, проблема заключалась в том, что мое приложение Global.asax.cs не является производным от Sitecore.Web.Application.

Итак, я только что установил Sitecore 8 с MongoDB 2.6.11.

В целях тестирования я поместил приведенный ниже код в событие загрузки страницы, чтобы активировать цель, которую я создал ранее в sitecore.

Цель была успешно создана с помощью развертывания и публикации. Я также подтвердил правильность идентификатора предмета цели.

    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();

К сожалению, это не сработало, и я не вижу цели в xDB в разделе «Взаимодействия».

Другие вещи, на которые я обратил внимание, это то, что мой макет определенно имеет тег

<sc:VisitorIdentification runat="server" />

мой Global.asax реализует Sitecore.Web.Application

public class Global : Sitecore.Web.Application

Но не повезло. В Mongo нет взаимодействий (используя mongo shell и 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: )

person Bobby    schedule 04.12.2015    source источник
comment
Не могли бы вы пояснить следующее: 1) Есть ли Interactions коллекция в вашей analytics базе данных MongoDB? 2) Есть ли в этой коллекции какие-либо документы? 3) Почему вы используете API регистрации событий страницы, а не связываете цель с элементом контента?   -  person Dmytro Shevchenko    schedule 04.12.2015
comment
Привет @DmytroShevchenko Я могу подтвердить 1) в моей аналитике MongoDB есть коллекция взаимодействий с 4 индексами. 2) В коллекции Interactions нет документов. 3) План состоит в том, чтобы поместить создание этой цели в событие нажатия кнопки, но для простоты и в целях тестирования я поместил код в загрузку страницы. См. изображение выше. Спасибо   -  person Bobby    schedule 04.12.2015
comment
Есть ли ошибки в журналах Sitecore?   -  person Dmytro Shevchenko    schedule 04.12.2015
comment
В настоящее время запускаю его через powershell (см. изображение выше) и не вижу ничего интересного. Это помогает? Sitecore я вижу ошибку (см. выше)   -  person Bobby    schedule 04.12.2015
comment
Какую именно версию Sitecore вы используете?   -  person Dmytro Shevchenko    schedule 04.12.2015


Ответы (1)


Активация целей

Во-первых, это правильный способ вызвать цель:

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. Одна из проблем, к которой это может привести, заключается в том, что контакт взаимодействия будет оставаться заблокированным в течение 21 минуты (или любого другого времени ожидания вашего сеанса, равного + 1 минуте).

Вместо этого, в целях тестирования, я рекомендую вам установить время ожидания сеанса на 1 минуту и ​​просто подождать 1 минуту после вашего последнего запроса страницы. Этот параметр находится в файле Web.config как атрибут <sessionState>.

Устранение неполадок с сохранением взаимодействий

  1. Убедитесь, что строка подключения analytics задана правильно.
  2. Убедитесь, что у вас есть лицензия на xDB. Вы можете просмотреть список доступных лицензий в Панели управления Sitecore –> Администрирование –> Установленные лицензии.
    а) В Sitecore 8.0 или ниже имя лицензии – Sitecore.OMS.
    б) В Sitecore 8.1 – Sitecore.xDB.base.
  3. Убедитесь, что xDB и его подсистема отслеживания включены.
    а) В Sitecore 8.0 или более ранней версии Analytics.Enabled должно быть установлено на true в Sitecore.Analytics.config.
    б) В Sitecore 8.1 для параметров Xdb.Enabled и Xdb.Tracking.Enabled в Sitecore.Xdb.config должно быть задано значение true.
  4. Отслеживание также должно быть включено для определений сайтов.
    а) В Sitecore 8.0 или более ранней версии перейдите к разделу <sites> в Web.config и убедитесь, что enableAnalytics < strong>не установите значение false на <site name="website"> или любом другом сайте, который вы используете.
    b) В Sitecore 8.1 вы должны убедиться, что enableTracking установлено на true для вашего сайта в Sitecore. конфиг.
  5. Попробуйте сделать несколько запросов страниц вместо одного, прежде чем истечет срок действия сеанса.
  6. Попробуйте отключить обнаружение роботов, задав для Analytics.Robots.IgnoreRobots и Analytics.AutoDetectBots значение false в Sitecore.Analytics.Tracking.config. Если после этого взаимодействия будут сохранены, я обновлю свой ответ дальнейшими инструкциями.
  7. Если ничего не помогает, выполните шаги, перечисленные в статье Устранение неполадок с данными xDB.
person Dmytro Shevchenko    schedule 04.12.2015
comment
Спасибо за это. Я попробую и вернусь к вам в любом случае. - person Bobby; 04.12.2015
comment
В версии 8.1 Analytics.Enabled перемещен в Sitecore.Xdb.config и переименован в Xdb.Tracking.Enabled. Также помните enableTracking="true" в определениях вашего сайта (8.1). - person Søren Kruse; 04.12.2015
comment
Строка ниже дает мне null. Имейте в виду, что я создал не событие страницы, а саму цель. Sitecore.Analytics.Data.Items.PageEventItem targetToTrigger = Sitecore.Analytics.Tracker.DefinitionItems.PageEvents[goalId]; - person Bobby; 05.12.2015
comment
Цели @Bobby являются событиями страницы. Особый вид. В любом случае, я не думаю, что регистрация целей является вашей главной проблемой здесь. Решайте свои проблемы по очереди. Сначала вам нужно убедиться, что взаимодействия (веб-посещения) сохраняются в MongoDB. Я бы попробовал удалить код регистрации цели и просто посетить несколько обычных страниц после того, как вы попробуете каждый из описанных мной шагов. - person Dmytro Shevchenko; 05.12.2015
comment
Итак, проблема заключалась в том, что мое приложение Global.asax.cs не производное от Sitecore.Web.Application. Все работает сейчас. Спасибо за ссылку на устранение неполадок. Я обновлю вопрос. - person Bobby; 07.12.2015