Adv.Cake

Пример инструкции XML 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 или Яндекс.Метрика:

Если вы используете Google Analytics, предоставьте доступ для аккаунтов analytics@advcake.com и exportcake@core-planet-304613.iam.gserviceaccount.com (аккаунт для запроса данных из Google Analytics по API);

Если вы используете Яндекс.Метрику, предоставьте доступ для аккаунта metrika@advcake.com.

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

Шаг 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 (если он используется) переданный вам домен.

Шаг 3. Настройка дополнительных параметров

По умолчанию трекинг-ссылка Adv.Cake выглядит так:

?utm_source=advcake&utm_medium=cpa&utm_campaign={partner}&utm_content={webmaster}&advcake_params={click_id}

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

При переходе на сайт пользователю выставляются две куки кодом Adv.Cake:

  1. advcake_track_id – случайная последовательность из 32-х букв в формате UUID v.4 (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).

  2. advcake_track_url – полная ссылка переход на сайт с utm_source=advcake.

Шаг 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 (новый). Может понадобиться для разделения ставок для новых/старых клиентов, а также для аналитики (передавать данное поле желательно, но необязательно)
orderTrackidЗначение куки advcake_track_id на момент совершения заказа (см. шаг 3)
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)
urlЗначение куки advcake_track_url на момент совершения заказа (см. шаг 3)

Пример значения 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 — значения из товарного фида.

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

Шаг 5. Установка кода, формирующего 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>

7. Страница списка товаров (страница поиска, страница акционных товаров и т.п.)

<script>
    window.advcake_data = window.advcake_data || [];
    window.advcake_data.push({
        pageType: 7,
            user: {
                email: 'md5(user@email.ru)' // email в виде хеша или уникальный идентификатор, если не передается, данное поле можно оставить пустым
            },
        products: [{
            id: 001,
            name: 'Черная кеда',
            categoryId: 411,
            categoryName: 'Обувь'
        }, {
            id: 002,
            name: 'Серый кед',
            categoryId: 411,
            categoryName: 'Обувь'
        }],
        basketProducts: [{
            id: 3247,
            name: 'Кросовок Левый',
            price: 30000,
            quantity: 1,
            categoryId: 411,
            categoryName: 'Обувь'
        }, {
            id: 3247,
            name: 'Кроссовок Правый',
            price: 30000,
            quantity: 2,
            categoryId: 411,
            categoryName: 'Обувь'
        }]
    });
</script>

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

Последнее изменение: 2026-04-13