Интеграция через трекинг-код с помощью Google Tag Manager

  • Обновлено

Назначение трекинг-кода

Трекинг-код — это код на языке JavaScript, который необходимо разместить на сайте.

Трекинг-код регистрирует целевое действие пользователя на вашем сайте и отправляет в статистику Admitad Affiliate. Когда трекинг-код сработает, серверу Admitad Affiliate будет отправлен запрос с информацией о целевом действии (номер заказа, сумма заказа и другие данные).

Мы не рекомендуем использовать контейнер Google Tag Manager (GTM) для интеграции трекинг-кода, поскольку он уязвим для блокировки расширениями. Если у вас есть возможность, воспользуйтесь стандартным методом интеграции через трекинг-код.
Admitad Affiliate не осуществляет техническую поддержку данной платформы и не несет ответственность за программы, которые пострадали в результате использования GTM.

Интеграция через трекинг-код с помощью Google Tag Manager 1

 

Кроме того, трекинг-код отвечает за дедупликацию заказов и crossdevice трекинг.

Обратите внимание:

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

Для начала работы с Admitad Affiliate предоставьте ссылку перехода* на ваш сайт, включающую все необходимые вам GET-параметры и UTM-метки.

Пример ссылки для перехода
https://site.ru/?utm_source=admitad&utm_medium=cpa

На основании ссылки перехода будут сгенерированы партнерские ссылки для наших веб-мастеров. В дальнейшем веб-мастера будут размещать партнерские ссылки на своих ресурсах для привлечения трафика на ваш сайт.

*Ссылок перехода может быть и несколько, но только одна из них будет основной ссылкой перехода в программе (по умолчанию).

 

Установка трекинг-кода в Google Tag Manager

  • Здесь и далее будет использоваться сокращение GTM вместо Google Tag Manager.
  • Данная инструкция последовательно описывает шаги, которые нужно совершить для размещения трекинг-кода Admitad Affiliate в GTM. Инструкция не является законченной реализацией, а лишь служит ее демонстрацией. Все указанные в инструкции переменные, макросы, правила и теги также являются примером.
  • Дополнительную помощь можно найти на страницах сообщества разработчиков тегов Google.
     

Регистрация и подключение GTM

Для доступа к GTM вам необходима учетная запись Google. Если у вас ее нет, создайте новую учетную запись Google на https://accounts.google.com. Авторизуйтесь на сайте GTM https://tagmanager.google.com.

На стартовой странице нажмите «Создать аккаунт». Введите имя аккаунта и нажмите «Далее».

Интеграция через трекинг-код с помощью Google Tag Manager 2

 

Создайте контейнер GTM для вашего веб-сайта. Имя контейнера может быть произвольным.

Интеграция через трекинг-код с помощью Google Tag Manager 3

 

После принятия пользовательского соглашения вы увидите код для подключения GTM на ваш сайт.

Интеграция через трекинг-код с помощью Google Tag Manager 4

 

Разместите его на вашем сайте в соответствии с инструкцией в тегах <head> и <body>.

Интеграция через трекинг-код с помощью Google Tag Manager 5

 

Теперь можно переходить к настройке тегов, переменных и триггеров.
 

Инициализация уровня данных и настройка переменных

Для передачи данных о заказе внутрь GTM используется специальный объект dataLayer. Подробнее про использование dataLayer можно прочитать тут.

Инициализируйте dataLayer на странице «Спасибо за покупку» вашего сайта выше места подключения контейнера GTM. В данном примере использован расширенный формат Google Analytics ecommerce.

<script>
   window.dataLayer = window.dataLayer || [];
   dataLayer.push({
       "transactionId": "sk1006",   // внутренний номер заказа (не более 100 символов)
       "transactionChannel": "adm", // параметр дедупликации (по умолчанию для Admitad Affiliate)
       "transactionAction": "1",    // код целевого действия (определяется при интеграции)
       "transactionProducts": [{
           "sku": "1354471145550",  // внутренний код продукта (не более 100 символов)
           "tariff": "2",           // код тарифа (определяется при интеграции)
           "price": "300.00",       // цена товара
           "priceCurrency": "RUB",  // код валюты ISO-4217 alfa-3
           "quantity": "2"          // количество товара
       }, {
           "sku": "1354471047246",
           "tariff": "2",
           "price": "500.00",
           "priceCurrency": "RUB",
           "quantity": "1"
       }]
   });
</script>

 

Для настройки переменных GTM перейдите в меню «Переменные» в рабочей области и нажмите «Создать».

Интеграция через трекинг-код с помощью Google Tag Manager 6

 

