Трекинг-код Retail Rocket состоит из 6 скриптов, которые необходимо разместить на страницах вашего сайта.
На ваш сайт необходимо установить следующий код:
Разместите трекинг-код системы на каждой странице вашего сайта в секции <head>:
<script type="text/javascript"> var rrPartnerId = "partnerIdFromPartnerOffice"; var rrApi = {}; var rrApiOnReady = rrApiOnReady || []; rrApi.addToBasket = rrApi.order = rrApi.categoryView = rrApi.view = rrApi.recomMouseDown = rrApi.recomAddToCart = function() {}; (function(d) { var ref = d.getElementsByTagName('script')[0]; var apiJs, apiJsId = 'rrApi-jssdk'; if (d.getElementById(apiJsId)) return; apiJs = d.createElement('script'); apiJs.id = apiJsId; apiJs.async = true; apiJs.src = "//cdn.retailrocket.ru/content/javascript/tracking.js"; ref.parentNode.insertBefore(apiJs, ref); }(document)); </script>
На всех страницах карточек товаров и формах быстрого просмотра необходимо установить товарный трекинг-код:
<script type="text/javascript"> (window["rrApiOnReady"] = window["rrApiOnReady"] || []).push(function() { // Передача данных о просматриваемом товаре retailrocket.products.post({ // Идентификатор товара, число без кавычек "id": <product ID>, // Название товара, строка "name": "Example product name", // Цена товара, число без кавычек "price": 777, // Ссылка на изображение товара, не больше 1 MB. Предпочтительный размер 400-400 px. Формат изображений JPEG или PNG. // Рекомендуем использовать изображение со страницы категории. Эти изображения будут использованы в блоках рекомендаций и письмах. "pictureUrl": "http://example.com/path/to/Photo.jpg", // Ссылка на товар "url": "http://www.example.com/path/to/productPage", // Статус наличия товара, true или false "isAvailable": true, // Массив, состоящий из путей до товарных категорий. В качестве разделителя между категориями // используется косая черта (слэш). Путь до категории должен точно отражать структуру меню сайта // и вложенность категорий (используйте только статичные названия категорий, избегайте // использования URL путей, фильтров из боковой панели или динамических хлебных крошек). // Передавайте пути только до самых низкоуровневых категорий: если товар находится в категориях // "Женщинам/Одежда/Юбки" и "Женщинам/Одежда", необходимо передать только один путь - // "Женщинам/Одежда/Юбки". "categoryPaths": ["Women/Clothes/Skirts","Women/New Arrivals"], // Описание товара "description": "Some text description", // Регион, склад или языковой идентификатор пользователя для обработки нескольких складов, // которые могут иметь разные цены и доступность товаров в разных регионах, или стран // (в случае различающихся языков, валют и т.д.). В каждом регионе / stockId должно быть // как минимум в 5 раз больше уникальных посетителей в месяц, чем число товаров в регионе / stockId. // Например, если в регионе 10000 товаров, то посещаемость в этом регионе должна быть как // минимум 50000 уникальных пользователей в месяц. "stockId": "City1", // Производитель товара, необязательный параметр "vendor": "Brand name", // Модель товара, необязательный параметр "model": "Model name", // Тип товара, необязательный параметр "typePrefix": "Product type", // Старая цена товара, необязательный параметр "oldPrice": 999, "params": { "<custom parameter 1 name>": "<custom parameter 1 value>", "<custom parameter 2 name>": "<custom parameter 2 value>", "<custom parameter N name>": "<custom parameter N value>", "languages": { "<language1>": { "description": "description in language1", "name": "name in language1", "url": "url to product in specific language", "<custom parameter 1 name in language1>": "<custom parameter 1 value>", "<custom parameter 2 name in language1>": "<custom parameter 2 value>", "<custom parameter N name in language1>": "<custom parameter N value>" }, "<language2>": { "description": "description in language2", "name": "name in language2", "url": "url to product in specific language", "<custom parameter 1 name in language2>": "<custom parameter 1 value>", "<custom parameter 2 name in language2>": "<custom parameter 2 value>", "<custom parameter N name in language2>": "<custom parameter N value>" } }, "currencies": { "EUR": <price in EUR>, "USD": <price in USD> } } }); // Product ID - уникальный идентификатор товара, число без кавычек rrApi.view(<product ID>, {"stockId": "<stock_id>"}); }); </script>
Поле params содержит список произвольных полей, значения которых могут быть использованы в виджетах при выдаче рекомендаций или в верстке писем.
На всех страницах товарных категорий необходимо установить следующий код:
<script type="text/javascript">
(window["rrApiOnReady"] = window["rrApiOnReady"] || []).push(function() {
// Полный путь до текущей категории с косой чертой в качестве разделителя, строка. Должен совпадать с путем, передаваемом в карточках товаров данной категории.
rrApi.categoryView("Women/Clothes/Skirts");
});
</script>
На кнопках, нажатие которых приводит к добавлению товара в корзину, необходимо установить обработчик событий:
onmousedown="try { rrApi.addToBasket(<product_id>,{'stockId': '<stock_id>'}) } catch(e) {}"
Где:
Пример:
<div class="buy_button" onmousedown="try { rrApi.addToBasket(123, {'stockId': '10'}) } catch(e) {}"></div>
Обратите внимание: Кнопка добавления в корзину может находиться как в карточке товара, так и в листингах. Вызов метода addToBasket нужно установить и в этом случае.
На финальной странице оформления заказа (на которой пользователю сообщают о том, что заказ сформирован, благодарят за покупку и так далее) необходимо установить обработчик совершения транзакции. Трекинг-код должен срабатывать при всех
доступных способах оплаты и доставки:
<script type="text/javascript"> (window["rrApiOnReady"] = window["rrApiOnReady"] || []).push(function() { try { rrApi.setEmail("<user_email>", {"stockId": "<stock_id>","language": "<user_language>","currency": "<user_currency>"}); rrApi.order({ "transaction": "<transaction_id>", "items": [ { "id": <product_id>, "qnt": <quantity>, "price": <price>}, { "id": <product_id>, "qnt": <quantity>, "price": <price> } ] }); } catch(e) {} }) </script>
Где:
Пример:
<script type="text/javascript">
(window["rrApiOnReady"] = window["rrApiOnReady"] || []).push(function() {
try {
rrApi.setEmail($('#EmailFieldID').val(), {"stockId": "<stock_id>","language": "<user_language>","currency": "<user_currency>"});
rrApi.order({
"transaction": "1235421421",
"items": [
{ "id": 12312, "qnt": 4, "price": 130 },
{ "id": 64532, "qnt": 1, "price": 220 }
]
});
} catch(e) {}
})
</script>
Каждый раз, когда вы получаете email пользователя, исполняйте код:
(window["rrApiOnReady"] = window["rrApiOnReady"] || []).push(function() { rrApi.setEmail("<user_email>",{"stockId": "<stock_id>","language": "<user_language>","currency": "<user_currency>"});});
Важно: передавайте email только тех пользователей, которые явно выразили согласие на получение сообщений электронной почты, в том числе рекламного характера.
Пример 1: добавьте следующий атрибут для подтверждающей кнопки формы подписки, которая используется на вашем сайте:
onclick="try {rrApi.setEmail($('#EmailFieldID').val(),{"stockId": "<stock_id>","language": "<user_language>","currency": "<user_currency>"});}catch(e){}"
Пример 2: добавьте следующий код на страницу "Спасибо за заказ", если пользователь подписался на маркетинговые рассылки интернет-магазина:
<script type="text/javascript"> (window["rrApiOnReady"] = window["rrApiOnReady"] || []).push(function() { rrApi.setEmail("<user_email>",{"stockId": "<stock_id>","language": "<user_language>","currency": "<user_currency>"}); }); </script>
Пример 3: передача дополнительных данных о пользователе для дальнейшей персонализации в рассылках:
<script type="text/javascript"> (window["rrApiOnReady"] = window["rrApiOnReady"] || []).push(function() { rrApi.setEmail("example@email.com", { "gender": "Male", "age": 21, "stockId": "Amsterdam", "birthday": "15.01.1983", "language": "nl", "currency": "euro" }); }); </script>
Рекомендуемые параметры для использования:
Подробнее о способах передачи можете почитать здесь.