Варианты JS-кодов для сайта рекламодателя: сквозной, по сайтзонам, кнопки, фреймы, формы, e-commerce.

1. Цели размещения JS-кодов AdRiver на сайте рекламодателя

Сбор информации о совершении посетителями сайта «целевых действий», таких как посещение определенных разделов сайта, или действий в интерфейсе, с целью дальнейшей оценки эффективности рекламных затрат путем сопоставления информации о контактах с рекламой и действиях на сайте.

Сбор обезличенных списков посетителей сайта рекламодателя, не являющихся персональными данными с точки зрения 152-ФЗ, с целью дальнейшего анализа их состава с помощью ПО Контрагента в ходе планирования рекламных активностей рекламодателя, а также с целью повторной коммуникации с этими посетителями на ресурсах сети Интернет.

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

Способы размещения JS-кодов AdRiver на сайте рекламодателя

  • код для присвоения уникальных ID посетителям: в виде скрипта
  • код для сбора информации о целевых действиях: в виде пикселя

Список сетевых адресов (UR/IP) системы AdRiver, на которые отправляются ответы кодов  размещенных на сайте рекламодателя

  • ad.adriver.ru
  • content.adriver.ru

2. Варианты JS-кодов AdRiver на сайте рекламодателя

Начиная с марта 2023г. в интерфейсе AdRiver можно получить обновленные подвиды кодов JS-Counter.

Особенности и назначение кодов описаны в таблицах:

  • Таблица №1 Описания подвидов кода JS-Counter
  • Таблица №2 Шаги по получению подвидов кода JS-Counter
  • Таблица №3  Примеры подвидов кода JS-Counter

Скачать таблицы
Скачать PDF

Перечень обновленных подвидов кодов с примерами см. в статье далее:

2.1 Код на все страницы сайта рекламодателя – сквозной просмотровый

Код можно получить в интерфейсе AdRiver.

Для JS (AdRiverCounterJS)

  1. Тематическая зона – выбрать "Без сайтзон"
  2. Тип баннера – выбрать JS-counter. При его выборе появятся доп. настройки выбора подтипа: JS(AdRiverCounterJS)/ IMG(AdRiverCounterImage)
  3. Тип JSCounter – выбрать JS(AdRiverCounterJS)
  4. Нажать кнопку "Получить код"
  5. В появившемся окне с кодом проверить себя – что сайтзон (SZ) нет в коде

Пример кода

<!--  AdRiver code START. Type:JS-counter Site: test-adri -->
  <!--
  Использование этого кода требует установки в <head> страницы загрузки библиотеки
  <script src="https://content.adriver.ru/AdRiverFPS.js"/>
  -->
  <script type="text/javascript">
  window.adrCounterStorage = window.adrCounterStorage || []; window.adrCounterStorage.push(() => {
new AdriverCounterJS({sid:55916, bt:62},{id:"",gid1:"",yid1:""})
});
</script>
<!--  AdRiver code END  -->

