Трекинг-код 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>
Рекомендуемые параметры для использования:
Подробнее о способах передачи можете почитать здесь.