Интеграция через трекинг-код для Shopify

  • Обновлено

Если ваш сайт создан на платформе Shopify, вы можете быстро интегрировать его с системой Admitad Partner Network с помощью трекинг-кода.

Трекинг-код — это JavaScript-код, который позволяет регистрировать целевые действия и передавать информацию о них в Admitad Partner Network. Трекинг-код нужно разместить на своем сайте, в результате чего он будет проинтегрирован с системой Admitad.

Как установить трекинг-код на сайт и настроить его

Перед настройкой интеграции запросите значение параметров {your_action_code}, {your_tariff_code} и {your_campaign_code} для вашего магазина у специалиста отдела трекинга Admitad.

Если в вашей программе больше 1 действия и тарифа, сообщите об этом специалисту Admitad. Вам будет предоставлена дополнительная информация по настройке интеграции.


1. Откройте сайт https://www.shopify.com/ и войдите в свой аккаунт. Откроется административная панель вашего сайта.

2. Перейдите в раздел «Themes» (Online Store → Themes).

unnamed-1.png

3. В блоке «Current theme» в теме сайта откройте список «Actions» (1) и выберите «Edit code» (2).

unnamed-2.png

4. На открывшейся странице на панели слева выберите файл theme.liquid. Откроется файл с исходным кодом.

