Appearance
JS SDK для веб-сайта
JS SDK помимо старта сессии, в том числе, обрабатывает ботов, поддерживает длительность сессии, управляет запросами к API и повторами в случае ошибки и многое другое.
Установка на сайт выполняется в два шага:
- Установить скрипт.
- Запустить сессию.
Шаг 1. Установка SDK на сайт
На каждой странице сайта в теге <head> нужно установить скрипт:
javascript
(function(r){
window.r46=window.r46||function(){(window.r46.q=window.r46.q||[]).push(arguments)};
var c="https://cdn.rees46.ru",v="/v3.js",s={link:[{href:c,rel:"dns-prefetch"},{href:c,rel:"preconnect"},{href:c+v,rel:"preload",as:"script"}],script:[{src:c+v,async:""}]};
Object.keys(s).forEach(function(c){s[c].forEach(function(d){var e=document.createElement(c),a;for(a in d)e.setAttribute(a,d[a]);document.head.appendChild(e)})});
})();Скрипт асинхронный, его загрузка не замедляет загрузку сайта. И типичное время загрузки составляет не более 30ms.
Шаг 2. Запуск сессии
Запуск сессии восстанавливает или создает новый did, продлевает или начинает новую сессию, а также автоматически инициализирует все стандартные витринные инструменты: товарные рекомендации, поиск, попапы, баннеры, сторис и пр.
Для запуска сессии сразу же после скрипта из предыдущего раздела пропишите эту строку:
javascript
r46('init', 'SHOP_ID');Вместо SHOP_ID укажите открытый API-ключ из личного кабинета.
С этого момента SDK готов к работе и можно вызывать остальные методы для трекинга событий, запроса рекомендаций и пр.
Стрим
Если у вас несколько сайтов и вы хотите разделять в CDP данные по источникам, вы можете задать параметр stream. Если он не указан, то по умолчанию в CDP передается null, что трактуется как "сайт".
Стрим можно трактовать как тег для потока данных. Разные источники имеют разный тег и с его помощью можно сегментировать действия посетителей и заказы.
Например, если вы хотите разделить трафик магазина и блога, можно запустить сессию следующим образом:
javascript
// На магазине
r46('init', 'SHOP_ID', 'shop');javascript
// На блоге
r46('init', 'SHOP_ID', 'blog');Стрим может быть любой короткой строкой латинскими буквами и цифрами.
Коллбэки
Для обработки удачного или неудачного старта сессии используйте коллбэки:
javascript
r46('init', 'SHOP_ID', null, success_callback, failure_callback);SPA сайт
Метод init должен выполняться на каждой открытой странице сайта. В обычном режиме достаточно просто разместить скрипт инициализации в теге <head> и все происходит само.
В single-page application скрипты в <head> не выполняются при каждом перемещении по сайту, поэтому инициализация не будет работать автоматически. Для того, чтобы SDK автоматически обрабатывал переходы, инициализируйте его с параметром:
javascript
const isSpa = true;
r46('init', 'SHOP_ID', 'STREAM', success_callback, failure_callback, options, isSpa);Режим без cookie
Если вы работаете в стране, где от посетителя в обязательном порядке требуется согласие на cookie и посетитель его не дал, инициализировать сессию можно с опцией, заменяющей cookie на localStorage:
javascript
const options = {
cookieless: true
}
r46('init', 'SHOP_ID', 'STREAM', success_callback, failure_callback, options);Режим "без согласия"
Если же посетитель вообще не дал никакого согласия, то можно инициализировать SDK в режиме отсутствия согласия. В этом режиме трекинг работать не будет, посетитель так и останется анонимным.
Ряд инструментов платформы работать не будут. При этом поиск по сайту и некоторые алгоритмы товарных рекомендаций все равно будут работать.
javascript
const options = {
consent: false
}
r46('init', 'SHOP_ID', 'STREAM', success_callback, failure_callback, options);Свой did
Важно
Эта опция существует только для интеграций, когда REES46 внедряется внутрь другой маркетинговой платформы в режиме white-label. Не используйте ее для сайтов обычных клиентов.
Вы можете заменить did от SDK своим внутренним идентификатором, тем самым связывая данные CDP REES46 и вашей маркетинговой платформы:
javascript
const options = {
did: "$p4wXaS6*"
}
r46('init', 'SHOP_ID', 'STREAM', success_callback, failure_callback, options);Кастомные API-домены
Платформа может работать в режиме упрощенного white-label, когда все endpoint'ы платформы находятся на вашем домене. В этом случае SDK можно инициализировать, перезаписав базовые значения.
Если значение не указано (пустая строка или undefined), будет использоваться значение по умолчанию.
javascript
const options = {
api_host: 'api.custom.com',
cdn_host: '',
pictures_host: undefined,
}
r46('init', 'SHOP_ID', 'STREAM', success_callback, failure_callback, options);On-premise
Эти настройки в том числе применяются при инициализации SDK, когда платформа работает в режиме on-premise.