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

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

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

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

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

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

    • Cookie - обезличенный идентификатор пользователя;

    • Cookie - обезличенный идентификатор сессии;

    • Cookies - параметров последнего перехода (полный URL и UTM-метки раздельно).

  2. Параметры браузера:

    • User-Agent;

    • Размер экрана;

    • Размер окна браузера;

    • Открытие страницы в iframe;

    • URL текущей страницы и ее реферер;

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

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

Подсказка

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

Примечание

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

Содержание:

  1. Установка JS-кода на страницы сайта;

  2. Настройка отправки заказов;

  3. Установка кода, формирующего DATA-объект на страницы.

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

  1. В панели администратора Webflow на вкладке «Dashboard» (1), выберите ваш сайт, нажмите на ··· и перейдите в настройки сайта (2):

-
  1. В настройках сайта перейдите на вкладку «Custom Code» (1) и вставьте код ниже в поле «Head Code» (2), после чего нажмите Save Changes (3):

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

Шаг 2. Настройка отправки заказов

  1. В настройках сайта перейдите на вкладку «Integrations», прокрутите страницу вниз до пункта «Webhooks» и нажмите Add Webhook:

-
  1. Установите «Trigger Type» = «Form submission» (1);

  2. В поле «Webhook URL» укажите ссылку для отправки постбека, которая была передана вам вместе с этой инструкцией (пример ссылки – https://api.ekacvda.com/postback/test) (2), после чего нажмите Add Webhook (3):

-

Шаг 3. Установка кода, формирующего DATA-объект на страницы

  1. В панели администратора Webflow на вкладке «Dashboard» (1) наведите курсор на ваш сайт и откройте редактор сайта (2):

-
  1. В левом верхнем углу нажмите на название страницы:

-
  1. В списке страниц наведите курсор на строку с названием страницы, после чего, нажмите на иконку настроек:

-
  1. В появившемся окне прокрутите страницу вниз до пункта «Custom Code» и вставьте коды ниже в поле «Inside <head> tag:

-

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>

Предупреждение

ID товаров должны быть всегда одинаковыми, т.е. у каждого товара свой ID.