Ищу на сдельную работу JS Кодера
ТЗ на разработку JS-кода
Требуется разработать 3-rd party Javascrtip, загружающий рекламный контент с сервера и отображающий его в контейнере на сайте паблишера. Initial Tag – это HTML-код, в котором задаются параметры кампании, отображается проверочный нулевой пиксел и выполняется загрузка основного JS-файла. Этот код вставляется в контейнер на сайте паблишера, в котором нужно будет отобразить баннер. Loaded Javascript – загруженный через Inital Tag код Javascript. Он выполняет следующие функции. A. Определяет параметры web-страницы, на которую он загружен (location, referrer и другие детекты). B. Объединяет детекты с параметрами кампании, заданными в Initial Tag в виде объекта javascript. Имя объекта задается в самом JS в виде константы. В итоге в исходный объект добавляются свойства location, referer (без двойной r), а также свойства d1,..dn, которые соответствуют собранным детектам. C. Упаковывает получившийся объект, преобразуя его в формат JSON и кодируя в base64. D. Определяет свое местоположение в контейнере на странице паблишера (через Initial Tag или положение проверочного пиксела). E. Создает IFRAME и вставляет его контейнер. В IFRAME передаются закодированные данные в формате: <iframe src="//server-domain.com?encoded_json"> , где encoded_json – это строка, полученная в пункте C. Домен (//server-domain.com) задается внутренней переменной в JS-коде через шаблонизатор. Т.е. в самом js-коде должна быть создана константа, в которой задается домен сервера. Creative IFRAME – это IFRAME, в котором отображается баннер. Должен иметь нулевой бордер, и размеры, которые равны размеру баннера. Размеры баннера задаются в параметрах кампании, в свойстве size, в виде строки формата WxH (728x300). При необходимости, можно динамически создать дополнительный контейнер для корректного отображения баннера. Creative Provider Server – это сервер, который загружает рекламный контент в IFRAME. Пример Initial Tag <!-- Tracking Pixel --> <img src="domain.com?tracking=47" style="display:none"> <!-- Ad. parameters --> <script>test47586271fc784ae = {"p":"test47586271fc784ae"," size":"250x310"};</script> <!-- JS-loader --> <script>(function(){var s=document.createElement('script');s.src ='domain.com/t4756d90738b2e... e=document.getElementsByTagName('script' )[0];e.parentNode.insertBefore(s,e);})();</scri pt> Пример JS (function(d, w, nav, undefined) { "use strict"; // Creative Provider domain var server = '//domain.com'; // advertizing object var ap = w['test47586271fc784ae']; // detect tracking pixel location var tracker = (function () { var imgs = document.getElementsByTagName('img'); for (var i=0; i<imgs.length; i++) { if (imgs[i].getAttribute('src').indexOf(ser ver) != -1) { return imgs[i]; } } })(); // Add detections to ad. object var data = (function () { var r = { domain: '%domain%', } if (w.location!=w.top.location) { var value = d.referrer && d.referrer !== '' ? d.referrer : w.location; r.referer = value; r.location = value; } else { r.referer = d.referrer; r.location = w.location; } for (var p in ap) { r[p] = ap[p]; } return r; })(); // Detect ad. container var container = tracker.parentNode; if (!container || container.tagName == 'HEAD') { container = d.getElementsByTagName('body')[0]; } // Parse size parameter to detect banner size var sizes = ap.size.split('x'); // Create IFRAME with additional container and add to publisher webpage var div = d.createElement('div'); div.setAttribute("style", "border:0;width:"+sizes[0]+"px;heig ht:"+sizes[1]+"px;margin:0;padding:0;" ) var creative = d.createElement('iframe'); creative.setAttribute("src", server + '?' + encodeURIComponent(btoa(JSON.stringify(data)))); //creative.style.width = sizes[0]+"px"; //creative.style.height = sizes[1]+"px"; creative.setAttribute("width", "100%"); creative.setAttribute("height", "100%"); creative.setAttribute("frameBorder", 0); creative.setAttribute("border", 0); creative.setAttribute("scrolling", "no"); creative.setAttribute("allowtransparency" , "true"); creative.setAttribute("style", "border:0;width:100%;height:100%"); div.appendChild(creative); container.appendChild(div); })(document, window, navigator); полное ТЗ здесь – https://docs.google.com/document/d/1...LoETisgM/edit# За данный скрипт плачу 200-250$ работа не сложная. Все кто заинтересован пишите в личку оставляйте контакты |
Часовой пояс GMT +3, время: 14:35. |