Для IMG (AdRiverCounterImage)

  1. Тематическая зона – выбрать "Без сайтзон"
  2. Тип баннера – выбрать JS-counter. При его выборе появятся доп. настройки выбора подтипа: JS(AdRiverCounterJS)/ IMG(AdRiverCounterImage)
  3. Тип JSCounter – выбрать IMG(AdRiverCounterImage
  4. Нажать кнопку "Получить код"
  5. В появившемся окне с кодом проверить себя – что сайтзон (SZ) нет в коде

Пример кода

<!--  AdRiver code START. Type:JS-counter Вызов картинки. Site: test-adri -->
  <!--
  Использование этого кода требует установки в <head> страницы загрузки библиотеки
  <script src="https://content.adriver.ru/AdRiverFPS.js"/>
  -->
  <script type="text/javascript">
  window.adrCounterStorage = window.adrCounterStorage || []; window.adrCounterStorage.push(() => {
  new AdriverCounterImage({sid:55916, bt:62},{id:"",gid1:"",yid1:""})
  });
  </script>
<!--  AdRiver code END  -->

Пример кода JS (AdRiverCounterJS). Применялся до марта 2023г.

<script type="text/javascript">
  !function(e,n){function  o(e,n,o){n=n||"&",o=o||"=";var d=[];for(var r in  e)e.hasOwnProperty(r)&&d.push(r+o+encodeURIComponent(e[r]));return  d.join(n)}function d(e,n){var o=e.cookie.match("(^|;)  ?"+n+"=([^;]*)(;|$)");return o?decodeURIComponent(o[2]):null}var  r,t,i,c,u;r=e,t=n,i=document.domain,c={tail256:document.referrer||"unknown"},void  0!==(u=function(e){var n={};if(e){var o=e.split("&");for(var d in  o)if(o.hasOwnProperty(d)){var r=o[d].split("=");void 0!==r[0]&&void  0!==r[1]&&(n[r[0]]=decodeURIComponent(r[1]))}}return  n}(window.location.search.substring(1))).adrclid&&(r.fsid=u.adrclid),null!==d(document,"adrcid")&&(r.cid=d(document,"adrcid")),t&&t.id&&null!==d(document,t.id)&&(r.suid=i+"_"+encodeURIComponent(d(document,t.id))),t&&t.gid1?r.gid1=t.gid1:null!==d(document,"_ga")&&(r.gid1=encodeURIComponent(d(document,"_ga"))),t&&t.yid1?r.yid1=t.yid1:null!==d(document,"_ym_uid")&&(r.yid1=encodeURIComponent(d(document,"_ym_uid"))),r.loc=encodeURIComponent(window.location.href),r.custom&&(r.custom=o(r.custom,";")),function(e,n){!function(e){if(e=e.split("![rnd]").join(~~(1e6*Math.random())),document.createElement&&document.body){var  n=document.createElement("img");n.style.position="absolute",n.style.display="none",n.style.width=n.style.height="0px",n.setAttribute("referrerpolicy","no-referrer-when-downgrade"),n.src=e,document.body.appendChild(n)}else{var  o=new  Image;o.setAttribute("referrerpolicy","no-referrer-when-downgrade"),o.src=e}}("https://ad.adriver.ru/cgi-bin/rle.cgi?"+e+"&rnd=![rnd]"+(n?"&"+n:""))}(o(r),o(c))}
  ({ sid: 111111, bt: 62},{ id: "", gid1: "", yid1:  "" });
  </script> 

2.2 Код на сайтзону просмотровый

Как разделить сайт на сайтзоны инструкция здесь.

Код можно получить в интерфейсе AdRiver (аналогично сквозному коду), только выбрав сайтзону, для которой он нужен.

Для JS (AdRiverCounterJS)

  1. Тематическая зона – выбрать конкретную сайтзону
  2. Тип баннера – выбрать JS-counter. При его выборе появятся доп. настройки выбора подтипа: JS(AdRiverCounterJS)/ IMG(AdRiverCounterImage)
  3. Тип JSCounter – выбрать JS(AdRiverCounterJS)\
  4. Нажать кнопку "Получить код"
  5. В появившемся окне с кодом проверить что SZ имеется и нужная
<!--  AdRiver code START. Type:JS-counter Site: test-adri SZ: price  -->
  <!--
  Использование этого кода требует установки в <head> страницы загрузки библиотеки
  <script src="https://content.adriver.ru/AdRiverFPS.js"/>
  -->
  <script type="text/javascript">
  window.adrCounterStorage = window.adrCounterStorage || []; window.adrCounterStorage.push(() => {
  new AdriverCounterJS({sid:55916, bt:62, sz:'price'},{id:"",gid1:"",yid1:""})
  });
  </script>
<!--  AdRiver code END  -->

Для IMG (AdRiverCounterImage)

  1. Тематическая зона – выбрать конкретную сайтзону
  2. Тип баннера – выбрать JS-counter. При его выборе появятся доп. настройки выбора подтипа: JS(AdRiverCounterJS)/ IMG(AdRiverCounterImage)
  3. Тип JSCounter – выбрать IMG(AdRiverCounterImage
  4. Нажать кнопку "Получить код"
  5. В появившемся окне с кодом проверить что SZ имеется и нужная
<!--  AdRiver code START. Type:JS-counter Вызов картинки. Site: test-adri SZ: price  -->
  <!--
  Использование этого кода требует установки в <head> страницы загрузки библиотеки
  <script src="https://content.adriver.ru/AdRiverFPS.js"/>
  -->
  <script type="text/javascript">
  window.adrCounterStorage = window.adrCounterStorage || []; window.adrCounterStorage.push(() => {
  new AdriverCounterImage({sid:55916, bt:62, sz:'price'},{id:"",gid1:"",yid1:""})
  });
  </script>
<!--  AdRiver code END  -->

Пример кода JS (AdRiverCounterJS). Применялся до марта 2023г.

<!--  AdRiver code START.  Type:JS-counter Site: test SZ: index   -->
  <script type="text/javascript">
  !function(e,t){function  r(e,t,r){t=t||"&",r=r||"=";var o=[];for(var n in  e)e.hasOwnProperty(n)&&o.push(n+r+encodeURIComponent(e[n]));return  o.join(t)}function o(e){var t={};if(e){var r=e.split("&");for(var  o in r)if(r.hasOwnProperty(o)){var n=r[o].split("=");void  0!==n[0]&&void  0!==n[1]&&(t[n[0]]=decodeURIComponent(n[1]))}}return t}function  n(e){return(/^\/\//.test(e)?"https:":"")+e}function  i(e,t){var r=e.cookie.match("(^|;)  ?"+t+"=([^;]*)(;|$)");return r?decodeURIComponent(r[2]):null}var  d,a=document;"undefined"==typeof  AdriverCounter&&(AdriverCounter=((d=function(e,t,r){var  o=document.domain;if(!(this instanceof AdriverCounter))return  d.items[e];d.urlParams=d.getUrlParameters(window.location.search.substring(1)),void  0!==d.urlParams.adrclid&&(t.fsid=d.urlParams.adrclid),null!==d.getCookie(document,"adrcid")&&(t.cid=d.getCookie(document,"adrcid")),r&&r.id&&null!==d.getCookie(document,r.id)&&(t.suid=o+"_"+encodeURIComponent(d.getCookie(document,r.id))),r&&r.gid1?t.gid1=r.gid1:null!==d.getCookie(document,"_ga")&&(t.gid1=encodeURIComponent(d.getCookie(document,"_ga"))),r&&r.yid1?t.yid1=r.yid1:null!==d.getCookie(document,"_ym_uid")&&(t.yid1=encodeURIComponent(d.getCookie(document,"_ym_uid"))),t.loc=encodeURIComponent(window.location.href),e=d.items.length||1,d.items[e]=this,t.ph=e,t.custom&&(t.custom=d.toQueryString(t.custom,";")),d.request(d.toQueryString(t))}).httplize=n,d.loadScript=function(e){try{var  t=a.getElementsByTagName("head")[0],r=a.createElement("script");r.setAttribute("type","text/javascript"),r.setAttribute("referrerpolicy","no-referrer-when-downgrade"),r.setAttribute("charset","windows-1251"),r.setAttribute("src",e.split("![rnd]").join(Math.round(1e6*Math.random()))),r.onreadystatechange=function(){/loaded|complete/.test(this.readyState)&&(r.onload=null,t.removeChild(r))},r.onload=function(){t.removeChild(r)},t.insertBefore(r,t.firstChild)}catch(e){}},d.toQueryString=r,d.request=function(e){var  t=d.toQueryString(d.defaults);d.loadScript(d.redirectHost+"/cgi-bin/erle.cgi?"+e+"&rnd=![rnd]"+(t?"&"+t:""))},d.getUrlParameters=o,d.getCookie=i,d.items=[],d.defaults={tail256:document.referrer||"unknown"},d.redirectHost="https://ad.adriver.ru",d.urlParams={},d)),new  AdriverCounter(0,e,t)}
  ({sid:55916, bt:62,  sz:'index'},{id:"",gid1:"",yid1:""});
  </script>
<!--  AdRiver  code END  -->

2.3 Код на сайтзону на действие – для учета отдельных событий – нажатий на кнопки, нажатий на отдельные элементы

Код можно получить в интерфейсе AdRiver.

Для JS (AdRiverCounterJS)

  1. Тематическая зона – выбрать конкретную сайтзону
  2. Тип баннера – выбрать JS-counter. При его выборе появятся доп. настройки выбора подтипа: JS(AdRiverCounterJS)/ IMG(AdRiverCounterImage)
  3. Тип JSCounter – выбрать JS(AdRiverCounterJS)
  4. Поставить галку "Однострочный код на действие"
  5. Нажать кнопку "Получить код"
  6. В появившемся окне с кодом проверить что SZ имеется и нужная
<!--  AdRiver code START. Type:JS-counter Однострочный код на действие Site: test-adri SZ: price_knopka  -->
  <!--
  Использование этого кода требует установки в <head> страницы загрузки библиотеки
  <script src="https://content.adriver.ru/AdRiverFPS.js"/>
  -->
  <script type="text/javascript">
  new AdriverCounterJS({sid:55916, bt:62, sz:'price_knopka'},{id:"",gid1:"",yid1:""})
  </script>
<!--  AdRiver code END  -->

Для IMG(AdRiverCounterImage)

  1. Тематическая зона – выбрать конкретную сайтзону
  2. Тип баннера – выбрать JS-counter. При его выборе появятся доп. настройки выбора подтипа: JS(AdRiverCounterJS)/ IMG(AdRiverCounterImage)
  3. Тип JSCounter – выбрать IMG(AdRiverCounterImage
  4. Поставить галку "Однострочный код на действие"
  5. Нажать кнопку "Получить код"
  6. В появившемся окне с кодом проверить что SZ имеется и нужная
<!--  AdRiver code START. Type:JS-counter Вызов картинки. Однострочный код на действие Site: test-adri SZ: price_knopka  -->
  <!--
  Использование этого кода требует установки в <head> страницы загрузки библиотеки
  <script src="https://content.adriver.ru/AdRiverFPS.js"/>
  -->
  <script type="text/javascript">
  new AdriverCounterImage({sid:55916, bt:62, sz:'price_knopka'},{id:"",gid1:"",yid1:""})
  </script>
<!--  AdRiver code END  -->

Важное отличие кода на кнопки от кода просмотрового – код на кнопку выполняется не в случае загрузки страницы (просмотра), а только по совершению пользователем действия на странице (нажатия на кнопку) и функция учета этого действия программируется на совершение действия. Это единственный случай – когда на одной странице трекерного сайта может быть установлено два кода AdRiver – один просмотровый, второй – код на совершение действия (нажатие на кнопку).

Подробнее описание кода в статье.

2.4. Код на сайтзону просмотровый для закрытых областей сайта (фреймов)

Данный тип кода применяется для страниц, где есть фреймы, в которые нельзя ставить JS-код, но при этом необходимо посчитать определенные действия для них (например, отправку сообщений).
Этот код умеет отправлять js-counter двумя видами – js запросом или img запросом.
Устанавливать этот код нужно вместе со всеми остальными кодами.
Вызывать postMessage нужно в момент, когда в этом фрейме произошло событие, которое требуется посчитать через систему AdRiver.

Пример отправки сообщения из фрейма, где нельзя ставить js
let message  = {
  "adriver":"IMGCounter",
  "parameters": {sid:12345, bt:62,  ad:12345, pid:12345, bid:12345, bn:12345,  "custom":{"1":123,"55":"hello"}},
  "cookies":  {id:"",gid1:"",yid1:""}
  };
  window.parent.postMessage(JSON.stringify(message), '*');
Параметры
  • adriver – "IMGCounter" / "JSCounter" – вид каунтера, который нужно вызвать
  • parameters – набор стандартных параметров, скопированных из интерфейса при получении кода вызова
  • cookies – набор параметров для кук (не обязательно)

Код можно получить в интерфейсе AdRiver.

Для IMG(AdRiverCounterImage)

  1. Тематическая зона – выбрать конкретную сайтзону
  2. Тип баннера – выбрать JS-counter. При его выборе появятся доп. настройки выбора подтипа: JS(AdRiverCounterJS)/ IMG(AdRiverCounterImage)
  3. Тип JSCounter – выбрать IMG(AdRiverCounterImage)
  4. Нажать кнопку "Получить код"
  5. Под окном с кодом нажать на кнопку "Сгенерировать код JS-counter: финансовые сервисы"
  6. В появившемся окне с кодом проверить что SZ имеется и нужная
<!--  AdRiver code START. Type:JS-counter: финансовые сервисы Site: test-adri SZ: price  -->
<script type="text/javascript">
!function(e,n){function o(e,n,o){n=n||"&",o=o||"=";var d=[];for(var r in e)e.hasOwnProperty(r)&&d.push(r+o+encodeURIComponent(e[r]));return d.join(n)}function d(e,n){var o=e.cookie.match("(^|;) ?"+n+"=([^;]*)(;|$)");return o?decodeURIComponent(o[2]):null}var r,t,i,c,u;r=e,t=n,i=document.domain,c={tail256:document.referrer||"unknown"},void 0!==(u=function(e){var n={};if(e){var o=e.split("&");for(var d in o)if(o.hasOwnProperty(d)){var r=o[d].split("=");void 0!==r[0]&&void 0!==r[1]&&(n[r[0]]=decodeURIComponent(r[1]))}}return n}(window.location.search.substring(1))).adrclid&&(r.fsid=u.adrclid),null!==d(document,"adrcid")&&(r.cid=d(document,"adrcid")),t&&t.id&&null!==d(document,t.id)&&(r.suid=i+"_"+encodeURIComponent(d(document,t.id))),t&&t.gid1?r.gid1=t.gid1:null!==d(document,"_ga")&&(r.gid1=encodeURIComponent(d(document,"_ga"))),t&&t.yid1?r.yid1=t.yid1:null!==d(document,"_ym_uid")&&(r.yid1=encodeURIComponent(d(document,"_ym_uid"))),r.loc=encodeURIComponent(window.location.href),r.custom&&(r.custom=o(r.custom,";")),function(e,n){!function(e){if(e=e.split("![rnd]").join(~~(1e6*Math.random())),document.createElement&&document.body){var n=document.createElement("img");n.style.position="absolute",n.style.display="none",n.style.width=n.style.height="0px",n.setAttribute("referrerpolicy","no-referrer-when-downgrade"),n.src=e,document.body.appendChild(n)}else{var o=new Image;o.setAttribute("referrerpolicy","no-referrer-when-downgrade"),o.src=e}}("https://ad.adriver.ru/cgi-bin/rle.cgi?"+e+"&rnd=![rnd]"+(n?"&"+n:""))}(o(r),o(c))}
({sid:55916, bt:62, sz:'price'},{id:"",gid1:"",yid1:""});
</script> <!-- AdRiver code END -->
Пример кода. Применялся до марта 2023г.
function  AdriverCounterListener(e){function t(e,t){function  n(e,t,n){t=t||"&",n=n||"=";var r=[];for(var o in  e)e.hasOwnProperty(o)&&r.push(o+n+encodeURIComponent(e[o]));return  r.join(t)}function r(e){var t={};if(e){var n=e.split("&");for(var  r in n)if(n.hasOwnProperty(r)){var o=n[r].split("=");void  0!==o[0]&&void  0!==o[1]&&(t[o[0]]=decodeURIComponent(o[1]))}}return t}function  o(e){return(/^\/\//.test(e)?"https:":"")+e}function  i(e,t){var n=e.cookie.match("(^|;)  ?"+t+"=([^;]*)(;|$)");return n?decodeURIComponent(n[2]):null}var  d,a=document;"undefined"==typeof  AdriverCounter&&(AdriverCounter=(d=function(e,t,n){var  r=document.domain;if(!(this instanceof AdriverCounter))return  d.items[e];d.urlParams=d.getUrlParameters(window.location.search.substring(1)),void  0!==d.urlParams.adrclid&&(t.fsid=d.urlParams.adrclid),null!==d.getCookie(document,"adrcid")&&(t.cid=d.getCookie(document,"adrcid")),n&&n.id&&null!==d.getCookie(document,n.id)&&(t.suid=r+"_"+encodeURIComponent(d.getCookie(document,n.id))),n&&n.gid1?t.gid1=n.gid1:null!==d.getCookie(document,"_ga")&&(t.gid1=encodeURIComponent(d.getCookie(document,"_ga"))),n&&n.yid1?t.yid1=n.yid1:null!==d.getCookie(document,"_ym_uid")&&(t.yid1=encodeURIComponent(d.getCookie(document,"_ym_uid"))),t.loc=encodeURIComponent(window.location.href),e=d.items.length||1,d.items[e]=this,t.ph=e,t.custom&&(t.custom=d.toQueryString(t.custom,";")),d.request(d.toQueryString(t))},d.httplize=o,d.loadScript=function(e){try{var  t=a.getElementsByTagName("head")[0],n=a.createElement("script");n.setAttribute("type","text/javascript"),n.setAttribute("referrerpolicy","no-referrer-when-downgrade"),n.setAttribute("charset","windows-1251"),n.setAttribute("src",e.split("![rnd]").join(Math.round(1e6*Math.random()))),n.onreadystatechange=function(){/loaded|complete/.test(this.readyState)&&(n.onload=null,t.removeChild(n))},n.onload=function(){t.removeChild(n)},t.insertBefore(n,t.firstChild)}catch(e){}},d.toQueryString=n,d.request=function(e){var  t=d.toQueryString(d.defaults);d.loadScript(d.redirectHost+"/cgi-bin/erle.cgi?"+e+"&rnd=![rnd]"+(t?"&"+t:""))},d.getUrlParameters=r,d.getCookie=i,d.items=[],d.defaults={tail256:document.referrer||"unknown"},d.redirectHost="https://ad.adriver.ru",d.urlParams={},d)),new  AdriverCounter(0,e,t)}function n(e,t){function  n(e,t,n){t=t||"&",n=n||"=";var r=[];for(var o in  e)e.hasOwnProperty(o)&&r.push(o+n+encodeURIComponent(e[o]));return  r.join(t)}function r(e,t){var n=e.cookie.match("(^|;)  ?"+t+"=([^;]*)(;|$)");return n?decodeURIComponent(n[2]):null}var  o,i,d,a,c;o=e,i=t,d=document.domain,a={tail256:document.referrer||"unknown"},void  0!==(c=function(e){var t={};if(e){var n=e.split("&");for(var r in  n)if(n.hasOwnProperty(r)){var o=n[r].split("=");void  0!==o[0]&&void 0!==o[1]&&(t[o[0]]=decodeURIComponent(o[1]))}}return  t}(window.location.search.substring(1))).adrclid&&(o.fsid=c.adrclid),null!==r(document,"adrcid")&&(o.cid=r(document,"adrcid")),i&&i.id&&null!==r(document,i.id)&&(o.suid=d+"_"+encodeURIComponent(r(document,i.id))),i&&i.gid1?o.gid1=i.gid1:null!==r(document,"_ga")&&(o.gid1=encodeURIComponent(r(document,"_ga"))),i&&i.yid1?o.yid1=i.yid1:null!==r(document,"_ym_uid")&&(o.yid1=encodeURIComponent(r(document,"_ym_uid"))),o.loc=encodeURIComponent(window.location.href),o.custom&&(o.custom=n(o.custom,";")),function(e,t){!function(e){if(e=e.split("![rnd]").join(~~(1e6*Math.random())),document.createElement&&document.body){var  t=document.createElement("img");t.style.position="absolute",t.style.display="none",t.style.width=t.style.height="0px",t.setAttribute("referrerpolicy","no-referrer-when-downgrade"),t.src=e,document.body.appendChild(t)}else{var  n=new  Image;n.setAttribute("referrerpolicy","no-referrer-when-downgrade"),n.src=e}}("https://ad.adriver.ru/cgi-bin/rle.cgi?"+e+"&rnd=![rnd]"+(t?"&"+t:""))}(n(o),n(a))}try{var  r=JSON.parse(e.data);if(!r.adriver||void  0===r.parameters.sid)return;"IMGCounter"===r.adriver?n(r.parameters,r.cookies):"JSCounter"===r.adriver&&t(r.parameters,r.cookies)}catch(e){}}window.addEventListener?window.addEventListener("message",AdriverCounterListener):window.attachEvent("onmessage",AdriverCounterListener);

2.5 Код сквозной просмотровый для e-commerce параметров

Код можно получить в интерфейсе DSP Soloway.

Пример кода и описание см. в статье.

2.6 Код для учета количества отправленных форм

Пример кода и описание см. в статье.

3. Инструкция по установке кода JS-counter на HTML-версию сайта

Код Adriver типа JS-counter предназначен для обеспечения синхронизации идентификаторов AdRiver и веб-аналитической системы сайта рекламодателя для последующей постклик- и поствью-аналитики рекламных кампаний.

Для учета 1st party cookie AdRiver и автоматического получения и передачи  ID пользователя  Google Analytics (GA), Яндекс.Метрика (ЯМ)  или других собственных идентификаторов (например, из CRM или  1st party cookie сайта) на сайте нужно  разместить библиотеку и код JS-counter.

Рекомендуется размещение подключение библиотеки в тэгах <head> .

<script src="https://content.adriver.ru/AdRiverFPS.js"></script>

Код и библиотека автоматически найдут на странице ID GA и  ID ЯМ и передадут в запросе в параметрах  gid1 и yid1.

При размещении кода на страницах сайта через Google Tag Manager (GTM) и наличии возможностей получения ID  через надстройку custom task  можно самостоятельно заполнять значениями  в коде  параметры gid1:"",yid1:""
В таком случае передаваться в запросе будут в первую очередь заполненные значения параметров.
Если значения параметров остаются пустыми, то  код автоматически их заполнит.

Если сайту  требуется передача  собственного ID пользователя (например, по данным CRM или 1st party cookie), то в секцию id нужно вписать название собственного ID.
Здесь внимание! Не значение, а название  ID или собственной  1st party cookie сайта.
Библиотека и код автоматически передадут в запросе значение cookie под этим названием  в отдельном параметре suid.


4. Дополнительно – описание работы скрипта, параметры запроса и ответа

Примеры кодов и реплаев в этом описании не связаны друг с другом, приведены для примера.

Пример кода, размещаемого на сайте (или иные коды из данной статьи)
<script type="text/javascript">
  !function(e,n){function o(e,n,o){n=n||"&",o=o||"=";var  d=[];for(var r in  e)e.hasOwnProperty(r)&&d.push(r+o+encodeURIComponent(e[r]));return  d.join(n)}function d(e,n){var o=e.cookie.match("(^|;)  ?"+n+"=([^;]*)(;|$)");return o?decodeURIComponent(o[2]):null}var  r,t,i,c,u;r=e,t=n,i=document.domain,c={tail256:document.referrer||"unknown"},void  0!==(u=function(e){var n={};if(e){var o=e.split("&");for(var d in  o)if(o.hasOwnProperty(d)){var r=o[d].split("=");void  0!==r[0]&&void 0!==r[1]&&(n[r[0]]=decodeURIComponent(r[1]))}}return  n}(window.location.search.substring(1))).adrclid&&(r.fsid=u.adrclid),null!==d(document,"adrcid")&&(r.cid=d(document,"adrcid")),t&&t.id&&null!==d(document,t.id)&&(r.suid=i+"_"+encodeURIComponent(d(document,t.id))),t&&t.gid1?r.gid1=t.gid1:null!==d(document,"_ga")&&(r.gid1=encodeURIComponent(d(document,"_ga"))),t&&t.yid1?r.yid1=t.yid1:null!==d(document,"_ym_uid")&&(r.yid1=encodeURIComponent(d(document,"_ym_uid"))),r.loc=encodeURIComponent(window.location.href),r.custom&&(r.custom=o(r.custom,";")),function(e,n){!function(e){if(e=e.split("![rnd]").join(~~(1e6*Math.random())),document.createElement&&document.body){var  n=document.createElement("img");n.style.position="absolute",n.style.display="none",n.style.width=n.style.height="0px",n.setAttribute("referrerpolicy","no-referrer-when-downgrade"),n.src=e,document.body.appendChild(n)}else{var  o=new  Image;o.setAttribute("referrerpolicy","no-referrer-when-downgrade"),o.src=e}}("https://ad.adriver.ru/cgi-bin/rle.cgi?"+e+"&rnd=![rnd]"+(n?"&"+n:""))}(o(r),o(c))}
  ({ sid: 123456, bt: 62},{ id:  "", gid1: "", yid1: "" });
  </script>

Параметры GET-запроса кода
  • sid – ID сайта в системе (регистрируется в системе AdRiver и остается статичным всегда)
  • bt – тип баннера, для трекингового пикселя это всегда 62
  • sz – строка, например "order", "order_confirm" и т.д. – название конверсионного события в случае, если для данного конверсионного события не используется определение по URL и настроенным в системе шаблонам. Если параметр указан, то он имеет больший приоритет, чем настроенные в системе шаблоны соответствия URL -> событие. Ограничение 256 байт.
  • gid1 – ID Google Analytics (строка 64 байта)
  • yid1 – ID Яндекс.Метрика (строка 64 байта)

значения параметров gid1, yid1 можно указать средствами сайта, если параметры в коде остаются пустыми, код самостоятельно может взять их из cookie GA или ЯМ текущей страницы

  • custom – в него можно передавать несколько разных кастомных значений параметров и для этого у параметра есть номер позиции.

В коде он выглядит вот так – custom: {1:’hid’, 2:’wuid’,5:’any_id’,66:’any_id_1′}
Параметр custom – строка с ограничением в 512 байт.

  • suid — параметр для передачи 1 st party cookie сайта для идентификации пользователя при необходимости использовать этот идентфикатор в постклик- или поствью-аналитике. Параметр suid заполняется кодом автоматически при указании в коде в параметре id:““ названия 1 st party cookie сайта.

Если параметр кода id:““ остается пустым, то в suid также ничего не будет передаваться.

  • loc — параметр для передачи URL страницы через JS
  • rnd — параметр случайного числа для предотвращения кэширования запросов пикселя браузерами.
  • tail256 — параметр для передачи URL предыдущей страницы
  • cid — 1 st party cookie AdRiver, если на странице подключается библиотека <script src="https://content.adriver.ru/AdRiverFPS.js"></script>

Если библиотека не подключается, в этом параметре на странице подставляется 3 td party cookie AdRiver из http-заголовков.

Параметры http-заголовков GET- запроса
  • Cookie – cid=3 td party cookie Адривера
  • Host – ad.adriver.ru
  • Referer – URL источника запроса, по сути адрес страницы показа пикселя.
  • User-Agent – идентификационная строка клиентского приложения/браузера
  • User IP – уникальный числовой идентификатор устройства в компьютерной сети, работающей по протоколу TCP/IP

Отправляется GET запрос к ad.adriver.ru (см. примечание про ad.adriver.ru  внизу статьи)

Пример строки запроса
https://ad.adriver.ru/cgi-bin/rle.cgi?sid=223961&bt=62&sz=order&custom=1=hid;2=wuid;5=any_id;66=any_id_1&cid=A1t9mqBgi1WKRvQc6ZtyJwQ&gid1=GA1.2.949755102.1597758005&loc=http%3A%2F%2Ffiles.adriver.ru%2Fksi%2Ftinkoff.html&rnd=569936&tail256=unknown

Помимо трех вышеперечисленных кук, в AdRiver приходит стандартная информация из http-заголовка:

  • referer
  • IP
  • useragent
  • 3-p кука Адривера
Реплай

На пришедший запрос Адривер отвечает таким реплаем:

rle.cgi — ContentType: image/gif – отдается графическая картинка gif размером 1х1 пиксель.

Пример кода
<script type="text/javascript">
  !function(e,n){function o(e,n,o){n=n||"&",o=o||"=";var  d=[];for(var r ine)e.hasOwnProperty(r)&&d.push(r+o+encodeURIComponent(e[r]));return  d.join(n)}functiond(e,n){var o=e.cookie.match("(^|;) ?"+n+"=([^;]*)(;|$)");return  o?decodeURIComponent(o[2]):null}varr,t,i,c,u;r=e,t=n,i=document.domain,c={tail256:document.referrer||"unknown"},void  0!==(u=function(e){var n={};if(e){var o=e.split("&");for(var d in  o)if(o.hasOwnProperty(d)){varr=o[d].split("=");void 0!==r[0]&&void  0!==r[1]&&(n[r[0]]=decodeURIComponent(r[1]))}}returnn}(window.location.search.substring(1))).adrclid&&(r.fsid=u.adrclid),null!==d(document,"adrcid")&&(r.cid=d(document,"adrcid")),t&&t.id&&null!==d(document,t.id)&&(r.suid=i+"_"+encodeURIComponent(d(document,t.id))),t&&t.gid1?r.gid1=t.gid1:null!==d(document,"_ga")&&(r.gid1=encodeURIComponent(d(document,"_ga"))),t&&t.yid1?r.yid1=t.yid1:null!==d(document,"_ym_uid")&&(r.yid1=encodeURIComponent(d(document,"_ym_uid"))),r.loc=encodeURIComponent(window.location.href),r.custom&&(r.custom=o(r.custom,";")),function(e,n){!function(e){if(e=e.split("![rnd]").join(~~(1e6*Math.random())),document.createElement&&document.body){varn=document.createElement("img");n.style.position="absolute",n.style.display="none",n.style.width=n.style.height="0px",n.setAttribute("referrerpolicy","no-referrer-when-downgrade"),n.src=e,document.body.appendChild(n)}else{var  o=newImage;o.setAttribute("referrerpolicy","no-referrer-when-downgrade"),o.src=e}}("https://ad.adriver.ru/cgi-bin/rle.cgi?"+e+"&rnd=![rnd]"+(n?"&"+n:""))}(o(r),o(c))}({sid:223961,  bt:62, sz:'order', custom: {1:'hid', 2:'wuid',5:'any_id',66:'any_id_1'}},{id:"",gid1:"",yid1:""});
  </script>

Примечание:Adriver CDN  – это собственные сервера компании ООО «Адривер».
Все договоры заключены с российскими юр.лицами, все сервера размещены в России.