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

Навигация по странице


Введение


Чтобы задать настройки:

  1. Авторизуйтесь на сайте ddmanager.ru
  2. Кликните на ссылку “настройки” в правом верхнем углу окна.
  3. Сделайте настройки согласно документации ниже
  4. Опубликуйте проект.

Автоматическая отправка события Viewed Page


Событие Viewed Page - это базовое событие. Оно необходимо для работы большинства сторонних систем. Вместе с событием Viewed Page в сторонние системы отправляются различные данные из объекта digitalData: digitalData.page.type, digitalData.user.userId, digitalData.listing.categoryId и многие другие.

Событие Viewed Page должно быть добавлено в массив digitalData.events только после полного заполнения данными объекта digitalData.

По умолчанию DigitalDataManager автоматически добавляет событие Viewed Page в массив digitalData.events в момент загрузки библиотеки ddmanager.js. Это происходит при каждой загрузке страницы.

Если вы добавляете событие Viewed Page в массив digitalData.events самостоятельно из кода сайта, делайте это только после заполнения объекта digitalData всеми переменными. В этом случае выключите тумблер “Автоматической отправки события Viewed Page”.


DigitalDataManager позволяет на основе событий и переменных объекта digitalData создавать новые переменные и сохранять их на определенный срок. Например: вам необходимо передать в google analytics количество просмотров карточек товаров перед покупкой. Подробнее о сохранении переменных читайте в разделе Переменные.

По умолчанию значение любой переменной сохраняется в LocalStorage браузера посетителя в виде строки. LocalStorage поддерживается всеми современными браузерами. В отличие от Cookie, LocalStorage является более безопасным хранилищем, вмещает до 5 мб, и информация никогда не отправляется на сервер.

Однако LocalStorage хранит информацию в рамках одного домена. Это значит, что вы не можете получить доступ к информации со страниц поддомена.

Если разные разделы вашего сайта расположены на поддоменах - используйте Cookie вместо LocalStorage

В качестве домена для установки cookie укажите домен верхнего уровня. Например, ваш интернет-магазин расположен по адресу https://shop.ru, но корзина расположена по адресу https://cart.shop.ru. Чтобы со страниц корзины была доступна информация, сохраненная на страницах карточек товаров, необходимо использовать cookie с доменом shop.ru

Cookie хранят только 4кб. Обратите на это внимание при сохранении больших массивов или строк.

При сохранении в Cookie строк которые состоят исключительно из чисел (например: ‘123’) переменная будет сохраняться как число. Если необходимо в переменной возвращать строку такого вида, необходимо в настройке переменной добавлять функцию String(), пример - return String(_digitalData(‘user.leadId’));

Длина сессии в секундах


DigitalDataManager имеет встроенное событие Session Started. Это событие автоматически добавляется в массив digitalData.events в случае, если у данного пользователя с момента любого другого события прошло больше заданного отрезка времени. По умолчанию этот отрезок времени (Длина сессии) равен одному часу или 3600 секунд. Примеры:

  1. Пользователь впервые попал на сайт. Одновременно с первым событием Viewed Page DigitalDataManager добавит событие Session Started в массив digitalData.events.
  2. Пользователь ходил по сайту, оставил вкладку браузера открытой и ушел на 2 часа. Пользователь вернулся к сайту и кликнул на баннер или перешел на другую страницу. В этот момент событие Session Started будет автоматически добавлено в массив digitalData.events.

Это событие может вам понадобиться, если вы захотите обнулять или перезаписывать значение переменной в объекте digitalData в момент старта новой сессии.

Рекомендуем и в Google Analytics и в DigitalDataManager задать одинаковую длину сессии.

Максимальная ширина сайта в пикселях


Если вы используете на сайте блок со слайдером баннеров, рекомендуем задать в поле настройки максимальную ширину окна вашего сайта. Эта настройка поможет правильно учитывать события показов баннеров.

Таймаут загрузки страницы в миллисекундах


DigitalDataManger попытается загрузить интеграции из блока “После загрузки сайта” (подробнее на странице Приоритеты) даже если не наступило событие onload для window.

Отслеживать ошибки валидации


DigitalDataManger имеет встроенный модуль отслеживания ошибок работы интеграций. Данный модуль выводит в консоль разработчика информацию обо всех данных, отправляемых в сторонние системы. Если вы включите отслеживание ошибок валидации, то каждый раз при возникновении ошибки в работе интеграции у любого из посетителей сайта, DigitalDataManager будет автоматически добавлять это событие в массив digitalData.events. Теперь это событие может быть отправлено в любую систему статистики для последующего анализа причин возникновения ошибки.

Если у вас настроена интеграция с Google Analytics, информацию об ошибках валидации вы найдете в отчетах по событиям.