Выберите тип переменной «Переменная уровня данных».

Интеграция через трекинг-код с помощью Google Tag Manager 7

 

Задайте имя переменной уровня данных, версию уровня данных и значение по умолчанию. Сохраните переменную.

Интеграция через трекинг-код с помощью Google Tag Manager 8

 

При создании переменных руководствуйтесь таблицей ниже.

Имя переменной dataLayer Имя переменной уровня данных Версия dataLayer Значение по умолчанию
transactionId orderNumber Version 2  
transactionChannel broker Version 2 adm
transactionAction category Version 2  
transactionProducts transactionProducts Version 2  

 

У вас должен получиться следующий список переменных.

Интеграция через трекинг-код с помощью Google Tag Manager 9

 

Настройка триггеров

Для настройки триггеров перейдите в меню «Триггеры» в рабочей области.

Интеграция через трекинг-код с помощью Google Tag Manager 10

 

Создайте триггер типа «Окно загружено».

Интеграция через трекинг-код с помощью Google Tag Manager 11

 

Выберите опцию «Некоторые события «Окно загружено». В примере ниже страница будет определена как «Спасибо за покупку», если в ее URL содержится подстрока «thank_you». Добавьте аналогичное правило для вашего сайта.

Интеграция через трекинг-код с помощью Google Tag Manager 12

 

Сохраните триггер с именем «TagTag conversion».

Интеграция через трекинг-код с помощью Google Tag Manager 13

 

Создайте еще один триггер типа «Просмотр страницы — Окно загружено». Выберите опцию «Все события «Окно загружено». Сохраните триггер с именем «TagTag common».

Интеграция через трекинг-код с помощью Google Tag Manager 14

 

Должен получиться следующий список триггеров.

Интеграция через трекинг-код с помощью Google Tag Manager 15

 

Настройка тегов

Для настройки тегов перейдите в меню «Теги» в рабочей области.

Интеграция через трекинг-код с помощью Google Tag Manager 16

 

Создайте тег типа «Пользовательский HTML».

Интеграция через трекинг-код с помощью Google Tag Manager 17

 

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

  •     <script src="https://www.artfut.com/static/tagtag.min.js?campaign_code={your_campaign_code}" 
        async onerror='var self = this;window.ADMITAD=window.ADMITAD||{},ADMITAD.Helpers=ADMITAD.Helpers||{},
        ADMITAD.Helpers.generateDomains=function(){for(var e=new Date,n=Math.floor(new Date(2020,e.getMonth(),
        e.getDate()).setUTCHours(0,0,0,0)/1e3),t=parseInt(1e12*(Math.sin(n)+1)).toString(30),i=["de"],
        o=[],a=0;a<i.length;++a)o.push({domain:t+"."+i[a],name:t});return o},
        ADMITAD.Helpers.findTodaysDomain=function(e){function n(){var o=new XMLHttpRequest,a=i[t].domain,
        D="https://"+a+"/";o.open("HEAD",D,!0),o.onload=function(){setTimeout(e,0,i[t])},
        o.onerror=function(){++t<i.length?setTimeout(n,0):setTimeout(e,0,void 0)},
        o.send()}var t=0,i=ADMITAD.Helpers.generateDomains();n()},window.ADMITAD=window.ADMITAD||{},
        ADMITAD.Helpers.findTodaysDomain(function(e){if(window.ADMITAD.dynamic=e,window.ADMITAD.dynamic)
        {var n=function(){return function(){return self.src?self:""}}(),t=n(),
        i=(/campaign_code=([^&]+)/.exec(t.src)||[])[1]||"";t.parentNode.removeChild(t);
        var o=document.getElementsByTagName("head")[0],a=document.createElement("script");
        a.src="https://www."+window.ADMITAD.dynamic.domain+"/static/"+window.ADMITAD.dynamic.name.slice(1)
        +window.ADMITAD.dynamic.name.slice(0,1)+".min.js?campaign_code="+i,o.appendChild(a)}});'></script>
        

Не забудьте изменить значение {your_campaign_code} на полученное при начале интеграции.

Интеграция через трекинг-код с помощью Google Tag Manager 18

 

Теперь обратите внимание на раздел конфигурации триггеров ниже окна конфигурации тегов.

Интеграция через трекинг-код с помощью Google Tag Manager 19

 

Задайте триггер активации «TagTag common» и триггер исключения «TagTag conversion» для созданного тега.

Интеграция через трекинг-код с помощью Google Tag Manager 20

 

Сохраните тег с именем «TagTag common».

