Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.01.2017, 16:00
Новичок на форуме
Отправить личное сообщение для twmedia Посмотреть профиль Найти все сообщения от twmedia
 
Регистрация: 09.06.2016
Сообщений: 2

Ищу на сдельную работу 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$ работа не сложная. Все кто заинтересован пишите в личку оставляйте контакты
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ищу приличный редактор кода под JS Universe Общие вопросы Javascript 28 30.10.2012 18:30
Ищу удаленную работу javascript PeaceCoder Работа 2 09.08.2012 18:05
ищу работу для стажера JavaScript Yochi Работа 0 12.09.2011 03:03
ищу вакансию js стажера Ellow Работа 1 09.09.2011 14:58
Ищу JS программера для создания 1 функции DarkRevenger Работа 1 11.07.2011 15:17