Интеграция через Pixel Ecom
Что происходит во время интеграции?
Наш код отслеживает историю действий пользователя на сайте, в том числе для выявления нарушений правил оффера вебмастерами (например, cookie-stuffing).
В процессе интеграции код устанавливает обезличенные файлы cookie и собирает следующие данные:
| Категория | Данные |
|---|---|
| Параметры URL перехода | Обезличенный идентификатор пользователя; обезличенный идентификатор сессии; параметры последнего перехода (полный URL и UTM-метки раздельно) |
| Параметры браузера | User-Agent; размер экрана; размер окна браузера; открытие страницы в iframe; URL текущей страницы и её реферер |
Также необходимо сформировать DATA-объект с информацией о покупке.
Мы не собираем личные данные и используем только те файлы cookie, которые настраиваем сами.
В СРА-канале используется модель атрибуции «Last Paid Click»: заказ присваивается платному источнику, который был последним в истории переходов перед оформлением заказа.
Это пример инструкции по интеграции Adv.Cake. Инструкцию с актуальными данными для вашего оффера передаст ваш менеджер.
Шаг 1. Предоставление доступа к рекламному кабинету
Предоставьте доступ к рекламному кабинету Google Analytics или Яндекс.Метрика:
-
Если вы используете Google Analytics, откройте доступ для аккаунтов analytics@advcake.com и exportcake@core-planet-304613.iam.gserviceaccount.com (аккаунт для запроса данных из Google Analytics по API).
-
Если вы используете Яндекс.Метрику, откройте доступ для аккаунта metrika@advcake.com.
Если предоставить доступ к этим сервисам невозможно, переходите к следующему шагу.
Шаг 2. Установка JS-кода на страницы сайта
Установите JS-код одним из двух способов:
-
Напрямую на сайт (рекомендуется):
- Код можно разместить как в
<head>, так и в<body>. Рекомендуем ставить его выше других скриптов — так поломка сторонних скриптов не нарушит работу нашего кода.
- Код можно разместить как в
-
Через GTM (не рекомендуется: код, установленный через GTM, блокируется блокировщиками рекламы, что приводит к потере конверсий от 30% до 50%):
- Если вы устанавливаете наш код через GTM, выберите триггер «Page View» или «DOM Ready». Триггер «Window Load» не подходит: другие загружаемые скрипты могут заблокировать наш скрипт.
Отправляйте все заказы независимо от источника трафика.
<script type="text/javascript" id="advcakeAsync">
(function(a) {
var b = a.createElement("script");
b.async = 1;
b.src = "//***.ru/"; // точный домен для интеграции будет вам передан вместе с кастомной инструкцией
a = a.getElementsByTagName("script")[0];
a.parentNode.insertBefore(b, a)
})(document);
</script>Добавьте в заголовок CSP (если он используется) переданный вам домен.
После запуска интеграции вы можете настроить API для автоматической сверки с помощью XML-выгрузки (подробности в шаге 4).
Шаг 3. Установка кода DATA-объекта на страницы сайта
Установите приведённые ниже коды на соответствующие страницы сайта:
Если какой-либо страницы из списка на вашем сайте нет, переходите к настройке следующей страницы.
1. Главная страница
<script>
window.advcake_data = window.advcake_data || [];
window.advcake_data.push({
pageType: 1,
user: {
email: 'md5(user@email.ru)' // email в виде хеша или уникальный идентификатор, если не передается, данное поле можно оставить пустым
}
});
</script>2. Страница одного товара
<script>
window.advcake_data = window.advcake_data || [];
window.advcake_data.push({
pageType: 2,
user: {
email: 'md5(user@email.ru)' // email в виде хеша или уникальный идентификатор, если не передается, данное поле можно оставить пустым
},
currentCategory: {
id: 441,
name: 'Обувь'
},
currentProduct: {
id: 3247,
name: 'Кроссовок Левый',
price: 30000
},
basketProducts: [{
id: 3247,
name: 'Кроссовок Левый',
price: 30000,
quantity: 1,
categoryId: 411,
categoryName: 'Обувь'
}, {
id: 3247,
name: 'Кроссовок Правый',
price: 30000,
quantity: 2,
categoryId: 411,
categoryName: 'Обувь'
}]
});
</script>3. Страница каталога/категории/подкатегории
<script>
window.advcake_data = window.advcake_data || [];
window.advcake_data.push({
pageType: 3,
user: {
email: 'md5(user@email.ru)' // email в виде хеша или уникальный идентификатор, если не передается, данное поле можно оставить пустым
},
currentCategory: {
id: 441,
name: 'Обувь'
},
products: [{
id: 001,
name: 'Черная кеда',
price: 12000
}, {
id: 002,
name: 'Серый кед',
price: 13000
}],
basketProducts: [{
id: 3247,
name: 'Кроссовок Левый',
price: 30000,
quantity: 1,
categoryId: 411,
categoryName: 'Обувь'
}, {
id: 3247,
name: 'Кроссовок Правый',
price: 30000,
quantity: 2,
categoryId: 411,
categoryName: 'Обувь'
}]
});
</script>4. Страница корзины
<script>
window.advcake_data = window.advcake_data || [];
window.advcake_data.push({
pageType: 4,
user: {
email: 'md5(user@email.ru)' // email в виде хеша или уникальный идентификатор, если не передается, данное поле можно оставить пустым
},
basketProducts: [{
id: 3247,
name: 'Кроссовок Левый',
price: 30000,
quantity: 1,
categoryId: 411,
categoryName: 'Обувь'
}, {
id: 3247,
name: 'Кроссовок Правый',
price: 30000,
quantity: 2,
categoryId: 411,
categoryName: 'Обувь'
}]
});
</script>5. Страница оформления заказа (после корзины и до страницы «Спасибо за заказ»)
<script>
window.advcake_data = window.advcake_data || [];
window.advcake_data.push({
pageType: 5,
user: {
email: 'md5(user@email.ru)' // email в виде хеша или уникальный идентификатор, если не передается, данное поле можно оставить пустым
},
basketProducts: [{
id: 3247,
name: 'Кроссовок Левый',
price: 30000,
quantity: 1,
categoryId: 411,
categoryName: 'Обувь'
}, {
id: 3247,
name: 'Кроссовок Правый',
price: 30000,
quantity: 2,
categoryId: 411,
categoryName: 'Обувь'
}]
});
</script>6. Страница оформленного заказа («Спасибо за заказ»)
<script>
window.advcake_data = window.advcake_data || [];
window.advcake_data.push({
pageType: 6,
user: {
email: 'md5(user@email.ru)', // email в виде хеша или уникальный идентификатор, если не передается, данное поле можно оставить пустым
type: 'old' // old, new - опционально, передавать пустое значение в кавычках (''), если тип пользователя неизвестен
},
basketProducts: [{
id: 3247,
name: 'Кроссовок Левый',
price: 30000,
quantity: 1,
categoryId: 411,
categoryName: 'Обувь'
}, {
id: 3247,
name: 'Кроссовок Правый',
price: 30000,
quantity: 2,
categoryId: 411,
categoryName: 'Обувь'
}],
orderInfo: {
id: 'ac31004', // уникальный идентификатор заказа, используемый при сверке
totalPrice: 90000, // сумму заказа передавать без учета доставки
coupon: 'SKIDKA100' // опционально, передавать пустое значение в кавычках (''), если заказ без купона или данный функционал отсутствует на сайте
}
});
</script>Шаг 4. Настройка автоматической сверки с помощью XML-выгрузки
Этот шаг необязателен для старта — настроить автоматическую сверку можно позже.
Каждый час мы забираем из XML-выгрузки данные о новых заказах и обновляем статусы существующих.
При передаче GET-параметров ?from=2019-01-01&to=2019-02-01 выгружаются заказы за указанный период по дате создания.
Расшифровка полей выгрузки
| Параметр | Тип параметра: пример | Описание |
|---|---|---|
orderId | string: "114392" | Номер заявки/лида/заказа |
orderPrice | number: 1500 | Стоимость заказа. Если понятие стоимости заказа отсутствует, данное поле можно исключить |
orderStatus | string: "1" | Статус заказа. Можно передавать двумя способами: 1. По нашим идентификаторам: "1" — в обработке; "2" — подтверждён; "3" — отменён. 2. По вашим идентификаторам — тогда нам нужно описание каждого статуса, например: «Принят в обработку» → "1"; «Подтверждён» → "2"; «Обработан» → "3". |
orderBasket | array: [{"id": "1"}] | Если ставка вебмастеру зависит от категории товара, необходимо передавать состав корзины в формате JSON (см. пример ниже) |
description | string: "Не понравился" | Причина отмены заказа (передавать данное поле желательно, но необязательно) |
coupon | string: "SALE10" | Использованный в заказе купон/промокод, если такая опция используется. Если такой опции нет, данное поле можно исключить |
clientType | string: "new" | Тип клиента: old (старый), new (новый). Нужен для разделения ставок и аналитики (желательно, но необязательно) |
dateCreate | string: "2022-09-08 17:16:25" | Дата создания заказа в формате Y-m-d H:i:s (например, 2022-09-08 17:16:25) |
dateLastChange | string: "2022-09-08 17:16:25" | Дата изменения статуса заказа в формате Y-m-d H:i:s (например, 2022-09-08 17:16:25) |
Пример значения orderBasket:
[
{
"id": "1107239", // тип данных: string
"name": "Куртка детская Rip Curl Small Puffer Jacket Surf The Web", // тип данных: string
"price": 4580, // тип данных: number
"quantity": 1, // тип данных: number
"marketing_cat": "1", // тип данных: string
"categoryId": "164", // тип данных: string
"categoryName": "одежда детская" // тип данных: string
},
{
"id": "1047488", // тип данных: string
"name": "Шапка носок Armour Classic Beanie Blue", // тип данных: string
"price": 490, // тип данных: number
"quantity": 1, // тип данных: number
"marketing_cat": "2", // тип данных: string
"categoryId": "164", // тип данных: string
"categoryName": "одежда детская" // тип данных: string
}
]Поля массива:
price— стоимость за единицу товара;quantity— количество товара в корзине;marketing_cat— маркетинговая категория (необязательно, если нет разделения комиссии по категориям);categoryId,categoryName— значения из товарного фида.
Если у вас есть дополнительные идентификаторы по заказу, создайте дополнительные поля и сообщите нам их названия и передаваемые параметры.
Вам помогла эта страница?
Последнее изменение: 06.01.2026