Advertisement
clickio

Добавление тестовых блоков на страницу паблишера

Jan 27th, 2021 (edited)
778
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (function(d,w){    
  2.    
  3.     let testing = 1; // присвоить 0 если нужно показывать реальные креативы вместо заглушек
  4.     let adUnitSiteId    = "194363";       // ID сайта, берем в коде блока    
  5.     let adUnitsSettings = [
  6.         {
  7.             adUnitId: "650472",                          // XOR ID ad unit'а, можно взять из стандартного кода блока
  8.             elementSelector: "body",                     // Селектор элемента, относительно которого вставляем контейнер
  9.             position: "prepend",                         // Позиция контейнера относительно указанного элемента, если "prepend" - вставляем перед первым элементом (для миррор и смарт блоков), append - внутрь в конец, before и after - до и после элемента, по умоланию - append
  10.             innerHTML: "<div class=\"cl_anchor\"></div>" // Вставляем любой код в контейнер с блоком, может быть полезно для мультистики
  11.         } // Для добавления дополнительных блоков через запятую добавить в массив настройки в фигурных скобках
  12.     ];
  13.    
  14.     // Удаление элементов со страницы по селектору
  15.    
  16.     let removeSelector = '.classToRemove';    // Селектор для удаления элементов
  17.     (function(){
  18.         let s = d.querySelectorAll(removeSelector);
  19.         if (s && s.length)
  20.         {
  21.             Array.from(s).forEach(function(e){
  22.                 e.remove();
  23.             });
  24.         }
  25.     })();
  26.     (function(){ // Подключаем 360_light в head, используя adUnitSiteId
  27.         let ss = d.querySelector("script[src=\"//s.clickiocdn.com/t/" + adUnitSiteId + "/360.js\"]");
  28.         let s = d.createElement("script");
  29.         s.src = "//s.clickiocdn.com/t/" + adUnitSiteId + "/360" + ((ss)?"":"_light") + ".js";
  30.         s.async = "async";
  31.         d.querySelector("head").appendChild(s);
  32.     })();
  33.    
  34.     let searchParams = new URLSearchParams(w.location.search);
  35.     if(testing && !searchParams.has('lx_debug_pb_show_stubs'))
  36.     {
  37.         searchParams.append("lx_debug_pb_show_stubs", "1");
  38.         document.querySelector("body").innerHTML = "Document will be reloaded with testing param in 3 seconds. Please reinstall testing code after refresh";
  39.         setTimeout(function() {window.location.search = "?" + searchParams.toString();}, 3000);
  40.     }
  41.     else
  42.     {
  43.         function addContainer(cId, s, p, h) {
  44.             let c = d.createElement('div'); // Создаём контейнер с указанным ID
  45.             c.id  = cId;
  46.             if(h) c.innerHTML = h;
  47.             let e = d.querySelector(s);
  48.             if(e)
  49.             {
  50.                 if(p && p === 'after'){e.after(c);}
  51.                 if(p && p === 'before'){e.before(c);}
  52.                 if(p && p === 'prepend'){e.prepend(c);}
  53.                 if((p && p === 'append') || !p){e.append(c);}
  54.             }
  55.             return c;
  56.         }
  57.         let containersId = "clickio_adunit";   // ID контейнеров ad unit'ов (можно не трогать)
  58.         let k = 1;                             // счетчик, прибавляемык к ID контейнера
  59.         adUnitsSettings.forEach(function(adUnit){
  60.             let cId = containersId + "-" + k;
  61.             addContainer(cId, adUnit.elementSelector, (adUnit.position || false), (adUnit.innerHTML|| false)); // Вызываем функцию вставки контейнера
  62.             (window.__lxGc__=window.__lxGc__||{'s':{},'b':0}).cmd=window.__lxGc__.cmd||[];
  63.             __lxGc__.cmd.push(function(){
  64.                 __lxGc__.display(cId, "_" + adUnitSiteId, "_" + adUnit.adUnitId); // Показываем ad unit
  65.             });
  66.             k++;
  67.         });
  68.     }
  69. })(document, window);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement