Назначение трекинг-кода
Трекинг-код — это код на языке JavaScript, который необходимо разместить на сайте.
Трекинг-код регистрирует целевое действие пользователя на вашем сайте и отправляет в статистику Admitad Affiliate. При срабатывании трекинг-кода серверу Admitad Affiliate будет отправлен запрос с информацией о целевом действии (номер заказа, сумма заказа и другие данные).
Если ваша компания относится к финансовому сегменту (банки, страховые и другие финансовых организации), то перейдите в статью «Интеграция через трекинг-код для финансовых программ».
Кроме того, трекинг-код отвечает за дедупликацию заказов и crossdevice-трекинг.
Подключайте трекинг-код в теге <head>
до всех остальных скриптов. Иначе пользователь может уйти со страницы раньше, чем сработает скрипт.
Не рекомендуется устанавливать скрипт в контейнере Google Tag Manager (GTM), так как GTM будет блокироваться популярными блокировщиками рекламы. Это может привеcти к потере заказов, расхождениям в статистике и проблемам при сверке.
При обновлении сайта необходимо убедиться, что код не был удален и продолжает работать.
Если у вас имеется мобильная версия сайта или мобильное приложение, формы быстрого заказа или заказа в 1 клик, они также должны быть проинтегрированы.
Ссылка перехода Admitad Affiliate
Для начала работы с Admitad Affiliate предоставьте ссылку перехода на ваш сайт, включающую все необходимые вам GET параметры и UTM метки.
Пример ссылки для перехода
https://site.ru/?utm_source=admitad&utm_medium=cpa
На основании ссылки перехода будут сгенерированы партнерские ссылки для наших веб-мастеров. В дальнейшем веб-мастера будут размещать партнерские ссылки на своих ресурсах для привлечения трафика на ваш сайт.
Ссылок перехода может быть и несколько, но только одна из них будет основной ссылкой перехода в программе (по умолчанию).
Установка трекинг-кода
Для установки трекинг-кода подключите скрипт на все страницы сайта.
В процессе интеграции мы отправим вам значение {your_campaign_code}
.
<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>
Код, размещенный в атрибуте onerror
, предотвращает ошибочное блокирование загрузки скрипта блокировщиками рекламы и антивирусами.
Настройка передачи заказов
Передача информации о заказах
Если ваша компания работает с одной из крупных партнерских сетей, трекинг-код Admitad Affiliate может самостоятельно собирать информацию о заказах, используя уже настроенную интеграцию. Перейдите в раздел «Дедупликация заказов» и ознакомьтесь с примерами для иных партнерских сетей. Этот раздел можно пропустить, если вы нашли свою партнерскую сеть в примерах.
После того как вы подключите скрипт на все страницы, настройте передачу данных о заказах. Для этого на странице «Спасибо за покупку» добавьте код из примера ниже.
Пример кода для одного заказа с несколькими товарными позициями
Как правило, на странице «Спасибо за покупку» оформляется один заказ с уникальным номером. Для случая оформления нескольких заказов смотрите пример ниже.
Здесь и далее специальным комментарием отмечен блок кода, который нужно повторить для каждой позиции в заказе.
{{value}}
— место для подстановки реального значения переменной.
-
<script type="text/javascript"> ADMITAD = window.ADMITAD || {}; ADMITAD.Invoice = ADMITAD.Invoice || {}; ADMITAD.Invoice.broker = 'adm'; // параметр дедупликации (по умолчанию для Admitad Affiliate) ADMITAD.Invoice.category = '1'; // код целевого действия (определяется при интеграции) var orderedItem = []; // временный массив для товарных позиций // повторить для каждой товарной позиции в корзине orderedItem.push({ Product: { productID: '{{product_id}}', // внутренний код продукта (не более 100 символов, соответствует ID из товарного фида). category: '1', // код тарифа (определяется при интеграции) price: '{{price}}', // цена товара priceCurrency: 'RUB', // код валюты ISO-4217 alfa-3 }, orderQuantity: '{{quantity}}', // количество товара additionalType: 'sale' // всегда sale }); ADMITAD.Invoice.referencesOrder = ADMITAD.Invoice.referencesOrder || []; // добавление товарных позиций к заказу ADMITAD.Invoice.referencesOrder.push({ orderNumber: '{{order number}}', // внутренний номер заказа (не более 100 символов) orderedItem: orderedItem }); // Важно! Если данные по заказу Admitad Affiliate подгружаются через AJAX раскомментируйте следующую строку. // ADMITAD.Tracking.processPositions(); </script>
Убедитесь, что сможете найти в своей CMS заказ по значению orderNumber
— по нему в дальнейшем будет проводиться сверка.
Пример кода для нескольких заказов
В примере ниже для упрощения понимания приведен код последовательного добавления заказов. На реальном сайте логичнее будет поместить его в цикл.
-
<script type="text/javascript"> ADMITAD = window.ADMITAD || {}; ADMITAD.Invoice = ADMITAD.Invoice || {}; ADMITAD.Invoice.broker = 'adm'; // параметр дедупликации (по умолчанию для admitad) ADMITAD.Invoice.category = '1'; // код целевого действия (определяется при интеграции) /* добавление первого заказа */ var orderedItems1 = []; // временный массив для товарных позиций // повторить для каждой товарной позиции в корзине orderedItems1.push({ Product: { productID: '{{product_id}}', // внутренний код продукта (должен соответствовать ID из товарного фида) category: '1', // код тарифа (определяется при интеграции) price: '{{price}}', // цена товара priceCurrency: 'RUB', // код валюты ISO-4217 alfa-3 }, orderQuantity: '{{quantity}}', // количество товара additionalType: 'sale' // тип заказа }); ADMITAD.Invoice.referencesOrder = ADMITAD.Invoice.referencesOrder || []; // добавление товарных позиций к заказу ADMITAD.Invoice.referencesOrder.push({ orderNumber: '{{order number}}', // внутренний номер первого заказа orderedItem: orderedItems1 }); /* добавление второго заказа */ var orderedItems2 = []; // временный массив для товарных позиций // повторить для каждой товарной позиции в корзине orderedItems2.push({ Product: { productID: '{{product_id}}', // внутренний код продукта (должен соответствовать ID из товарного фида) category: '1', // код тарифа (определяется при интеграции) price: '{{price}}', // цена товара priceCurrency: 'RUB', // код валюты ISO-4217 alfa-3 }, orderQuantity: '{{quantity}}', // количество товара additionalType: 'sale' // тип заказа }); ADMITAD.Invoice.referencesOrder = ADMITAD.Invoice.referencesOrder || []; // добавление товарных позиций к заказу ADMITAD.Invoice.referencesOrder.push({ orderNumber: '{{order number}}', // внутренний номер второго заказа orderedItem: orderedItems2 }); // Важно! Если данные по заказу admitad подгружаются через AJAX, раскомментируйте этот блок кода. // ADMITAD.Tracking.processPositions(); </script>
Настройка передачи заказов при использовании AJAX или формы покупки в 1 клик
Если данные по заказу Admitad Affiliate подгружаются через AJAX или вы используете на сайте формы покупки в 1 клик (быстрого заказа), добавьте непосредственно после кода сбора данных заказа следующий скрипт. Выше вы можете увидеть пример его использования в строке с комментарием «Важно!».
<script type="text/javascript">
ADMITAD.Tracking.processPositions();
</script>
Настройка передачи уникальных промокодов
Уникальные промокоды — промокоды, закрепленные за конкретным веб-мастером. Подробнее о них здесь.
Если вы намерены работать с уникальными промокодами:
1. Убедитесь, что в форме оформления заказа на сайте присутствует поле «Промокод».
2. Запишите уникальный промокод из формы оформления заказа в параметр promocode.
ADMITAD.Invoice.referencesOrder = ADMITAD.Invoice.referencesOrder || [];
// добавление товарных позиций к заказу
ADMITAD.Invoice.referencesOrder.push({
orderNumber: '{{order number}}', // внутренний номер заказа (не более 100 символов)
discountCode: '{{promocode}}', // код уникального промокода
orderedItem: orderedItem
});
3. При передаче заказа с уникальным промокодом всегда устанавливайте значение параметра дедупликации «adm», т.к. этот заказ принадлежит Admitad Affiliate.
ADMITAD.Invoice.broker = 'adm';
Логика атрибуции
4. При передаче заказа с обычным промокодом (неуникальным) используйте стандартную настройку дедупликации.
Дедупликация заказов
Если вы работаете только с Admitad Affiliate, оставьте значение параметра дедупликации по умолчанию и пропустите этот раздел.
Если вы сотрудничаете более чем с одним платным источником, настройте дедупликацию заказов на вашей стороне для настройки передачи заказов в соответствии с моделью аттрибуции Last Paid Click:
1. Сообщите техническому специалисту Admitad Affiliate, какой GET-параметр из страницы входа на сайт вы будете использовать для дедупликации. По умолчанию параметр не добавляется.
2. Создайте cookie дедупликации со значением источника. Cookie должны храниться в течение всего срока по договору (по умолчанию 90 дней).
3. Определите значение параметра дедупликации из cookie при передаче данных о заказе в параметре ADMITAD.Invoice.broker
. Это сообщит нам, какому источнику принадлежит заказ. Для заказов Admitad Affiliate используйте значение параметра дедупликации adm
. Заказы со значениями других платных источников не будут создаваться. Заказы с неопределённым источником будут создаваться, если на другом устройстве или браузере этого пользователя был визит через веб-мастера Admitad Affiliate в течение времени жизни cookie.
Пример кода с использованием cookie для хранения источника перехода
-
<script type="text/javascript"> // имя cookie для хранения источника // если используется другое имя, укажите его var cookie_name = 'deduplication_cookie'; // число дней жизни куки var days_to_store = 90; // ожидаемое значение deduplication_cookie для Admitad 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 if (!getSourceCookie(cookie_name)) { ADMITAD.Invoice.broker = 'na'; } else if (getSourceCookie(cookie_name) != deduplication_cookie_value) { ADMITAD.Invoice.broker = getSourceCookie(cookie_name); } else { ADMITAD.Invoice.broker = 'adm'; } </script>
Примеры параметров дедупликации иных партнерских сетей
AWIN.Tracking.Sale.channel = 'adm'; // http://wiki.awin.com/index.php/Advertiser_Tracking_Guide/De-duplication
window.criteo_q.push({ event: 'trackTransaction', deduplication: 'adm', <...>); // https://support.criteo.com/hc/en-us/articles/205573701-Deduplication-Parameter
Если для интеграции с Admitad Affiliate используется трекинг-код другой партнерской сети, после его удаления интеграция с Admitad Affiliate также будет нарушена. Проинформируйте нас перед его удалением.
Crossdevice-трекинг
Crossdevice трекинг позволяет веб-мастеру получить вознаграждение за заказ в том случае, когда пользователь использует несколько устройств. Это повысит привлекательность программы для веб-мастеров, которые, к примеру, привлекают мобильный трафик.
Функция работает по умолчанию. При посещении сайта рекламодателя мы собираем уникальный анонимный профиль пользователя. При заказе мы сопоставляем данные в рамках профиля и при наличии admitad_uid создаем заказ. Наиболее корректно функция работает при настроенной дедупликации.
Чтобы помочь Admitad Affiliate в точном определении пользователя, вы можете явно передавать уникальный идентификатор пользователя. В его качестве может выступать электронная почта или логин зарегистрированного на сайте пользователя. Уникальный идентификатор пользователя имеет приоритет над анонимным профилем: если вы объявляете accountId, то трекинг-код не передаёт данные анонимного профиля в запросе к Admitad Affiliate — используется ваше значение.
Вставьте сниппет ниже на страницы, где известен логин или email пользователя.
<script type="text/javascript"> ADMITAD = window.ADMITAD || {}; ADMITAD.Invoice = ADMITAD.Invoice || {}; ADMITAD.Invoice.accountId = 'customer@email.ru'; //
e-mail или логин пользователя в системе
</script>
Admitad Affiliate не хранит значение этого параметра и не пересылает его в открытом виде.
Значение переменной необратимо хэшируется Sha256(ADMITAD.Invoice.accountId + salt)
и впоследствии используется на стороне Admitad Affiliate в качестве уникального идентификатора заказов пользователя.
Такой идентификатор позволит определить, что заказ принадлежит определенному пользователю, даже если он перейдет на сайт по партнерской ссылке Admitad Affiliate на домашнем компьютере, а купит товар на мобильном устройстве по дороге на работу. Заказ не будет потерян и попадет в статистику Admitad Affiliate.
Тестирование трекинга
1. Убедитесь, что вы подключили трекинг-код и настроили передачу данных о заказе (в том числе и на мобильной версии сайта, если есть), всех формах быстрого заказа и заказа в 1 клик и пр.
В этом вам поможет расширение для Chrome TagTag Check — оно проверит, установили ли вы все необходимые для интеграции скрипты, параметры и cookie на страницах сайта, в т.ч. на странице «Спасибо за покупку».
Установить расширение можно по этой ссылке. Далее перейдите на сайт и откройте его. При правильно настроенной интеграции во всех полях будут стоять галочки. Если какой-то из обязательных элементов отсутствует или некорректен, он будет помечен , а справа будет расшифровка ошибки.
Чтобы проверить корректность интеграции на странице «Спасибо за покупку», перейдите на нее и сдвиньте переключатель.
2. После этого свяжитесь с отделом трекинга Admitad Affiliate и запросите партнерскую ссылку для тестирования.
Если у вашей программы несколько целевых действий (например, «Регистрация пользователя» и «Оплаченный заказ»), необходимо протестировать каждое из них.
3. Перейдите по тестовой партнерской ссылке на ваш сайт. Убедитесь, что в строке адреса есть все необходимые вам GET-параметры и UTM-метки.
4. Выполните целевое действие на сайте (например, совершите покупку товара).
5. Находясь на странице «Спасибо за покупку», откройте расширение TagTag Check и перейдите на вкладку «Запросы трекинга». Убедитесь, что запрос отправлен.
6. Если трекинг настроен корректно, действие появится в статистике Admitad Affiliate (Личный кабинет — «Статистика» — «По действиям»). Проверьте правильность имени целевого действия, номера и суммы тестового заказа.
После успешного окончания тестирования сообщите об этом техническому специалисту Admitad Affiliate. Программа будет поставлена на подготовку к запуску.
Проблемы при тестировании
Если действие не появилось в статистике, возможно, была допущена ошибка при установке и настройке трекинг-кода.
Проблема | Возможное решение |
---|---|
Скрипт не срабатывает. Нет запросов от скрипта на вкладке Network браузера. | Неверно подключен скрипт. Выполните требования раздела «Установка трекинг-кода». |
Скрипт не срабатывает. Есть ошибки в консоли браузера. | Выполните требования раздела «Настройка передачи заказов». Проверьте синтаксис JavaScript на странице «Спасибо за покупку». |
Скрипт срабатывает. Ошибок в консоли браузера нет. Заказ в статистике не появился. | Параметр campaign_code имеет неверное значение или отсутствует.Проверьте значение campaign_code совместно с техническим специалистом Admitad Affiliate. |
Скрипт срабатывает. Ошибок в консоли браузера нет. Параметр campaign_code имеет верное значение. Заказ в статистике не появился. |
Чтобы выявить ошибку, перейдите в журнал запросов («Инструменты» — «Журнал запросов»). Текст ошибки указан в поле «Результат». Исправьте ошибку и проведите повторный тест. Инструкцию по разделу «Запросы на платеж» можно найти здесь. |
Скрипт срабатывает. Ошибок в консоли браузера нет. Параметр campaign_code имеет верное значение. Ошибок в разделе «Журнал запросов» нет. Заказ в статистике не появился. |
На стороне Admitad Affiliate временные технические ограничения (задержка логов), проверьте, появился ли заказ через час. |
Скрипт срабатывает. Ошибок в консоли браузера нет. Параметр campaign_code имеет верное значение. Ошибок в разделе «Журнал запросов» нет. Заказ в статистике не появился через час. |
Обратитесь к специалисту Admitad Affiliate за помощью. |