Интеграция через трекинг-код с помощью Google Tag Manager 21

 

Создайте еще один тег типа «Пользовательский HTML». Вставьте в окно конфигурации тега следующий код.

  •     <script src="https://www.artfut.com/static/tagtag.min.js?campaign_code={your_campaign_code}" 
        onerror='var self = this;window.ADMITAD=window.ADMITAD||{},ADMITAD.Helpers=ADMITAD.Helpers||{},
        ADMITAD.Helpers.generateDomains=function(){for(var e=new Date,n=Math.floor(new Date(2020,e.getMonth(),
        e.getDate()).setUTCHours(0,0,0,0)/1e3),t=parseInt(1e12*(Math.sin(n)+1)).toString(30),i=["de"],
        o=[],a=0;a<i.length;++a)o.push({domain:t+"."+i[a],name:t});return o},
        ADMITAD.Helpers.findTodaysDomain=function(e){function n(){var o=new XMLHttpRequest,
        a=i[t].domain,D="https://"+a+"/";o.open("HEAD",D,!0),o.onload=function(){setTimeout(e,0,i[t])},
        o.onerror=function(){++t<i.length?setTimeout(n,0):setTimeout(e,0,void 0)},
        o.send()}var t=0,i=ADMITAD.Helpers.generateDomains();n()},window.ADMITAD=window.ADMITAD||{},
        ADMITAD.Helpers.findTodaysDomain(function(e){if(window.ADMITAD.dynamic=e,
        window.ADMITAD.dynamic){var n=function(){return function(){return self.src?self:""}}(),
        t=n(),i=(/campaign_code=([^&]+)/.exec(t.src)||[])[1]||"";t.parentNode.removeChild(t);
        var o=document.getElementsByTagName("head")[0],a=document.createElement("script");
        a.src="https://www."+window.ADMITAD.dynamic.domain+"/static/"+window.ADMITAD.dynamic.name.slice(1)+
        window.ADMITAD.dynamic.name.slice(0,1)+".min.js?campaign_code="+i,o.appendChild(a)}});'></script>
    
    
        <script type="text/javascript">
        ADMITAD = window.ADMITAD || {};
        ADMITAD.Invoice = ADMITAD.Invoice || {};
        ADMITAD.Invoice.broker = '{{broker}}';      // место подстановки переменной transactionChannel
        ADMITAD.Invoice.category = '{{category}}';  // место подстановки переменной transactionAction
    
        var orderedItem = [];
    
        var positions = {{transactionProducts}};    // место подстановки переменной transactionProducts 
    
        for (i = 0; i < positions.length; ++i) {
         orderedItem.push({
           Product: {
               productID: positions[i]['sku'],
               category: positions[i]['tariff'],
               price: positions[i]['price'],
               priceCurrency: positions[i]['priceCurrency']
           },
           orderQuantity: positions[i]['quantity'],
           additionalType: "sale"
         });
        }
    
       ADMITAD.Invoice.referencesOrder = ADMITAD.Invoice.referencesOrder || [];
       ADMITAD.Invoice.referencesOrder.push({
         orderNumber: '{{orderNumber}}',          // место подстановки переменной transactionId
         orderedItem: orderedItem
       });
       </script>

Не забудьте изменить значение {your_campaign_code} на полученное при начале интеграции.

Убедитесь, что сможете найти в своей CMS заказ по значению orderNumber — по нему в дальнейшем будет проводиться сверка.

 

Задайте триггер активации «TagTag conversion» для созданного тега.

Интеграция через трекинг-код с помощью Google Tag Manager 22

 

Сохраните тег с именем «TagTag conversion».

Интеграция через трекинг-код с помощью Google Tag Manager 23

 

Должен получиться следующий список тегов.

Интеграция через трекинг-код с помощью Google Tag Manager 24

 

Настройка передачи уникальных промокодов

Уникальные промокоды — промокоды, привязанные к конкретному веб-мастеру. Подробнее о них здесь.

Чтобы использовать уникальные промокоды:

1. Запишите значение промокода в dataLayer GTM (у вас структура dataLayer может отличаться).

  • <script>
       window.dataLayer = window.dataLayer || [];
    
       dataLayer.push({
           "transactionId": "sk1006",
           "transactionChannel": "adm",
           "transactionAction": "1",
           "transactionProducts": [{
               "sku": "1354471145550",
               "tariff": "2",
               "price": "300.00",
               "priceCurrency": "RUB",
               "quantity": "2"
           }],
           "transactionPromocode": "ADMPROMO" // значение промокода
       });
    </script>

