prebid-universal-creative 1.9.0 → 1.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/creative.js +3 -3
- package/dist/creative.max.js +86 -15
- package/dist/load-cookie-with-consent.html +1 -1
- package/dist/load-cookie.html +1 -1
- package/dist/native-render.js +3 -3
- package/dist/native-trk.js +3 -3
- package/dist/prebid-mobile-rewarded-vast.xml +22 -0
- package/dist/uid.js +2 -2
- package/gulpfile.js +9 -4
- package/package.json +1 -1
- package/src/cookieSync.js +27 -3
- package/src/cookieSyncWithConsent.js +46 -4
- package/src/renderingManager.js +64 -5
- package/src/utils.js +24 -15
- package/static/prebid-mobile-rewarded-vast.xml +22 -0
- package/test/spec/renderingManager_spec.js +84 -0
- package/testpages/amp_cookiesync.html +1 -1
- package/testpages/amp_cookiesync_with_consent.html +1 -1
package/dist/native-trk.js
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
/* v1.
|
2
|
-
Updated : 2021-
|
3
|
-
!function(r){var n={};function a(t){if(n[t])return n[t].exports;var e=n[t]={i:t,l:!1,exports:{}};return r[t].call(e.exports,e,e.exports,a),e.l=!0,e.exports}a.m=r,a.c=n,a.d=function(t,e,r){a.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},a.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return a.d(e,"a",e),e},a.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},a.p="",a(a.s=1)}([function(t,n,e){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.triggerPixel=function(t,e){var r=new Image;e&&"function"==typeof e&&(r.addEventListener("load",e),r.addEventListener("error",e));r.src=t},n.createTrackPixelHtml=function(t){if(!t)return"";var e=encodeURI(t);return'<div style="position:absolute;left:0px;top:0px;visibility:hidden;"><img src="'.concat(e,'"></div>')},n.writeAdUrl=function(t,e,r){var n=a.getEmptyIframe(r,e);n.src=t,document.body.appendChild(n)},n.writeAdHtml=function(t){r(document.body,t)},n.sendRequest=function(t,e){var r=new XMLHttpRequest;r.addEventListener("load",function(){e(r.responseText)}),r.open("GET",t),r.send()},n.getUUID=function(){var r=(new Date).getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var e=(r+16*Math.random())%16|0;return r=Math.floor(r/16),("x"===t?e:3&e|8).toString(16)})},n.loadScript=function(t,e,r){var n=t.document,a=n.createElement("script");a.type="text/javascript",r&&"function"==typeof r&&(a.readyState?a.onreadystatechange=function(){"loaded"!==a.readyState&&"complete"!==a.readyState||(a.onreadystatechange=null,r())}:a.onload=function(){r()});a.src=e;var i=n.getElementsByTagName("head");(i=i.length?i:n.getElementsByTagName("body")).length&&(i=i[0]).insertBefore(a,i.firstChild);return a},n.getCreativeComment=function(t){return document.createComment("Creative ".concat(t.crid," served by Prebid.js Header Bidding"))},n.getCreativeCommentMarkup=function(t){var e=n.getCreativeComment(t),r=document.createElement("div");return r.appendChild(e),r.innerHTML},n.transformAuctionTargetingData=function(e){var r={hb_adid:"adId",hb_cache_host:"cacheHost",hb_cache_path:"cachePath",hb_cache_id:"uuid",hb_format:"mediaType",hb_env:"env",hb_size:"size",hb_pb:"hbPb"};function t(t){return!(!e[t]||!(function(t){return i(t,"Object")}(e[t])&&0<Object.keys(e[t]).length||s(e[t])&&""!==e[t]))}var n={},a={};t("targetingMap")?a=function(e){var r={};return Object.keys(e).forEach(function(t){Array.isArray(e[t])&&0<e[t].length&&(r[t]=e[t][0])}),r}(e.targetingMap):t("targetingKeywords")&&(a=function(t){var a={},e=t.split(",");return 0<e.length&&e.forEach(function(t){var e=t.split(":");if(2===e.length){var r=e[0],n=e[1];a[r]=n}}),a}(e.targetingKeywords));return function(e){Object.keys(e).forEach(function(t){n[r[t]||t]=e[t]})}(a),Object.keys(e).forEach(function(t){"targetingMap"!==t&&"targetingKeywords"!==t&&s(e[t])&&""!==e[t]&&(n[t]=e[t])}),n},n.parseUrl=function(t){var e=document.createElement("a");return e.href=decodeURIComponent(t),{href:e.href,protocol:(e.protocol||"").replace(/:$/,""),hostname:e.hostname,port:+e.port,pathname:e.pathname.replace(/^(?!\/)/,"/"),hash:(e.hash||"").replace(/^#/,""),host:(e.host||window.location.host).replace(/:(443|80)$/,"")}};var a=function(t){if(t&&t.__esModule)return t;var e=o();if(e&&e.has(t))return e.get(t);var r={};if(null!=t){var n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in t)if(Object.prototype.hasOwnProperty.call(t,a)){var i=n?Object.getOwnPropertyDescriptor(t,a):null;i&&(i.get||i.set)?Object.defineProperty(r,a,i):r[a]=t[a]}}r.default=t,e&&e.set(t,r);return r}(e(3));function o(){if("function"!=typeof WeakMap)return null;var t=new WeakMap;return o=function(){return t},t}var r=e(4);function i(t,e){return Object.prototype.toString.call(t)==="[object "+e+"]"}function s(t){return i(t,"String")}},function(t,e,r){"use strict";var n=r(2);window.pbNativeTag=window.pbNativeTag||{};var a=(0,n.newNativeTrackerManager)(window);window.pbNativeTag.startTrackers=a.startTrackers},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.newNativeTrackerManager=function(n){var i;function o(t){return n.document.getElementsByClassName(t)||[]}function s(t){return t.attributes&&t.attributes[h]&&t.attributes[h].value||""}function c(t,e){l(e,"click")}function u(r){var n=1<arguments.length&&void 0!==arguments[1]?arguments[1]:c;r=r||o(f);for(var t=function(t){var e=s(r[t]);r[t].addEventListener("click",function(t){n(t,e)},!0)},e=0;e<r.length;e++)t(e)}function l(t,e){if(""===t)console.warn("Prebid tracking event was missing 'adId'. Was adId macro set in the HTML attribute "+h+"on the ad's anchor element");else{var r={message:"Prebid Native",adId:t};"click"===e&&(r.action="click"),n.parent.postMessage(JSON.stringify(r),i)}}return{startTrackers:function(t){var e=(0,p.transformAuctionTargetingData)(t),r=(0,d.newNativeAssetManager)(window);if(e&&"mobile-app"===e.env){r.loadMobileAssets(e,function(t){var e=0<arguments.length&&void 0!==t?t:{},r=e.clickTrackers,n=e.impTrackers;u(!1,function(t){(t||[]).forEach(p.triggerPixel)}.bind(null,r)),(n||[]).forEach(p.triggerPixel)})}else{var n=(0,p.parseUrl)(e&&e.pubUrl);i=n.protocol+"://"+n.host;var a=o(f);r.loadAssets(function(t){return 0<t.length&&t[0].attributes&&t[0].attributes[h]&&t[0].attributes[h].value||""}(a),u),u(a,c),0<a.length&&function(t){for(var e=0;e<t.length;e++){l(s(t[e]),"impression")}}(a)}}}};var p=r(0),d=r(5),f="pb-click",h="pbAdId"},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getEmptyIframe=function(t,e){var r=document.createElement("iframe");return r.setAttribute("frameborder",0),r.setAttribute("scrolling","no"),r.setAttribute("marginheight",0),r.setAttribute("marginwidth",0),r.setAttribute("TOPMARGIN",0),r.setAttribute("LEFTMARGIN",0),r.setAttribute("allowtransparency","true"),r.setAttribute("width",e),r.setAttribute("height",t),r},e.insertElement=function(t,e,r){var n;e=e||document,n=r?e.getElementsByTagName(r):e.getElementsByTagName("head");try{(n=n.length?n:e.getElementsByTagName("body")).length&&(n=n[0]).insertBefore(t,n.firstChild)}catch(t){}}},function(t,e,r){var n;n=function(){return a={},r.m=n=[function(t,e,r){"use strict";var n,a=r(1),i=(n=a)&&n.__esModule?n:{default:n};t.exports=i.default},function(t,e,r){"use strict";e.__esModule=!0;var s=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t};e.default=h;var n,a=r(2),c=(n=a)&&n.__esModule?n:{default:n},i=function(t){{if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}}(r(4));function u(){}var o={afterAsync:u,afterDequeue:u,afterStreamStart:u,afterWrite:u,autoFix:!0,beforeEnqueue:u,beforeWriteToken:function(t){return t},beforeWrite:function(t){return t},done:u,error:function(t){throw new Error(t.msg)},releaseAsync:!1},l=0,p=[],d=null;function f(){var t=p.shift();if(t){var e=i.last(t);e.afterDequeue(),t.stream=function(t,e,n){(d=new c.default(t,n)).id=l++,d.name=n.name||d.id,h.streams[d.name]=d;var r=t.ownerDocument,a={close:r.close,open:r.open,write:r.write,writeln:r.writeln};function i(t){t=n.beforeWrite(t),d.write(t),n.afterWrite(t)}s(r,{close:u,open:u,write:function(){for(var t=arguments.length,e=Array(t),r=0;r<t;r++)e[r]=arguments[r];return i(e.join(""))},writeln:function(){for(var t=arguments.length,e=Array(t),r=0;r<t;r++)e[r]=arguments[r];return i(e.join("")+"\n")}});var o=d.win.onerror||u;return d.win.onerror=function(t,e,r){n.error({msg:t+" - "+e+": "+r}),o.apply(d.win,[t,e,r])},d.write(e,function(){s(r,a),d.win.onerror=o,n.done(),d=null,f()}),d}.apply(void 0,t),e.afterStreamStart()}}function h(t,e,r){if(i.isFunction(r))r={done:r};else if("clear"===r)return p=[],d=null,void(l=0);r=i.defaults(r,o);var n=[t=/^#/.test(t)?window.document.getElementById(t.substr(1)):t.jquery?t[0]:t,e,r];return t.postscribe={cancel:function(){n.stream?n.stream.abort():n[1]=u}},r.beforeEnqueue(n),p.push(n),d||f(),t.postscribe}s(h,{streams:{},queue:p,WriteStream:c.default})},function(t,e,r){"use strict";e.__esModule=!0;var n,s=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},a=r(3),i=(n=a)&&n.__esModule?n:{default:n},o=function(t){{if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}}(r(4));var l="data-ps-",p="ps-style",d="ps-script";function c(t,e){var r=l+e,n=t.getAttribute(r);return o.existy(n)?String(n):n}function u(t,e,r){var n=2<arguments.length&&void 0!==r?r:null,a=l+e;o.existy(n)&&""!==n?t.setAttribute(a,n):t.removeAttribute(a)}var f=(h.prototype.write=function(){var t;for((t=this.writeQueue).push.apply(t,arguments);!this.deferredRemote&&this.writeQueue.length;){var e=this.writeQueue.shift();o.isFunction(e)?this._callFunction(e):this._writeImpl(e)}},h.prototype._callFunction=function(t){var e={type:"function",value:t.name||t.toString()};this._onScriptStart(e),t.call(this.win,this.doc),this._onScriptDone(e)},h.prototype._writeImpl=function(t){this.parser.append(t);for(var e=void 0,r=void 0,n=void 0,a=[];(e=this.parser.readToken())&&!(r=o.isScript(e))&&!(n=o.isStyle(e));)(e=this.options.beforeWriteToken(e))&&a.push(e);0<a.length&&this._writeStaticTokens(a),r&&this._handleScriptToken(e),n&&this._handleStyleToken(e)},h.prototype._writeStaticTokens=function(t){var e=this._buildChunk(t);return e.actual?(e.html=this.proxyHistory+e.actual,this.proxyHistory+=e.proxy,this.proxyRoot.innerHTML=e.html,this._walkChunk(),e):null},h.prototype._buildChunk=function(t){for(var e=this.actuals.length,r=[],n=[],a=[],i=t.length,o=0;o<i;o++){var s=t[o],c=s.toString();if(r.push(c),s.attrs){if(!/^noscript$/i.test(s.tagName)){var u=e++;n.push(c.replace(/(\/?>)/," "+l+"id="+u+" $1")),s.attrs.id!==d&&s.attrs.id!==p&&a.push("atomicTag"===s.type?"":"<"+s.tagName+" "+l+"proxyof="+u+(s.unary?" />":">"))}}else n.push(c),a.push("endTag"===s.type?c:"")}return{tokens:t,raw:r.join(""),actual:n.join(""),proxy:a.join("")}},h.prototype._walkChunk=function(){for(var t=void 0,e=[this.proxyRoot];o.existy(t=e.shift());){var r=1===t.nodeType;if(!r||!c(t,"proxyof")){r&&u(this.actuals[c(t,"id")]=t,"id");var n=t.parentNode&&c(t.parentNode,"proxyof");n&&this.actuals[n].appendChild(t)}e.unshift.apply(e,o.toArray(t.childNodes))}},h.prototype._handleScriptToken=function(t){var e=this,r=this.parser.clear();r&&this.writeQueue.unshift(r),t.src=t.attrs.src||t.attrs.SRC,(t=this.options.beforeWriteToken(t))&&(t.src&&this.scriptStack.length?this.deferredRemote=t:this._onScriptStart(t),this._writeScriptToken(t,function(){e._onScriptDone(t)}))},h.prototype._handleStyleToken=function(t){var e=this.parser.clear();e&&this.writeQueue.unshift(e),t.type=t.attrs.type||t.attrs.TYPE||"text/css",(t=this.options.beforeWriteToken(t))&&this._writeStyleToken(t),e&&this.write()},h.prototype._writeStyleToken=function(t){var e=this._buildStyle(t);this._insertCursor(e,p),t.content&&(e.styleSheet&&!e.sheet?e.styleSheet.cssText=t.content:e.appendChild(this.doc.createTextNode(t.content)))},h.prototype._buildStyle=function(t){var r=this.doc.createElement(t.tagName);return r.setAttribute("type",t.type),o.eachKey(t.attrs,function(t,e){r.setAttribute(t,e)}),r},h.prototype._insertCursor=function(t,e){this._writeImpl('<span id="'+e+'"/>');var r=this.doc.getElementById(e);r&&r.parentNode.replaceChild(t,r)},h.prototype._onScriptStart=function(t){t.outerWrites=this.writeQueue,this.writeQueue=[],this.scriptStack.unshift(t)},h.prototype._onScriptDone=function(t){t===this.scriptStack[0]?(this.scriptStack.shift(),this.write.apply(this,t.outerWrites),!this.scriptStack.length&&this.deferredRemote&&(this._onScriptStart(this.deferredRemote),this.deferredRemote=null)):this.options.error({msg:"Bad script nesting or script finished twice"})},h.prototype._writeScriptToken=function(t,e){var r=this._buildScript(t),n=this._shouldRelease(r),a=this.options.afterAsync;t.src&&(r.src=t.src,this._scriptLoadHandler(r,n?a:function(){e(),a()}));try{this._insertCursor(r,d),r.src&&!n||e()}catch(t){this.options.error(t),e()}},h.prototype._buildScript=function(t){var r=this.doc.createElement(t.tagName);return o.eachKey(t.attrs,function(t,e){r.setAttribute(t,e)}),t.content&&(r.text=t.content),r},h.prototype._scriptLoadHandler=function(e,r){function n(){e=e.onload=e.onreadystatechange=e.onerror=null}var a=this.options.error;function t(){n(),null!=r&&r(),r=null}function i(t){n(),a(t),null!=r&&r(),r=null}function o(t,e){var r=t["on"+e];null!=r&&(t["_on"+e]=r)}o(e,"load"),o(e,"error"),s(e,{onload:function(){if(e._onload)try{e._onload.apply(this,Array.prototype.slice.call(arguments,0))}catch(t){i({msg:"onload handler failed "+t+" @ "+e.src})}t()},onerror:function(){if(e._onerror)try{e._onerror.apply(this,Array.prototype.slice.call(arguments,0))}catch(t){return void i({msg:"onerror handler failed "+t+" @ "+e.src})}i({msg:"remote script failed "+e.src})},onreadystatechange:function(){/^(loaded|complete)$/.test(e.readyState)&&t()}})},h.prototype._shouldRelease=function(t){return!/^script$/i.test(t.nodeName)||!!(this.options.releaseAsync&&t.src&&t.hasAttribute("async"))},h);function h(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,h),this.root=t,this.options=e,this.doc=t.ownerDocument,this.win=this.doc.defaultView||this.doc.parentWindow,this.parser=new i.default("",{autoFix:e.autoFix}),this.actuals=[t],this.proxyHistory="",this.proxyRoot=this.doc.createElement(t.nodeName),this.scriptStack=[],this.writeQueue=[],u(this.proxyRoot,"proxyof",0)}e.default=f},function(t,e,r){var n;n=function(){return a={},r.m=n=[function(t,e,r){"use strict";var n,a=r(1),i=(n=a)&&n.__esModule?n:{default:n};t.exports=i.default},function(t,e,r){"use strict";e.__esModule=!0;var n,o=u(r(2)),a=u(r(3)),i=r(6),s=(n=i)&&n.__esModule?n:{default:n},c=r(5);function u(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}var l={comment:/^<!--/,endTag:/^<\//,atomicTag:/^<\s*(script|style|noscript|iframe|textarea)[\s\/>]/i,startTag:/^</,chars:/^[^<]/},p=(d.prototype.append=function(t){this.stream+=t},d.prototype.prepend=function(t){this.stream=t+this.stream},d.prototype._readTokenImpl=function(){var t=this._peekTokenImpl();if(t)return this.stream=this.stream.slice(t.length),t},d.prototype._peekTokenImpl=function(){for(var t in l)if(l.hasOwnProperty(t)&&l[t].test(this.stream)){var e=a[t](this.stream);if(e)return"startTag"===e.type&&/script|style/i.test(e.tagName)?null:(e.text=this.stream.substr(0,e.length),e)}},d.prototype.peekToken=function(){return this._peekToken()},d.prototype.readToken=function(){return this._readToken()},d.prototype.readTokens=function(t){for(var e=void 0;e=this.readToken();)if(t[e.type]&&!1===t[e.type](e))return},d.prototype.clear=function(){var t=this.stream;return this.stream="",t},d.prototype.rest=function(){return this.stream},d);function d(){var t=this,e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"",r=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,d),this.stream=e;var n=!1,a={};for(var i in o)o.hasOwnProperty(i)&&(r.autoFix&&(a[i+"Fix"]=!0),n=n||a[i+"Fix"]);n?(this._readToken=(0,s.default)(this,a,function(){return t._readTokenImpl()}),this._peekToken=(0,s.default)(this,a,function(){return t._peekTokenImpl()})):(this._readToken=this._readTokenImpl,this._peekToken=this._peekTokenImpl)}for(var f in(e.default=p).tokenToString=function(t){return t.toString()},p.escapeAttributes=function(t){var e={};for(var r in t)t.hasOwnProperty(r)&&(e[r]=(0,c.escapeQuotes)(t[r],null));return e},p.supports=o)o.hasOwnProperty(f)&&(p.browserHasFlaw=p.browserHasFlaw||!o[f]&&f)},function(t,e){"use strict";var r=!(e.__esModule=!0),n=!1,a=window.document.createElement("div");try{var i="<P><I></P></I>";a.innerHTML=i,e.tagSoup=r=a.innerHTML!==i}catch(t){e.tagSoup=r=!1}try{a.innerHTML="<P><i><P></P></i></P>",e.selfClose=n=2===a.childNodes.length}catch(t){e.selfClose=n=!1}a=null,e.tagSoup=r,e.selfClose=n},function(t,e,r){"use strict";e.__esModule=!0;var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};e.comment=function(t){var e=t.indexOf("--\x3e");if(0<=e)return new s.CommentToken(t.substr(4,e-1),e+3)},e.chars=function(t){var e=t.indexOf("<");return new s.CharsToken(0<=e?e:t.length)},e.startTag=a,e.atomicTag=function(t){var e=a(t);if(e){var r=t.slice(e.length);if(r.match(new RegExp("</\\s*"+e.tagName+"\\s*>","i"))){var n=r.match(new RegExp("([\\s\\S]*?)</\\s*"+e.tagName+"\\s*>","i"));if(n)return new s.AtomicTagToken(e.tagName,n[0].length+e.length,e.attrs,e.booleanAttrs,n[1])}}},e.endTag=function(t){var e=t.match(c.endTag);if(e)return new s.EndTagToken(e[1],e[0].length)};var s=r(4),c={startTag:/^<([\-A-Za-z0-9_]+)((?:\s+[\w\-]+(?:\s*=?\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/,endTag:/^<\/([\-A-Za-z0-9_]+)[^>]*>/,attr:/(?:([\-A-Za-z0-9_]+)\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))|(?:([\-A-Za-z0-9_]+)(\s|$)+)/g,fillAttr:/^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noresize|noshade|nowrap|readonly|selected)$/i};function a(t){var r,n,a;if(-1!==t.indexOf(">")){var e=t.match(c.startTag);if(e){var i=(r={},n={},a=e[2],e[2].replace(c.attr,function(t,e){arguments[2]||arguments[3]||arguments[4]||arguments[5]?arguments[5]?(r[arguments[5]]="",n[arguments[5]]=!0):r[e]=arguments[2]||arguments[3]||arguments[4]||c.fillAttr.test(e)&&e||"":r[e]="",a=a.replace(t,"")}),{v:new s.StartTagToken(e[1],e[0].length,r,n,!!e[3],a.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""))});if("object"===(void 0===i?"undefined":o(i)))return i.v}}}},function(t,e,r){"use strict";e.__esModule=!0,e.EndTagToken=e.AtomicTagToken=e.StartTagToken=e.TagToken=e.CharsToken=e.CommentToken=e.Token=void 0;var o=r(5);function s(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}e.Token=function t(e,r){s(this,t),this.type=e,this.length=r,this.text=""},e.CommentToken=(n.prototype.toString=function(){return"\x3c!--"+this.content},n);function n(t,e){s(this,n),this.type="comment",this.length=e||(t?t.length:0),this.text="",this.content=t}e.CharsToken=(a.prototype.toString=function(){return this.text},a);function a(t){s(this,a),this.type="chars",this.length=t,this.text=""}var i=e.TagToken=(c.formatTag=function(t,e){var r=1<arguments.length&&void 0!==e?e:null,n="<"+t.tagName;for(var a in t.attrs)if(t.attrs.hasOwnProperty(a)){n+=" "+a;var i=t.attrs[a];void 0!==t.booleanAttrs&&void 0!==t.booleanAttrs[a]||(n+='="'+(0,o.escapeQuotes)(i)+'"')}return t.rest&&(n+=" "+t.rest),t.unary&&!t.html5Unary?n+="/>":n+=">",null!=r&&(n+=r+"</"+t.tagName+">"),n},c);function c(t,e,r,n,a){s(this,c),this.type=t,this.length=r,this.text="",this.tagName=e,this.attrs=n,this.booleanAttrs=a,this.unary=!1,this.html5Unary=!1}e.StartTagToken=(u.prototype.toString=function(){return i.formatTag(this)},u);function u(t,e,r,n,a,i){s(this,u),this.type="startTag",this.length=e,this.text="",this.tagName=t,this.attrs=r,this.booleanAttrs=n,this.html5Unary=!1,this.unary=a,this.rest=i}e.AtomicTagToken=(l.prototype.toString=function(){return i.formatTag(this,this.content)},l);function l(t,e,r,n,a){s(this,l),this.type="atomicTag",this.length=e,this.text="",this.tagName=t,this.attrs=r,this.booleanAttrs=n,this.unary=!1,this.html5Unary=!1,this.content=a}e.EndTagToken=(p.prototype.toString=function(){return"</"+this.tagName+">"},p);function p(t,e){s(this,p),this.type="endTag",this.length=e,this.text="",this.tagName=t}},function(t,e){"use strict";e.__esModule=!0,e.escapeQuotes=function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"";return t?t.replace(/([^"]*)"/g,function(t,e){return/\\/.test(e)?e+'"':e+'\\"'}):e}},function(t,e){"use strict";e.__esModule=!0,e.default=function(r,n,e){var a=function(){var t=[];return t.last=function(){return this[this.length-1]},t.lastTagNameEq=function(t){var e=this.last();return e&&e.tagName&&e.tagName.toUpperCase()===t.toUpperCase()},t.containsTagName=function(t){for(var e,r=0;e=this[r];r++)if(e.tagName===t)return!0;return!1},t}(),i={startTag:function(t){var e=t.tagName;"TR"===e.toUpperCase()&&a.lastTagNameEq("TABLE")?(r.prepend("<TBODY>"),o()):n.selfCloseFix&&s.test(e)&&a.containsTagName(e)?a.lastTagNameEq(e)?u(r,a):(r.prepend("</"+t.tagName+">"),o()):t.unary||a.push(t)},endTag:function(t){a.last()?n.tagSoupFix&&!a.lastTagNameEq(t.tagName)?u(r,a):a.pop():n.tagSoupFix&&(e(),o())}};function o(){var t=function(t,e){var r=t.stream,n=c(e());return t.stream=r,n}(r,e);t&&i[t.type]&&i[t.type](t)}return function(){return o(),c(e())}};var r=/^(AREA|BASE|BASEFONT|BR|COL|FRAME|HR|IMG|INPUT|ISINDEX|LINK|META|PARAM|EMBED)$/i,s=/^(COLGROUP|DD|DT|LI|OPTIONS|P|TD|TFOOT|TH|THEAD|TR)$/i;function c(t){return t&&"startTag"===t.type&&(t.unary=r.test(t.tagName)||t.unary,t.html5Unary=!/\/>$/.test(t.text)),t}function u(t,e){var r=e.pop();t.prepend("</"+r.tagName+">")}}],r.c=a,r.p="",r(0);function r(t){if(a[t])return a[t].exports;var e=a[t]={exports:{},id:t,loaded:!1};return n[t].call(e.exports,e,e.exports,r),e.loaded=!0,e.exports}var n,a},t.exports=n()},function(t,e){"use strict";e.__esModule=!0;var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};function a(t){return null!=t}function i(t,e,r){var n=void 0,a=t&&t.length||0;for(n=0;n<a;n++)e.call(r,t[n],n)}function o(t,e,r){for(var n in t)t.hasOwnProperty(n)&&e.call(r,n,t[n])}function r(t,e){return!(!t||"startTag"!==t.type&&"atomicTag"!==t.type||!("tagName"in t))&&!!~t.tagName.toLowerCase().indexOf(e)}e.existy=a,e.isFunction=function(t){return"function"==typeof t},e.each=i,e.eachKey=o,e.defaults=function(r,t){return r=r||{},o(t,function(t,e){a(r[t])||(r[t]=e)}),r},e.toArray=function(r){try{return Array.prototype.slice.call(r)}catch(t){var e=function(){var e=[];return i(r,function(t){e.push(t)}),{v:e}}();if("object"===(void 0===e?"undefined":n(e)))return e.v}},e.last=function(t){return t[t.length-1]},e.isTag=r,e.isScript=function(t){return r(t,"script")},e.isStyle=function(t){return r(t,"style")}}],r.c=a,r.p="",r(0);function r(t){if(a[t])return a[t].exports;var e=a[t]={exports:{},id:t,loaded:!1};return n[t].call(e.exports,e,e.exports,r),e.loaded=!0,e.exports}var n,a},t.exports=n()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.newNativeAssetManager=function(c){var u,l=0;function i(t){var e;try{e=JSON.parse(t)}catch(t){console.log("Error parsing response from cache host: ".concat(t))}return e}function r(t){var e=t.uuid,r="".concat(function(t,e){var r=void 0===e||""===e?v:e;return"https://".concat(void 0===t||""===t?n:t).concat(r)}(t.cacheHost,t.cachePath),"?uuid=").concat(e);(0,h.sendRequest)(r,function(t){var e=i(t);if(e&&e.adm){var r=i(e.adm);if(r&&r.assets){var n=function(t){var e,r=[];return t.assets.forEach(function(t){t.img?o.image[t.img.type]?r.push({key:o.image[t.img.type],value:t.img.url}):console.log("ERROR: Invalid image type for image asset"):t.data?o.data[t.data.type]?r.push({key:o.data[t.data.type],value:t.data.value}):console.log("ERROR: Invalid data type for data asset"):t.title&&r.push({key:"title",value:t.title.text})}),t.link&&(t.link.clicktrackers&&(e=t.link.clicktrackers),r.push({key:"clickUrl",value:t.link.url})),{assets:r,clicktrackers:e,imptrackers:t.imptrackers}}(r),a=f(c.document.body.innerHTML,n);c.document.body.innerHTML=a,u&&u({clickTrackers:n.clicktrackers,impTrackers:n.imptrackers})}}})}function a(n){var a=[],i=c.document,o=void 0!==c.pbNativeData;return Object.keys(s).forEach(function(t){var e=s[t],r=n&&!o?"".concat(e,":").concat(n):"".concat(e);~(~i.body.innerHTML.indexOf(r)?i.body.innerHTML.indexOf(r):i.head.innerHTML&&i.head.innerHTML.indexOf(r))&&a.push(e)}),a}function p(t,e){var r={message:"Prebid Native",action:"resizeNativeHeight",adId:t,height:e};c.parent.postMessage(JSON.stringify(r),"*")}function d(t){var e={};try{e=JSON.parse(t.data)}catch(t){return void(10<l++&&c.removeEventListener("message",d))}if("assetResponse"===e.message){var r=c.document.body.innerHTML,n=c.document.head.innerHTML,a=void 0!==c.pbNativeData;if(a&&e.adId!==c.pbNativeData.adId)return;if(n&&(c.document.head.innerHTML=f(n,e)),e.hasOwnProperty("rendererUrl")&&e.rendererUrl||a&&c.pbNativeData.hasOwnProperty("rendererUrl"))if(c.renderAd){var i=c.renderAd&&c.renderAd(e.assets)||"";c.document.body.innerHTML=r+i,u&&u(),c.removeEventListener("message",d),p(e.adId,document.body.clientHeight||document.body.offsetHeight)}else document.getElementById("pb-native-renderer")?document.getElementById("pb-native-renderer").addEventListener("load",function(){var t=c.renderAd&&c.renderAd(e.assets)||"";c.document.body.innerHTML=r+t,u&&u(),c.removeEventListener("message",d),p(e.adId,document.body.clientHeight||document.body.offsetHeight)}):(0,h.loadScript)(c,a&&c.pbNativeData.hasOwnProperty("rendererUrl")&&c.pbNativeData.rendererUrl||e.rendererUrl,function(){var t=c.renderAd&&c.renderAd(e.assets)||"";c.document.body.innerHTML=r+t,u&&u(),c.removeEventListener("message",d),p(e.adId,document.body.clientHeight||document.body.offsetHeight)});else if(e.hasOwnProperty("adTemplate")&&e.adTemplate||a&&c.pbNativeData.hasOwnProperty("adTemplate")){var o=f(a&&c.pbNativeData.hasOwnProperty("adTemplate")&&c.pbNativeData.adTemplate||e.adTemplate,e);c.document.body.innerHTML=r+o,u&&u(),c.removeEventListener("message",d),p(e.adId,document.body.clientHeight||document.body.offsetHeight)}else{var s=f(r,e);c.document.body.innerHTML=s,u&&u(),c.removeEventListener("message",d)}}}function f(t,e){var r=e.assets,a=e.adId,i=t;return(r||[]).forEach(function(t){var e=void 0!==c.pbNativeData,r=a&&!e?"".concat(s[t.key],":").concat(a):e?"##"+"".concat(s[t.key])+"##":"".concat(s[t.key]),n=new RegExp(r,"g");i=i.replace(n,t.value)}),i}return{loadAssets:function(t,e){var r=a(t),n=void 0!==c.pbNativeData;n&&c.pbNativeData.hasOwnProperty("assetsToReplace")&&c.pbNativeData.assetsToReplace.forEach(function(t){var e=t.match(/hb_native_/i)?t:s[t];e&&r.push(e)}),n&&c.pbNativeData.hasOwnProperty("requestAllAssets")&&c.pbNativeData.requestAllAssets?(u=e,function(t){c.addEventListener("message",d,!1);var e={message:"Prebid Native",action:"allAssetRequest",adId:t};c.parent.postMessage(JSON.stringify(e),"*")}(t)):0<r.length&&(u=e,function(t,e){c.addEventListener("message",d,!1);var r={message:"Prebid Native",action:"assetRequest",adId:t,assets:e};c.parent.postMessage(JSON.stringify(r),"*")}(t,r))},loadMobileAssets:function(t,e){0<a().length&&(u=e,r(t))}}};var h=r(0),s={title:"hb_native_title",body:"hb_native_body",body2:"hb_native_body2",privacyLink:"hb_native_privacy",sponsoredBy:"hb_native_brand",image:"hb_native_image",icon:"hb_native_icon",clickUrl:"hb_native_linkurl",displayUrl:"hb_native_displayurl",cta:"hb_native_cta",rating:"hb_native_rating",address:"hb_native_address",downloads:"hb_native_downloads",likes:"hb_native_likes",phone:"hb_native_phone",price:"hb_native_price",salePrice:"hb_native_saleprice",rendererUrl:"hb_renderer_url"},o={image:{1:"icon",3:"image"},data:{1:"sponsoredBy",2:"body",3:"rating",4:"likes",5:"downloads",6:"price",7:"salePrice",8:"phone",9:"address",10:"body2",11:"displayUrl",12:"cta"}},n="prebid.adnxs.com",v="/pbc/v1/cache"}]);
|
1
|
+
/* v1.13.0
|
2
|
+
Updated : 2021-12-09 */
|
3
|
+
!function(r){var n={};function a(t){if(n[t])return n[t].exports;var e=n[t]={i:t,l:!1,exports:{}};return r[t].call(e.exports,e,e.exports,a),e.l=!0,e.exports}a.m=r,a.c=n,a.d=function(t,e,r){a.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},a.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return a.d(e,"a",e),e},a.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},a.p="",a(a.s=1)}([function(t,n,e){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.triggerPixel=function(t,e){var r=new Image;e&&"function"==typeof e&&(r.addEventListener("load",e),r.addEventListener("error",e));r.src=t},n.createTrackPixelHtml=function(t){if(!t)return"";var e=encodeURI(t);return'<div style="position:absolute;left:0px;top:0px;visibility:hidden;"><img src="'.concat(e,'"></div>')},n.writeAdUrl=function(t,e,r){var n=a.getEmptyIframe(r,e);n.src=t,document.body.appendChild(n)},n.writeAdHtml=function(t){r(document.body,t,{error:console.error})},n.sendRequest=function(t,e){var r=new XMLHttpRequest;r.addEventListener("load",function(){e(r.responseText)}),r.open("GET",t),r.send()},n.getUUID=function(){var r=(new Date).getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var e=(r+16*Math.random())%16|0;return r=Math.floor(r/16),("x"===t?e:3&e|8).toString(16)})},n.loadScript=function(t,e,r,n){var a=t.document,o=a.createElement("script");o.type="text/javascript",r&&"function"==typeof r&&(o.readyState?o.onreadystatechange=function(){"loaded"!==o.readyState&&"complete"!==o.readyState||(o.onreadystatechange=null,r())}:o.onload=function(){r()});n&&"function"==typeof n&&(o.onerror=function(){n()});o.src=e;var i=a.getElementsByTagName("head");(i=i.length?i:a.getElementsByTagName("body")).length&&(i=i[0]).insertBefore(o,i.firstChild);return o},n.getCreativeComment=function(t){return document.createComment("Creative ".concat(t.crid," served by Prebid.js Header Bidding"))},n.getCreativeCommentMarkup=function(t){var e=n.getCreativeComment(t),r=document.createElement("div");return r.appendChild(e),r.innerHTML},n.transformAuctionTargetingData=function(e){var r={hb_adid:"adId",hb_cache_host:"cacheHost",hb_cache_path:"cachePath",hb_cache_id:"uuid",hb_format:"mediaType",hb_env:"env",hb_size:"size",hb_pb:"hbPb"};function t(t){return!(!e[t]||!(function(t){return o(t,"Object")}(e[t])&&0<Object.keys(e[t]).length||s(e[t])&&""!==e[t]))}var n={},a={};t("targetingMap")?a=function(e){var r={};return Object.keys(e).forEach(function(t){Array.isArray(e[t])&&0<e[t].length&&(r[t]=e[t][0])}),r}(e.targetingMap):t("targetingKeywords")&&(a=function(t){var a={},e=t.split(",");return 0<e.length&&e.forEach(function(t){var e=t.split(":");if(2===e.length){var r=e[0],n=e[1];a[r]=n}}),a}(e.targetingKeywords));return function(e){Object.keys(e).forEach(function(t){n[r[t]||t]=e[t]})}(a),Object.keys(e).forEach(function(t){"targetingMap"!==t&&"targetingKeywords"!==t&&s(e[t])&&""!==e[t]&&(n[t]=e[t])}),n},n.parseUrl=function(t){var e=document.createElement("a");return e.href=decodeURIComponent(t),{href:e.href,protocol:(e.protocol||"").replace(/:$/,""),hostname:e.hostname,port:+e.port,pathname:e.pathname.replace(/^(?!\/)/,"/"),hash:(e.hash||"").replace(/^#/,""),host:(e.host||window.location.host).replace(/:(443|80)$/,"")}};var a=function(t){if(t&&t.__esModule)return t;var e=i();if(e&&e.has(t))return e.get(t);var r={};if(null!=t){var n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in t)if(Object.prototype.hasOwnProperty.call(t,a)){var o=n?Object.getOwnPropertyDescriptor(t,a):null;o&&(o.get||o.set)?Object.defineProperty(r,a,o):r[a]=t[a]}}r.default=t,e&&e.set(t,r);return r}(e(3));function i(){if("function"!=typeof WeakMap)return null;var t=new WeakMap;return i=function(){return t},t}var r=e(4);function o(t,e){return Object.prototype.toString.call(t)==="[object "+e+"]"}function s(t){return o(t,"String")}},function(t,e,r){"use strict";var n=r(2);window.pbNativeTag=window.pbNativeTag||{};var a=(0,n.newNativeTrackerManager)(window);window.pbNativeTag.startTrackers=a.startTrackers},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.newNativeTrackerManager=function(n){var o;function i(t){return n.document.getElementsByClassName(t)||[]}function s(t){return t.attributes&&t.attributes[h]&&t.attributes[h].value||""}function c(t,e){l(e,"click")}function u(r){var n=1<arguments.length&&void 0!==arguments[1]?arguments[1]:c;r=r||i(f);for(var t=function(t){var e=s(r[t]);r[t].addEventListener("click",function(t){n(t,e)},!0)},e=0;e<r.length;e++)t(e)}function l(t,e){if(""===t)console.warn("Prebid tracking event was missing 'adId'. Was adId macro set in the HTML attribute "+h+"on the ad's anchor element");else{var r={message:"Prebid Native",adId:t};"click"===e&&(r.action="click"),n.parent.postMessage(JSON.stringify(r),o)}}return{startTrackers:function(t){var e=(0,p.transformAuctionTargetingData)(t),r=(0,d.newNativeAssetManager)(window);if(e&&"mobile-app"===e.env){r.loadMobileAssets(e,function(t){var e=0<arguments.length&&void 0!==t?t:{},r=e.clickTrackers,n=e.impTrackers;u(!1,function(t){(t||[]).forEach(p.triggerPixel)}.bind(null,r)),(n||[]).forEach(p.triggerPixel)})}else{var n=(0,p.parseUrl)(e&&e.pubUrl);o=n.protocol+"://"+n.host;var a=i(f);r.loadAssets(function(t){return 0<t.length&&t[0].attributes&&t[0].attributes[h]&&t[0].attributes[h].value||""}(a),u),u(a,c),0<a.length&&function(t){for(var e=0;e<t.length;e++){l(s(t[e]),"impression")}}(a)}}}};var p=r(0),d=r(5),f="pb-click",h="pbAdId"},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getEmptyIframe=function(t,e){var r=document.createElement("iframe");return r.setAttribute("frameborder",0),r.setAttribute("scrolling","no"),r.setAttribute("marginheight",0),r.setAttribute("marginwidth",0),r.setAttribute("TOPMARGIN",0),r.setAttribute("LEFTMARGIN",0),r.setAttribute("allowtransparency","true"),r.setAttribute("width",e),r.setAttribute("height",t),r},e.insertElement=function(t,e,r){var n;e=e||document,n=r?e.getElementsByTagName(r):e.getElementsByTagName("head");try{(n=n.length?n:e.getElementsByTagName("body")).length&&(n=n[0]).insertBefore(t,n.firstChild)}catch(t){}}},function(t,e,r){var n;n=function(){return a={},r.m=n=[function(t,e,r){"use strict";var n,a=r(1),o=(n=a)&&n.__esModule?n:{default:n};t.exports=o.default},function(t,e,r){"use strict";e.__esModule=!0;var s=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t};e.default=h;var n,a=r(2),c=(n=a)&&n.__esModule?n:{default:n},o=function(t){{if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}}(r(4));function u(){}var i={afterAsync:u,afterDequeue:u,afterStreamStart:u,afterWrite:u,autoFix:!0,beforeEnqueue:u,beforeWriteToken:function(t){return t},beforeWrite:function(t){return t},done:u,error:function(t){throw new Error(t.msg)},releaseAsync:!1},l=0,p=[],d=null;function f(){var t=p.shift();if(t){var e=o.last(t);e.afterDequeue(),t.stream=function(t,e,n){(d=new c.default(t,n)).id=l++,d.name=n.name||d.id,h.streams[d.name]=d;var r=t.ownerDocument,a={close:r.close,open:r.open,write:r.write,writeln:r.writeln};function o(t){t=n.beforeWrite(t),d.write(t),n.afterWrite(t)}s(r,{close:u,open:u,write:function(){for(var t=arguments.length,e=Array(t),r=0;r<t;r++)e[r]=arguments[r];return o(e.join(""))},writeln:function(){for(var t=arguments.length,e=Array(t),r=0;r<t;r++)e[r]=arguments[r];return o(e.join("")+"\n")}});var i=d.win.onerror||u;return d.win.onerror=function(t,e,r){n.error({msg:t+" - "+e+": "+r}),i.apply(d.win,[t,e,r])},d.write(e,function(){s(r,a),d.win.onerror=i,n.done(),d=null,f()}),d}.apply(void 0,t),e.afterStreamStart()}}function h(t,e,r){if(o.isFunction(r))r={done:r};else if("clear"===r)return p=[],d=null,void(l=0);r=o.defaults(r,i);var n=[t=/^#/.test(t)?window.document.getElementById(t.substr(1)):t.jquery?t[0]:t,e,r];return t.postscribe={cancel:function(){n.stream?n.stream.abort():n[1]=u}},r.beforeEnqueue(n),p.push(n),d||f(),t.postscribe}s(h,{streams:{},queue:p,WriteStream:c.default})},function(t,e,r){"use strict";e.__esModule=!0;var n,s=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},a=r(3),o=(n=a)&&n.__esModule?n:{default:n},i=function(t){{if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}}(r(4));var l="data-ps-",p="ps-style",d="ps-script";function c(t,e){var r=l+e,n=t.getAttribute(r);return i.existy(n)?String(n):n}function u(t,e,r){var n=2<arguments.length&&void 0!==r?r:null,a=l+e;i.existy(n)&&""!==n?t.setAttribute(a,n):t.removeAttribute(a)}var f=(h.prototype.write=function(){var t;for((t=this.writeQueue).push.apply(t,arguments);!this.deferredRemote&&this.writeQueue.length;){var e=this.writeQueue.shift();i.isFunction(e)?this._callFunction(e):this._writeImpl(e)}},h.prototype._callFunction=function(t){var e={type:"function",value:t.name||t.toString()};this._onScriptStart(e),t.call(this.win,this.doc),this._onScriptDone(e)},h.prototype._writeImpl=function(t){this.parser.append(t);for(var e=void 0,r=void 0,n=void 0,a=[];(e=this.parser.readToken())&&!(r=i.isScript(e))&&!(n=i.isStyle(e));)(e=this.options.beforeWriteToken(e))&&a.push(e);0<a.length&&this._writeStaticTokens(a),r&&this._handleScriptToken(e),n&&this._handleStyleToken(e)},h.prototype._writeStaticTokens=function(t){var e=this._buildChunk(t);return e.actual?(e.html=this.proxyHistory+e.actual,this.proxyHistory+=e.proxy,this.proxyRoot.innerHTML=e.html,this._walkChunk(),e):null},h.prototype._buildChunk=function(t){for(var e=this.actuals.length,r=[],n=[],a=[],o=t.length,i=0;i<o;i++){var s=t[i],c=s.toString();if(r.push(c),s.attrs){if(!/^noscript$/i.test(s.tagName)){var u=e++;n.push(c.replace(/(\/?>)/," "+l+"id="+u+" $1")),s.attrs.id!==d&&s.attrs.id!==p&&a.push("atomicTag"===s.type?"":"<"+s.tagName+" "+l+"proxyof="+u+(s.unary?" />":">"))}}else n.push(c),a.push("endTag"===s.type?c:"")}return{tokens:t,raw:r.join(""),actual:n.join(""),proxy:a.join("")}},h.prototype._walkChunk=function(){for(var t=void 0,e=[this.proxyRoot];i.existy(t=e.shift());){var r=1===t.nodeType;if(!r||!c(t,"proxyof")){r&&u(this.actuals[c(t,"id")]=t,"id");var n=t.parentNode&&c(t.parentNode,"proxyof");n&&this.actuals[n].appendChild(t)}e.unshift.apply(e,i.toArray(t.childNodes))}},h.prototype._handleScriptToken=function(t){var e=this,r=this.parser.clear();r&&this.writeQueue.unshift(r),t.src=t.attrs.src||t.attrs.SRC,(t=this.options.beforeWriteToken(t))&&(t.src&&this.scriptStack.length?this.deferredRemote=t:this._onScriptStart(t),this._writeScriptToken(t,function(){e._onScriptDone(t)}))},h.prototype._handleStyleToken=function(t){var e=this.parser.clear();e&&this.writeQueue.unshift(e),t.type=t.attrs.type||t.attrs.TYPE||"text/css",(t=this.options.beforeWriteToken(t))&&this._writeStyleToken(t),e&&this.write()},h.prototype._writeStyleToken=function(t){var e=this._buildStyle(t);this._insertCursor(e,p),t.content&&(e.styleSheet&&!e.sheet?e.styleSheet.cssText=t.content:e.appendChild(this.doc.createTextNode(t.content)))},h.prototype._buildStyle=function(t){var r=this.doc.createElement(t.tagName);return r.setAttribute("type",t.type),i.eachKey(t.attrs,function(t,e){r.setAttribute(t,e)}),r},h.prototype._insertCursor=function(t,e){this._writeImpl('<span id="'+e+'"/>');var r=this.doc.getElementById(e);r&&r.parentNode.replaceChild(t,r)},h.prototype._onScriptStart=function(t){t.outerWrites=this.writeQueue,this.writeQueue=[],this.scriptStack.unshift(t)},h.prototype._onScriptDone=function(t){t===this.scriptStack[0]?(this.scriptStack.shift(),this.write.apply(this,t.outerWrites),!this.scriptStack.length&&this.deferredRemote&&(this._onScriptStart(this.deferredRemote),this.deferredRemote=null)):this.options.error({msg:"Bad script nesting or script finished twice"})},h.prototype._writeScriptToken=function(t,e){var r=this._buildScript(t),n=this._shouldRelease(r),a=this.options.afterAsync;t.src&&(r.src=t.src,this._scriptLoadHandler(r,n?a:function(){e(),a()}));try{this._insertCursor(r,d),r.src&&!n||e()}catch(t){this.options.error(t),e()}},h.prototype._buildScript=function(t){var r=this.doc.createElement(t.tagName);return i.eachKey(t.attrs,function(t,e){r.setAttribute(t,e)}),t.content&&(r.text=t.content),r},h.prototype._scriptLoadHandler=function(e,r){function n(){e=e.onload=e.onreadystatechange=e.onerror=null}var a=this.options.error;function t(){n(),null!=r&&r(),r=null}function o(t){n(),a(t),null!=r&&r(),r=null}function i(t,e){var r=t["on"+e];null!=r&&(t["_on"+e]=r)}i(e,"load"),i(e,"error"),s(e,{onload:function(){if(e._onload)try{e._onload.apply(this,Array.prototype.slice.call(arguments,0))}catch(t){o({msg:"onload handler failed "+t+" @ "+e.src})}t()},onerror:function(){if(e._onerror)try{e._onerror.apply(this,Array.prototype.slice.call(arguments,0))}catch(t){return void o({msg:"onerror handler failed "+t+" @ "+e.src})}o({msg:"remote script failed "+e.src})},onreadystatechange:function(){/^(loaded|complete)$/.test(e.readyState)&&t()}})},h.prototype._shouldRelease=function(t){return!/^script$/i.test(t.nodeName)||!!(this.options.releaseAsync&&t.src&&t.hasAttribute("async"))},h);function h(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,h),this.root=t,this.options=e,this.doc=t.ownerDocument,this.win=this.doc.defaultView||this.doc.parentWindow,this.parser=new o.default("",{autoFix:e.autoFix}),this.actuals=[t],this.proxyHistory="",this.proxyRoot=this.doc.createElement(t.nodeName),this.scriptStack=[],this.writeQueue=[],u(this.proxyRoot,"proxyof",0)}e.default=f},function(t,e,r){var n;n=function(){return a={},r.m=n=[function(t,e,r){"use strict";var n,a=r(1),o=(n=a)&&n.__esModule?n:{default:n};t.exports=o.default},function(t,e,r){"use strict";e.__esModule=!0;var n,i=u(r(2)),a=u(r(3)),o=r(6),s=(n=o)&&n.__esModule?n:{default:n},c=r(5);function u(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}var l={comment:/^<!--/,endTag:/^<\//,atomicTag:/^<\s*(script|style|noscript|iframe|textarea)[\s\/>]/i,startTag:/^</,chars:/^[^<]/},p=(d.prototype.append=function(t){this.stream+=t},d.prototype.prepend=function(t){this.stream=t+this.stream},d.prototype._readTokenImpl=function(){var t=this._peekTokenImpl();if(t)return this.stream=this.stream.slice(t.length),t},d.prototype._peekTokenImpl=function(){for(var t in l)if(l.hasOwnProperty(t)&&l[t].test(this.stream)){var e=a[t](this.stream);if(e)return"startTag"===e.type&&/script|style/i.test(e.tagName)?null:(e.text=this.stream.substr(0,e.length),e)}},d.prototype.peekToken=function(){return this._peekToken()},d.prototype.readToken=function(){return this._readToken()},d.prototype.readTokens=function(t){for(var e=void 0;e=this.readToken();)if(t[e.type]&&!1===t[e.type](e))return},d.prototype.clear=function(){var t=this.stream;return this.stream="",t},d.prototype.rest=function(){return this.stream},d);function d(){var t=this,e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"",r=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,d),this.stream=e;var n=!1,a={};for(var o in i)i.hasOwnProperty(o)&&(r.autoFix&&(a[o+"Fix"]=!0),n=n||a[o+"Fix"]);n?(this._readToken=(0,s.default)(this,a,function(){return t._readTokenImpl()}),this._peekToken=(0,s.default)(this,a,function(){return t._peekTokenImpl()})):(this._readToken=this._readTokenImpl,this._peekToken=this._peekTokenImpl)}for(var f in(e.default=p).tokenToString=function(t){return t.toString()},p.escapeAttributes=function(t){var e={};for(var r in t)t.hasOwnProperty(r)&&(e[r]=(0,c.escapeQuotes)(t[r],null));return e},p.supports=i)i.hasOwnProperty(f)&&(p.browserHasFlaw=p.browserHasFlaw||!i[f]&&f)},function(t,e){"use strict";var r=!(e.__esModule=!0),n=!1,a=window.document.createElement("div");try{var o="<P><I></P></I>";a.innerHTML=o,e.tagSoup=r=a.innerHTML!==o}catch(t){e.tagSoup=r=!1}try{a.innerHTML="<P><i><P></P></i></P>",e.selfClose=n=2===a.childNodes.length}catch(t){e.selfClose=n=!1}a=null,e.tagSoup=r,e.selfClose=n},function(t,e,r){"use strict";e.__esModule=!0;var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};e.comment=function(t){var e=t.indexOf("--\x3e");if(0<=e)return new s.CommentToken(t.substr(4,e-1),e+3)},e.chars=function(t){var e=t.indexOf("<");return new s.CharsToken(0<=e?e:t.length)},e.startTag=a,e.atomicTag=function(t){var e=a(t);if(e){var r=t.slice(e.length);if(r.match(new RegExp("</\\s*"+e.tagName+"\\s*>","i"))){var n=r.match(new RegExp("([\\s\\S]*?)</\\s*"+e.tagName+"\\s*>","i"));if(n)return new s.AtomicTagToken(e.tagName,n[0].length+e.length,e.attrs,e.booleanAttrs,n[1])}}},e.endTag=function(t){var e=t.match(c.endTag);if(e)return new s.EndTagToken(e[1],e[0].length)};var s=r(4),c={startTag:/^<([\-A-Za-z0-9_]+)((?:\s+[\w\-]+(?:\s*=?\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/,endTag:/^<\/([\-A-Za-z0-9_]+)[^>]*>/,attr:/(?:([\-A-Za-z0-9_]+)\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))|(?:([\-A-Za-z0-9_]+)(\s|$)+)/g,fillAttr:/^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noresize|noshade|nowrap|readonly|selected)$/i};function a(t){var r,n,a;if(-1!==t.indexOf(">")){var e=t.match(c.startTag);if(e){var o=(r={},n={},a=e[2],e[2].replace(c.attr,function(t,e){arguments[2]||arguments[3]||arguments[4]||arguments[5]?arguments[5]?(r[arguments[5]]="",n[arguments[5]]=!0):r[e]=arguments[2]||arguments[3]||arguments[4]||c.fillAttr.test(e)&&e||"":r[e]="",a=a.replace(t,"")}),{v:new s.StartTagToken(e[1],e[0].length,r,n,!!e[3],a.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""))});if("object"===(void 0===o?"undefined":i(o)))return o.v}}}},function(t,e,r){"use strict";e.__esModule=!0,e.EndTagToken=e.AtomicTagToken=e.StartTagToken=e.TagToken=e.CharsToken=e.CommentToken=e.Token=void 0;var i=r(5);function s(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}e.Token=function t(e,r){s(this,t),this.type=e,this.length=r,this.text=""},e.CommentToken=(n.prototype.toString=function(){return"\x3c!--"+this.content},n);function n(t,e){s(this,n),this.type="comment",this.length=e||(t?t.length:0),this.text="",this.content=t}e.CharsToken=(a.prototype.toString=function(){return this.text},a);function a(t){s(this,a),this.type="chars",this.length=t,this.text=""}var o=e.TagToken=(c.formatTag=function(t,e){var r=1<arguments.length&&void 0!==e?e:null,n="<"+t.tagName;for(var a in t.attrs)if(t.attrs.hasOwnProperty(a)){n+=" "+a;var o=t.attrs[a];void 0!==t.booleanAttrs&&void 0!==t.booleanAttrs[a]||(n+='="'+(0,i.escapeQuotes)(o)+'"')}return t.rest&&(n+=" "+t.rest),t.unary&&!t.html5Unary?n+="/>":n+=">",null!=r&&(n+=r+"</"+t.tagName+">"),n},c);function c(t,e,r,n,a){s(this,c),this.type=t,this.length=r,this.text="",this.tagName=e,this.attrs=n,this.booleanAttrs=a,this.unary=!1,this.html5Unary=!1}e.StartTagToken=(u.prototype.toString=function(){return o.formatTag(this)},u);function u(t,e,r,n,a,o){s(this,u),this.type="startTag",this.length=e,this.text="",this.tagName=t,this.attrs=r,this.booleanAttrs=n,this.html5Unary=!1,this.unary=a,this.rest=o}e.AtomicTagToken=(l.prototype.toString=function(){return o.formatTag(this,this.content)},l);function l(t,e,r,n,a){s(this,l),this.type="atomicTag",this.length=e,this.text="",this.tagName=t,this.attrs=r,this.booleanAttrs=n,this.unary=!1,this.html5Unary=!1,this.content=a}e.EndTagToken=(p.prototype.toString=function(){return"</"+this.tagName+">"},p);function p(t,e){s(this,p),this.type="endTag",this.length=e,this.text="",this.tagName=t}},function(t,e){"use strict";e.__esModule=!0,e.escapeQuotes=function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"";return t?t.replace(/([^"]*)"/g,function(t,e){return/\\/.test(e)?e+'"':e+'\\"'}):e}},function(t,e){"use strict";e.__esModule=!0,e.default=function(r,n,e){var a=function(){var t=[];return t.last=function(){return this[this.length-1]},t.lastTagNameEq=function(t){var e=this.last();return e&&e.tagName&&e.tagName.toUpperCase()===t.toUpperCase()},t.containsTagName=function(t){for(var e,r=0;e=this[r];r++)if(e.tagName===t)return!0;return!1},t}(),o={startTag:function(t){var e=t.tagName;"TR"===e.toUpperCase()&&a.lastTagNameEq("TABLE")?(r.prepend("<TBODY>"),i()):n.selfCloseFix&&s.test(e)&&a.containsTagName(e)?a.lastTagNameEq(e)?u(r,a):(r.prepend("</"+t.tagName+">"),i()):t.unary||a.push(t)},endTag:function(t){a.last()?n.tagSoupFix&&!a.lastTagNameEq(t.tagName)?u(r,a):a.pop():n.tagSoupFix&&(e(),i())}};function i(){var t=function(t,e){var r=t.stream,n=c(e());return t.stream=r,n}(r,e);t&&o[t.type]&&o[t.type](t)}return function(){return i(),c(e())}};var r=/^(AREA|BASE|BASEFONT|BR|COL|FRAME|HR|IMG|INPUT|ISINDEX|LINK|META|PARAM|EMBED)$/i,s=/^(COLGROUP|DD|DT|LI|OPTIONS|P|TD|TFOOT|TH|THEAD|TR)$/i;function c(t){return t&&"startTag"===t.type&&(t.unary=r.test(t.tagName)||t.unary,t.html5Unary=!/\/>$/.test(t.text)),t}function u(t,e){var r=e.pop();t.prepend("</"+r.tagName+">")}}],r.c=a,r.p="",r(0);function r(t){if(a[t])return a[t].exports;var e=a[t]={exports:{},id:t,loaded:!1};return n[t].call(e.exports,e,e.exports,r),e.loaded=!0,e.exports}var n,a},t.exports=n()},function(t,e){"use strict";e.__esModule=!0;var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};function a(t){return null!=t}function o(t,e,r){var n=void 0,a=t&&t.length||0;for(n=0;n<a;n++)e.call(r,t[n],n)}function i(t,e,r){for(var n in t)t.hasOwnProperty(n)&&e.call(r,n,t[n])}function r(t,e){return!(!t||"startTag"!==t.type&&"atomicTag"!==t.type||!("tagName"in t))&&!!~t.tagName.toLowerCase().indexOf(e)}e.existy=a,e.isFunction=function(t){return"function"==typeof t},e.each=o,e.eachKey=i,e.defaults=function(r,t){return r=r||{},i(t,function(t,e){a(r[t])||(r[t]=e)}),r},e.toArray=function(r){try{return Array.prototype.slice.call(r)}catch(t){var e=function(){var e=[];return o(r,function(t){e.push(t)}),{v:e}}();if("object"===(void 0===e?"undefined":n(e)))return e.v}},e.last=function(t){return t[t.length-1]},e.isTag=r,e.isScript=function(t){return r(t,"script")},e.isStyle=function(t){return r(t,"style")}}],r.c=a,r.p="",r(0);function r(t){if(a[t])return a[t].exports;var e=a[t]={exports:{},id:t,loaded:!1};return n[t].call(e.exports,e,e.exports,r),e.loaded=!0,e.exports}var n,a},t.exports=n()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.newNativeAssetManager=function(c){var u,l=0;function o(t){var e;try{e=JSON.parse(t)}catch(t){console.log("Error parsing response from cache host: ".concat(t))}return e}function r(t){var e=t.uuid,r="".concat(function(t,e){var r=void 0===e||""===e?v:e;return"https://".concat(void 0===t||""===t?n:t).concat(r)}(t.cacheHost,t.cachePath),"?uuid=").concat(e);(0,h.sendRequest)(r,function(t){var e=o(t);if(e&&e.adm){var r=o(e.adm);if(r&&r.assets){var n=function(t){var e,r=[];return t.assets.forEach(function(t){t.img?i.image[t.img.type]?r.push({key:i.image[t.img.type],value:t.img.url}):console.log("ERROR: Invalid image type for image asset"):t.data?i.data[t.data.type]?r.push({key:i.data[t.data.type],value:t.data.value}):console.log("ERROR: Invalid data type for data asset"):t.title&&r.push({key:"title",value:t.title.text})}),t.link&&(t.link.clicktrackers&&(e=t.link.clicktrackers),r.push({key:"clickUrl",value:t.link.url})),{assets:r,clicktrackers:e,imptrackers:t.imptrackers}}(r),a=f(c.document.body.innerHTML,n);c.document.body.innerHTML=a,u&&u({clickTrackers:n.clicktrackers,impTrackers:n.imptrackers})}}})}function a(n){var a=[],o=c.document,i=void 0!==c.pbNativeData;return Object.keys(s).forEach(function(t){var e=s[t],r=n&&!i?"".concat(e,":").concat(n):"".concat(e);~(~o.body.innerHTML.indexOf(r)?o.body.innerHTML.indexOf(r):o.head.innerHTML&&o.head.innerHTML.indexOf(r))&&a.push(e)}),a}function p(t,e){var r={message:"Prebid Native",action:"resizeNativeHeight",adId:t,height:e};c.parent.postMessage(JSON.stringify(r),"*")}function d(t){var e={};try{e=JSON.parse(t.data)}catch(t){return void(10<l++&&c.removeEventListener("message",d))}if("assetResponse"===e.message){var r=c.document.body.innerHTML,n=c.document.head.innerHTML,a=void 0!==c.pbNativeData;if(a&&e.adId!==c.pbNativeData.adId)return;if(n&&(c.document.head.innerHTML=f(n,e)),e.hasOwnProperty("rendererUrl")&&e.rendererUrl||a&&c.pbNativeData.hasOwnProperty("rendererUrl"))if(c.renderAd){var o=c.renderAd&&c.renderAd(e.assets)||"";c.document.body.innerHTML=r+o,u&&u(),c.removeEventListener("message",d),p(e.adId,document.body.clientHeight||document.body.offsetHeight)}else document.getElementById("pb-native-renderer")?document.getElementById("pb-native-renderer").addEventListener("load",function(){var t=c.renderAd&&c.renderAd(e.assets)||"";c.document.body.innerHTML=r+t,u&&u(),c.removeEventListener("message",d),p(e.adId,document.body.clientHeight||document.body.offsetHeight)}):(0,h.loadScript)(c,a&&c.pbNativeData.hasOwnProperty("rendererUrl")&&c.pbNativeData.rendererUrl||e.rendererUrl,function(){var t=c.renderAd&&c.renderAd(e.assets)||"";c.document.body.innerHTML=r+t,u&&u(),c.removeEventListener("message",d),p(e.adId,document.body.clientHeight||document.body.offsetHeight)});else if(e.hasOwnProperty("adTemplate")&&e.adTemplate||a&&c.pbNativeData.hasOwnProperty("adTemplate")){var i=f(a&&c.pbNativeData.hasOwnProperty("adTemplate")&&c.pbNativeData.adTemplate||e.adTemplate,e);c.document.body.innerHTML=r+i,u&&u(),c.removeEventListener("message",d),p(e.adId,document.body.clientHeight||document.body.offsetHeight)}else{var s=f(r,e);c.document.body.innerHTML=s,u&&u(),c.removeEventListener("message",d)}}}function f(t,e){var r=e.assets,a=e.adId,o=t;return(r||[]).forEach(function(t){var e=void 0!==c.pbNativeData,r=a&&!e?"".concat(s[t.key],":").concat(a):e?"##"+"".concat(s[t.key])+"##":"".concat(s[t.key]),n=new RegExp(r,"g");o=o.replace(n,t.value)}),o}return{loadAssets:function(t,e){var r=a(t),n=void 0!==c.pbNativeData;n&&c.pbNativeData.hasOwnProperty("assetsToReplace")&&c.pbNativeData.assetsToReplace.forEach(function(t){var e=t.match(/hb_native_/i)?t:s[t];e&&r.push(e)}),n&&c.pbNativeData.hasOwnProperty("requestAllAssets")&&c.pbNativeData.requestAllAssets?(u=e,function(t){c.addEventListener("message",d,!1);var e={message:"Prebid Native",action:"allAssetRequest",adId:t};c.parent.postMessage(JSON.stringify(e),"*")}(t)):0<r.length&&(u=e,function(t,e){c.addEventListener("message",d,!1);var r={message:"Prebid Native",action:"assetRequest",adId:t,assets:e};c.parent.postMessage(JSON.stringify(r),"*")}(t,r))},loadMobileAssets:function(t,e){0<a().length&&(u=e,r(t))}}};var h=r(0),s={title:"hb_native_title",body:"hb_native_body",body2:"hb_native_body2",privacyLink:"hb_native_privacy",sponsoredBy:"hb_native_brand",image:"hb_native_image",icon:"hb_native_icon",clickUrl:"hb_native_linkurl",displayUrl:"hb_native_displayurl",cta:"hb_native_cta",rating:"hb_native_rating",address:"hb_native_address",downloads:"hb_native_downloads",likes:"hb_native_likes",phone:"hb_native_phone",price:"hb_native_price",salePrice:"hb_native_saleprice",rendererUrl:"hb_renderer_url"},i={image:{1:"icon",3:"image"},data:{1:"sponsoredBy",2:"body",3:"rating",4:"likes",5:"downloads",6:"price",7:"salePrice",8:"phone",9:"address",10:"body2",11:"displayUrl",12:"cta"}},n="prebid.adnxs.com",v="/pbc/v1/cache"}]);
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<VAST version="2.0">
|
3
|
+
<Ad id="PrebidMobileAppEvent">
|
4
|
+
<InLine>
|
5
|
+
<AdSystem version="1.0">Prebid org</AdSystem>
|
6
|
+
<AdTitle>PrebidAppEvent</AdTitle>
|
7
|
+
<Impression><![CDATA[https://test.url.com]]></Impression>
|
8
|
+
<Creatives>
|
9
|
+
<Creative>
|
10
|
+
<Linear>
|
11
|
+
<Duration>00:00:02</Duration>
|
12
|
+
<MediaFiles>
|
13
|
+
<MediaFile delivery="progressive" height="540" id="539733616" type="video/mp4" width="960">
|
14
|
+
<![CDATA[https://test.url.com/gam_rewarded.mp4]]>
|
15
|
+
</MediaFile>
|
16
|
+
</MediaFiles>
|
17
|
+
</Linear>
|
18
|
+
</Creative>
|
19
|
+
</Creatives>
|
20
|
+
</InLine>
|
21
|
+
</Ad>
|
22
|
+
</VAST>
|
package/dist/uid.js
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
/* v1.
|
2
|
-
Updated : 2021-
|
1
|
+
/* v1.13.0
|
2
|
+
Updated : 2021-12-09 */
|
3
3
|
!function(r){var n={};function o(t){if(n[t])return n[t].exports;var e=n[t]={i:t,l:!1,exports:{}};return r[t].call(e.exports,e,e.exports,o),e.l=!0,e.exports}o.m=r,o.c=n,o.d=function(t,e,r){o.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,"a",e),e},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o.p="",o(o.s=0)}([function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getBuyerUids=s,e.loadData=c;var n=function(t){if(t&&t.__esModule)return t;var e=u();if(e&&e.has(t))return e.get(t);var r={};if(null!=t){var n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in t)if(Object.prototype.hasOwnProperty.call(t,o)){var a=n?Object.getOwnPropertyDescriptor(t,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=t[o]}}r.default=t,e&&e.set(t,r);return r}(r(1));function u(){if("function"!=typeof WeakMap)return null;var t=new WeakMap;return u=function(){return t},t}window.pbs=window.pbs||{},window.pbs.getBuyerUids=s;var o="https://prebid.adnxs.com/pbs/v1/getuids",a="ssp-buyeruids",i=14;function s(e){var t=n.getDataFromLocalStorage(a);if(l(t))c(e);else{try{t=JSON.parse(t)}catch(t){return void e(t,null)}delete t.lastUpdated,e(null,t)}}function c(e){l(n.getDataFromLocalStorage(a))&&n.ajax(o,function(t){try{(t=JSON.parse(t)).lastUpdated=n.timestamp(),n.setDataInLocalStorage(a,JSON.stringify(t)),delete t.lastUpdated,e(null,t)}catch(t){e(t,null)}},null,{withCredentials:!0})}function l(t){return!t||n.timestamp()>t.lastUpdated+24*i*60*60*1e3}c(function(){})},function(t,e,r){"use strict";function s(){return(s=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t}).apply(this,arguments)}function c(t){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function n(){try{return!!window.localStorage}catch(t){console.log("Local storage api disabled")}}Object.defineProperty(e,"__esModule",{value:!0}),e.setDataInLocalStorage=function(t,e){n()&&window.localStorage.setItem(t,e)},e.getDataFromLocalStorage=function(t){if(n())return window.localStorage.getItem(t)},e.hasLocalStorage=n,e.timestamp=function(){return(new Date).getTime()},e.ajax=function(t,e,r){var n=3<arguments.length&&void 0!==arguments[3]?arguments[3]:{};try{var o,a=n.method||(r?"POST":"GET"),u="object"===c(e)?e:{success:function(){console.log("xhr success")},error:function(t){console.log("xhr error",null,t)}};if("function"==typeof e&&(u.success=e),(o=new window.XMLHttpRequest).onreadystatechange=function(){if(4===o.readyState){var t=o.status;200<=t&&t<300||304===t?u.success(o.responseText,o):u.error(o.statusText,o)}},o.ontimeout=function(){console.log("xhr timeout after ",o.timeout,"ms")},"GET"===a&&r){var i=parseURL(t,n);s(i.search,r),t=formatURL(i)}o.open(a,t),o.timeout=3e3,n.withCredentials&&(o.withCredentials=!0),n.preflight&&o.setRequestHeader("X-Requested-With","XMLHttpRequest"),o.setRequestHeader("Content-Type",n.contentType||"text/plain"),"POST"===a&&r?o.send(r):o.send()}catch(t){console.log("xhr construction",t)}}}]);
|
package/gulpfile.js
CHANGED
@@ -155,6 +155,11 @@ function buildUid() {
|
|
155
155
|
.pipe(gulp.dest('dist'));
|
156
156
|
}
|
157
157
|
|
158
|
+
function includeStaticVastXmlFile() {
|
159
|
+
let target = gulp.src('static/prebid-mobile-rewarded-vast.xml');
|
160
|
+
return target.pipe(gulp.dest('dist'));
|
161
|
+
}
|
162
|
+
|
158
163
|
// Run the unit tests.
|
159
164
|
//
|
160
165
|
// By default, this runs in headless chrome.
|
@@ -200,7 +205,7 @@ function setupE2E(done) {
|
|
200
205
|
|
201
206
|
gulp.task('test', gulp.series(clean, test));
|
202
207
|
|
203
|
-
gulp.task('e2e-test', gulp.series(clean, setupE2E, gulp.parallel(buildDev, buildCookieSync, buildCookieSyncWithConsent, buildNativeDev, buildNativeRenderDev, buildUidDev, watch), test));
|
208
|
+
gulp.task('e2e-test', gulp.series(clean, setupE2E, gulp.parallel(buildDev, buildCookieSync, buildCookieSyncWithConsent, buildNativeDev, buildNativeRenderDev, buildUidDev, includeStaticVastXmlFile, watch), test));
|
204
209
|
|
205
210
|
function watch(done) {
|
206
211
|
const mainWatcher = gulp.watch([
|
@@ -215,7 +220,7 @@ function watch(done) {
|
|
215
220
|
root: './'
|
216
221
|
});
|
217
222
|
|
218
|
-
mainWatcher.on('all', gulp.series(clean, gulp.parallel(buildDev, buildNativeDev, buildNativeRenderDev, buildCookieSync, buildCookieSyncWithConsent, buildUidDev), test));
|
223
|
+
mainWatcher.on('all', gulp.series(clean, gulp.parallel(buildDev, buildNativeDev, buildNativeRenderDev, buildCookieSync, buildCookieSyncWithConsent, buildUidDev, includeStaticVastXmlFile), test));
|
219
224
|
done();
|
220
225
|
}
|
221
226
|
|
@@ -223,9 +228,9 @@ function openWebPage() {
|
|
223
228
|
return opens(`${(argv.https) ? 'https' : 'http'}://localhost:${port}`);
|
224
229
|
}
|
225
230
|
|
226
|
-
gulp.task('serve', gulp.series(clean, gulp.parallel(buildDev, buildNativeDev, buildNativeRenderDev, buildCookieSync, buildCookieSyncWithConsent, buildUidDev, watch, test), openWebPage));
|
231
|
+
gulp.task('serve', gulp.series(clean, gulp.parallel(buildDev, buildNativeDev, buildNativeRenderDev, buildCookieSync, buildCookieSyncWithConsent, buildUidDev, includeStaticVastXmlFile, watch, test), openWebPage));
|
227
232
|
|
228
|
-
gulp.task('build', gulp.parallel(buildProd, buildCookieSync, buildCookieSyncWithConsent, buildNative, buildNativeRender, buildUid));
|
233
|
+
gulp.task('build', gulp.parallel(buildProd, buildCookieSync, buildCookieSyncWithConsent, buildNative, buildNativeRender, buildUid, includeStaticVastXmlFile));
|
229
234
|
|
230
235
|
gulp.task('test-coverage', (done) => {
|
231
236
|
new KarmaServer(karmaConfMaker(true, false, false), newKarmaCallback(done)).start();
|
package/package.json
CHANGED
package/src/cookieSync.js
CHANGED
@@ -17,17 +17,22 @@ const VALID_ENDPOINTS = {
|
|
17
17
|
const ENDPOINT = sanitizeEndpoint(parseQueryParam('endpoint', window.location.search));
|
18
18
|
const ENDPOINT_ARGS = sanitizeEndpointArgs(parseQueryParam('args', window.location.search));
|
19
19
|
const BIDDER_ARGS = sanitizeBidders(parseQueryParam('bidders', window.location.search));
|
20
|
+
const IS_AMP = sanitizeSource(parseQueryParam('source', window.location.search));
|
20
21
|
const maxSyncCountParam = parseQueryParam('max_sync_count', window.location.search);
|
21
22
|
const MAX_SYNC_COUNT = sanitizeSyncCount(parseInt((maxSyncCountParam) ? maxSyncCountParam : 10, 10));
|
22
23
|
const GDPR = sanitizeGdpr(parseInt(parseQueryParam('gdpr', window.location.search), 10));
|
23
24
|
const GDPR_CONSENT = sanitizeGdprConsent(parseQueryParam('gdpr_consent', window.location.search));
|
25
|
+
|
24
26
|
/**
|
25
27
|
* checks to make sure URL is valid. Regex from https://validatejs.org/#validators-url, https://gist.github.com/dperini/729294
|
26
28
|
*/
|
27
|
-
|
29
|
+
function isValidUrl(url) {
|
30
|
+
let regex = new RegExp(/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?))(?::\d{2,5})?(?:[/?#]\S*)?$/i);
|
31
|
+
return regex.test(url);
|
32
|
+
}
|
28
33
|
|
29
34
|
function doBidderSync(type, url, bidder, done) {
|
30
|
-
if (!url || !isValidUrl
|
35
|
+
if (!url || !isValidUrl(url)) {
|
31
36
|
console.log(`No valid sync url for bidder "${bidder}": ${url}`);
|
32
37
|
done();
|
33
38
|
} else if (type === 'image' || type === 'redirect') {
|
@@ -165,7 +170,11 @@ function parseQueryParam(name, urlSearch) {
|
|
165
170
|
* Otherwise it will return a default value
|
166
171
|
*/
|
167
172
|
function sanitizeEndpoint(value) {
|
168
|
-
|
173
|
+
let defaultUrl = 'https://prebid.adnxs.com/pbs/v1/cookie_sync';
|
174
|
+
if (!value) return defaultUrl;
|
175
|
+
|
176
|
+
let url = VALID_ENDPOINTS[value] || decodeURIComponent(value) || '';
|
177
|
+
return (isValidUrl(url)) ? url : defaultUrl;
|
169
178
|
}
|
170
179
|
|
171
180
|
function sanitizeEndpointArgs(value) {
|
@@ -181,6 +190,15 @@ function sanitizeEndpointArgs(value) {
|
|
181
190
|
}
|
182
191
|
}
|
183
192
|
|
193
|
+
/**
|
194
|
+
* Function to return if source set to amp
|
195
|
+
* @param {string} query param defining name of source
|
196
|
+
* @return {Boolean} returns if source is equal to amp
|
197
|
+
*/
|
198
|
+
function sanitizeSource(value) {
|
199
|
+
return (value && value.toLowerCase() === 'amp');
|
200
|
+
}
|
201
|
+
|
184
202
|
/**
|
185
203
|
* If the value is a valid sync count (0 or a positive number), return it.
|
186
204
|
* Otherwise return a really big integer (equivalent to "no sync").
|
@@ -239,6 +257,12 @@ function getStringifiedData(endPointArgs) {
|
|
239
257
|
|
240
258
|
if(GDPR) data.gdpr = GDPR;
|
241
259
|
if(GDPR_CONSENT) data.gdpr_consent = GDPR_CONSENT;
|
260
|
+
if(IS_AMP) data.filterSettings = {
|
261
|
+
iframe: {
|
262
|
+
bidders: '*',
|
263
|
+
filter: 'exclude'
|
264
|
+
}
|
265
|
+
};
|
242
266
|
if(BIDDER_ARGS) data.bidders = BIDDER_ARGS;
|
243
267
|
|
244
268
|
return JSON.stringify(data);
|
@@ -16,6 +16,8 @@ const VALID_ENDPOINTS = {
|
|
16
16
|
};
|
17
17
|
const ENDPOINT = sanitizeEndpoint(parseQueryParam('endpoint', window.location.search));
|
18
18
|
const ENDPOINT_ARGS = sanitizeEndpointArgs(parseQueryParam('args', window.location.search));
|
19
|
+
const IS_AMP = sanitizeSource(parseQueryParam('source', window.location.search));
|
20
|
+
const BIDDER_ARGS = sanitizeBidders(parseQueryParam('bidders', window.location.search));
|
19
21
|
const maxSyncCountParam = parseQueryParam('max_sync_count', window.location.search);
|
20
22
|
const MAX_SYNC_COUNT = sanitizeSyncCount(parseInt((maxSyncCountParam) ? maxSyncCountParam : 10, 10));
|
21
23
|
const TIMEOUT = sanitizeTimeout(parseInt(parseQueryParam('timeout', window.location.search), 10));
|
@@ -23,14 +25,17 @@ const DEFAULT_GDPR_SCOPE = sanitizeScope(parseInt(parseQueryParam('defaultGdprSc
|
|
23
25
|
|
24
26
|
let consent = {};
|
25
27
|
let syncRan = false;
|
28
|
+
|
26
29
|
/**
|
27
30
|
* checks to make sure URL is valid. Regex from https://validatejs.org/#validators-url, https://gist.github.com/dperini/729294
|
28
31
|
*/
|
29
|
-
|
30
|
-
|
32
|
+
function isValidUrl(url) {
|
33
|
+
let regex = new RegExp(/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?))(?::\d{2,5})?(?:[/?#]\S*)?$/i);
|
34
|
+
return regex.test(url);
|
35
|
+
}
|
31
36
|
|
32
37
|
function doBidderSync(type, url, bidder, done) {
|
33
|
-
if (!url || !isValidUrl
|
38
|
+
if (!url || !isValidUrl(url)) {
|
34
39
|
console.log(`No valid sync url for bidder "${bidder}": ${url}`);
|
35
40
|
done();
|
36
41
|
} else if (type === 'image' || type === 'redirect') {
|
@@ -168,7 +173,11 @@ function parseQueryParam(name, urlSearch) {
|
|
168
173
|
* Otherwise it will return a default value
|
169
174
|
*/
|
170
175
|
function sanitizeEndpoint(value) {
|
171
|
-
|
176
|
+
let defaultUrl = 'https://prebid.adnxs.com/pbs/v1/cookie_sync';
|
177
|
+
if (!value) return defaultUrl;
|
178
|
+
|
179
|
+
let url = VALID_ENDPOINTS[value] || decodeURIComponent(value) || '';
|
180
|
+
return (isValidUrl(url)) ? url : defaultUrl;
|
172
181
|
}
|
173
182
|
|
174
183
|
function sanitizeEndpointArgs(value) {
|
@@ -184,6 +193,15 @@ function sanitizeEndpointArgs(value) {
|
|
184
193
|
}
|
185
194
|
}
|
186
195
|
|
196
|
+
/**
|
197
|
+
* Function to return if source set to amp
|
198
|
+
* @param {string} query param defining name of source
|
199
|
+
* @return {Boolean} returns if source is equal to amp
|
200
|
+
*/
|
201
|
+
function sanitizeSource(value) {
|
202
|
+
return (value && value.toLowerCase() === 'amp');
|
203
|
+
}
|
204
|
+
|
187
205
|
/**
|
188
206
|
* If the value is a valid sync count (0 or a positive number), return it.
|
189
207
|
* Otherwise return a really big integer (equivalent to "no sync").
|
@@ -195,6 +213,22 @@ function sanitizeSyncCount(value) {
|
|
195
213
|
return value;
|
196
214
|
}
|
197
215
|
|
216
|
+
/**
|
217
|
+
* If the value is a non empty string return it.
|
218
|
+
* Otherwise it will return undefined.
|
219
|
+
*/
|
220
|
+
function sanitizeBidders(value) {
|
221
|
+
if (value) {
|
222
|
+
var arr = value.split(',');
|
223
|
+
var filtered = arr.filter(function (el) {
|
224
|
+
return (el) ? true : false;
|
225
|
+
});
|
226
|
+
if(filtered.length > 0){
|
227
|
+
return filtered;
|
228
|
+
}
|
229
|
+
}
|
230
|
+
}
|
231
|
+
|
198
232
|
/**
|
199
233
|
* If the value is 0 or 1 return it.
|
200
234
|
* Otherwise it will return default 1.
|
@@ -240,6 +274,14 @@ function getStringifiedData(endPointArgs) {
|
|
240
274
|
var data = (endPointArgs && typeof endPointArgs === 'object') ? endPointArgs : {}
|
241
275
|
data['limit'] = MAX_SYNC_COUNT;
|
242
276
|
|
277
|
+
if(IS_AMP) data.filterSettings = {
|
278
|
+
iframe: {
|
279
|
+
bidders: '*',
|
280
|
+
filter: 'exclude'
|
281
|
+
}
|
282
|
+
};
|
283
|
+
if(BIDDER_ARGS) data.bidders = BIDDER_ARGS;
|
284
|
+
|
243
285
|
data = attachConsent(data);
|
244
286
|
|
245
287
|
return JSON.stringify(data);
|
package/src/renderingManager.js
CHANGED
@@ -191,6 +191,7 @@ export function newRenderingManager(win, environment) {
|
|
191
191
|
function responseCallback(isMobileApp, hbPb) {
|
192
192
|
return function(response) {
|
193
193
|
let bidObject = parseResponse(response);
|
194
|
+
let auctionPrice = bidObject.price || hbPb;
|
194
195
|
let ad = utils.getCreativeCommentMarkup(bidObject);
|
195
196
|
let width = (bidObject.width) ? bidObject.width : bidObject.w;
|
196
197
|
let height = (bidObject.height) ? bidObject.height : bidObject.h;
|
@@ -201,8 +202,8 @@ export function newRenderingManager(win, environment) {
|
|
201
202
|
}
|
202
203
|
|
203
204
|
if (bidObject.adm) {
|
204
|
-
if(
|
205
|
-
bidObject.adm = bidObject.adm.replace('${AUCTION_PRICE}',
|
205
|
+
if(auctionPrice) { // replace ${AUCTION_PRICE} macro with the bidObject.price or hb_pb.
|
206
|
+
bidObject.adm = bidObject.adm.replace('${AUCTION_PRICE}', auctionPrice);
|
206
207
|
} else {
|
207
208
|
/*
|
208
209
|
From OpenRTB spec 2.5: If the source value is an optional parameter that was not specified, the macro will simply be removed (i.e., replaced with a zero-length string).
|
@@ -213,6 +214,22 @@ export function newRenderingManager(win, environment) {
|
|
213
214
|
if (bidObject.nurl) {
|
214
215
|
ad += utils.createTrackPixelHtml(decodeURIComponent(bidObject.nurl));
|
215
216
|
}
|
217
|
+
if (bidObject.burl) {
|
218
|
+
let triggerBurl = function(){ utils.triggerPixel(bidObject.burl); };
|
219
|
+
if(isMobileApp) {
|
220
|
+
let mraidScript = utils.loadScript(win, 'mraid.js',
|
221
|
+
function() { // Success loading MRAID
|
222
|
+
let result = registerMRAIDViewableEvent(triggerBurl);
|
223
|
+
if (!result) {
|
224
|
+
triggerBurl(); // Error registering event
|
225
|
+
}
|
226
|
+
},
|
227
|
+
triggerBurl // Error loading MRAID
|
228
|
+
);
|
229
|
+
} else {
|
230
|
+
triggerBurl(); // Not a mobile app
|
231
|
+
}
|
232
|
+
}
|
216
233
|
utils.writeAdHtml(ad);
|
217
234
|
} else if (bidObject.nurl) {
|
218
235
|
if(isMobileApp) {
|
@@ -226,9 +243,6 @@ export function newRenderingManager(win, environment) {
|
|
226
243
|
utils.writeAdUrl(nurl, width, height);
|
227
244
|
}
|
228
245
|
}
|
229
|
-
if (bidObject.burl) {
|
230
|
-
utils.triggerBurl(bidObject.burl);
|
231
|
-
}
|
232
246
|
}
|
233
247
|
};
|
234
248
|
|
@@ -300,6 +314,51 @@ export function newRenderingManager(win, environment) {
|
|
300
314
|
}
|
301
315
|
}
|
302
316
|
|
317
|
+
function registerMRAIDViewableEvent(callback) {
|
318
|
+
|
319
|
+
function exposureChangeListener(exposure) {
|
320
|
+
if (exposure > 0) {
|
321
|
+
mraid.removeEventListener('exposureChange', exposureChangeListener);
|
322
|
+
callback();
|
323
|
+
}
|
324
|
+
}
|
325
|
+
|
326
|
+
function viewableChangeListener(viewable) {
|
327
|
+
if (viewable) {
|
328
|
+
mraid.removeEventListener('viewableChange', viewableChangeListener);
|
329
|
+
callback();
|
330
|
+
}
|
331
|
+
}
|
332
|
+
|
333
|
+
function registerViewableChecks() {
|
334
|
+
if (win.MRAID_ENV && parseFloat(win.MRAID_ENV.version) >= 3) {
|
335
|
+
mraid.addEventListener('exposureChange', exposureChangeListener);
|
336
|
+
} else if(win.MRAID_ENV && parseFloat(win.MRAID_ENV.version) < 3) {
|
337
|
+
if (mraid.isViewable()) {
|
338
|
+
callback();
|
339
|
+
} else {
|
340
|
+
mraid.addEventListener('viewableChange', viewableChangeListener);
|
341
|
+
}
|
342
|
+
}
|
343
|
+
}
|
344
|
+
|
345
|
+
function readyListener() {
|
346
|
+
mraid.removeEventListener('ready', readyListener);
|
347
|
+
registerViewableChecks();
|
348
|
+
}
|
349
|
+
|
350
|
+
if (win.mraid && win.MRAID_ENV) {
|
351
|
+
if (mraid.getState() == 'loading') {
|
352
|
+
mraid.addEventListener('ready', readyListener);
|
353
|
+
} else {
|
354
|
+
registerViewableChecks();
|
355
|
+
}
|
356
|
+
return true;
|
357
|
+
} else {
|
358
|
+
return false;
|
359
|
+
}
|
360
|
+
}
|
361
|
+
|
303
362
|
return {
|
304
363
|
renderAd
|
305
364
|
}
|
package/src/utils.js
CHANGED
@@ -32,7 +32,9 @@ export function writeAdUrl(adUrl, width, height) {
|
|
32
32
|
}
|
33
33
|
|
34
34
|
export function writeAdHtml(markup) {
|
35
|
-
postscribe(document.body, markup
|
35
|
+
postscribe(document.body, markup, {
|
36
|
+
error: console.error
|
37
|
+
});
|
36
38
|
}
|
37
39
|
|
38
40
|
export function sendRequest(url, callback) {
|
@@ -56,27 +58,34 @@ export function getUUID() {
|
|
56
58
|
return uuid;
|
57
59
|
};
|
58
60
|
|
59
|
-
export function loadScript(currentWindow, tagSrc,
|
61
|
+
export function loadScript(currentWindow, tagSrc, successCallback, errorCallback) {
|
60
62
|
let doc = currentWindow.document;
|
61
63
|
let scriptTag = doc.createElement('script');
|
62
64
|
scriptTag.type = 'text/javascript';
|
63
65
|
|
64
|
-
// Execute
|
65
|
-
if (
|
66
|
+
// Execute success callback if necessary
|
67
|
+
if (successCallback && typeof successCallback === 'function') {
|
66
68
|
if (scriptTag.readyState) {
|
67
69
|
scriptTag.onreadystatechange = function() {
|
68
70
|
if (scriptTag.readyState === 'loaded' || scriptTag.readyState === 'complete') {
|
69
71
|
scriptTag.onreadystatechange = null;
|
70
|
-
|
72
|
+
successCallback();
|
71
73
|
}
|
72
74
|
};
|
73
75
|
} else {
|
74
76
|
scriptTag.onload = function() {
|
75
|
-
|
77
|
+
successCallback();
|
76
78
|
};
|
77
79
|
}
|
78
80
|
}
|
79
81
|
|
82
|
+
// Execute error callback if necessary
|
83
|
+
if (errorCallback && typeof errorCallback === 'function') {
|
84
|
+
scriptTag.onerror = function() {
|
85
|
+
errorCallback();
|
86
|
+
};
|
87
|
+
}
|
88
|
+
|
80
89
|
scriptTag.src = tagSrc;
|
81
90
|
|
82
91
|
//add the new script tag to the page
|
@@ -92,7 +101,7 @@ export function loadScript(currentWindow, tagSrc, callback) {
|
|
92
101
|
|
93
102
|
/**
|
94
103
|
* Return comment element
|
95
|
-
* @param {*} bid
|
104
|
+
* @param {*} bid
|
96
105
|
*/
|
97
106
|
export function getCreativeComment(bid) {
|
98
107
|
return document.createComment(`Creative ${bid.crid} served by Prebid.js Header Bidding`);
|
@@ -100,7 +109,7 @@ export function getCreativeComment(bid) {
|
|
100
109
|
|
101
110
|
/**
|
102
111
|
* Returns comment element markup
|
103
|
-
* @param {*} bid
|
112
|
+
* @param {*} bid
|
104
113
|
*/
|
105
114
|
export function getCreativeCommentMarkup(bid) {
|
106
115
|
let creativeComment = exports.getCreativeComment(bid);
|
@@ -131,7 +140,7 @@ export function transformAuctionTargetingData(tagData) {
|
|
131
140
|
function isMacroPresent(paramName) {
|
132
141
|
return !!(
|
133
142
|
tagData[paramName] && (
|
134
|
-
(isPlainObject(tagData[paramName]) && Object.keys(tagData[paramName]).length > 0) ||
|
143
|
+
(isPlainObject(tagData[paramName]) && Object.keys(tagData[paramName]).length > 0) ||
|
135
144
|
(isStr(tagData[paramName]) && tagData[paramName] !== '')
|
136
145
|
)
|
137
146
|
);
|
@@ -162,7 +171,7 @@ export function transformAuctionTargetingData(tagData) {
|
|
162
171
|
function convertKeyPairStringToMap(keywordsStr) {
|
163
172
|
let keywordsMap = {};
|
164
173
|
const keywordsArr = keywordsStr.split(',');
|
165
|
-
|
174
|
+
|
166
175
|
if (keywordsArr.length > 0) {
|
167
176
|
keywordsArr.forEach(function(keyPairStr) {
|
168
177
|
let keyPairArr = keyPairStr.split(':');
|
@@ -175,7 +184,7 @@ export function transformAuctionTargetingData(tagData) {
|
|
175
184
|
}
|
176
185
|
return keywordsMap;
|
177
186
|
}
|
178
|
-
|
187
|
+
|
179
188
|
/**
|
180
189
|
* Rename key if it's part of the auctionKeyMap object; if not, leave key as is
|
181
190
|
* Store the resultant keypair in the auctionData object for later use in renderingManager.renderAd()
|
@@ -185,19 +194,19 @@ export function transformAuctionTargetingData(tagData) {
|
|
185
194
|
Object.keys(adServerKeyMap).forEach(function(key) {
|
186
195
|
let internalKey = auctionKeyMap[key] || key;
|
187
196
|
auctionData[internalKey] = adServerKeyMap[key];
|
188
|
-
});
|
197
|
+
});
|
189
198
|
}
|
190
199
|
|
191
200
|
let auctionData = {};
|
192
201
|
let formattedKeyMap = {};
|
193
|
-
|
202
|
+
|
194
203
|
if (isMacroPresent('targetingMap')) {
|
195
204
|
formattedKeyMap = convertTargetingMapToNormalMap(tagData.targetingMap);
|
196
205
|
} else if (isMacroPresent('targetingKeywords')) {
|
197
206
|
formattedKeyMap = convertKeyPairStringToMap(tagData.targetingKeywords);
|
198
207
|
}
|
199
208
|
renameKnownAuctionKeys(formattedKeyMap);
|
200
|
-
|
209
|
+
|
201
210
|
// set keys not in defined map macros (eg targetingMap) and/or the keys setup within a non-DFP adserver
|
202
211
|
Object.keys(tagData).forEach(function (key) {
|
203
212
|
if (key !== 'targetingMap' && key !== 'targetingKeywords' && isStr(tagData[key]) && tagData[key] !== '') {
|
@@ -211,7 +220,7 @@ export function parseUrl(url) {
|
|
211
220
|
let parsed = document.createElement('a');
|
212
221
|
|
213
222
|
parsed.href = decodeURIComponent(url);
|
214
|
-
|
223
|
+
|
215
224
|
return {
|
216
225
|
href: parsed.href,
|
217
226
|
protocol: (parsed.protocol || '').replace(/:$/, ''),
|