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

Интеграция через XML 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-код можно двумя способами:

  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}&utm_term={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 выдаются заказы за указанный период по дате создания заказа.

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

ПараметрТип параметра: примерОписание
orderIdstring: "114392"Номер заявки/лида/заказа
orderPricenumber: 1500Стоимость заказа. Если понятие стоимости заказа отсутствует, данное поле можно исключить
orderStatusstring: "1"Статус заказа. Данное поле можно передавать двумя способами: Согласно нашим внутренним идентификаторам: "1" – Заказ в обработке; "2" – Заказ подтвержден; "3" – Заказ отменен. Согласно вашим внутренним идентификаторам – в таком случае нам потребуется описание каждого статуса, например: Принят в обработку – транслируем как статус "1"; Подтвержден – транслируем как статус "2"; Обработан – транслируем как статус "3".
orderBasketarray: [{"id": "1"}]Если ставка вебмастеру зависит от категории товара, необходимо передавать состав корзины в формате JSON (см. пример ниже)
descriptionstring: "Не понравился"Причина отмены заказа (передавать данное поле желательно, но необязательно)
couponstring: "SALE10"Использованный в заказе купон/промокод, если такая опция используется. Если такой опции нет, данное поле можно исключить
clientTypestring: "new"Тип клиента: new (новый), old (старый). Может понадобиться для разделения ставок для новых/старых клиентов, а также для аналитики (передавать данное поле желательно, но необязательно)
ordertrackIdstring: "25d478c0-36db-52cf-39sa"Значение куки advcake_track_id на момент совершения заказа (см. шаг 3)
urlstring: "https://example.ru/"Значение куки advcake_track_url на момент совершения заказа (см. шаг 3)
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 — значения из товарного фида.

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

Шаг 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

Спросить Cake AI