При передаче заказа с уникальным промокодом всегда устанавливайте значение параметра дедупликации «adm», т.к. этот заказ принадлежит Admitad Affiliate.

При передаче заказа с обычным промокодом (неуникальным) используйте стандартную настройку дедупликации.

 

Пример кода в CMS

Интеграция через трекинг-код с помощью Google Tag Manager 25

 

2. Добавьте переменную типа Data Layer Variable.

Интеграция через трекинг-код с помощью Google Tag Manager 26


Интеграция через трекинг-код с помощью Google Tag Manager 27

 

3. Добавьте переменную в тег конверсии.

Интеграция через трекинг-код с помощью Google Tag Manager 28

  • // добавление товарных позиций к заказу
    ADMITAD.Invoice.referencesOrder.push({
      orderNumber: "{{orderNumber}}", // внутренний номер заказа (не более 100 символов)
      discountCode: "{{promocode}}",  //  код уникального промокода
      orderedItem: orderedItem
    });

Пример кода в теге

Интеграция через трекинг-код с помощью Google Tag Manager 29

 

4. Не забудьте опубликовать изменения GTM на сайт.

Интеграция через трекинг-код с помощью Google Tag Manager 30

 

5. Убедитесь, что промокод уходит в запросе от TagTag.

Интеграция через трекинг-код с помощью Google Tag Manager 31

 

Дедупликация заказов

Если вы работаете только с Admitad Affiliate, оставьте значение параметра дедупликации по умолчанию и пропустите этот раздел.

Если вы сотрудничаете более чем с одним платным источником, настройте дедупликацию заказов на вашей стороне для настройки передачи заказов в соответствии с моделью аттрибуции Last Paid Click:

1. Сообщите техническому специалисту Admitad Affiliate, какой GET-параметр из страницы входа на сайт вы будете использовать для дедупликации. По умолчанию параметр не добавляется.

2. Создайте cookie дедупликации со значением источника. Cookie должны храниться в течение всего срока по договору (по умолчанию 90 дней).

3. Определите значение параметра дедупликации transactionChannel из cookie при передаче данных о заказе в параметре dataLayer. Это сообщит нам, какому источнику принадлежит заказ. Для заказов Admitad Affiliate используйте значение параметра дедупликации adm. Заказы со значениями других платных источников не будут создаваться. Заказы с неопределённым источником будут создаваться, если на другом устройстве или браузере этого пользователя был визит через веб-мастера Admitad Affiliate в течение времени жизни cookie.
 

Пример кода с использованием cookie для хранения источника перехода

  • // имя cookie для хранения источника
    // если используется другое имя, укажите его
    var cookie_name = 'deduplication_cookie';
    // число дней жизни куки
    var days_to_store = 90;
    // ожидаемое значение deduplication_cookie для Admitad Affiliate
    var deduplication_cookie_value = 'admitad';
    // имя GET параметра для дедупликации
    // если у вас используется другой параметр, укажите его имя
    var channel_name = 'deduplication_channel';
    // функция для получения источника из GET параметра
    getSourceParamFromUri = function() {
       var pattern = channel_name + '=([^&]+)';
       var re = new RegExp(pattern);
       return (re.exec(document.location.search) || [])[1] || '';
    };
    // функция для получения источника из cookie с именем cookie_name
    getSourceCookie = function() {
       var matches = document.cookie.match(new RegExp(
           "(?:^|; )" + cookie_name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
       ));
       return matches ? decodeURIComponent(matches[1]) : undefined;
    };
    // функция для записи источника в cookie с именем cookie_name
    setSourceCookie = function() {
       var param = getSourceParamFromUri();
       if (!param) {
           return;
       }
       var period = days_to_store * 60 * 60 * 24 * 1000; // в секундах
       var expiresDate = new Date((period) + +new Date);
       var cookieString = cookie_name + '=' + param + '; path=/; expires=' + expiresDate.toGMTString();
       document.cookie = cookieString;
       document.cookie = cookieString + '; domain=.' + location.host;
    };
    // запись куки
    setSourceCookie();
    
    // определение канала для Admitad Affiliate
    if (!getSourceCookie(cookie_name)) {
       dataLayer.push({
           "transactionChannel": 'na'
       });
    } else if (getSourceCookie(cookie_name) != deduplication_cookie_value) {
       dataLayer.push({
           "transactionChannel": getSourceCookie(cookie_name)
       });
    } else {
       dataLayer.push({
           "transactionChannel": 'adm'
       });
    }

 

Crossdevice трекинг

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