Отслеживать все ошибки JavaScript


DigitalDataManger также умеет перехватывать сообщения о возникновении любых JavaScript-ошибок на вашем сайте. Обычно на сайтах происходят тысячи ошибок: не подгружаются библиотеки сторонних систем, ошибки в скриптах разработчиков, непредвиденные действия пользователей и так далее. Все эти ошибки могут быть переданы в Google Analytics с хитами типа exceptions. Построив кастомный отчет в интерфейсе Google Analytics вы сможете найти страницы и условия при которых случаются ошибки.

Пример настройки отчета в интерфейсе Google Analytics

Согласие на использование Cookies


DigitalDataManger поддерживает общий регламент по защите данных (GDPR). По умолчанию работает политика None, которая не предусматривает защиту данных. Чтобы установить поддержку регламента по защите данных вам необходимо произвести следующие действия:

  1. Убедиться, что на сайте установлена самая последняя версия сниппета DigitalDataManger.
  2. Выбрать политику в настройках проекта по адресу https://admin.ddmanager.ru/ (см скриншот в разделе введение).
  3. Добавить после сниппета обработчик события для изменения согласия пользователя на обработку своих данных:
ddManager.on('ready', function() {
  // в переменной consent будет решение
  // пользователя по обработке своих данных:
  // undefined - пользователь не принял решение
  // true - пользователь согласен на обработку данных
  // false - пользователь не согласен на обработку данных
  var consent = ddManager.getConsent();

  if (consent === undefined) {
    // показать всплывающее окно или баннер
    // для получения согласия пользователя
    // Если используется регламент Opt-in / Opt-out
    // нужно добавить обработчики событий принятия или отказа,
    // вызывающие метод ddManager.setConsent()
  }
});

В защите данных предусматривается 4 вида регламентов:

  • None
  • Info
  • Opt-in
  • Opt-out

None - значение по умолчанию. При значении None DigitalDataManger отправляет пользовательские данные во все подключенные системы.

Info - режим информирования. В данном режиме, при первичном посещении сайта, необходимо показать пользователю баннер или всплывающее окно с информацией о том, что данный сайт собирает пользовательские данные. DigitalDataManger автоматически вызывает функцию ddManager.setConsent(true);, которая передаст в переменную digitalData.consent значение true после совершения пользователем любого из действий: нажатие клавиши на клавиатуре, клик, скролл, проведение пальцем по сенсорному экрану на области страницы сайта. Начиная со следующего события Viewed Page, DigitalDataManger станет отправлять пользовательские данные во все подключенные системы.

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

  • Если пользователь согласен, он нажимает на кнопку принятия, после чего код сайта вызывает функцию ddManager.setConsent(true);, которая передаст в переменную digitalData.cookieConsent значение true. Начиная со следующего события Viewed Page, DigitalDataManger станет отправлять пользовательские данные во все подключенные системы.
  • Если пользователь не согласен, код сайта вызывает функцию ddManager.setConsent(false);, которая передаст в переменную digitalData.cookieConsent значение false. DigitalDataManger не будет отправлять пользовательские данные ни в одну из подключенных систем.

Opt-out - режим, требующий явного отказа пользователя от передачи данных сторонним системам. При первичном посещении сайта DigitalDataManger отправляет пользовательские данные во все подключенные системы. При этом, необходимо сразу показать пользователю баннер с информацией о том, что пользовательские данные собираются.

  • Если пользователь согласен, он нажимает на кнопку принятия. После нажатия код сайта вызывает функцию ddManager.setConsent(true);, которая передаст в переменную digitalData.cookieConsent значение true. DigitalDataManger продолжит отправлять пользовательские данные во все подключенные системы.
  • Если пользователь не согласен, он нажимает на кнопку отказа. После нажатия код сайта вызывает функцию ddManager.setConsent(false);, которая передаст в переменную digitalData.cookieConsent значение false. С этого момента DigitalDataManger не будет отправлять пользовательские данные ни в одну из подключенных систем.

В режимах Info и Opt-in, DigitalDataManger не загружает библиотеки интеграций. После получения акцепта пользователя DigitalDataManger ожидает следующего события Viewed Page, поэтому SPA-приложения должны сами сгенерировать событие Viewed Page после согласия пользователя.

На сайте https://demo.ddmanager.ru реализован пример защиты данных по регламенту Opt-in.

Очищать context.campaign после “Completed Transaction”


При каждом переходе на сайт, DigitalDataManger автоматически считывает utm_метки из url перехода, заполняет данными объект context.campaign. Подробнее читайте в разделе context. По-умолчанию, содержание объекта context.campaign хранится до загрузки любого url сайта с новыми utm_метками или до наступления события Completed Transaction. Вы можете включить или отключить очистку объекта context.campaign с помощью данного переключателя.