Adv.Cake

Пример инструкции Pixel Ecom

Что происходит во время интеграции?

Наш код отслеживает историю действий пользователя на сайте, в том числе для выявления нарушений правил оффера вебмастерами (например, cookie-stuffing).

В процессе интеграции код устанавливает обезличенные файлы cookie, которые фиксируют путь пользователя и изменения источника трафика.

Мы собираем и используем следующие данные:

  1. Параметры URL перехода:

    • Cookie — обезличенный идентификатор пользователя;
    • Cookie — обезличенный идентификатор сессии;
    • Cookies — параметры последнего перехода (полный URL и UTM-метки раздельно).
  2. Параметры браузера:

    • User-Agent;
    • Размер экрана;
    • Размер окна браузера;
    • Открытие страницы в iframe;
    • URL текущей страницы и её реферер.

Также необходимо сформировать DATA-объект с информацией о покупке.

Мы не собираем личные данные и используем только те файлы cookie, которые настраиваем сами.

В СРА-канале используется модель атрибуции «Last Paid Click»: заказ присваивается платному источнику, который был последним в истории переходов перед оформлением заказа.

Это пример инструкции по интеграции Adv.Cake. Инструкцию с актуальными данными для вашего оффера передаст ваш менеджер.

Шаг 1. Предоставление доступа к рекламному кабинету

Предоставьте доступ к рекламному кабинету Google Analytics или Яндекс.Метрика:

Если предоставить доступ к этим сервисам невозможно, переходите к следующему шагу.

Шаг 2. Установка JS-кода на страницы сайта

Установите JS-код одним из двух способов:

  1. Напрямую на сайт (рекомендуется):

    • Код можно разместить как в <head>, так и в <body>. Рекомендуем ставить его выше других скриптов — так поломка сторонних скриптов не нарушит работу нашего кода.
  2. Через 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Номер заявки/лида/заказа
orderPriceСтоимость заявки. Если понятие стоимости заявки отсутствует, поле можно исключить
orderStatusСтатус заявки. Поле можно передавать двумя способами:

Согласно нашим внутренним идентификаторам:

1 – Заявка в обработке;

2 – Заявка подтверждена;

3 – Заявка отменена.

Согласно вашим внутренним идентификаторам — в таком случае нам потребуется описание каждого статуса, например:

Принят в обработку – транслируем как статус 1;

Подтвержден – транслируем как статус 2;

Обработан – транслируем как статус 3.
orderBasketЕсли ставка вебмастеру зависит от категории товара необходимо передавать также обновленный список товаров.

orderBasket – состав корзины в формате JSON, например:

[
{
"id": 1107239,
"name": "Куртка детская Rip Curl Small Puffer Jacket Surf The Web",
"price": 4580,
"quantity": 1,
"marketing_cat": "1",
"categoryId": "164",
"categoryName": "одежда детская"
},
{
"id": 1047488,
"name": "Шапка носок Armour Classic Beanie Blue",
"price": 490,
"quantity": 1,
"marketing_cat": "2",
"categoryId": "164",
"categoryName": "одежда детская"
}
]

– в поле price передавать стоимость за единицу товара;

– в поле quantity передавать количество данного товара в корзине;

– в поле marketing_cat передаётся маркетинговая категория товара: каждому товару присваивается номер категории, по которому рассчитывается комиссия (поле необязательно, если разделения комиссии по категориям нет);

Например:

Одежда:
marketing_cat: "1" – комиссия 5% от стоимости товара;

Обувь:
marketing_cat: "2" – комиссия 2% от стоимости товара.

Примечание: если вы используете другой вариант разделения товаров по категориям, сообщите нам.

– в поля categoryId, categoryName передавать значения из товарного фида.
descriptionПричина отмены заявки (желательно, но не обязательно)
couponКупон/промокод, использованный в заказе. Если промокоды не используются, поле можно исключить
clientTypeТип клиента: old (старый), new (новый). Нужен для разделения ставок и аналитики (желательно, но не обязательно)
dateCreateДата создания заказа в формате Y-m-d H:i:s (например, 2022-09-08 17:16:25)
dateLastChangeДата изменения статуса заказа в формате 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 — значения из товарного фида.

Если у вас есть дополнительные идентификаторы по заказу, создайте дополнительные поля и сообщите нам их названия и передаваемые параметры.

Вам помогла эта страница?

Последнее изменение: 2026-01-06