Функция работает по умолчанию. При посещении сайта рекламодателя мы собираем уникальный анонимный профиль пользователя. При заказе мы сопоставляем данные в рамках профиля и при наличии admitad_uid создаём заказ. Наиболее корректно функция работает при настроенной дедупликации. Чтобы помочь Admitad Affiliate в точном определении пользователя, вы можете явно передавать уникальный идентификатор пользователя в объекте уровня данных dataLayer. В его качестве может выступать электронная почта или логин зарегистрированного на сайте пользователя. Уникальный идентификатор пользователя имеет приоритет над анонимным профилем: если вы объявляете accountID, то трекинг-код не передает данные анонимного профиля в запросе к Admitad Affiliate — используется ваше значение.

При работе через GTM передайте идентификатор пользователя в объект уровня данных dataLayer.

   dataLayer.push({
       "transactionCustomer": "customer@email.ru";     // e-mail пользователя

   });

 

Admitad Affiliate не хранит значение этого параметра и не пересылает его в открытом виде. Значение переменной необратимо хэшируется Sha256 с солью и впоследствии используется на стороне Admitad Affiliate в качестве уникального идентификатора заказов пользователя.

Добавьте новую переменную accountID и свяжите с переменной уровня данных transactionCustomer.

Интеграция через трекинг-код с помощью Google Tag Manager 32

 

Откройте окно конфигурации тега «TagTag conversion» и добавьте строку.

ADMITAD.Invoice.accountId = '{{accountId}}';    // место подстановки переменной transactionCustomer

Интеграция через трекинг-код с помощью Google Tag Manager 33

 

Сохраните тег «TagTag conversion».

Затем добавьте ту же строку в тег «TagTag common» и сохраните его.

 

Тестирование трекинга

Убедитесь, что вы правильно подключили трекинг-код по инструкции, в том числе и на мобильной версии сайта (если есть).

После этого свяжитесь с отделом трекинга Admitad Affiliate и запросите партнерскую ссылку для тестирования.

 

Порядок тестирования

Если у вашей программы несколько целевых действий (например, «Регистрация пользователя» и «Оплаченный заказ»), необходимо протестировать каждое из них.

1. Перейдите по тестовой партнерской ссылке на ваш сайт. Убедитесь что в строке адреса есть все необходимые вам GET-параметры и UTM-метки.

2. Выполните целевое действие на сайте (например, совершите покупку товара).

3. Если трекинг настроен корректно, действие появится в статистике Admitad Affiliate (Личный кабинет — Статистика — По действиям).
Интеграция через трекинг-код с помощью Google Tag Manager 34
 

4. Проверьте соответствие имени целевого действия, номера и суммы тестового заказа и данных в статистике.

После успешного окончания тестирования сообщите об этом техническому специалисту Admitad Affiliate. Программа будет поставлена на подготовку к запуску.

 

Проблемы при тестировании

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

Проблема Возможное решение
Скрипт не срабатывает. Нет запросов от скрипта на вкладке Network браузера. Неверно подключен скрипт.
Выполните требования раздела Установка трекинг-кода в Google Tag Manager.
Скрипт не срабатывает. Есть ошибки в консоли браузера. Выполните требования раздела Установка трекинг-кода в Google Tag Manager.
Проверьте синтаксис JavaScript в тегах «TagTag common» и «TagTag conversion».
Скрипт срабатывает. Ошибок в консоли браузера нет. Заказ в статистике не появился. Параметр campaign_code имеет неверное значение или отсутствует.
Убедитесь, что значение campaign_code совпадает с тем, которое отправлял технический специалист Admitad Affiliate в письме при начале интеграции.
Скрипт срабатывает. Ошибок в консоли браузера нет. Параметр campaign_code имеет верное значение. Заказ в статистике не появился. Чтобы выявить ошибку, перейдите в журнал запросов (Инструменты Журнал запросов). Текст ошибки указан в поле Результат. Исправьте ошибку и проведите повторный тест. Инструкцию по разделу «Запросы на платеж» можно найти здесь.
Скрипт срабатывает. Ошибок в консоли браузера нет. Параметр campaign_code имеет верное значение. Ошибок в разделе Журнал запросов нет. Заказ в статистике не появился. На стороне Admitad Affiliate временные технические ограничения (задержка логов), проверьте, появился ли заказ через час.
Скрипт срабатывает. Ошибок в консоли браузера нет. Параметр campaign_code имеет верное значение. Ошибок в разделе Журнал запросов нет. Заказ в статистике не появился через час. Обратитесь к специалисту Admitad Affiliate за помощью.

Была ли эта статья полезной?