Mindbox

Javascript SDK

Общее описание

JavaScript SDK позволяет асинхронно взаимодействовать сайту с платформой Mindbox. Он интегрируется аналогично Google Analytics или Яндекс.Метрике, при этом не влияя на скорость загрузки сайта и работу трекеров.

Для работы с JavaScript SDK используется один объект "mindbox". Для вызова метода используется следующая конструкция: mindbox('methodName', methodParameters, ... )

methodParameters - объект с параметрами для метода. Набор параметров зависит от метода. С помощью данной конструкции можно вызывать методы в любом месте страницы после кода отслеживания. Если код JavaScript SDK еще не загружен, операции встанут в очередь и выполнятся, как только произойдет полная инициализация скрипта.

Domain API Mindbox

Это домен, по которому будет происходить обращение в API Mindbox.

Чтобы получить нужный домен для вашего проекта, сделайте следующее:

  1. Откройте админку проекта
  2. Перейдите в операции (Кампании - Операции)
  3. Откройте любую операцию
  4. Нажмите "Посмотреть описание"
  5. Возьмите домен из Url в спецификации

domain-api.png

Не передавайте в этом поле адрес административного раздела

Так как JavaScript SDK может использовать различные поддомены на домене mindbox.ru, настройки сайта должны позволять использование кросс-доменных запросов (подробней можно прочитать здесь). Количество поддоменов и ip-адреса доменов не фиксируются, поэтому следует включать все поддомены в Content Security Policy директиву.

Инициализация

Code
<script> mindbox = window.mindbox || function() { mindbox.queue.push(arguments); }; mindbox.queue = mindbox.queue || []; mindbox('create', { endpointId: '<Идентификатор точки интеграции>' }); </script> <script src="https://<Domain API Mindbox>/scripts/v1/tracker.js" async></script>

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

Получение deviceUUID

Метод позволяет получить уникальный идентификатор устройства (deviceUUID), который используется Mindbox для идентификации пользователей, и использовать его для вызова. Например, для интеграции с системами аналитики или для передачи на backend вашего сайта.

JavascriptCode
mindbox("helpers.getDeviceUUID", value => { // Ваш код для работы с deviceUUID })

Вызов операций

JavascriptCode
mindbox('async', { operation: '<Название операции>', data: <Данные для операции>, onSuccess: <Функция, вызываемая при успехе>, onError: <Функция, вызываемая при ошибке> });

Обязательно передавать только имя операции. Для некоторых операций данные не нужны. Нужно ли выполнять функции при успехе или ошибке, зависит от сайта.

Примеры

JavascriptCode
mindbox('async', { operation: 'MySite.Registration', data: { customer: { mobilePhone: '79374134389', firstName: 'Иван', email: 'pivan@mindbox.ru' } }, onSuccess: function() { alert("Вы успешно зарегистрированы."); }, onError: function(error) { console.log(error); } });

Если сайт использует SPA (сменяет страницы без перезагрузки).

Для корректной работы форм персонализации сайта следует:

  • Перед трекером Mindbox добавить тег
Code
<script> window.PopMechanic = {watchLocation: false}; </script>
  • После смены страницы вызывать в JS
JavascriptCode
window.PopMechanic && window.PopMechanic.update && window.PopMechanic.update()

Возможные ошибки

ОшибкаПричинаРешение
401 UnauthorizedДомен или поддомен не разрешен для использования трекераДобавить домен или поддомен в список "Сайты с JavascriptSDK" в настройках точки интеграции с типом "Сайт"
Cross-Origin Request BlockedПоддомен, который используется Javascript SDK для работы, был заблокирован настройками сайта.Необходимо разрешить кросс-доменные запросы, либо добавить https://*.mindbox.ru в разрешенные зоны для кросс-доменных запросов
Refused to connect to 'https://....mindbox.ru/....' because it violates the following Content Security Policy directive: ...Настройки сайта запрещают трекеру обращаться к api на одном из наших поддоменов.Разрешить все для скриптов с https://*.mindbox.ru
Refused to load the script 'https://....mindbox.ru/....js' because it violates the following Content Security Policy directive: ...Настройки сайта запрещают загружать трекер или его части из-за используемых ими возможностей браузера.Разрешить все для скриптов с https://*.mindbox.ru
Last modified on