Adv.Cake
/Рекламодателям/Интеграция/Интеграция через Pixel Ecom

Интеграция через Pixel Ecom

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

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

В процессе интеграции код устанавливает обезличенные файлы cookie и собирает следующие данные:

КатегорияДанные
Параметры URL переходаОбезличенный идентификатор пользователя; обезличенный идентификатор сессии; параметры последнего перехода (полный URL и UTM-метки раздельно)
Параметры браузера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 выгружаются заказы за указанный период по дате создания.

Расшифровка полей выгрузки

ПараметрТип параметра: примерОписание
orderIdstring: "114392"Номер заявки/лида/заказа
orderPricenumber: 1500Стоимость заказа. Если понятие стоимости заказа отсутствует, данное поле можно исключить
orderStatusstring: "1"Статус заказа. Можно передавать двумя способами:
1. По нашим идентификаторам:
"1" — в обработке;
"2" — подтверждён;
"3" — отменён.
2. По вашим идентификаторам — тогда нам нужно описание каждого статуса, например:
«Принят в обработку» → "1";
«Подтверждён» → "2";
«Обработан» → "3".
orderBasketarray: [{"id": "1"}]Если ставка вебмастеру зависит от категории товара, необходимо передавать состав корзины в формате JSON (см. пример ниже)
descriptionstring: "Не понравился"Причина отмены заказа (передавать данное поле желательно, но необязательно)
couponstring: "SALE10"Использованный в заказе купон/промокод, если такая опция используется. Если такой опции нет, данное поле можно исключить
clientTypestring: "new"Тип клиента: old (старый), new (новый). Нужен для разделения ставок и аналитики (желательно, но необязательно)
dateCreatestring: "2022-09-08 17:16:25"Дата создания заказа в формате Y-m-d H:i:s (например, 2022-09-08 17:16:25)
dateLastChangestring: "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

Спросить Cake AI