5. Скопируйте код ниже и вставьте в исходный код своего сайта перед закрывающим тегом </head>.

  • <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">
    var cookie_name = 'deduplication_cookie';
    var days_to_store = 90;
    var deduplication_cookie_value = 'admitad';
    var channel_name = 'utm_source';
    getSourceParamFromUri = function () {
     var pattern = channel_name + '=([^&]+)';
     var re = new RegExp(pattern);
     return (re.exec(document.location.search) || [])[1] || '';
    };
    getSourceCookie = function () {
     var matches = document.cookie.match(new RegExp(
       '(?:^|; )' + cookie_name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + '=([^;]*)'
     ));
     return matches ? decodeURIComponent(matches[1]) : undefined;
    };
    setSourceCookie = function () {
     var param = getSourceParamFromUri();
     var params = (new URL(document.location)).searchParams;
     if (!params.get(channel_name) && params.get('gclid')) { param = 'google' }
     else if (!params.get(channel_name) && params.get('fbclid')) { param = 'facebook' }
     else if (!param) { return; }
     var period = days_to_store * 60 * 60 * 24 * 1000; // in seconds
     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();
    </script>
    

6. Замените значение {your_campaign_code} на значение, которое вам пришлет специалист отдела трекинга. Нажмите «Save».

7. Нажмите «Exit», чтобы вернуться на предыдущую страницу, затем перейдите в раздел «Settings».

unnamed-3.png

8. В модальном окне «Settings» нажмите «Checkout».

unnamed-4.png

9. Проскрольте страницу вниз и найдите блок «Order status page». В поле «Additional scripts» добавьте следующий код:

  • <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">
    var cookie_name = 'deduplication_cookie';
    var days_to_store = 90;
    var deduplication_cookie_value = 'admitad';
    var channel_name = 'utm_source';
    getSourceParamFromUri = function () {
     var pattern = channel_name + '=([^&]+)';
     var re = new RegExp(pattern);
     return (re.exec(document.location.search) || [])[1] || '';
    };
    getSourceCookie = function () {
     var matches = document.cookie.match(new RegExp(
       '(?:^|; )' + cookie_name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + '=([^;]*)'
     ));
     return matches ? decodeURIComponent(matches[1]) : undefined;
    };
    setSourceCookie = function () {
     var param = getSourceParamFromUri();
     var params = (new URL(document.location)).searchParams;
     if (!params.get(channel_name) && params.get('gclid')) { param = 'google' }
     else if (!params.get(channel_name) && params.get('fbclid')) { param = 'facebook' }
     else if (!param) { return; }
     var period = days_to_store * 60 * 60 * 24 * 1000; // in seconds
     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();
    </script>
    <script type="text/javascript">
       ADMITAD = window.ADMITAD || {};
       ADMITAD.Invoice = ADMITAD.Invoice || {};
    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';
    } ADMITAD.Invoice.category = '{your_action_code}'; // action code (defined during integration) var orderedItem = []; // temporary array for product items var coup = ''; var targ = ''; {% for discount_application in discount_applications %} coup = '{{ discount_application.title }}'; targ = '{{ discount_application.target_type }}'; {% endfor %} var disc = ( targ != 'shipping_line' && '{{ discounts_amount | divided_by: 100.00 }}' > 0 ) ? Number({{ discounts_amount | divided_by: 100.00 }}) : '0'; disc = Number(disc + {{ gift_cards_amount | divided_by: 100.00 }}); var total = Number(({{ subtotal_price | divided_by: 100.00 }} - {{ gift_cards_amount | divided_by: 100.00 }}) + disc); //order price without discount // if there is a discount, we calculate the discount percentage and get the name of coupon var average_price = (disc > 0) ? Number((total - disc) / total) : '1'; {% for item in checkout.line_items %} var price = '{{ item.price | divided_by: 100.00 }}'; // repeat for every product item in the cart orderedItem.push({ Product: { productID: '{{ item.product_id }}', category: '{your_tariff_code}', price: (price*average_price).toFixed(3), // apply a discount to the product price priceCurrency: '{{ currency }}', // currency }, orderQuantity: '{{ item.quantity }}', additionalType: "sale" // payment_type }); {% endfor %} ADMITAD.Invoice.referencesOrder = ADMITAD.Invoice.referencesOrder || []; // adding items to the order ADMITAD.Invoice.referencesOrder.push({ orderNumber: '{{ checkout.order_id }}', discountCode: coup, // promocode orderedItem: orderedItem }); // Important! If order data is loaded via AJAX, uncomment this string. // ADMITAD.Tracking.processPositions(); </script>

10. Замените значение {your_action_code}, {your_tariff_code} и {your_campaign_code} на значения, которые вам пришлет специалист отдела трекинга.
Внизу страницы нажмите «Save».

Готово, трекинг-код установлен и настроен.

Как настроить дедупликацию

Если вы работаете только с Admitad Partner Network, оставьте значение параметра дедупликации по умолчанию и перейдите к разделу тестирования настроенной интеграции.

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

При настроенной дедупликации информация о действии передается в Admitad в соответствии с моделью атрибуции Last Paid Click. Другими словами, если последним платным источником был веб-мастер Admitad Partner Network, то действие должно быть засчитано Admitad.


Чтобы настроить дедупликацию:

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

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

3. Укажите значение параметра дедупликации из cookie при передаче данных о действии в параметре ADMITAD.Invoice.broker.

По значению параметра дедупликации определяется источник целевого действия.

Для действий, которые должны быть засчитаны Admitad, укажите значение параметра дедупликации — adm.


Готово. Дедупликация действий настроена.

Действия со значениями других платных источников не будут зафиксированы в статистике Admitad.
Действия с неопределенным источником будут создаваться, если на другом устройстве или браузере этого пользователя был переход на сайт через веб-мастера Admitad в течение времени жизни cookie.

 

Как тестировать интеграцию после настройки

1. Получите тестовую партнерскую ссылку на странице «Настройка интеграции для Shopify» в блоке «Тестирование интеграции».

  • 1.1 В личном кабинете перейдите в раздел «Интеграция» (меню → Программа → Интеграция).

    1.2 Затем нажмите «Далее» и на странице «Способы интеграции» выберите «Shopify». Нажмите «Далее».

    1.3 Блок «Тестирование интеграции» находится в нижней части экрана.

2. Перейдите по ссылке и выполните целевое действие согласно условиям вашей программы.

Рекомендации по тестированию интеграции:

  • Сделайте несколько тестовых заказов, чтобы проверить все действия и тарифы.

  • Включите несколько товарных позиций в один из тестовых заказов, чтобы проверить, что позиции и общая сумма заказа передаются корректно.

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

Тестовый заказ появится в статистике Admitad в течение часа.

Если через час и более заказ не появился в статистике, проверьте, что настройка интеграции выполнена корректно (инструкция). Если проблема сохраняется, сообщите об этом специалисту Admitad.


3. Перейдите в свой личный кабинет Admitad → «Статистика» → «По действиям» и проверьте, что в статистике корректно отображается целевое действие и данные по нему:

  • целевое действие соответствует настройкам партнерской программы;
  • ID заказа в Admitad соответствует ID заказа в вашей системе;
  • сумма заказа в Admitad соответствует сумме тестового заказа.

4. Сообщите специалисту Admitad Partner Network об окончании тестирования — программа будет поставлена на подготовку к запуску.

Готово. Тестирование интеграции завершено.

 

Как удалить трекинг-код со своего сайта

1. В административной панели вашего сайта откройте файл theme.liquid, выполнив шаги 1–3 из этой инструкции.

2. Удалите код Admitad, который был добавлен перед закрывающим тегом </head>.
Нажмите «Save».

3. Нажмите «Exit», чтобы вернуться на предыдущую страницу.

4. На открывшейся странице нажмите «Settings». Откроется модальное окно «Settings».

5. В модальном окне «Settings» нажмите «Checkout».

6. Проскрольте страницу вниз и найдите блок «Order status page».
В поле «Additional scripts» удалите код Admitad. Внизу страницы нажмите «Save».


Готово, трекинг-код удален.

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