{"version":3,"sources":["webpack:///webpack/bootstrap 013d0b14ad9c2ebb538f","webpack:///src/utils.js","webpack:///src/adapters/bidderFactory.js","webpack:///node_modules/core-js/library/fn/array/find.js","webpack:///src/adloader.js","webpack:///src/url.js","webpack:///src/userSync.js","webpack:///src/native.js","webpack:///src/auction.js","webpack:///src/bidfactory.js","webpack:///src/videoCache.js","webpack:///src/Renderer.js","webpack:///node_modules/core-js/library/modules/_global.js","webpack:///node_modules/core-js/library/modules/_core.js","webpack:///node_modules/core-js/library/modules/_is-object.js","webpack:///src/config.js","webpack:///src/hook.js","webpack:///node_modules/core-js/library/fn/array/find-index.js","webpack:///node_modules/core-js/library/modules/_export.js","webpack:///node_modules/core-js/library/modules/_descriptors.js","webpack:///node_modules/core-js/library/modules/_add-to-unscopables.js","webpack:///src/adapter.js","webpack:///src/auctionManager.js","webpack:///src/cpmBucketManager.js","webpack:///node_modules/core-js/library/modules/_ctx.js","webpack:///node_modules/core-js/library/modules/_fails.js","webpack:///src/constants.json","webpack:///node_modules/core-js/library/modules/_array-methods.js","webpack:///node_modules/core-js/library/modules/_iobject.js","webpack:///node_modules/core-js/library/modules/_cof.js","webpack:///node_modules/core-js/library/modules/_defined.js","webpack:///node_modules/core-js/library/modules/_to-length.js","webpack:///node_modules/core-js/library/modules/_to-integer.js","webpack:///src/prebidGlobal.js","webpack:///src/targeting.js","webpack:///(webpack)/buildin/global.js","webpack:///src/prebid.js","webpack:///src/secureCreatives.js","webpack:///src/mediaTypes.js","webpack:///node_modules/core-js/library/modules/es6.array.find.js","webpack:///node_modules/core-js/library/modules/_a-function.js","webpack:///node_modules/core-js/library/modules/_hide.js","webpack:///node_modules/core-js/library/modules/_object-dp.js","webpack:///node_modules/core-js/library/modules/_an-object.js","webpack:///node_modules/core-js/library/modules/_ie8-dom-define.js","webpack:///node_modules/core-js/library/modules/_dom-create.js","webpack:///node_modules/core-js/library/modules/_to-primitive.js","webpack:///node_modules/core-js/library/modules/_property-desc.js","webpack:///node_modules/core-js/library/modules/_to-object.js","webpack:///node_modules/core-js/library/modules/_array-species-create.js","webpack:///node_modules/core-js/library/modules/_array-species-constructor.js","webpack:///node_modules/core-js/library/modules/_is-array.js","webpack:///node_modules/core-js/library/modules/_wks.js","webpack:///node_modules/core-js/library/modules/_shared.js","webpack:///node_modules/core-js/library/modules/_uid.js","webpack:///node_modules/core-js/library/modules/es7.array.includes.js","webpack:///node_modules/core-js/library/modules/_array-includes.js","webpack:///node_modules/core-js/library/modules/_to-iobject.js","webpack:///src/ajax.js","webpack:///node_modules/core-js/library/modules/_to-absolute-index.js","webpack:///node_modules/just-clone/index.js","webpack:///src/sizeMapping.js","webpack:///src/video.js","webpack:///src/adaptermanager.js","webpack:///node_modules/core-js/library/fn/array/includes.js","webpack:///src/events.js","webpack:///node_modules/core-js/library/modules/es6.array.find-index.js","webpack:///modules/33acrossBidAdapter.js","webpack:///modules/a4gBidAdapter.js","webpack:///modules/adbutlerBidAdapter.js","webpack:///modules/adformBidAdapter.js","webpack:///modules/adgenerationBidAdapter.js","webpack:///src/AnalyticsAdapter.js","webpack:///modules/adkernelAdnAnalyticsAdapter.js","webpack:///modules/adkernelAdnBidAdapter.js","webpack:///modules/adkernelBidAdapter.js","webpack:///modules/admixerBidAdapter.js","webpack:///modules/adoceanBidAdapter.js","webpack:///modules/adomikAnalyticsAdapter.js","webpack:///modules/adtelligentBidAdapter.js","webpack:///modules/adxcgAnalyticsAdapter.js","webpack:///modules/adxcgBidAdapter.js","webpack:///modules/adyoulikeBidAdapter.js","webpack:///modules/aolBidAdapter.js","webpack:///modules/appnexusAnalyticsAdapter.js","webpack:///modules/appnexusBidAdapter.js","webpack:///modules/arteebeeBidAdapter.js","webpack:///modules/atomxBidAdapter.js","webpack:///modules/audienceNetworkBidAdapter.js","webpack:///modules/beachfrontBidAdapter.js","webpack:///modules/bridgewellBidAdapter.js","webpack:///modules/c1xBidAdapter.js","webpack:///modules/colossussspBidAdapter.js","webpack:///modules/contentigniteBidAdapter.js","webpack:///modules/conversantBidAdapter.js","webpack:///modules/currency.js","webpack:///modules/danmarketBidAdapter.js","webpack:///modules/dfpAdServerVideo.js","webpack:///src/adServerManager.js","webpack:///modules/eplanningAnalyticsAdapter.js","webpack:///modules/eplanningBidAdapter.js","webpack:///modules/express.js","webpack:///modules/fairtradeBidAdapter.js","webpack:///modules/fidelityBidAdapter.js","webpack:///modules/freewheelSSPBidAdapter.js","webpack:///modules/gammaBidAdapter.js","webpack:///modules/getintentBidAdapter.js","webpack:///modules/gjirafaBidAdapter.js","webpack:///modules/googleAnalyticsAdapter.js","webpack:///modules/gumgumBidAdapter.js","webpack:///modules/huddledmassesBidAdapter.js","webpack:///modules/iasBidAdapter.js","webpack:///modules/improvedigitalBidAdapter.js","webpack:///modules/innityBidAdapter.js","webpack:///modules/inskinBidAdapter.js","webpack:///modules/invibesBidAdapter.js","webpack:///modules/iqmBidAdapter.js","webpack:///modules/jcmBidAdapter.js","webpack:///modules/justpremiumBidAdapter.js","webpack:///modules/kargoBidAdapter.js","webpack:///modules/komoonaBidAdapter.js","webpack:///modules/kummaBidAdapter.js","webpack:///modules/lifestreetBidAdapter.js","webpack:///modules/mantisBidAdapter.js","webpack:///modules/marsmediaAnalyticsAdapter.js","webpack:///modules/medianetBidAdapter.js","webpack:///modules/mobfoxBidAdapter.js","webpack:///modules/nanointeractiveBidAdapter.js","webpack:///modules/nasmediaAdmixerBidAdapter.js","webpack:///modules/oneplanetonlyBidAdapter.js","webpack:///modules/openxBidAdapter.js","webpack:///modules/optimaticBidAdapter.js","webpack:///modules/optimeraBidAdapter.js","webpack:///modules/orbitsoftBidAdapter.js","webpack:///modules/peak226BidAdapter.js","webpack:///modules/platformioBidAdapter.js","webpack:///modules/polluxBidAdapter.js","webpack:///modules/prebidServerBidAdapter.js","webpack:///src/cookie.js","webpack:///modules/pubCommonId.js","webpack:///modules/pubmaticBidAdapter.js","webpack:///modules/pubwiseAnalyticsAdapter.js","webpack:///modules/pulsepointAnalyticsAdapter.js","webpack:///modules/pulsepointBidAdapter.js","webpack:///modules/quantcastBidAdapter.js","webpack:///modules/quantumBidAdapter.js","webpack:///modules/readpeakBidAdapter.js","webpack:///modules/realvuAnalyticsAdapter.js","webpack:///modules/rhythmoneBidAdapter.js","webpack:///modules/rockyouBidAdapter.js","webpack:///modules/roxotAnalyticsAdapter.js","webpack:///modules/rtbdemandBidAdapter.js","webpack:///modules/rtbhouseBidAdapter.js","webpack:///modules/rubiconBidAdapter.js","webpack:///modules/rxrtbBidAdapter.js","webpack:///modules/s2sTesting.js","webpack:///modules/sekindoUMBidAdapter.js","webpack:///modules/serverbidBidAdapter.js","webpack:///modules/serverbidServerBidAdapter.js","webpack:///modules/sharethroughAnalyticsAdapter.js","webpack:///modules/sharethroughBidAdapter.js","webpack:///modules/smartadserverBidAdapter.js","webpack:///modules/smartyadsBidAdapter.js","webpack:///modules/somoaudienceBidAdapter.js","webpack:///modules/sonobiBidAdapter.js","webpack:///modules/sovrnBidAdapter.js","webpack:///modules/trionBidAdapter.js","webpack:///modules/trustxBidAdapter.js","webpack:///modules/ucfunnelBidAdapter.js","webpack:///modules/underdogmediaBidAdapter.js","webpack:///modules/undertoneBidAdapter.js","webpack:///modules/vertamediaBidAdapter.js","webpack:///modules/vertozBidAdapter.js","webpack:///modules/viBidAdapter.js","webpack:///modules/vidazooBidAdapter.js","webpack:///modules/vubleBidAdapter.js","webpack:///modules/xendizBidAdapter.js","webpack:///modules/yieldbotBidAdapter.js","webpack:///modules/yieldlabBidAdapter.js","webpack:///modules/yieldmoBidAdapter.js","webpack:///modules/yieldoneBidAdapter.js"],"names":["parseSizesInput","parseGPTSingleSizeArray","uniques","flatten","getBidRequest","getKeys","getValue","getBidderCodes","isGptPubadsDefined","getHighestCpm","shuffle","adUnitsFilter","isSrcdocSupported","deepClone","inIframe","isSafariBrowser","replaceAuctionPrice","timestamp","checkCookieSupport","cookiesAreEnabled","delayExecution","groupBy","deepAccess","createContentToExecuteExtScriptInFriendlyFrame","getDefinedParams","isValidMediaTypes","getBidderRequest","getOrigin","getDNT","isAdUnitCodeMatchingSlot","isSlotMatchingAdUnitCode","unsupportedBidderMessage","deletePropertyFromObject","removeRequestId","isInteger","CONSTANTS","require","_loggingChecked","t_Arr","t_Str","t_Fn","t_Numb","toString","Object","prototype","infoLogger","console","info","bind","window","e","exports","replaceTokenInString","str","map","token","_each","value","key","undefined","keyString","toUpperCase","re","RegExp","replace","getIncrementalInteger","count","_getUniqueIdentifierStr","Math","random","substr","getUniqueIdentifierStr","generateUUID","placeholder","getBidIdParameter","paramsObj","tryAppendQueryString","existingUrl","encodeURIComponent","parseQueryStringParameters","queryObj","result","k","hasOwnProperty","transformAdServerTargetingObj","targeting","getOwnPropertyNames","length","join","sizeObj","parsedSizes","sizes","split","sizeRegex","curSizePos","hasOwn","match","push","sizeArrayLength","i","singleSize","isArray","isNaN","getTopWindowLocation","location","top","getTopWindowUrl","href","getTopWindowReferrer","document","referrer","logWarn","msg","debugTurnedOn","warn","logInfo","args","hasConsoleLogger","logMessage","log","hasConsoleError","error","getConfig","debug","getParameterByName","DEBUG_MODE","setConfig","logError","apply","arguments","createInvisibleIframe","_createInvisibleIframe","f","createElement","id","height","width","border","hspace","vspace","marginWidth","marginHeight","style","scrolling","frameBorder","src","display","name","regexS","regex","results","exec","search","decodeURIComponent","hasValidBidRequest","paramObj","requiredParamsArr","adapter","found","findParam","addEventHandler","element","event","func","addEventListener","attachEvent","isA","object","_t","call","isFn","isStr","isNumber","isEmpty","isEmptyStr","fn","forEach","l","contains","a","obj","indexOf","Array","_map","callback","output","objectToCheck","propertyToCheckFor","constructor","insertElement","elm","doc","target","elToAppend","getElementsByTagName","insertBefore","firstChild","triggerPixel","url","img","Image","callBurl","source","burl","S2S","SRC","insertUserSyncIframe","iframeHtml","createTrackPixelIframeHtml","div","innerHTML","iframe","createTrackPixelHtml","escapedUrl","encodeURI","encodeUri","sandbox","getIframeDocument","contentWindow","contentDocument","getValueString","param","val","defaultValue","index","arry","b","concat","bidsRequested","bidSet","bids","bid","bidId","keys","adUnits","pbjs","unit","bidder","reduce","filter","googletag","pubads","getSlots","previous","current","cpm","timeToRespond","array","counter","floor","temp","adUnitCode","defaultView","frameElement","test","navigator","userAgent","self","Date","getTime","cookieEnabled","cookie","numRequiredCalls","Error","numCalls","xs","rv","x","path","String","params","mediaTypes","SUPPORTED_MEDIA_TYPES","SUPPORTED_STREAM_TYPES","types","every","type","video","context","bidRequests","request","start","auctionId","origin","protocol","hostname","port","doNotTrack","msDoNotTrack","compareCodeAndSlot","slot","getAdUnitPath","getSlotElementId","adUnit","mediaType","code","prop","Number","isFinite","registerBidder","newBidder","isValid","COMMON_BID_RESPONSE_KEYS","spec","supportedMediaTypes","putBidder","registerBidAdapter","aliases","alias","getSpec","freeze","registerSyncs","callBids","bidderRequest","addBidResponse","done","ajax","adUnitCodesHandled","addBidWithCode","responses","afterAllResponses","bidsArray","videoBid","some","cacheEnabled","validBidRequests","filterAndWarn","bidRequestMap","placementCode","requests","buildRequests","onResponse","processRequest","formatGetParameters","data","method","success","onSuccess","onFailure","withCredentials","options","JSON","stringify","contentType","response","responseObj","parse","body","headers","headerParser","interpretResponse","err","addBidUsingRequestMap","bidRequest","requestId","prebidBid","createBid","GOOD","xmlHttpResponse","get","getResponseHeader","getUserSyncs","syncs","iframeEnabled","pixelEnabled","sync","registerSync","isBidRequestValid","validBidSize","bidderCode","hasValidKeys","bidKeys","errorMessage","utils","_requestCache","loadScript","tagSrc","cacheRequest","loaded","callbacks","requestResource","jptScript","async","readyState","onreadystatechange","onload","parseQS","formatQS","format","query","acc","criteria","v","parsed","noDecodeWholeURL","pathname","hash","host","newUserSync","setDefaults","syncEnabled","syncsPerBidder","syncDelay","userSyncDependencies","publicApi","queue","getDefaultQueue","hasFired","numAdapterBids","usConfig","config","conf","userSync","image","fireSyncs","browserSupportsCookies","fireImagePixels","loadIframes","bidderName","trackingPixelUrl","iframeUrl","incrementAdapterBids","hasEnabledBidders","enabledBidders","syncUsers","timeout","setTimeout","triggerUserSyncs","enableOverride","processNativeAdUnitParams","nativeBidIsValid","fireNativeTrackers","getNativeTargeting","nativeAdapters","NATIVE_KEYS","title","sponsoredBy","icon","clickUrl","cta","NATIVE_TARGETING_KEYS","IMAGE","required","SUPPORTED_TYPES","typeIsSupported","nativeAdUnit","nativeBidder","hasNonNativeBidder","adId","requestedAssets","nativeParams","requiredAssets","returnedAssets","asset","message","adObject","trackers","action","clickTrackers","impressionTrackers","keyValues","newAuction","getStandardBidderSettings","getKeyValueTargetingPairs","adjustBids","adaptermanager","events","AUCTION_STARTED","AUCTION_IN_PROGRESS","AUCTION_COMPLETED","on","EVENTS","BID_ADJUSTMENT","adUnitCodes","cbTimeout","labels","_adUnits","_labels","_adUnitCodes","_bidderRequests","_bidsReceived","_auctionStart","_auctionId","_auctionStatus","_callback","_timer","_timeout","_winningBid","addBidRequests","bidderRequests","addBidReceived","bidsReceived","startAuctionTimer","timedOut","timeoutCallback","executeCallback","timer","cleartimer","clearTimeout","timedOutBidders","getTimedOutBids","emit","BID_TIMEOUT","AUCTION_END","groupByPlacement","userSyncConfig","bidRequestId","innerBidRequestId","bidderRequestId","doneCbCallCount","bidsBackAll","now","auctionInit","AUCTION_INIT","makeBidRequests","setWinningBid","winningBid","getWinningBid","getTimeout","getAuctionId","getAuctionStatus","getAdUnits","getAdUnitCodes","getBidRequests","getBidsReceived","doCallbacksIfTimedout","auctionInstance","bidResponse","addBidToAuction","BID_RESPONSE","tryAddVideoBid","addBid","videoCacheKey","cacheIds","uuid","vastUrl","getPreparedBidForAuction","bidObject","responseTimestamp","requestTimestamp","parseFloat","adUnitRenderer","renderer","install","setRender","render","priceStringsObj","pbLg","low","pbMg","med","pbHg","high","pbAg","auto","pbDg","dense","pbCg","custom","dealId","adserverTargeting","granularity","bidder_settings","bidderSettings","JSON_MAPPING","BD_SETTING_STANDARD","ADSERVER_TARGETING","GRANULARITY_OPTIONS","AUTO","DENSE","LOW","MEDIUM","HIGH","CUSTOM","size","custBidObj","standardSettings","setKeys","sendStandardTargeting","getSize","kvPair","suppressEmptyKeys","bidPriceAdjusted","bidCpmAdjustment","bidsByPlacement","bidRequestedWithoutDoneCodes","bidReceivedCodes","timedOutBidderCodes","timedOutBids","Bid","statusCode","_bidId","_bidSrc","_statusCode","statusMessage","_getStatus","getStatusCode","store","getCacheUrl","wrapURI","uri","toStorageRequest","vastValue","vastXml","shimStorageCallback","responseBody","ids","statusText","requestData","puts","Renderer","handlers","cmd","process","setEventHandlers","handleVideoEvent","eventName","shift","newConfig","DEFAULT_DEBUG","DEFAULT_BIDDER_TIMEOUT","DEFAULT_PUBLISHER_DOMAIN","DEFAULT_COOKIESYNC_DELAY","DEFAULT_ENABLE_SEND_ALL_BIDS","DEFAULT_TIMEOUTBUFFER","RANDOM","FIXED","VALID_ORDERS","DEFAULT_BIDDER_SEQUENCE","ALL_TOPICS","listeners","defaults","resetConfig","_debug","_bidderTimeout","bidderTimeout","_publisherDomain","publisherDomain","_cookieSyncDelay","cookieSyncDelay","_priceGranularity","priceGranularity","validatePriceGranularity","hasGranularity","_customPriceBucket","customPriceBucket","_sendAllBids","enableSendAllBids","_bidderSequence","bidderSequence","_timoutBuffer","timeoutBuffer","option","subscribe","topics","topicalConfig","topic","callSubscribers","listener","unsubscribe","splice","TOPICS","createHook","hooks","hookName","_hooks","priority","hook","asyncSeries","curr","asyncSeriesNext","methods","addHook","sort","removeHook","removeFn","hookedFn","Adapter","setBidderCode","getBidderCode","newAuctionManager","_auctions","auctionManager","addWinningBid","auction","getAllWinningBids","getBidsRequested","createAuction","_addAuction","findBidByAdId","getStandardBidderAdServerTargeting","_defaultPrecision","_lgPriceConfig","_mgPriceConfig","_hgPriceConfig","_densePriceConfig","_autoPriceConfig","getPriceBucketString","customConfig","granularityMultiplier","cpmFloat","getCpmStringValue","cpmStr","isValidPriceConfig","cap","buckets","prev","max","bucket","precision","toFixed","min","getCpmTarget","increment","bucketSize","getGlobal","que","newTargeting","pbTargetingKeys","BID_TARGETING_SET","MAX_DFP_KEYLENGTH","isBidExpired","ttl","isUnusedBid","status","resetPresetTargeting","setTargeting","getAllTargeting","getWinningBidTargeting","getCustomBidTargeting","getBidLandscapeTargeting","targetKey","flattenTargeting","targetingObj","p","c","accumulator","setTargetingForGPT","targetingConfig","targetId","valueArr","getWinningBids","getEmptyBid","setTargetingForAst","astTargeting","keywordsObj","input","nKey","substring","apntag","setKeywords","winners","winner","standardKeys","getStandardKeys","TARGETING_KEYS","mergeAdServerTargeting","arr","concatTargetingValue","currentBidElement","hasSameAdunitCodeAndKey","getCustomKeys","truncateCustomKeys","bidsByBidder","bucketKey","getTargetingMap","isApntagDefined","bidfactory","RENDERED","ADD_AD_UNITS","BID_WON","REQUEST_BIDS","SET_TARGETING","AD_RENDER_FAILED","AD_RENDER_FAILED_REASON","PREVENT_WRITING_ON_MAIN_DOCUMENT","NO_AD","EXCEPTION","CANNOT_FIND_AD","MISSING_DOC_OR_ADID","eventValidators","bidWon","checkDefinedPlacement","libLoaded","version","setRenderSize","getAdserverTargetingForAdUnitCodeStr","adunitCode","res","getAdserverTargetingForAdUnitCode","getAdserverTargeting","getBidResponses","currentAuctionId","getBidResponsesForAdUnitCode","setTargetingForGPTAsync","targetingSet","emitAdRenderFail","reason","renderAd","ad","adUrl","creativeComment","createComment","creativeId","write","close","overflow","removeAdUnit","requestBids","bidsBackHandler","adUnitMediaTypes","bidders","bidderRegistry","bidderMediaTypes","bidderEligible","addAdUnits","adUnitArr","transactionId","onEvent","handler","offEvent","off","bidderAdaptor","registerAnalyticsAdapter","useCache","enableAnalytics","aliasBidder","aliasBidAdapter","getHighestCpmBids","command","stack","processQueue","called","listenMessagesFromCreative","receiveMessage","ev","sendAdToCreative","adServerDomain","remoteDomain","resizeRemoteCreative","postMessage","getElementById","querySelector","NATIVE","VIDEO","BANNER","ajaxBuilder","XHR_DONE","useXDomainRequest","XMLHttpRequest","responseType","XDomainRequest","responseText","onerror","ontimeout","onprogress","urlInfo","open","customHeaders","header","setRequestHeader","preflight","send","setSizeConfig","resolveStatus","sizeConfig","labelAll","activeLabels","configs","maps","evaluateSizeConfig","filteredSizes","shouldFilter","sizesSupported","active","label","mediaQuery","matchMedia","matches","thing","isValidVideoBid","VIDEO_MEDIA_TYPE","OUTSTREAM","videoAdUnit","videoBidder","hasNonVideoBidder","videoMediaType","s2sTestingModule","_bidderRegistry","_s2sConfig","s2sConfig","_analyticsRegistry","getLabels","bidOrAdUnit","labelAny","getBids","filteredAdUnitSizes","bid_id","transformHeightWidth","sizesObj","heightWidth","parseInt","getAdUnitCopyForPrebidServer","adaptersServerSide","adUnitsCopy","doingS2STesting","finalSource","CLIENT","getAdUnitCopyForClientAdapters","adUnitsClientCopy","SERVER","auctionStart","checkBidRequestSizes","bidderCodes","clientBidderCodes","clientTestAdapters","enabled","getSourceBidderMap","adUnitsS2SCopy","tid","banner","playerSize","native","aspect_ratios","doneCb","partitions","clientBidRequests","serverBidRequests","s2sAdapter","s2sBidRequest","ad_units","doneCbs","allBidders","adapters","BID_REQUESTED","testing","getSupportedMediaTypes","videoAdapters","bidAdaptor","existingAlias","newAdapter","adapterConfig","provider","getBidAdapter","setS2STestingModule","module","slice","allEvents","idPaths","EVENT_ID_PATHS","eventsFired","_handlers","_public","_dispatch","eventString","eventPayload","idPath","eventKeys","eventType","_checkAvailableEvent","_handler","getEvents","arrayCopy","newProp","BIDDER_CODE","END_POINT","SYNC_ENDPOINT","_createBidResponse","seatbid","price","w","h","adm","crid","currency","cur","netRevenue","_createServerRequest","ttxRequest","imp","_getFormatSize","ext","ttx","prod","productId","site","siteId","ttxSettings","sizeArr","_registerUserSyncs","syncUrl","serverResponse","bidResponses","A4G_BIDDER_CODE","A4G_CURRENCY","A4G_DEFAULT_BID_URL","A4G_TTL","LOCATION_PARAM_NAME","ID_PARAM_NAME","IFRAME_PARAM_NAME","ZONE_ID_PARAM_NAME","SIZE_PARAM_NAME","ARRAY_PARAM_SEPARATOR","ARRAY_SIZE_SEPARATOR","SIZE_SEPARATOR","zoneId","deliveryUrl","idParams","sizeParams","zoneIds","serverResponses","pageID","accountID","zoneID","keyword","domain","requestURI","serverRequests","zoneCounters","bidObj","isCorrectSize","isCorrectCPM","CPM","minCPM","maxCPM","placement_id","ad_code","addTrackingPixels","tracking_pixels","trackingPixels","trackingPixelMarkup","pixelURL","trackingPixel","mid","j","_key","_value","reqParams","globalParams","priceType","formRequestUrl","unshift","reqData","btoa","VALID_RESPONSES","vast_content","vast_url","bidRespones","verifySize","win_bid","deal_id","win_cur","adItem","validSizes","ADG_BIDDER_CODE","len","validReq","DEBUG_URL","URL","lastIndexOf","creativeid","dealid","createNativeAd","createAd","syncOptions","vastxml","createAPVTag","insertVASTMethod","appendChildToBody","beacon","removeWrapper","native_ad","assets","text","link","clicktrackers","imptrackers","beaconurl","APVURL","apvScript","outerHTML","apvVideoAdParam","s","script","bodyIndex","lastBodyIndex","AnalyticsAdapter","LIBRARY","ENDPOINT","BUNDLE","_sampled","analyticsType","global","_queue","_eventCount","_enableCheck","_emptyQueue","track","_track","enqueue","_enqueue","_enable","disableAnalytics","_disable","getAdapterType","getHandler","getUrl","_callEndpoint","_this","sampling","getUmtSource","ExpiringQueue","ANALYTICS_VERSION","DEFAULT_QUEUE_TIMEOUT","DEFAULT_HOST","ADK_HB_EVENTS","BID_REQUEST","TIMEOUT","buildRequestTemplate","pubId","ref","topLocation","ver","accId","env","screen","lang","language","analyticsAdapter","init","trackAuctionInit","trackBidRequest","trackBidResponse","trackBidWon","trackBidTimeout","trackAuctionEnd","sendAll","originEnableAnalytics","requestTemplate","queueTimeout","popAll","req","hb_ev","auctionTimeStart","createHbEvent","tagid","time","UTM_TAGS","ADKERNEL_PREBID_KEY","DIRECT","REFERRAL","ORGANIC","storage","getItem","localStorage","setItem","pageUrl","prevUtm","getPreviousTrafficSource","currUtm","getCurrentTrafficSource","chooseActualUtm","updated","actual","storeUtm","getDirect","getUTM","se","getSearchEngine","asUtm","parsedUrl","getReferrer","refHost","refPath","engines","engine","urlParameters","utmArgs","utmTagName","utmValue","utm","medium","campaign","term","content","c1","c2","c3","c4","c5","ord","isCampaignTraffic","timeoutId","reset","peekAll","DEFAULT_ADKERNEL_DSP_DOMAIN","VIDEO_TARGETING","DEFAULT_MIMES","DEFAULT_PROTOCOLS","DEFAULT_APIS","isRtbDebugEnabled","buildImp","mimes","protocols","api","buildRequestParams","tags","loc","page","secure","buildBid","tag","impid","dispatch","rps","rsp","syncpages","sync_url","VERSION","buildRtbRequest","zone","ad_type","r","rtbRequest","rtbImps","rtbBids","rtbBid","prBid","formatAdMarkup","nurl","adk_usersync","topframe","imps","createSite","getLanguage","device","dnt","ENDPOINT_URL","payload","payloadString","bidResp","buildEndpointUrl","emiter","buildRequest","masterBidRequests","masterId","firstBid","bidIdMap","slaveId","assignToMaster","bidRequestsByMaster","placementResponse","adCode","winUrl","statsUrl","auctionEnd","bidRequested","bidTimeout","adomikAdapter","initializeBucketEvents","currentContext","timeouted","bucketEvents","buildBidResponse","sendWonEvent","sendTypedEvent","groupedTypedEvents","buildTypedEvents","bulkEvents","uid","ahbaid","eventsByPlacementCode","typedEventsByType","eventKey","typedEvent","sizeUtils","handleSize","stringBulkEvents","encodedBuf","encodedUri","splittedUrl","partUrl","wonEvent","stringWonEvent","afterTimeout","sizeAlreadyExists","typedEventSize","formatSize","formattedSize","existTypedEvent","groupedTypedEvent","adapterEnableAnalytics","initOptions","OUTSTREAM_SRC","DISPLAY","aid","bidToTag","parseRTBResponse","serverBidResponse","isInvalidValidResp","extMessage","serverBid","getMediaType","prepareRTBRequestParams","_index","cmpId","adResponse","newRenderer","outstreamRender","VOutstreamAPI","initOutstreams","elId","emptyUrl","adxcgAnalyticsVersion","auctionTimestamp","adxcgAnalyticsAdapter","item","mapBidResponse","creative_id","adxcgAnalyticsRequestUrl","prebidVersion","SUPPORTED_AD_TYPES","SOURCE","adzoneid","adZoneIds","prebidBidIds","requestUrl","adxcgRequestUrl","renderformat","serverResponseOneItem","trim","nativeResponse","DEFAULT_DC","placement","dcHostname","getHostname","Version","Bids","PlacementID","TransactionID","Width","Height","PageRefreshed","getPageRefreshed","createEndpoint","DC","getReferrerUrl","referer","getCanonicalUrl","head","performance","navigation","TYPE_RELOAD","createEndpointQS","qs","RefererUrl","can","CanonicalUrl","requestSizes","parsedSize","Ad","BidID","CreativeID","Price","AOL_BIDDERS_CODES","AOL","ONEMOBILE","ONEDISPLAY","AOL_ENDPOINTS","GET","MOBILE","POST","SYNC_TYPES","IFRAME","TAG","TYPE","pubapiTemplate","template","nexageBaseApiTemplate","nexageGetApiTemplate","MP_SERVER_MAP","us","eu","as","NEXAGE_SERVER","ONE_DISPLAY_TTL","ONE_MOBILE_TTL","aolGlobals","pixelsDropped","showCpmAdjustmentWarning","showCpmWarning","aol","strings","values","dict","isSecureProtocol","parsePixelItems","pixels","itemsRegExp","tagNameRegExp","srcRegExp","pixelsItems","matchedItems","tagName","_buildMarketplaceUrl","serverParam","server","regionParam","region","network","pageid","pageId","sizeid","sizeId","bidfloor","formatMarketplaceBidFloor","bidFloor","formatMarketplaceKeyValues","misc","formattedKeyValues","_buildOneMobileBaseUrl","_buildOneMobileGetUrl","dcn","pos","nexageApi","_isMarketplaceBidder","_isNexageBidder","_isNexageRequestPost","minduration","maxduration","_isNexageRequestGet","isMarketplaceBid","isMobileBid","resolveEndpointCode","formatBidRequest","endpointCode","userSyncOn","_parseBidResponse","_formatPixels","formattedPixels","bidData","encp","pubapiId","appnexusAdapter","USER_PARAMS","NATIVE_MAPPING","serverName","requiredParams","minimumParams","placementId","member","invCode","userObjBid","hasUserInfo","userObj","user","memberIdBid","hasMemberId","sdk","member_id","getRtbBid","newBid","parseMediaType","rendererOptions","renderer_id","renderer_url","impression","ended","getKeywords","keywords","arrs","appnexus","buyerMemberId","buyer_member_id","rtb","player_width","player_height","asset_url","ads","nativeAd","desc","ctatext","sponsored","click_trackers","impression_trackers","main_img","impression_urls","tracker","transformSizes","primary_size","ad_types","allow_smaller_sizes","allowSmallerSizes","use_pmt_rule","usePaymentRule","prebid","disable_psa","reserve","position","trafficSourceCode","traffic_source_code","privateSizes","private_sizes","supplyType","supply_type","pubClick","pubclick","extInvCode","ext_inv_code","externalImpId","external_imp_id","nativeRequest","buildNativeRequest","layouts","require_asset_url","requestKey","adunitKeys","requiredKeys","remaining","ANOutstreamVideo","tagId","tag_id","handleOutstreamRendererEvents","adType","DEFAULT_SSP","pub","prebidReq","makePrebidRequest","rtbResp","exp","ssp","makeRtbRequest","makeImp","rtbReq","makeSite","makeDevice","coppa","regs","makeBanner","makePublisher","publisher","getDomain","parent","atomxt","ancestorOrigins","unused","colorDepth","timezone","getTimezoneOffset","hb_bidder","pbv","isFullWidth","flattenSize","isValidNonSizedFormat","isValidSize","expandSize","isValidSizeAndFormat","isVideo","sdkVersion","isTestmode","Boolean","createAdHtml","nativeStyle","nativeContainer","getTopWindowUrlEncoded","placementids","adformats","requestIds","testmode","pageurl","playerwidth","playerheight","cb","fb_bidid","bid_price_cents","fb_format","fb_placementid","ADAPTER_VERSION","ADAPTER_NAME","VIDEO_ENDPOINT","BANNER_ENDPOINT","appId","videoBids","isVideoBid","bannerBids","createVideoRequestData","createBannerRequestData","bidPrice","getFirstSize","getSizes","getOsVersion","clientStrings","cs","isMobile","isConnectedTV","getDoNotTrack","msDoNoTrack","isPrebid","ua","devicetype","geo","slots","deviceOs","adapterVersion","adapterName","REQUEST_ENDPOINT","valid","typeOfCpmWeight","ChannelID","cpmWeight","channelIDs","matchedResponse","consumed","net_revenue","PIXEL_ENDPOINT","LOG_MSG","invalidBid","noSite","noBid","bidWin","c1xAdapter","tagObj","adunits","rnd","c1xTags","bidIdTags","bidToShortTag","next","pixelId","useSSL","compress","stringifyPayload","pixelUrl","bidType","curBid","adIndex","sizeKey","priceKey","sizesArr","floorPriceMap","newSizeArr","foundChar","URL_SYNC","sizeIndex","winTop","placements","resItem","SYNC_URL","site_id","isVideoRequest","isPageSecure","pubcid","conversantImps","convertSizes","displaymanager","displaymanagerver","copyOptProperty","crumbs","mobile","getDevice","at","fpc","requestMap","bidList","conversantBid","responseCPM","responseAd","responseNurl","make","vendor","bidSizes","d","srcName","dst","dstName","addBidResponseHook","DEFAULT_CURRENCY_RATE_URL","CURRENCY_RATE_PRECISION","bidResponseQueue","conversionCache","currencyRatesLoaded","adServerCurrency","currencySupportEnabled","currencyRates","bidderCurrencyDefault","defaultRates","rates","conversions","conversionRateFile","initCurrency","resetCurrency","errorSettingsRates","processBidResponseQueue","currencyDefault","wrapFunction","fromCurrency","conversion","getCurrencyConversion","originalCpm","originalCurrency","NO_BID","conversionRate","toCurrency","roundFloat","anyBaseCurrency","toIntermediateConversionRate","fromIntermediateConversionRate","num","dec","round","TIME_TO_LIVE","ADAPTER_SYNC_URL","LOG_ERROR_MESS","noAuid","noAdm","noPlacementCode","emptyUids","emptySeatbid","emptyResponse","hasEmptySeatbidArray","hasNoArrayOfBids","auids","bidsMap","reqId","u","pt","_addBidResponse","_getBidFromResponse","respItem","auid","awaitingBids","buildDfpVideoUrl","defaultParamConstants","gdfp_req","unviewed_position_start","urlComponents","buildUrlFromAdserverUrlComponents","derivedParams","correlator","sz","customParams","hb_uuid","hb_cache_id","cust_params","queryParams","descriptionUrl","getDescriptionUrl","description_url","components","buildVideoUrl","registerVideoSupport","videoSupport","adServers","EPL_HOST","auctionEndHandler","auctionInitHandler","bidRequestedHandler","startTime","bidResponseHandler","bidWonHandler","bidTimeoutHandler","callHandler","evtype","eplAnalyticsAdapter","ec","strjson","ci","DEFAULT_SV","DEFAULT_ISV","PARAMS","DOLLARS","NET_REVENUE","TTL","NULL_SIZE","FILE","t","dfpClientId","sec","urlConfig","getUrlConfig","isv","sv","referrerUrl","spacesString","getSpacesString","ur","ncb","fr","adUnitToBidId","getBidIdMap","sp","space","pr","responseSyncs","ifr","cleanName","isTestRequest","getTestConfig","br","isTest","MODULE_NAME","express","gptSlotCache","adUnitsCache","cache","gpt","pads","enableServices","refresh","disableInitialLoad","enableSingleRequest","mapGptSlotSizes","aGPTSlotSizes","aSlotSizes","getWidth","getHeight","defaultSlots","pickAdUnits","gptSlots","gptSlot","elemId","fGptDisplay","fGptEnableServices","fGptRefresh","fGptDisableInitialLoad","fGptEnableSingleRequest","bInitialLoadDisabled","sElementId","aGptSlots","bEnabledSRA","oGptSlot","_displayed","BIDDER_SERVER","zoneid","from","requestid","charset","charSet","characterSet","defloc","altloc","subid","flashver","getFlashVersion","tmax","seatBid","plugins","plugin","description","PROTOCOL","getProtocol","FREEWHEEL_ADSSETUP","MUSTANG_URL","PRIMETIME_URL","USER_SYNC_URL","isValidUrl","pattern","getBiggerSize","getPricing","xmlNode","pricingExtNode","princingData","extensions","querySelectorAll","node","getAttribute","priceNode","textContent","innerText","getCreativeId","creaId","adNodes","el","getTopMostWindow","getComponentId","inputFormat","component","getAPIName","componentId","formatAdHTML","integrationType","divHtml","libUrl","getOutstreamScript","getInBannerScript","domId","currentBidRequest","requestParams","reqType","protocolVersion","bidrequest","xmlDoc","parser","DOMParser","parseFromString","topWin","freewheelssp_cache","blob","Blob","createObjectURL","gaxObjParams","hasParamInfo","adid","IS_NET_REVENUE","BID_HOST","BID_BANNER_PATH","BID_VIDEO_PATH","BID_RESPONSE_TTL_SEC","VIDEO_PROPERTIES","OPTIONAL_PROPERTIES","pid","giBidRequest","buildGiBidRequest","buildUrl","no_bid","parseSize","is_video","known","resp_type","produceSize","addVideo","addOptional","props","DIMENSION_SEPARATOR","minCPC","gjid","generateSizeParam","configId","allowExplicit","explicit","bidid","serverBody","CreativeId","Currency","NetRevenue","Referrer","_disableInteraction","nonInteraction","_analyticsQueue","_gaGlobal","_category","_enableDistribution","_trackerSend","trackerName","enableDistribution","existingEvents","eventObj","sendBidRequestToGa","sendBidResponseToGa","bidderArray","sendBidTimeouts","sendBidWonToGa","bidRequestObj","getTrackerSend","checkAnalytics","convertToCents","dollars","getLoadTimeDistribution","distribution","getCpmDistribution","cpmCents","dis","cpmDis","ALIAS_BIDDER_CODE","BID_ENDPOINT","DT_CREDENTIALS","browserParams","_getBrowserParams","topWindow","topScreen","topUrl","ggad","vw","innerWidth","vh","innerHeight","sw","sh","pu","ce","dpr","devicePixelRatio","getWrapperCode","wrapper","_getDigiTrustQueryParams","getDigiTrustId","digiTrustUser","DigiTrust","getUser","identity","digiTrustId","privacy","optout","inScreen","inSlot","ICV","pi","si","ni","tId","selector","serverResponseBody","markup","cw","isTestUnit","adUnitPath","stringifySlotSizes","stringifySlot","ss","stringifyWindowSize","stringifyScreenSize","IAS_HOST","anId","queries","queryString","getPageLevelKeywords","shallowMerge","brandSafety","dest","srcKey","iasResponse","commonBidResponse","placementKey","publisherId","normalizedBids","getNormalizedBidRequest","idClient","ImproveDigitalAdServerJSClient","requestParameters","singleRequestMode","httpRequestType","HTTP_REQUEST_TYPE","returnObjType","RETURN_OBJ_TYPE","PREBID","libVersion","requestObj","createRequest","errors","lid","isNet","syncElement","adUnitId","localSize","normalizedBidRequest","endPoint","HTTP_SECURITY","STANDARD","SECURE","AD_SERVER_BASE_URL","AD_SERVER_URL_PARAM","CLIENT_VERSION","MAX_URL_LENGTH","ERROR_CODES","BAD_HTTP_REQUEST_TYPE_PARAM","MISSING_PLACEMENT_PARAMS","LIB_VERSION_MISSING","DEFAULT","getErrorReturn","errorCode","idMappings","requestObject","extraRequestParameters","impressionObjects","impressionObject","createImpressionObject","returnIdMappings","returnObject","baseUrl","bidRequestObject","bid_request","createBasicBidRequestObject","writeLongRequest","outputUri","pop","formatRequest","impressionBidRequestObject","placementObject","outputObject","pubid","pkey","valueCounter","kvw","parseSized","arrSize","hb","vpw","vph","callback_uid","CONFIG","networkId","ret","enableBotFiltering","includePricingData","parallel","BASE_URI","divName","adTypes","eventIds","decision","decisions","pricing","clearPrice","retrieveAd","appendChild","sizeMap","impressionUrl","DEFAULT_CURRENCY","PREBID_VERSION","METHOD","handleResponse","_placementIds","_loginId","_customEndpoint","_bidContainerId","_ivAuctionStart","loginId","customEndpoint","adContainerId","bidContainerId","invibes","visitId","generateRandomId","initDomainId","currentQueryStringParams","parseQueryStringParams","getDocumentLocation","videoAdHtmlId","showFallback","ivbsCampIdsLocal","getCookie","lId","dom","bidParamsJson","placementIds","auctionStartTime","bidVersion","capCounts","getCappedCampaignsAsString","vId","parametersToPassForward","videoAdContentResult","bidModel","BidModel","Ads","AdReason","PlacementId","BidPrice","VideoExposedId","renderCreative","ivLogger","initLogger","AuctionStartTime","ivbs","m","lastIndex","toLowerCase","CreativeHtml","loadData","saveData","clearExpired","dirty","getCappedCampaigns","record","noop","InvibesDEBUG","Uid","generate","date","datePart","maxRand","randPart","getCrTime","toks","cookieDomain","noCookies","y","cookies","unescape","setCookie","exdays","exdate","exms","setTime","cookieValue","toUTCString","detectTopmostCookieDomain","testCookie","hostParts","persistence","cookiePersistence","cname","load","save","state","minHC","validGradTime","yesterday","hc","graduate","setId","tempId","mediatype","_getDNT","_isMobile","_isConnectedTV","BidRequestStr","adSizes","JSONStr","dataStr","callbackId","preparePubCond","dim","getWebsiteDim","screenWidth","screenHeight","ww","wh","findBid","passCond","allow","exclude","cond","formats","arrayUnique","idx","HOST","transformedParams","cpmGranularity","cpmRange","ceil","adSlotIds","_getAllMetadata","encodedParams","_readCookie","nameEquals","charAt","_getCrbIds","crb","syncIds","vParsed","atob","_getUid","vData","_getKruxUserId","_getLocalStorageSafely","_getKruxSegments","_getKrux","segmentsStr","segments","userID","_getUserIds","crbIds","kargoID","userId","clientID","clientId","crbIDs","optOut","userIDs","krux","pageURL","rawCRB","USYNCURL","hbid","trid","placementid","floorPrice","floorprice","kbConf","ts_as","hb_placements","hb_placement_bidids","hb_floors","_generateCb","tz","hdbdid","encode_bid","creative","bidResponseAvailable","idToImpMap","idToBidMap","ortbRequest","ex","appParams","app","browserLanguage","userLanguage","systemLanguage","innerHeigh","urlTemplate","adkey","ad_size","wn","boolToString","sf","fif","stamp","hbver","isResponseValid","content_type","mantis_link","isDesktop","ignoreTouch","supportsTouch","msMaxTouchPoints","documentElement","clientWidth","mantis_breakpoint","storeUuid","mantis_uuid","isSendable","isObject","isAmp","isSecure","jsonToQuery","chain","form","parts","queryKey","akey","aval","buildMantisUrl","buster","localUuid","amp","canonicalUrl","mantis_domain","property","html","view","MARS_BIDDER_CODE","MARS_VERSION","MARS_ANALYTICS_URL","marsmediaAnalyticsAdapter","act","BID_URL","medianetGlobals","siteDetails","filterUrlsByType","urls","configuredParams","customer_id","cid","prebid_version","slotParams","dfp_id","all","generatePayload","isValidBid","fetchCookieSyncUrls","csUrl","validBids","cookieSyncUrls","BID_REQUEST_BASE_URL","CPM_HEADER","bidParams","rt","r_type","r_resp","adspace_width","adspace_height","r_floor","o_andadvid","longitude","latitude","demo_age","adspace_strict","imp_instl","c_mraid","v_dur_min","v_dur_max","v_autoplay","v_startmute","v_rewarded","v_api","n_ver","n_adunit","n_layout","n_context","n_plcmttype","n_img_icon_req","n_img_icon_size","n_img_large_req","n_img_large_w","n_img_large_h","n_title_req","n_title_len","n_desc_req","n_desc_len","n_rating_req","buildPayloadString","serverResponseHeaders","bidRequestData","clickurl","htmlString","ENGINE_BASE_URL","DATA_PARTNER_PIXEL_ID","NQ","NQ_NAME","CATEGORY","createSingleBidRequest","isEngineResponseValid","createSingleBidResponse","createNqParam","createCategoryParam","ADMIXER_ENDPOINT","DEFAULT_BID_TTL","DEFAULT_REVENUE","ax_key","adSize","req_id","os","getOsType","error_code","ad_id","regexp_os","tos","EDNPOINT","bidReqs","prebidVer","BIDDER_CONFIG","BIDDER_VERSION","delDomain","isIfr","currentURL","bannerRequests","videoRequests","configuredBc","bc","buildOXRequest","ju","jr","ch","tws","getViewportDimensions","ef","be","nocache","buildOXVideoRequest","oxResponseObj","createVideoBidResponses","createBidResponses","shouldSendBoPixel","sendBoPixel","adunitid","adUnitHasValidSizeFromBid","matched","pub_rev","tbd","ts","bt","PREBID_TIMEOUT","beaconParams","bd","bs","bp","boUrl","getBoUrl","recordPixel","tracking","boBase","buildQueryStringFromParams","creative_size","tWin","tDoc","docEl","clientHeight","formatCustomParms","customKey","oxParams","dddid","aus","customParamsForAllBids","hasCustomParam","customParamsForBid","formattedCustomParams","tps","customFloorsForAllBids","hasCustomFloor","customFloor","aumfs","oxVideoParams","generateVideoParameters","oxVideo","getData","ip","SCORES_BASE_URL","optimeraHost","optimeraPathName","scoresURL","scores","styleParamsMap","bidRequestParams","stylesParams","stylesParamsArray","currentValue","currentStyle","field","styleField","customParamsArray","customField","sizesParams","WIDTH","HEIGHT","CREATIVE","content_url","CALLBACK_UID","REFERER","toQueryString","responseBid","requestBid","NATIVE_DEFAULTS","TITLE_LEN","DESCR_LEN","SPONSORED_BY_LEN","IMG_MIN","ICON_MIN","nativeImpression","addAsset","titleAsset","dataAsset","imageAsset","defaultLen","defaultMinWidth","defaultMinHeight","wmin","hmin","rawResponse","PLX_ENDPOINT_URL","PLX_CURRENCY","PLX_TTL","PLX_NETREVENUE","custom_url","zones","bidderUrl","tracker2","url_params","bidder_url","PrebidServer","_synced","DEFAULT_S2S_TTL","DEFAULT_S2S_CURRENCY","DEFAULT_S2S_NETREVENUE","s2sDefaultConfig","maxBids","availVendorDefaults","cookieSet","endpoint","syncEndpoint","setS2sConfig","defaultVendor","optionKeys","vendorKey","queueSync","bidder_status","doBidderSync","usersync","tryConvertType","typeToConvert","tryConvertString","tryConvertNumber","paramTypes","convertTypes","keyv","pref","_appendSiteAppDevice","accountId","LEGACY_PROTOCOL","media_types","account_id","max_bids","timeout_millis","cache_markup","cacheMarkup","is_debug","digiTrust","requestedBidders","no_cookie","clientAdapter","cache_id","cache_url","media_type","ad_server_targeting","OPEN_RTB_PROTOCOL","bidMap","sizeObjects","bannerParams","videoParams","digitrust","seat","protocolAdapter","OPEN_RTB_PATH","isOpenRtb","baseAdapter","adUnitsWithSizes","requestJson","cookieSetUrl","isPubcidEnabled","getExpInterval","requestBidHook","initPubcid","COOKIE_NAME","DEFAULT_EXPIRES","PUB_COMMON","pubcidEnabled","interval","getId","expires","expTime","toGMTString","enable","expInterval","constants","CURRENCY","AUCTION_TYPE","UNDEFINED","CUSTOM_PARAMS","_getDomainFromURL","anchor","_parseSlotParam","paramName","paramValue","_cleanSlot","slotName","_parseAdSlot","adUnitIndex","adSlot","splits","_initConf","refURL","_handleCustomParams","kadpageurl","entry","_createOrtbTemplate","js","_createImpressionObject","kadfloor","pmZoneId","pmzoneid","profile","profId","verId","wiid","wv","REPO_AND_VERSION","wp","gender","lat","lon","yob","analyticsName","defaultUrl","pubwiseVersion","pubwiseSchema","configOptions","pwAnalyticsEnabled","utmKeys","utm_source","utm_medium","utm_campaign","utm_term","utm_content","markEnabled","enrichWithMetrics","dataBag","enrichWithUTM","newUtm","itemValue","sendEvent","target_site","pubwiseAnalytics","pulsepointAdapter","DEFAULT_NET_REVENUE","cp","ct","applyExt","ortbBid","bundle","storeurl","storeUrl","cf","DEFAULT_BID_FLOOR","QUANTCAST_CALLBACK_URL","QUANTCAST_CALLBACK_URL_TEST","QUANTCAST_NET_REVENUE","QUANTCAST_TEST_PUBLISHER","QUANTCAST_TTL","publisherTagURL","publisherTagURLTest","bidRequestsList","battr","bidResponsesList","qtxRequest","devEnpoint","useDev","renderMode","cobj","adAssetsUrl","jstracker","qtx_native","CTA_LEN","bidfloorcur","realvuAnalyticsAdapter","top1","wnd","realvu_aa_fifo","realvu_aa","x1","y1","x2","y2","t0","nn","frm","foc","hidden","sr","beacons","z","ie","appVersion","saf","ff","cr","ope","opera","$sf","add_evt","doLog","scr","elem","evtType","update","de","pageXOffset","scrollLeft","pageYOffset","scrollTop","w1","h1","brd","getComputedStyle","padd","viz_area","iv","geom","xv1","yv1","xv2","yv2","A","viz_dist","s1","tru","bk","send_track","riff","unit_id","pow","charCodeAt","st","dv0","parentNode","pin","pins","s2","partner_id","enc","mode","ru","escape","findPosG","adi","xp","yp","dc","ownerDocument","parentWindow","getBoundingClientRect","left","offsetLeft","offsetTop","op","offsetParent","pn","opf","ptn","ff_o","q","poll","fifo","ptm","dvz","restored","adobj","readPos","bind_obj","questA","box","offsetWidth","offsetHeight","pad","ax","ay","writePos","vtr","edge","vz","vt","vtu","plen","dist","near","vr_score","score","vv0_score","show","time0","rpt","bids_rpt","incrMem","tmin","rotate","delay","ncall","tx2n","nodeType","Node","TEXT_NODE","par","not_friendly","ain","tn","backgroundImage","hasChildNodes","nextSibling","add","wnd1","rq_bids","fmt","asz","setSize","check","p1","attr","ed","sa","sb","mm","addUnitById","checkBidIn","partnerId","boost","push_bid","pb","ttr","checkBidWon","bj","wo","g","rqb","getStatusById","m1","dt","keyPos","level","evt","k1","vmem","vr","nv","nr","vstr","boost_poll","setInterval","_options","regAllUnits","unitIds","checkIn","isInView","realvu","RhythmOneBidAdapter","slotsToBids","getFirstParam","doc_version","doc_type","ao","ancestor_origins","popped","opener","framed","prebid_timeout","response_ms","loadStart","placement_codes","bidder_version","that","BRs","fallbackPlacementId","attempt","valueFunction","getRMPUrl","defaultZone","defaultPath","n","mimeTypes","ActiveXObject","enabledPlugin","heights","widths","floors","configuredPlacements","fat","th","tw","BASE_REQUEST_PATH","IFRAME_SYNC_URL","VAST_PLAYER_LOCATION","ROTATION_ZONE","determineOptimalPlacementId","determineOptimalRequestId","buildSiteComponent","buildDeviceComponent","extractValidSize","requestedSizes","conformingSize","splitSizes","generateVideoComponent","impSize","generateBannerComponent","generateImpBody","overridableProperties","rendererLocation","baseRequestPath","rotationZone","rendererOverride","requestRoot","requestType","requestPayload","serverLocations","RockYouVastPlayer","playerCallbacks","pbe","rockYouEventTranslation","rockYouEvent","translated","generateRenderer","adText","seatBids","nullify","bidWidth","bidHeight","bannerCreative","videoXml","serversideLocations","internals","auctionInitConst","auctionEndConst","bidWonConst","bidRequestConst","bidAdjustmentConst","bidResponseConst","publisherIds","utmTagData","eventStack","auctionStatus","localStoragePrefix","utmTags","utmTimeoutKey","utmTimeout","sessionTimeout","sessionIdStorageKey","sessionTimeoutKey","vars","buildSessionIdLocalStorageKey","buildSessionIdTimeoutLocalStorageKey","updateSessionId","isSessionIdTimeoutExpired","newSessionId","sessionId","getSessionId","updateSessionIdTimeout","cpmSessionTimestamp","updateUtmTimeout","buildUtmLocalStorageTimeoutKey","isUtmTimeoutExpired","utmTimestamp","buildUtmLocalStorageKey","utmMarkKey","checkOptions","checkAdUnitConfig","buildBidWon","buildEventStack","filterBidsByAdUnit","filteredBids","isValidEvent","validationEvents","isValidEventStack","isValidBidWon","flushEventStack","flushBidWon","roxotAdapter","pushEvent","buildUtmTagData","utmTagsDetected","utmTagKey","utmTagValue","sendDataType","fullUrl","xhr","request_id","imp_id","aff","bid_floor","site_domain","site_page","device_width","device_height","REGIONS","DEFAULT_CURRENCY_ARR","mapImpression","mapBanner","mapSizes","slot_sizes","mapSite","validRequest","originalRequest","masSizeOrdering","resetUserSync","INTEGRATION","FASTLANE_ENDPOINT","TIMEOUT_BUFFER","parseSizes","hasVideoMediaType","size_id","page_url","resolution","_getScreenResolution","integration","stash_creatives","ae_pass_through_parameters","aeParams","slotData","zone_id","parsePosition","element_id","inventory","visitor","memo","_adCpmSort","deal","rubicon","advertiserId","advertiser","creative_type","playerWidth","playerHeight","creative_depot_url","impression_id","_renderCreative","rubiconTargeting","hasSynced","adA","adB","impId","mappedSize","MAS_SIZE_PRIORITY","first","second","firstPriority","secondPriority","RESPONSE_TTL","badv","bcat","getSource","bidSource","calculateBidSources","sourceBidders","calcSource","bidderControl","sourceWeights","bidSources","srcIncWeight","totWeight","rndWeight","spaceId","pubUrl","subId","vid_vastType","endpointUrl","contents","REQUIRED_S2S_CONFIG_KEYS","ServerBidServerAdapter","userConfig","getLocalConfig","_convertFields","safeBid","converted","shouldDoWorkFn","_callBids","allBids","adunit","skipSelection","_responseCallback","resp","bidCode","skipSelectionRequestsReturnArray","createNew","STR_BIDDER_CODE","STR_VERSION","sharethroughAdapter","STR_BEACON_HOST","placementCodeSet","curBidderCode","strBid","fireLoseBeacon","adserverRequestId","winningBidderCode","winningCPM","arid","loseBeaconUrl","appendEnvFields","fireBeacon","theUrl","STR_ENDPOINT","sharethroughAdapterSpec","placement_key","hbVersion","strVersion","hbSource","creatives","creative_key","generateAd","strRespId","b64EncodeUnicode","toSolidBytes","fromCharCode","formatId","siteid","formatid","currencyCode","pageDomain","isNetCpm","isBidResponseValid","traffic","openRtbRequest","openRtbImpression","openRtbSite","openRtbApp","openRtbDevice","isApp","PAGEVIEW_ID","ad_unit","slotIdentifier","_validateSlot","_validateSize","_validateFloor","hfa","bidsReturned","sbi_aid","sbi_mouse","sbi_size","_creative","sbi_dc","sbi_dozer","sbi_px","pixel","sovrnImps","sovrnBidReq","sovrnBidResponses","sovrnBid","getStorageData","setStorageData","acceptPostMessage","BASE_KEY","sectionId","trionUrlParams","buildTrionUrlParams","trionResponseObj","placeBid","handlePostMessage","getSyncUrl","unParsedPubAndSection","pubSectionArray","int_t","TR_INT_T","trionUrl","VER","UCFUNNEL_BIDDER_CODE","ucfunnelUrlParams","buildUrlParams","ucfunnelResponseObj","refer","UDM_ADAPTER_VERSION","bidParam","mids","useCount","size_not_found","ad_code_html","makeNotification","notification_url","visibilityState","getUrlVars","hashes","REQ_URL","bidReq","hbadaptor","bidRes","bidRequestsArr","slotBidId","vzEndPoint","reqSrc","vzReq","_vzPlacementId","_rqsrc","_cb","_slotBidId","_cpm","_cbn","queryParamValue","bidRespObj","adWidth","adHeight","cat","TTL_SECONDS","INTERNAL_SYNC_TYPE","EXTERNAL_SYNC_TYPE","cId","pId","topWindowUrl","validBidRequest","lookup","ENVS","CURRENCIES","com","net","pub_id","floor_price","reponse","iframeSync","PREBID_ENDPOINT","buildURI","buildItem","items","YieldbotAdapter","_adapterLoaded","_navigationStart","_version","_bidRequestCount","_pageviewDepth","_lastPageviewId","_sessionBlocked","_isInitialized","_sessionTimeout","_userTimeout","_cookieLabels","initialize","pageviewDepth","sessionBlocked","cookieName","blockSession","newId","lastPageviewId","lastPageviewTime","urlPrefix","prefix","pIdx","invalidSizeArray","psn","_optOut","searchParams","initBidRequestParams","pageviewIdToMap","yieldbotSlotParams","getSlotRequestParams","bidUrl","Accept","userSyncs","user_syncs","responseUserSyncs","clearAllCookies","slotBids","sizeParts","ybBidId","paramKey","url_prefix","tagObject","buildAdCreativeTag","initAdRequestParams","adRequestId","commonSearchParams","vi","pvi","buildAdUrl","publisherNumber","intersectionObserverAvailable","buildImpressionUrl","ybotAdRequestId","htmlMarkup","win","IntersectionObserver","IntersectionObserverEntry","pageviewId","currentBidTime","lastBidTime","lastBidId","platform","existingSize","nm","slotSizes","itemName","expireMillis","dataValue","cookieStr","deleteCookie","createDelegate","instance","outerArgs","CURRENCY_CODE","adslotId","adslotIds","adslots","originalBidRequest","matchedBid","supplyId","SERVER_ENDPOINT","localWindow","getTopWindow","serverRequest","bust","scrd","getEnvironment","getPageDescription","addPlacement","createNewBid","getUserSync","trackingEnabled","placementInfo","callback_id","ym_placement_id","isIOS","isSuperSandboxedIframe","isDfpInAmp","isDfp","isDFPSafeFrame","isSafeFrame","isMraid","isCodeOnPage","isSandboxedIframe","parentElement","ampContext","pageViewId","sacrificialIframe","setAttribute","_testVar","removeChild","mraid","adTag"],"mappings":"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A;AACA;AACA;;;;;;;;ACHA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA,qEAAsE,mBAAmB,UAAU,EAAE,EAAE;AACvG,CAAC;;;;;;;;ACFD;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;;AAEA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;ACfA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;ACVA;AACA;AACA,kDAAkD;AAClD;AACA,uCAAuC;AACvC;;;;;;;;ACLA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,YAAY,eAAe;AAChC;AACA,KAAK;AACL;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;QCYgBC,W,GAAAA,W;;AAjBhB;;AAEA,IAAIzd,QAAQ,mBAAAjV,CAAQ,CAAR,CAAZ;;AAEA,IAAM2yB,WAAW,CAAjB;;AAEA;;;;;;;;;AASO,IAAMnhB,sBAAOkhB,aAAb;;AAEA,SAASA,WAAT,GAAqC;AAAA,MAAhBra,OAAgB,uEAAN,IAAM;;AAC1C,SAAO,UAASnO,GAAT,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","file":"prebid.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"pbjsChunk\"];\n \twindow[\"pbjsChunk\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n \t\tif(executeModules) {\n \t\t\tfor(i=0; i < executeModules.length; i++) {\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t112: 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 386);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 013d0b14ad9c2ebb538f","import { config } from './config';\nimport clone from 'just-clone';\nimport find from 'core-js/library/fn/array/find';\nimport includes from 'core-js/library/fn/array/includes';\nconst CONSTANTS = require('./constants');\n\nvar _loggingChecked = false;\n\nvar t_Arr = 'Array';\nvar t_Str = 'String';\nvar t_Fn = 'Function';\nvar t_Numb = 'Number';\nvar toString = Object.prototype.toString;\nlet infoLogger = null;\ntry {\n infoLogger = console.info.bind(window.console);\n} catch (e) {\n}\n\n/*\n * Substitutes into a string from a given map using the token\n * Usage\n * var str = 'text %%REPLACE%% this text with %%SOMETHING%%';\n * var map = {};\n * map['replace'] = 'it was subbed';\n * map['something'] = 'something else';\n * console.log(replaceTokenInString(str, map, '%%')); => \"text it was subbed this text with something else\"\n */\nexports.replaceTokenInString = function (str, map, token) {\n this._each(map, function (value, key) {\n value = (value === undefined) ? '' : value;\n\n var keyString = token + key.toUpperCase() + token;\n var re = new RegExp(keyString, 'g');\n\n str = str.replace(re, value);\n });\n\n return str;\n};\n\n/* utility method to get incremental integer starting from 1 */\nvar getIncrementalInteger = (function () {\n var count = 0;\n return function () {\n count++;\n return count;\n };\n})();\n\nfunction _getUniqueIdentifierStr() {\n return getIncrementalInteger() + Math.random().toString(16).substr(2);\n}\n\n// generate a random string (to be used as a dynamic JSONP callback)\nexports.getUniqueIdentifierStr = _getUniqueIdentifierStr;\n\n/**\n * Returns a random v4 UUID of the form xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx,\n * where each x is replaced with a random hexadecimal digit from 0 to f,\n * and y is replaced with a random hexadecimal digit from 8 to b.\n * https://gist.github.com/jed/982883 via node-uuid\n */\nexports.generateUUID = function generateUUID(placeholder) {\n return placeholder\n ? (placeholder ^ Math.random() * 16 >> placeholder / 4).toString(16)\n : ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, generateUUID);\n};\n\nexports.getBidIdParameter = function (key, paramsObj) {\n if (paramsObj && paramsObj[key]) {\n return paramsObj[key];\n }\n\n return '';\n};\n\nexports.tryAppendQueryString = function (existingUrl, key, value) {\n if (value) {\n return existingUrl += key + '=' + encodeURIComponent(value) + '&';\n }\n\n return existingUrl;\n};\n\n// parse a query string object passed in bid params\n// bid params should be an object such as {key: \"value\", key1 : \"value1\"}\nexports.parseQueryStringParameters = function (queryObj) {\n var result = '';\n for (var k in queryObj) {\n if (queryObj.hasOwnProperty(k)) { result += k + '=' + encodeURIComponent(queryObj[k]) + '&'; }\n }\n\n return result;\n};\n\n// transform an AdServer targeting bids into a query string to send to the adserver\nexports.transformAdServerTargetingObj = function (targeting) {\n // we expect to receive targeting for a single slot at a time\n if (targeting && Object.getOwnPropertyNames(targeting).length > 0) {\n return getKeys(targeting)\n .map(key => `${key}=${encodeURIComponent(getValue(targeting, key))}`).join('&');\n } else {\n return '';\n }\n};\n\n/**\n * Parse a GPT-Style general size Array like `[[300, 250]]` or `\"300x250,970x90\"` into an array of sizes `[\"300x250\"]` or '['300x250', '970x90']'\n * @param {array[array|number]} sizeObj Input array or double array [300,250] or [[300,250], [728,90]]\n * @return {array[string]} Array of strings like `[\"300x250\"]` or `[\"300x250\", \"728x90\"]`\n */\nexport function parseSizesInput(sizeObj) {\n var parsedSizes = [];\n\n // if a string for now we can assume it is a single size, like \"300x250\"\n if (typeof sizeObj === 'string') {\n // multiple sizes will be comma-separated\n var sizes = sizeObj.split(',');\n\n // regular expression to match strigns like 300x250\n // start of line, at least 1 number, an \"x\" , then at least 1 number, and the then end of the line\n var sizeRegex = /^(\\d)+x(\\d)+$/i;\n if (sizes) {\n for (var curSizePos in sizes) {\n if (hasOwn(sizes, curSizePos) && sizes[curSizePos].match(sizeRegex)) {\n parsedSizes.push(sizes[curSizePos]);\n }\n }\n }\n } else if (typeof sizeObj === 'object') {\n var sizeArrayLength = sizeObj.length;\n\n // don't process empty array\n if (sizeArrayLength > 0) {\n // if we are a 2 item array of 2 numbers, we must be a SingleSize array\n if (sizeArrayLength === 2 && typeof sizeObj[0] === 'number' && typeof sizeObj[1] === 'number') {\n parsedSizes.push(parseGPTSingleSizeArray(sizeObj));\n } else {\n // otherwise, we must be a MultiSize array\n for (var i = 0; i < sizeArrayLength; i++) {\n parsedSizes.push(parseGPTSingleSizeArray(sizeObj[i]));\n }\n }\n }\n }\n\n return parsedSizes;\n};\n\n// parse a GPT style sigle size array, (i.e [300,250])\n// into an AppNexus style string, (i.e. 300x250)\nexport function parseGPTSingleSizeArray(singleSize) {\n // if we aren't exactly 2 items in this array, it is invalid\n if (exports.isArray(singleSize) && singleSize.length === 2 && (!isNaN(singleSize[0]) && !isNaN(singleSize[1]))) {\n return singleSize[0] + 'x' + singleSize[1];\n }\n};\n\nexports.getTopWindowLocation = function () {\n let location;\n try {\n // force an exception in x-domain enviornments. #1509\n window.top.location.toString();\n location = window.top.location;\n } catch (e) {\n location = window.location;\n }\n\n return location;\n};\n\nexports.getTopWindowUrl = function () {\n let href;\n try {\n href = this.getTopWindowLocation().href;\n } catch (e) {\n href = '';\n }\n\n return href;\n};\n\nexports.getTopWindowReferrer = function() {\n try {\n return window.top.document.referrer;\n } catch (e) {\n return document.referrer;\n }\n};\n\nexports.logWarn = function (msg) {\n if (debugTurnedOn() && console.warn) {\n console.warn('WARNING: ' + msg);\n }\n};\n\nexports.logInfo = function (msg, args) {\n if (debugTurnedOn() && hasConsoleLogger()) {\n if (infoLogger) {\n if (!args || args.length === 0) {\n args = '';\n }\n\n infoLogger('INFO: ' + msg + ((args === '') ? '' : ' : params : '), args);\n }\n }\n};\n\nexports.logMessage = function (msg) {\n if (debugTurnedOn() && hasConsoleLogger()) {\n console.log('MESSAGE: ' + msg);\n }\n};\n\nfunction hasConsoleLogger() {\n return (window.console && window.console.log);\n}\n\nfunction hasConsoleError() {\n return (window.console && window.console.error);\n}\n\nexports.hasConsoleLogger = hasConsoleLogger;\n\nvar debugTurnedOn = function () {\n if (config.getConfig('debug') === false && _loggingChecked === false) {\n const debug = getParameterByName(CONSTANTS.DEBUG_MODE).toUpperCase() === 'TRUE';\n config.setConfig({ debug });\n _loggingChecked = true;\n }\n\n return !!config.getConfig('debug');\n};\n\nexports.debugTurnedOn = debugTurnedOn;\n\n/**\n * Wrapper to console.error. Takes N arguments to log the same as console.error.\n */\nexports.logError = function () {\n if (debugTurnedOn() && hasConsoleError()) {\n console.error.apply(console, arguments);\n }\n};\n\nexports.createInvisibleIframe = function _createInvisibleIframe() {\n var f = document.createElement('iframe');\n f.id = _getUniqueIdentifierStr();\n f.height = 0;\n f.width = 0;\n f.border = '0px';\n f.hspace = '0';\n f.vspace = '0';\n f.marginWidth = '0';\n f.marginHeight = '0';\n f.style.border = '0';\n f.scrolling = 'no';\n f.frameBorder = '0';\n f.src = 'about:blank';\n f.style.display = 'none';\n return f;\n};\n\n/*\n * Check if a given parameter name exists in query string\n * and if it does return the value\n */\nvar getParameterByName = function (name) {\n var regexS = '[\\\\?&]' + name + '=([^&#]*)';\n var regex = new RegExp(regexS);\n var results = regex.exec(window.location.search);\n if (results === null) {\n return '';\n }\n\n return decodeURIComponent(results[1].replace(/\\+/g, ' '));\n};\n\nexports.getParameterByName = getParameterByName;\n\n/**\n * This function validates paramaters.\n * @param {object[string]} paramObj [description]\n * @param {string[]} requiredParamsArr [description]\n * @return {bool} Bool if paramaters are valid\n */\nexports.hasValidBidRequest = function (paramObj, requiredParamsArr, adapter) {\n var found = false;\n\n function findParam(value, key) {\n if (key === requiredParamsArr[i]) {\n found = true;\n }\n }\n\n for (var i = 0; i < requiredParamsArr.length; i++) {\n found = false;\n\n this._each(paramObj, findParam);\n\n if (!found) {\n this.logError('Params are missing for bid request. One of these required paramaters are missing: ' + requiredParamsArr, adapter);\n return false;\n }\n }\n\n return true;\n};\n\n// Handle addEventListener gracefully in older browsers\nexports.addEventHandler = function (element, event, func) {\n if (element.addEventListener) {\n element.addEventListener(event, func, true);\n } else if (element.attachEvent) {\n element.attachEvent('on' + event, func);\n }\n};\n/**\n * Return if the object is of the\n * given type.\n * @param {*} object to test\n * @param {String} _t type string (e.g., Array)\n * @return {Boolean} if object is of type _t\n */\nexports.isA = function (object, _t) {\n return toString.call(object) === '[object ' + _t + ']';\n};\n\nexports.isFn = function (object) {\n return this.isA(object, t_Fn);\n};\n\nexports.isStr = function (object) {\n return this.isA(object, t_Str);\n};\n\nexports.isArray = function (object) {\n return this.isA(object, t_Arr);\n};\n\nexports.isNumber = function(object) {\n return this.isA(object, t_Numb);\n};\n\n/**\n * Return if the object is \"empty\";\n * this includes falsey, no keys, or no items at indices\n * @param {*} object object to test\n * @return {Boolean} if object is empty\n */\nexports.isEmpty = function (object) {\n if (!object) return true;\n if (exports.isArray(object) || exports.isStr(object)) {\n return !(object.length > 0);\n }\n\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) return false;\n }\n\n return true;\n};\n\n/**\n * Return if string is empty, null, or undefined\n * @param str string to test\n * @returns {boolean} if string is empty\n */\nexports.isEmptyStr = function(str) {\n return this.isStr(str) && (!str || str.length === 0);\n};\n\n/**\n * Iterate object with the function\n * falls back to es5 `forEach`\n * @param {Array|Object} object\n * @param {Function(value, key, object)} fn\n */\nexports._each = function (object, fn) {\n if (this.isEmpty(object)) return;\n if (this.isFn(object.forEach)) return object.forEach(fn, this);\n\n var k = 0;\n var l = object.length;\n\n if (l > 0) {\n for (; k < l; k++) fn(object[k], k, object);\n } else {\n for (k in object) {\n if (hasOwnProperty.call(object, k)) fn.call(this, object[k], k);\n }\n }\n};\n\nexports.contains = function (a, obj) {\n if (this.isEmpty(a)) {\n return false;\n }\n\n if (this.isFn(a.indexOf)) {\n return a.indexOf(obj) !== -1;\n }\n\n var i = a.length;\n while (i--) {\n if (a[i] === obj) {\n return true;\n }\n }\n\n return false;\n};\n\nexports.indexOf = (function () {\n if (Array.prototype.indexOf) {\n return Array.prototype.indexOf;\n }\n\n // ie8 no longer supported\n // return polyfills.indexOf;\n}());\n\n/**\n * Map an array or object into another array\n * given a function\n * @param {Array|Object} object\n * @param {Function(value, key, object)} callback\n * @return {Array}\n */\nexports._map = function (object, callback) {\n if (this.isEmpty(object)) return [];\n if (this.isFn(object.map)) return object.map(callback);\n var output = [];\n this._each(object, function (value, key) {\n output.push(callback(value, key, object));\n });\n\n return output;\n};\n\nvar hasOwn = function (objectToCheck, propertyToCheckFor) {\n if (objectToCheck.hasOwnProperty) {\n return objectToCheck.hasOwnProperty(propertyToCheckFor);\n } else {\n return (typeof objectToCheck[propertyToCheckFor] !== 'undefined') && (objectToCheck.constructor.prototype[propertyToCheckFor] !== objectToCheck[propertyToCheckFor]);\n }\n};\n\nexports.insertElement = function(elm, doc, target) {\n doc = doc || document;\n let elToAppend;\n if (target) {\n elToAppend = doc.getElementsByTagName(target);\n } else {\n elToAppend = doc.getElementsByTagName('head');\n }\n try {\n elToAppend = elToAppend.length ? elToAppend : doc.getElementsByTagName('body');\n if (elToAppend.length) {\n elToAppend = elToAppend[0];\n elToAppend.insertBefore(elm, elToAppend.firstChild);\n }\n } catch (e) {}\n};\n\nexports.triggerPixel = function (url) {\n const img = new Image();\n img.src = url;\n};\n\nexports.callBurl = function({ source, burl }) {\n if (source === CONSTANTS.S2S.SRC && burl) {\n exports.triggerPixel(burl);\n }\n};\n\n/**\n * Inserts empty iframe with the specified `url` for cookie sync\n * @param {string} url URL to be requested\n * @param {string} encodeUri boolean if URL should be encoded before inserted. Defaults to true\n */\nexports.insertUserSyncIframe = function(url) {\n let iframeHtml = this.createTrackPixelIframeHtml(url, false, 'allow-scripts allow-same-origin');\n let div = document.createElement('div');\n div.innerHTML = iframeHtml;\n let iframe = div.firstChild;\n exports.insertElement(iframe);\n};\n\n/**\n * Creates a snippet of HTML that retrieves the specified `url`\n * @param {string} url URL to be requested\n * @return {string} HTML snippet that contains the img src = set to `url`\n */\nexports.createTrackPixelHtml = function (url) {\n if (!url) {\n return '';\n }\n\n let escapedUrl = encodeURI(url);\n let img = '
';\n img += '
';\n return img;\n};\n\n/**\n * Creates a snippet of Iframe HTML that retrieves the specified `url`\n * @param {string} url plain URL to be requested\n * @param {string} encodeUri boolean if URL should be encoded before inserted. Defaults to true\n * @param {string} sandbox string if provided the sandbox attribute will be included with the given value\n * @return {string} HTML snippet that contains the iframe src = set to `url`\n */\nexports.createTrackPixelIframeHtml = function (url, encodeUri = true, sandbox = '') {\n if (!url) {\n return '';\n }\n if (encodeUri) {\n url = encodeURI(url);\n }\n if (sandbox) {\n sandbox = `sandbox=\"${sandbox}\"`;\n }\n\n return ``;\n};\n\n/**\n * Returns iframe document in a browser agnostic way\n * @param {object} iframe reference\n * @return {object} iframe `document` reference\n */\nexports.getIframeDocument = function (iframe) {\n if (!iframe) {\n return;\n }\n\n let doc;\n try {\n if (iframe.contentWindow) {\n doc = iframe.contentWindow.document;\n } else if (iframe.contentDocument.document) {\n doc = iframe.contentDocument.document;\n } else {\n doc = iframe.contentDocument;\n }\n } catch (e) {\n this.logError('Cannot get iframe document', e);\n }\n\n return doc;\n};\n\nexports.getValueString = function(param, val, defaultValue) {\n if (val === undefined || val === null) {\n return defaultValue;\n }\n if (this.isStr(val)) {\n return val;\n }\n if (this.isNumber(val)) {\n return val.toString();\n }\n this.logWarn('Unsuported type for param: ' + param + ' required type: String');\n};\n\nexport function uniques(value, index, arry) {\n return arry.indexOf(value) === index;\n}\n\nexport function flatten(a, b) {\n return a.concat(b);\n}\n\nexport function getBidRequest(id, bidsRequested) {\n return find(bidsRequested.map(bidSet => find(bidSet.bids, bid => bid.bidId === id)), bid => bid);\n}\n\nexport function getKeys(obj) {\n return Object.keys(obj);\n}\n\nexport function getValue(obj, key) {\n return obj[key];\n}\n\nexport function getBidderCodes(adUnits = pbjs.adUnits) {\n // this could memoize adUnits\n return adUnits.map(unit => unit.bids.map(bid => bid.bidder)\n .reduce(flatten, [])).reduce(flatten).filter(uniques);\n}\n\nexport function isGptPubadsDefined() {\n if (window.googletag && exports.isFn(window.googletag.pubads) && exports.isFn(window.googletag.pubads().getSlots)) {\n return true;\n }\n}\n\nexport function getHighestCpm(previous, current) {\n if (previous.cpm === current.cpm) {\n return previous.timeToRespond > current.timeToRespond ? current : previous;\n }\n\n return previous.cpm < current.cpm ? current : previous;\n}\n\n/**\n * Fisher–Yates shuffle\n * http://stackoverflow.com/a/6274398\n * https://bost.ocks.org/mike/shuffle/\n * istanbul ignore next\n */\nexport function shuffle(array) {\n let counter = array.length;\n\n // while there are elements in the array\n while (counter > 0) {\n // pick a random index\n let index = Math.floor(Math.random() * counter);\n\n // decrease counter by 1\n counter--;\n\n // and swap the last element with it\n let temp = array[counter];\n array[counter] = array[index];\n array[index] = temp;\n }\n\n return array;\n}\n\nexport function adUnitsFilter(filter, bid) {\n return includes(filter, bid && bid.adUnitCode);\n}\n\n/**\n * Check if parent iframe of passed document supports content rendering via 'srcdoc' property\n * @param {HTMLDocument} doc document to check support of 'srcdoc'\n */\nexport function isSrcdocSupported(doc) {\n // Firefox is excluded due to https://bugzilla.mozilla.org/show_bug.cgi?id=1265961\n return doc.defaultView && doc.defaultView.frameElement &&\n 'srcdoc' in doc.defaultView.frameElement && !/firefox/i.test(navigator.userAgent);\n}\n\nexport function deepClone(obj) {\n return clone(obj);\n}\n\nexport function inIframe() {\n try {\n return window.self !== window.top;\n } catch (e) {\n return true;\n }\n}\n\nexport function isSafariBrowser() {\n return /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n}\n\nexport function replaceAuctionPrice(str, cpm) {\n if (!str) return;\n return str.replace(/\\$\\{AUCTION_PRICE\\}/g, cpm);\n}\n\nexport function timestamp() {\n return new Date().getTime();\n}\n\nexport function checkCookieSupport() {\n if (window.navigator.cookieEnabled || !!document.cookie.length) {\n return true;\n }\n}\nexport function cookiesAreEnabled() {\n if (exports.checkCookieSupport()) {\n return true;\n }\n window.document.cookie = 'prebid.cookieTest';\n return window.document.cookie.indexOf('prebid.cookieTest') != -1;\n}\n\n/**\n * Given a function, return a function which only executes the original after\n * it's been called numRequiredCalls times.\n *\n * Note that the arguments from the previous calls will *not* be forwarded to the original function.\n * Only the final call's arguments matter.\n *\n * @param {function} func The function which should be executed, once the returned function has been executed\n * numRequiredCalls times.\n * @param {int} numRequiredCalls The number of times which the returned function needs to be called before\n * func is.\n */\nexport function delayExecution(func, numRequiredCalls) {\n if (numRequiredCalls < 1) {\n throw new Error(`numRequiredCalls must be a positive number. Got ${numRequiredCalls}`);\n }\n let numCalls = 0;\n return function () {\n numCalls++;\n if (numCalls === numRequiredCalls) {\n func.apply(null, arguments);\n }\n }\n}\n\n/**\n * https://stackoverflow.com/a/34890276/428704\n * @export\n * @param {array} xs\n * @param {string} key\n * @returns {${key_value}: ${groupByArray}, key_value: {groupByArray}}\n */\nexport function groupBy(xs, key) {\n return xs.reduce(function(rv, x) {\n (rv[x[key]] = rv[x[key]] || []).push(x);\n return rv;\n }, {});\n}\n\n/**\n * deepAccess utility function useful for doing safe access (will not throw exceptions) of deep object paths.\n * @param {object} obj The object containing the values you would like to access.\n * @param {string|number} path Object path to the value you would like to access. Non-strings are coerced to strings.\n * @returns {*} The value found at the specified object path, or undefined if path is not found.\n */\nexport function deepAccess(obj, path) {\n path = String(path).split('.');\n for (let i = 0; i < path.length; i++) {\n obj = obj[path[i]];\n if (typeof obj === 'undefined') {\n return;\n }\n }\n return obj;\n}\n\n/**\n * Returns content for a friendly iframe to execute a URL in script tag\n * @param {url} URL to be executed in a script tag in a friendly iframe\n * and are macros left to be replaced if required\n */\nexport function createContentToExecuteExtScriptInFriendlyFrame(url) {\n if (!url) {\n return '';\n }\n\n return ``;\n}\n\n/**\n * Build an object consisting of only defined parameters to avoid creating an\n * object with defined keys and undefined values.\n * @param {object} object The object to pick defined params out of\n * @param {string[]} params An array of strings representing properties to look for in the object\n * @returns {object} An object containing all the specified values that are defined\n */\nexport function getDefinedParams(object, params) {\n return params\n .filter(param => object[param])\n .reduce((bid, param) => Object.assign(bid, { [param]: object[param] }), {});\n}\n\n/**\n * @typedef {Object} MediaTypes\n * @property {Object} banner banner configuration\n * @property {Object} native native configuration\n * @property {Object} video video configuration\n */\n\n/**\n * Validates an adunit's `mediaTypes` parameter\n * @param {MediaTypes} mediaTypes mediaTypes parameter to validate\n * @return {boolean} If object is valid\n */\nexport function isValidMediaTypes(mediaTypes) {\n const SUPPORTED_MEDIA_TYPES = ['banner', 'native', 'video'];\n const SUPPORTED_STREAM_TYPES = ['instream', 'outstream'];\n\n const types = Object.keys(mediaTypes);\n\n if (!types.every(type => includes(SUPPORTED_MEDIA_TYPES, type))) {\n return false;\n }\n\n if (mediaTypes.video && mediaTypes.video.context) {\n return includes(SUPPORTED_STREAM_TYPES, mediaTypes.video.context);\n }\n\n return true;\n}\n\nexport function getBidderRequest(bidRequests, bidder, adUnitCode) {\n return find(bidRequests, request => {\n return request.bids\n .filter(bid => bid.bidder === bidder && bid.adUnitCode === adUnitCode).length > 0;\n }) || { start: null, auctionId: null };\n}\n\n/**\n * Returns the origin\n */\nexport function getOrigin() {\n // IE10 does not have this property. https://gist.github.com/hbogs/7908703\n if (!window.location.origin) {\n return window.location.protocol + '//' + window.location.hostname + (window.location.port ? ':' + window.location.port : '');\n } else {\n return window.location.origin;\n }\n}\n\n/**\n * Returns Do Not Track state\n */\nexport function getDNT() {\n return navigator.doNotTrack === '1' || window.doNotTrack === '1' || navigator.msDoNotTrack === '1' || navigator.doNotTrack === 'yes';\n}\n\nconst compareCodeAndSlot = (slot, adUnitCode) => slot.getAdUnitPath() === adUnitCode || slot.getSlotElementId() === adUnitCode;\n\n/**\n * Returns filter function to match adUnitCode in slot\n * @param {object} slot GoogleTag slot\n * @return {function} filter function\n */\nexport function isAdUnitCodeMatchingSlot(slot) {\n return (adUnitCode) => compareCodeAndSlot(slot, adUnitCode);\n}\n\n/**\n * Returns filter function to match adUnitCode in slot\n * @param {string} adUnitCode AdUnit code\n * @return {function} filter function\n */\nexport function isSlotMatchingAdUnitCode(adUnitCode) {\n return (slot) => compareCodeAndSlot(slot, adUnitCode);\n}\n\n/**\n * Constructs warning message for when unsupported bidders are dropped from an adunit\n * @param {Object} adUnit ad unit from which the bidder is being dropped\n * @param {string} bidder bidder code that is not compatible with the adUnit\n * @return {string} warning message to display when condition is met\n */\nexport function unsupportedBidderMessage(adUnit, bidder) {\n const mediaType = Object.keys(adUnit.mediaTypes || {'banner': 'banner'}).join(', ');\n\n return `\n ${adUnit.code} is a ${mediaType} ad unit\n containing bidders that don't support ${mediaType}: ${bidder}.\n This bidder won't fetch demand.\n `;\n}\n\n/**\n * Delete property from object\n * @param {Object} object\n * @param {string} prop\n * @return {Object} object\n */\nexport function deletePropertyFromObject(object, prop) {\n let result = Object.assign({}, object)\n delete result[prop];\n return result\n}\n\n/**\n * Delete requestId from external bid object.\n * @param {Object} bid\n * @return {Object} bid\n */\nexport function removeRequestId(bid) {\n return exports.deletePropertyFromObject(bid, 'requestId');\n}\n\n/**\n * Checks input is integer or not\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger\n * @param {*} value\n */\nexport function isInteger(value) {\n if (Number.isInteger) {\n return Number.isInteger(value);\n } else {\n return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils.js","import Adapter from 'src/adapter';\nimport adaptermanager from 'src/adaptermanager';\nimport { config } from 'src/config';\nimport bidfactory from 'src/bidfactory';\nimport { STATUS } from 'src/constants';\nimport { userSync } from 'src/userSync';\nimport { nativeBidIsValid } from 'src/native';\nimport { isValidVideoBid } from 'src/video';\nimport includes from 'core-js/library/fn/array/includes';\n\nimport { logWarn, logError, parseQueryStringParameters, delayExecution, parseSizesInput, getBidderRequest } from 'src/utils';\n\n/**\n * This file aims to support Adapters during the Prebid 0.x -> 1.x transition.\n *\n * Prebid 1.x and Prebid 0.x will be in separate branches--perhaps for a long time.\n * This function defines an API for adapter construction which is compatible with both versions.\n * Adapters which use it can maintain their code in master, and only this file will need to change\n * in the 1.x branch.\n *\n * Typical usage looks something like:\n *\n * const adapter = registerBidder({\n * code: 'myBidderCode',\n * aliases: ['alias1', 'alias2'],\n * supportedMediaTypes: ['video', 'native'],\n * isBidRequestValid: function(paramsObject) { return true/false },\n * buildRequests: function(bidRequests, bidderRequest) { return some ServerRequest(s) },\n * interpretResponse: function(oneServerResponse) { return some Bids, or throw an error. }\n * });\n *\n * @see BidderSpec for the full API and more thorough descriptions.\n */\n\n/**\n * @typedef {object} BidderSpec An object containing the adapter-specific functions needed to\n * make a Bidder.\n *\n * @property {string} code A code which will be used to uniquely identify this bidder. This should be the same\n * one as is used in the call to registerBidAdapter\n * @property {string[]} [aliases] A list of aliases which should also resolve to this bidder.\n * @property {MediaType[]} [supportedMediaTypes]: A list of Media Types which the adapter supports.\n * @property {function(object): boolean} isBidRequestValid Determines whether or not the given bid has all the params\n * needed to make a valid request.\n * @property {function(BidRequest[], bidderRequest): ServerRequest|ServerRequest[]} buildRequests Build the request to the Server\n * which requests Bids for the given array of Requests. Each BidRequest in the argument array is guaranteed to have\n * passed the isBidRequestValid() test.\n * @property {function(ServerResponse, BidRequest): Bid[]} interpretResponse Given a successful response from the Server,\n * interpret it and return the Bid objects. This function will be run inside a try/catch.\n * If it throws any errors, your bids will be discarded.\n * @property {function(SyncOptions, ServerResponse[]): UserSync[]} [getUserSyncs] Given an array of all the responses\n * from the server, determine which user syncs should occur. The argument array will contain every element\n * which has been sent through to interpretResponse. The order of syncs in this array matters. The most\n * important ones should come first, since publishers may limit how many are dropped on their page.\n */\n\n/**\n * @typedef {object} BidRequest\n *\n * @property {string} bidId A string which uniquely identifies this BidRequest in the current Auction.\n * @property {object} params Any bidder-specific params which the publisher used in their bid request.\n */\n\n/**\n * @typedef {object} ServerRequest\n *\n * @property {('GET'|'POST')} method The type of request which this is.\n * @property {string} url The endpoint for the request. For example, \"//bids.example.com\".\n * @property {string|object} data Data to be sent in the request.\n * @property {object} options Content-Type set in the header of the bid request, overrides default 'text/plain'.\n * If this is a GET request, they'll become query params. If it's a POST request, they'll be added to the body.\n * Strings will be added as-is. Objects will be unpacked into query params based on key/value mappings, or\n * JSON-serialized into the Request body.\n */\n\n/**\n * @typedef {object} ServerResponse\n *\n * @property {*} body The response body. If this is legal JSON, then it will be parsed. Otherwise it'll be a\n * string with the body's content.\n * @property {{get: function(string): string} headers The response headers.\n * Call this like `ServerResponse.headers.get(\"Content-Type\")`\n */\n\n/**\n * @typedef {object} Bid\n *\n * @property {string} requestId The specific BidRequest which this bid is aimed at.\n * This should match the BidRequest.bidId which this Bid targets.\n * @property {string} ad A URL which can be used to load this ad, if it's chosen by the publisher.\n * @property {string} currency The currency code for the cpm value\n * @property {number} cpm The bid price, in US cents per thousand impressions.\n * @property {number} ttl Time-to-live - how long (in seconds) Prebid can use this bid.\n * @property {boolean} netRevenue Boolean defining whether the bid is Net or Gross. The default is true (Net).\n * @property {number} height The height of the ad, in pixels.\n * @property {number} width The width of the ad, in pixels.\n *\n * @property [Renderer] renderer A Renderer which can be used as a default for this bid,\n * if the publisher doesn't override it. This is only relevant for Outstream Video bids.\n */\n\n/**\n * @typedef {Object} SyncOptions\n *\n * An object containing information about usersyncs which the adapter should obey.\n *\n * @property {boolean} iframeEnabled True if iframe usersyncs are allowed, and false otherwise\n * @property {boolean} pixelEnabled True if image usersyncs are allowed, and false otherwise\n */\n\n/**\n * TODO: Move this to the UserSync module after that PR is merged.\n *\n * @typedef {object} UserSync\n *\n * @property {('image'|'iframe')} type The type of user sync to be done.\n * @property {string} url The URL which makes the sync happen.\n */\n\n// common params for all mediaTypes\nconst COMMON_BID_RESPONSE_KEYS = ['requestId', 'cpm', 'ttl', 'creativeId', 'netRevenue', 'currency'];\n\n/**\n * Register a bidder with prebid, using the given spec.\n *\n * If possible, Adapter modules should use this function instead of adaptermanager.registerBidAdapter().\n *\n * @param {BidderSpec} spec An object containing the bare-bones functions we need to make a Bidder.\n */\nexport function registerBidder(spec) {\n const mediaTypes = Array.isArray(spec.supportedMediaTypes)\n ? { supportedMediaTypes: spec.supportedMediaTypes }\n : undefined;\n function putBidder(spec) {\n const bidder = newBidder(spec);\n adaptermanager.registerBidAdapter(bidder, spec.code, mediaTypes);\n }\n\n putBidder(spec);\n if (Array.isArray(spec.aliases)) {\n spec.aliases.forEach(alias => {\n putBidder(Object.assign({}, spec, { code: alias }));\n });\n }\n}\n\n/**\n * Make a new bidder from the given spec. This is exported mainly for testing.\n * Adapters will probably find it more convenient to use registerBidder instead.\n *\n * @param {BidderSpec} spec\n */\nexport function newBidder(spec) {\n return Object.assign(new Adapter(spec.code), {\n getSpec: function() {\n return Object.freeze(spec);\n },\n registerSyncs,\n callBids: function(bidderRequest, addBidResponse, done, ajax) {\n if (!Array.isArray(bidderRequest.bids)) {\n return;\n }\n\n const adUnitCodesHandled = {};\n function addBidWithCode(adUnitCode, bid) {\n adUnitCodesHandled[adUnitCode] = true;\n if (isValid(adUnitCode, bid, [bidderRequest])) {\n addBidResponse(adUnitCode, bid);\n }\n }\n\n // After all the responses have come back, call done() and\n // register any required usersync pixels.\n const responses = [];\n function afterAllResponses(bids) {\n const bidsArray = bids ? (bids[0] ? bids : [bids]) : [];\n\n const videoBid = bidsArray.some(bid => bid.mediaType === 'video');\n const cacheEnabled = config.getConfig('cache.url');\n\n // video bids with cache enabled need to be cached first before they are considered done\n if (!(videoBid && cacheEnabled)) {\n done();\n }\n\n registerSyncs(responses);\n }\n\n const validBidRequests = bidderRequest.bids.filter(filterAndWarn);\n if (validBidRequests.length === 0) {\n afterAllResponses();\n return;\n }\n const bidRequestMap = {};\n validBidRequests.forEach(bid => {\n bidRequestMap[bid.bidId] = bid;\n // Delete this once we are 1.0\n if (!bid.adUnitCode) {\n bid.adUnitCode = bid.placementCode\n }\n });\n\n let requests = spec.buildRequests(validBidRequests, bidderRequest);\n if (!requests || requests.length === 0) {\n afterAllResponses();\n return;\n }\n if (!Array.isArray(requests)) {\n requests = [requests];\n }\n\n // Callbacks don't compose as nicely as Promises. We should call done() once _all_ the\n // Server requests have returned and been processed. Since `ajax` accepts a single callback,\n // we need to rig up a function which only executes after all the requests have been responded.\n const onResponse = delayExecution(afterAllResponses, requests.length)\n requests.forEach(processRequest);\n\n function formatGetParameters(data) {\n if (data) {\n return `?${typeof data === 'object' ? parseQueryStringParameters(data) : data}`;\n }\n\n return '';\n }\n\n function processRequest(request) {\n switch (request.method) {\n case 'GET':\n ajax(\n `${request.url}${formatGetParameters(request.data)}`,\n {\n success: onSuccess,\n error: onFailure\n },\n undefined,\n Object.assign({\n method: 'GET',\n withCredentials: true\n }, request.options)\n );\n break;\n case 'POST':\n ajax(\n request.url,\n {\n success: onSuccess,\n error: onFailure\n },\n typeof request.data === 'string' ? request.data : JSON.stringify(request.data),\n Object.assign({\n method: 'POST',\n contentType: 'text/plain',\n withCredentials: true\n }, request.options)\n );\n break;\n default:\n logWarn(`Skipping invalid request from ${spec.code}. Request type ${request.type} must be GET or POST`);\n onResponse();\n }\n\n // If the server responds successfully, use the adapter code to unpack the Bids from it.\n // If the adapter code fails, no bids should be added. After all the bids have been added, make\n // sure to call the `onResponse` function so that we're one step closer to calling done().\n function onSuccess(response, responseObj) {\n try {\n response = JSON.parse(response);\n } catch (e) { /* response might not be JSON... that's ok. */ }\n\n // Make response headers available for #1742. These are lazy-loaded because most adapters won't need them.\n response = {\n body: response,\n headers: headerParser(responseObj)\n };\n responses.push(response);\n\n let bids;\n try {\n bids = spec.interpretResponse(response, request);\n } catch (err) {\n logError(`Bidder ${spec.code} failed to interpret the server's response. Continuing without bids`, null, err);\n onResponse();\n return;\n }\n\n if (bids) {\n if (bids.forEach) {\n bids.forEach(addBidUsingRequestMap);\n } else {\n addBidUsingRequestMap(bids);\n }\n }\n onResponse(bids);\n\n function addBidUsingRequestMap(bid) {\n const bidRequest = bidRequestMap[bid.requestId];\n if (bidRequest) {\n const prebidBid = Object.assign(bidfactory.createBid(STATUS.GOOD, bidRequest), bid);\n addBidWithCode(bidRequest.adUnitCode, prebidBid);\n } else {\n logWarn(`Bidder ${spec.code} made bid for unknown request ID: ${bid.requestId}. Ignoring.`);\n }\n }\n\n function headerParser(xmlHttpResponse) {\n return {\n get: responseObj.getResponseHeader.bind(responseObj)\n };\n }\n }\n\n // If the server responds with an error, there's not much we can do. Log it, and make sure to\n // call onResponse() so that we're one step closer to calling done().\n function onFailure(err) {\n logError(`Server call for ${spec.code} failed: ${err}. Continuing without bids.`);\n onResponse();\n }\n }\n }\n });\n\n function registerSyncs(responses) {\n if (spec.getUserSyncs) {\n let syncs = spec.getUserSyncs({\n iframeEnabled: config.getConfig('userSync.iframeEnabled'),\n pixelEnabled: config.getConfig('userSync.pixelEnabled'),\n }, responses);\n if (syncs) {\n if (!Array.isArray(syncs)) {\n syncs = [syncs];\n }\n syncs.forEach((sync) => {\n userSync.registerSync(sync.type, spec.code, sync.url)\n });\n }\n }\n }\n\n function filterAndWarn(bid) {\n if (!spec.isBidRequestValid(bid)) {\n logWarn(`Invalid bid sent to bidder ${spec.code}: ${JSON.stringify(bid)}`);\n return false;\n }\n return true;\n }\n}\n\n// check that the bid has a width and height set\nfunction validBidSize(adUnitCode, bid, bidRequests) {\n if ((bid.width || bid.width === 0) && (bid.height || bid.height === 0)) {\n return true;\n }\n\n const adUnit = getBidderRequest(bidRequests, bid.bidderCode, adUnitCode);\n\n const sizes = adUnit && adUnit.bids && adUnit.bids[0] && adUnit.bids[0].sizes;\n const parsedSizes = parseSizesInput(sizes);\n\n // if a banner impression has one valid size, we assign that size to any bid\n // response that does not explicitly set width or height\n if (parsedSizes.length === 1) {\n const [ width, height ] = parsedSizes[0].split('x');\n bid.width = width;\n bid.height = height;\n return true;\n }\n\n return false;\n}\n\n// Validate the arguments sent to us by the adapter. If this returns false, the bid should be totally ignored.\nexport function isValid(adUnitCode, bid, bidRequests) {\n function hasValidKeys() {\n let bidKeys = Object.keys(bid);\n return COMMON_BID_RESPONSE_KEYS.every(key => includes(bidKeys, key));\n }\n\n function errorMessage(msg) {\n return `Invalid bid from ${bid.bidderCode}. Ignoring bid: ${msg}`;\n }\n\n if (!adUnitCode) {\n logWarn('No adUnitCode was supplied to addBidResponse.');\n return false;\n }\n\n if (!bid) {\n logWarn(`Some adapter tried to add an undefined bid for ${adUnitCode}.`);\n return false;\n }\n\n if (!hasValidKeys()) {\n logError(errorMessage(`Bidder ${bid.bidderCode} is missing required params. Check http://prebid.org/dev-docs/bidder-adapter-1.html for list of params.`));\n return false;\n }\n\n if (bid.mediaType === 'native' && !nativeBidIsValid(bid, bidRequests)) {\n logError(errorMessage('Native bid missing some required properties.'));\n return false;\n }\n if (bid.mediaType === 'video' && !isValidVideoBid(bid, bidRequests)) {\n logError(errorMessage(`Video bid does not have required vastUrl or renderer property`));\n return false;\n }\n if (bid.mediaType === 'banner' && !validBidSize(adUnitCode, bid, bidRequests)) {\n logError(errorMessage(`Banner bids require a width and height`));\n return false;\n }\n\n return true;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/adapters/bidderFactory.js","require('../../modules/es6.array.find');\nmodule.exports = require('../../modules/_core').Array.find;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/array/find.js\n// module id = 10\n// module chunks = 112","var utils = require('./utils');\nlet _requestCache = {};\n\n// add a script tag to the page, used to add /jpt call to page\nexports.loadScript = function (tagSrc, callback, cacheRequest) {\n // var noop = () => {};\n //\n // callback = callback || noop;\n if (!tagSrc) {\n utils.logError('Error attempting to request empty URL', 'adloader.js:loadScript');\n return;\n }\n\n if (cacheRequest) {\n if (_requestCache[tagSrc]) {\n if (callback && typeof callback === 'function') {\n if (_requestCache[tagSrc].loaded) {\n // invokeCallbacks immediately\n callback();\n } else {\n // queue the callback\n _requestCache[tagSrc].callbacks.push(callback);\n }\n }\n } else {\n _requestCache[tagSrc] = {\n loaded: false,\n callbacks: []\n };\n if (callback && typeof callback === 'function') {\n _requestCache[tagSrc].callbacks.push(callback);\n }\n\n requestResource(tagSrc, function () {\n _requestCache[tagSrc].loaded = true;\n try {\n for (let i = 0; i < _requestCache[tagSrc].callbacks.length; i++) {\n _requestCache[tagSrc].callbacks[i]();\n }\n } catch (e) {\n utils.logError('Error executing callback', 'adloader.js:loadScript', e);\n }\n });\n }\n } else {\n // trigger one time request\n requestResource(tagSrc, callback);\n }\n};\n\nfunction requestResource(tagSrc, callback) {\n var jptScript = document.createElement('script');\n jptScript.type = 'text/javascript';\n jptScript.async = true;\n\n // Execute a callback if necessary\n if (callback && typeof callback === 'function') {\n if (jptScript.readyState) {\n jptScript.onreadystatechange = function () {\n if (jptScript.readyState === 'loaded' || jptScript.readyState === 'complete') {\n jptScript.onreadystatechange = null;\n callback();\n }\n };\n } else {\n jptScript.onload = function () {\n callback();\n };\n }\n }\n\n jptScript.src = tagSrc;\n\n // add the new script tag to the page\n var elToAppend = document.getElementsByTagName('head');\n elToAppend = elToAppend.length ? elToAppend : document.getElementsByTagName('body');\n if (elToAppend.length) {\n elToAppend = elToAppend[0];\n elToAppend.insertBefore(jptScript, elToAppend.firstChild);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/adloader.js","export function parseQS(query) {\n return !query ? {} : query\n .replace(/^\\?/, '')\n .split('&')\n .reduce((acc, criteria) => {\n let [k, v] = criteria.split('=');\n if (/\\[\\]$/.test(k)) {\n k = k.replace('[]', '');\n acc[k] = acc[k] || [];\n acc[k].push(v);\n } else {\n acc[k] = v || '';\n }\n return acc;\n }, {});\n}\n\nexport function formatQS(query) {\n return Object\n .keys(query)\n .map(k => Array.isArray(query[k])\n ? query[k].map(v => `${k}[]=${v}`).join('&')\n : `${k}=${query[k]}`)\n .join('&');\n}\n\nexport function parse(url, options) {\n let parsed = document.createElement('a');\n if (options && 'noDecodeWholeURL' in options && options.noDecodeWholeURL) {\n parsed.href = url;\n } else {\n parsed.href = decodeURIComponent(url);\n }\n return {\n protocol: (parsed.protocol || '').replace(/:$/, ''),\n hostname: parsed.hostname,\n port: +parsed.port,\n pathname: parsed.pathname.replace(/^(?!\\/)/, '/'),\n search: parseQS(parsed.search || ''),\n hash: (parsed.hash || '').replace(/^#/, ''),\n host: parsed.host || window.location.host\n };\n}\n\nexport function format(obj) {\n return (obj.protocol || 'http') + '://' +\n (obj.host ||\n obj.hostname + (obj.port ? `:${obj.port}` : '')) +\n (obj.pathname || '') +\n (obj.search ? `?${formatQS(obj.search || '')}` : '') +\n (obj.hash ? `#${obj.hash}` : '');\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/url.js","import * as utils from 'src/utils';\nimport { config } from 'src/config';\n\n// Set userSync default values\nconfig.setDefaults({\n 'userSync': {\n syncEnabled: true,\n pixelEnabled: true,\n syncsPerBidder: 5,\n syncDelay: 3000\n }\n});\n\n/**\n * Factory function which creates a new UserSyncPool.\n *\n * @param {UserSyncDependencies} userSyncDependencies Configuration options and dependencies which the\n * UserSync object needs in order to behave properly.\n */\nexport function newUserSync(userSyncDependencies) {\n let publicApi = {};\n // A queue of user syncs for each adapter\n // Let getDefaultQueue() set the defaults\n let queue = getDefaultQueue();\n\n // Whether or not user syncs have been trigger on this page load\n let hasFired = false;\n // How many bids for each adapter\n let numAdapterBids = {};\n\n // Use what is in config by default\n let usConfig = userSyncDependencies.config;\n // Update if it's (re)set\n config.getConfig('userSync', (conf) => {\n usConfig = Object.assign(usConfig, conf.userSync);\n });\n\n /**\n * @function getDefaultQueue\n * @summary Returns the default empty queue\n * @private\n * @return {object} A queue with no syncs\n */\n function getDefaultQueue() {\n return {\n image: [],\n iframe: []\n };\n }\n\n /**\n * @function fireSyncs\n * @summary Trigger all user syncs in the queue\n * @private\n */\n function fireSyncs() {\n if (!usConfig.syncEnabled || !userSyncDependencies.browserSupportsCookies || hasFired) {\n return;\n }\n\n try {\n // Image pixels\n fireImagePixels();\n // Iframe syncs\n loadIframes();\n } catch (e) {\n return utils.logError('Error firing user syncs', e);\n }\n // Reset the user sync queue\n queue = getDefaultQueue();\n hasFired = true;\n }\n\n /**\n * @function fireImagePixels\n * @summary Loops through user sync pixels and fires each one\n * @private\n */\n function fireImagePixels() {\n if (!usConfig.pixelEnabled) {\n return;\n }\n // Randomize the order of the pixels before firing\n // This is to avoid giving any bidder who has registered multiple syncs\n // any preferential treatment and balancing them out\n utils.shuffle(queue.image).forEach((sync) => {\n let [bidderName, trackingPixelUrl] = sync;\n utils.logMessage(`Invoking image pixel user sync for bidder: ${bidderName}`);\n // Create image object and add the src url\n utils.triggerPixel(trackingPixelUrl);\n });\n }\n\n /**\n * @function loadIframes\n * @summary Loops through iframe syncs and loads an iframe element into the page\n * @private\n */\n function loadIframes() {\n if (!usConfig.iframeEnabled) {\n return;\n }\n // Randomize the order of these syncs just like the pixels above\n utils.shuffle(queue.iframe).forEach((sync) => {\n let [bidderName, iframeUrl] = sync;\n utils.logMessage(`Invoking iframe user sync for bidder: ${bidderName}`);\n // Insert iframe into DOM\n utils.insertUserSyncIframe(iframeUrl);\n });\n }\n\n /**\n * @function incrementAdapterBids\n * @summary Increment the count of user syncs queue for the adapter\n * @private\n * @params {object} numAdapterBids The object contain counts for all adapters\n * @params {string} bidder The name of the bidder adding a sync\n * @returns {object} The updated version of numAdapterBids\n */\n function incrementAdapterBids(numAdapterBids, bidder) {\n if (!numAdapterBids[bidder]) {\n numAdapterBids[bidder] = 1;\n } else {\n numAdapterBids[bidder] += 1;\n }\n return numAdapterBids;\n }\n\n /**\n * @function registerSync\n * @summary Add sync for this bidder to a queue to be fired later\n * @public\n * @params {string} type The type of the sync including image, iframe\n * @params {string} bidder The name of the adapter. e.g. \"rubicon\"\n * @params {string} url Either the pixel url or iframe url depending on the type\n\n * @example Using Image Sync\n * // registerSync(type, adapter, pixelUrl)\n * userSync.registerSync('image', 'rubicon', 'http://example.com/pixel')\n */\n publicApi.registerSync = (type, bidder, url) => {\n if (!usConfig.syncEnabled || !utils.isArray(queue[type])) {\n return utils.logWarn(`User sync type \"${type}\" not supported`);\n }\n if (!bidder) {\n return utils.logWarn(`Bidder is required for registering sync`);\n }\n if (Number(numAdapterBids[bidder]) >= usConfig.syncsPerBidder) {\n return utils.logWarn(`Number of user syncs exceeded for \"${bidder}\"`);\n }\n // All bidders are enabled by default. If specified only register for enabled bidders.\n let hasEnabledBidders = usConfig.enabledBidders && usConfig.enabledBidders.length;\n if (hasEnabledBidders && usConfig.enabledBidders.indexOf(bidder) < 0) {\n return utils.logWarn(`Bidder \"${bidder}\" not supported`);\n }\n queue[type].push([bidder, url]);\n numAdapterBids = incrementAdapterBids(numAdapterBids, bidder);\n };\n\n /**\n * @function syncUsers\n * @summary Trigger all the user syncs based on publisher-defined timeout\n * @public\n * @params {int} timeout The delay in ms before syncing data - default 0\n */\n publicApi.syncUsers = (timeout = 0) => {\n if (timeout) {\n return setTimeout(fireSyncs, Number(timeout));\n }\n fireSyncs();\n };\n\n /**\n * @function triggerUserSyncs\n * @summary A `syncUsers` wrapper for determining if enableOverride has been turned on\n * @public\n */\n publicApi.triggerUserSyncs = () => {\n if (usConfig.enableOverride) {\n publicApi.syncUsers();\n }\n };\n\n return publicApi;\n}\n\nconst browserSupportsCookies = !utils.isSafariBrowser() && utils.cookiesAreEnabled();\n\nexport const userSync = newUserSync({\n config: config.getConfig('userSync'),\n browserSupportsCookies: browserSupportsCookies\n});\n\n/**\n * @typedef {Object} UserSyncDependencies\n *\n * @property {UserSyncConfig} config\n * @property {boolean} browserSupportsCookies True if the current browser supports cookies, and false otherwise.\n */\n\n/**\n * @typedef {Object} UserSyncConfig\n *\n * @property {boolean} enableOverride\n * @property {boolean} syncEnabled\n * @property {boolean} pixelEnabled\n * @property {boolean} iframeEnabled\n * @property {int} syncsPerBidder\n * @property {string[]} enabledBidders\n */\n\n\n\n// WEBPACK FOOTER //\n// ./src/userSync.js","import { deepAccess, getBidRequest, logError, triggerPixel } from './utils';\nimport includes from 'core-js/library/fn/array/includes';\n\nexport const nativeAdapters = [];\n\nexport const NATIVE_KEYS = {\n title: 'hb_native_title',\n body: 'hb_native_body',\n sponsoredBy: 'hb_native_brand',\n image: 'hb_native_image',\n icon: 'hb_native_icon',\n clickUrl: 'hb_native_linkurl',\n cta: 'hb_native_cta',\n};\n\nexport const NATIVE_TARGETING_KEYS = Object.keys(NATIVE_KEYS).map(\n key => NATIVE_KEYS[key]\n);\n\nconst IMAGE = {\n image: { required: true },\n title: { required: true },\n sponsoredBy: { required: true },\n clickUrl: { required: true },\n body: { required: false },\n icon: { required: false },\n};\n\nconst SUPPORTED_TYPES = {\n image: IMAGE\n};\n\n/**\n * Recieves nativeParams from an adUnit. If the params were not of type 'type',\n * passes them on directly. If they were of type 'type', translate\n * them into the predefined specific asset requests for that type of native ad.\n */\nexport function processNativeAdUnitParams(params) {\n if (params && params.type && typeIsSupported(params.type)) {\n return SUPPORTED_TYPES[params.type];\n }\n\n return params;\n}\n\n/**\n * Check if the native type specified in the adUnit is supported by Prebid.\n */\nfunction typeIsSupported(type) {\n if (!(type && includes(Object.keys(SUPPORTED_TYPES), type))) {\n logError(`${type} nativeParam is not supported`);\n return false;\n }\n\n return true;\n}\n\n/**\n * Helper functions for working with native-enabled adUnits\n * TODO: abstract this and the video helper functions into general\n * adunit validation helper functions\n */\nexport const nativeAdUnit = adUnit => {\n const mediaType = adUnit.mediaType === 'native';\n const mediaTypes = deepAccess(adUnit, 'mediaTypes.native');\n return mediaType || mediaTypes;\n}\nexport const nativeBidder = bid => includes(nativeAdapters, bid.bidder);\nexport const hasNonNativeBidder = adUnit =>\n adUnit.bids.filter(bid => !nativeBidder(bid)).length;\n\n/**\n * Validate that the native assets on this bid contain all assets that were\n * marked as required in the adUnit configuration.\n * @param {Bid} bid Native bid to validate\n * @param {BidRequest[]} bidRequests All bid requests for an auction\n * @return {Boolean} If object is valid\n */\nexport function nativeBidIsValid(bid, bidRequests) {\n const bidRequest = getBidRequest(bid.adId, bidRequests);\n if (!bidRequest) { return false; }\n\n // all native bid responses must define a landing page url\n if (!deepAccess(bid, 'native.clickUrl')) {\n return false;\n }\n\n if (deepAccess(bid, 'native.image')) {\n if (!deepAccess(bid, 'native.image.height') || !deepAccess(bid, 'native.image.width')) {\n return false;\n }\n }\n\n if (deepAccess(bid, 'native.icon')) {\n if (!deepAccess(bid, 'native.icon.height') || !deepAccess(bid, 'native.icon.width')) {\n return false;\n }\n }\n\n const requestedAssets = bidRequest.nativeParams;\n if (!requestedAssets) {\n return true;\n }\n\n const requiredAssets = Object.keys(requestedAssets).filter(\n key => requestedAssets[key].required\n );\n const returnedAssets = Object.keys(bid['native']).filter(\n key => bid['native'][key]\n );\n\n return requiredAssets.every(asset => includes(returnedAssets, asset));\n}\n\n/*\n * Native responses may have associated impression or click trackers.\n * This retrieves the appropriate tracker urls for the given ad object and\n * fires them. As a native creatives may be in a cross-origin frame, it may be\n * necessary to invoke this function via postMessage. secureCreatives is\n * configured to fire this function when it receives a `message` of 'Prebid Native'\n * and an `adId` with the value of the `bid.adId`. When a message is posted with\n * these parameters, impression trackers are fired. To fire click trackers, the\n * message should contain an `action` set to 'click'.\n *\n * // Native creative template example usage\n * \n * %%PATTERN:hb_native_title%%\n * \n *\n * \n */\nexport function fireNativeTrackers(message, adObject) {\n let trackers;\n\n if (message.action === 'click') {\n trackers = adObject['native'] && adObject['native'].clickTrackers;\n } else {\n trackers = adObject['native'] && adObject['native'].impressionTrackers;\n }\n\n (trackers || []).forEach(triggerPixel);\n}\n\n/**\n * Gets native targeting key-value paris\n * @param {Object} bid\n * @return {Object} targeting\n */\nexport function getNativeTargeting(bid) {\n let keyValues = {};\n\n Object.keys(bid['native']).forEach(asset => {\n const key = NATIVE_KEYS[asset];\n let value = bid['native'][asset];\n\n // native image-type assets can be a string or an object with a url prop\n if (typeof value === 'object' && value.url) {\n value = value.url;\n }\n\n if (key) {\n keyValues[key] = value;\n }\n });\n\n return keyValues;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/native.js","/**\n * Module for auction instances.\n *\n * In Prebid 0.x, pbjs had _bidsRequested and _bidsReceived as public properties.\n * Starting 1.0, Prebid will support concurrent auctions. Each auction instance will store private properties, bidsRequested and bidsReceived.\n *\n * AuctionManager will create instance of auction and will store all the auctions.\n *\n */\n\n/**\n * @typedef {Object} AdUnit An object containing the adUnit configuration.\n *\n * @property {string} code A code which will be used to uniquely identify this bidder. This should be the same\n * one as is used in the call to registerBidAdapter\n * @property {Array.} sizes A list of size for adUnit.\n * @property {object} params Any bidder-specific params which the publisher used in their bid request.\n * This is guaranteed to have passed the spec.areParamsValid() test.\n */\n\n/**\n * @typedef {Array.} size\n */\n\n/**\n * @typedef {Array.} AdUnitCode\n */\n\n/**\n * @typedef {Object} BidRequest\n * //TODO add all properties\n */\n\n/**\n * @typedef {Object} BidReceived\n * //TODO add all properties\n */\n\n/**\n * @typedef {Object} Auction\n *\n * @property {function(): string} getAuctionStatus - returns the auction status which can be any one of 'started', 'in progress' or 'completed'\n * @property {function(): AdUnit[]} getAdUnits - return the adUnits for this auction instance\n * @property {function(): AdUnitCode[]} getAdUnitCodes - return the adUnitCodes for this auction instance\n * @property {function(): BidRequest[]} getBidRequests - get all bid requests for this auction instance\n * @property {function(): BidReceived[]} getBidsReceived - get all bid received for this auction instance\n * @property {function(): void} startAuctionTimer - sets the bidsBackHandler callback and starts the timer for auction\n * @property {function(): void} callBids - sends requests to all adapters for bids\n */\n\nimport { uniques, flatten, timestamp, adUnitsFilter, delayExecution, getBidderRequest } from './utils';\nimport { getPriceBucketString } from './cpmBucketManager';\nimport { getNativeTargeting } from './native';\nimport { getCacheUrl, store } from './videoCache';\nimport { Renderer } from 'src/Renderer';\nimport { config } from 'src/config';\nimport { userSync } from 'src/userSync';\nimport { createHook } from 'src/hook';\nimport find from 'core-js/library/fn/array/find';\nimport includes from 'core-js/library/fn/array/includes';\n\nconst { syncUsers } = userSync;\nconst utils = require('./utils');\nconst adaptermanager = require('./adaptermanager');\nconst events = require('./events');\nconst CONSTANTS = require('./constants.json');\n\nexport const AUCTION_STARTED = 'started';\nexport const AUCTION_IN_PROGRESS = 'inProgress';\nexport const AUCTION_COMPLETED = 'completed';\n\n// register event for bid adjustment\nevents.on(CONSTANTS.EVENTS.BID_ADJUSTMENT, function (bid) {\n adjustBids(bid);\n});\n\n/**\n * Creates new auction instance\n *\n * @param {Object} requestConfig\n * @param {AdUnit} requestConfig.adUnits\n * @param {AdUnitCode} requestConfig.adUnitCode\n *\n * @returns {Auction} auction instance\n */\nexport function newAuction({adUnits, adUnitCodes, callback, cbTimeout, labels}) {\n let _adUnits = adUnits;\n let _labels = labels;\n let _adUnitCodes = adUnitCodes;\n let _bidderRequests = [];\n let _bidsReceived = [];\n let _auctionStart;\n let _auctionId = utils.generateUUID();\n let _auctionStatus;\n let _callback = callback;\n let _timer;\n let _timeout = cbTimeout;\n let _winningBid;\n\n function addBidRequests(bidderRequests) { _bidderRequests = _bidderRequests.concat(bidderRequests) };\n function addBidReceived(bidsReceived) { _bidsReceived = _bidsReceived.concat(bidsReceived); }\n\n function startAuctionTimer() {\n const timedOut = true;\n const timeoutCallback = executeCallback.bind(null, timedOut);\n let timer = setTimeout(timeoutCallback, _timeout);\n _timer = timer;\n }\n\n function executeCallback(timedOut, cleartimer) {\n // clear timer when done calls executeCallback\n if (cleartimer) {\n clearTimeout(_timer);\n }\n\n if (_callback != null) {\n if (timedOut) {\n utils.logMessage(`Auction ${_auctionId} timedOut`);\n const timedOutBidders = getTimedOutBids(_bidderRequests, _bidsReceived);\n if (timedOutBidders.length) {\n events.emit(CONSTANTS.EVENTS.BID_TIMEOUT, timedOutBidders);\n }\n }\n\n events.emit(CONSTANTS.EVENTS.AUCTION_END, {auctionId: _auctionId});\n\n try {\n _auctionStatus = AUCTION_COMPLETED;\n const adUnitCodes = _adUnitCodes;\n const bids = [_bidsReceived\n .filter(adUnitsFilter.bind(this, adUnitCodes))\n .reduce(groupByPlacement, {})];\n _callback.apply(pbjs, bids);\n } catch (e) {\n utils.logError('Error executing bidsBackHandler', null, e);\n } finally {\n // Only automatically sync if the publisher has not chosen to \"enableOverride\"\n let userSyncConfig = config.getConfig('userSync') || {};\n if (!userSyncConfig.enableOverride) {\n // Delay the auto sync by the config delay\n syncUsers(userSyncConfig.syncDelay);\n }\n }\n _callback = null;\n }\n }\n\n function done(bidRequestId) {\n const innerBidRequestId = bidRequestId;\n return delayExecution(function() {\n const request = find(_bidderRequests, (bidRequest) => {\n return innerBidRequestId === bidRequest.bidderRequestId;\n });\n\n // this is done for cache-enabled video bids in tryAddVideoBids, after the cache is stored\n request.doneCbCallCount += 1;\n bidsBackAll();\n }, 1);\n }\n\n /**\n * Execute bidBackHandler if all bidders have called done.\n */\n function bidsBackAll() {\n if (_bidderRequests.every((bidRequest) => bidRequest.doneCbCallCount >= 1)) {\n // when all bidders have called done callback atleast once it means auction is complete\n utils.logInfo(`Bids Received for Auction with id: ${_auctionId}`, _bidsReceived);\n _auctionStatus = AUCTION_COMPLETED;\n executeCallback(false, true);\n }\n }\n\n function callBids() {\n startAuctionTimer();\n _auctionStatus = AUCTION_STARTED;\n _auctionStart = Date.now();\n\n const auctionInit = {\n timestamp: _auctionStart,\n auctionId: _auctionId,\n timeout: _timeout\n };\n events.emit(CONSTANTS.EVENTS.AUCTION_INIT, auctionInit);\n\n let bidRequests = adaptermanager.makeBidRequests(_adUnits, _auctionStart, _auctionId, _timeout, _labels);\n utils.logInfo(`Bids Requested for Auction with id: ${_auctionId}`, bidRequests);\n bidRequests.forEach(bidRequest => {\n addBidRequests(bidRequest);\n });\n\n _auctionStatus = AUCTION_IN_PROGRESS;\n adaptermanager.callBids(_adUnits, bidRequests, addBidResponse.bind(this), done.bind(this));\n };\n\n return {\n addBidReceived,\n executeCallback,\n callBids,\n bidsBackAll,\n setWinningBid: (winningBid) => { _winningBid = winningBid },\n getWinningBid: () => _winningBid,\n getTimeout: () => _timeout,\n getAuctionId: () => _auctionId,\n getAuctionStatus: () => _auctionStatus,\n getAdUnits: () => _adUnits,\n getAdUnitCodes: () => _adUnitCodes,\n getBidRequests: () => _bidderRequests,\n getBidsReceived: () => _bidsReceived,\n }\n}\n\nfunction doCallbacksIfTimedout(auctionInstance, bidResponse) {\n if (bidResponse.timeToRespond > auctionInstance.getTimeout() + config.getConfig('timeoutBuffer')) {\n auctionInstance.executeCallback(true);\n }\n}\n\n// Add a bid to the auction.\nfunction addBidToAuction(auctionInstance, bidResponse) {\n events.emit(CONSTANTS.EVENTS.BID_RESPONSE, bidResponse);\n auctionInstance.addBidReceived(bidResponse);\n\n doCallbacksIfTimedout(auctionInstance, bidResponse);\n}\n\n// Video bids may fail if the cache is down, or there's trouble on the network.\nfunction tryAddVideoBid(auctionInstance, bidResponse, bidRequest) {\n let addBid = true;\n if (config.getConfig('cache.url')) {\n if (!bidResponse.videoCacheKey) {\n addBid = false;\n store([bidResponse], function (error, cacheIds) {\n if (error) {\n utils.logWarn(`Failed to save to the video cache: ${error}. Video bid must be discarded.`);\n\n doCallbacksIfTimedout(auctionInstance, bidResponse);\n } else {\n bidResponse.videoCacheKey = cacheIds[0].uuid;\n if (!bidResponse.vastUrl) {\n bidResponse.vastUrl = getCacheUrl(bidResponse.videoCacheKey);\n }\n // only set this prop after the bid has been cached to avoid early ending auction early in bidsBackAll\n bidRequest.doneCbCallCount += 1;\n addBidToAuction(auctionInstance, bidResponse);\n auctionInstance.bidsBackAll();\n }\n });\n } else if (!bidResponse.vastUrl) {\n utils.logError('videoCacheKey specified but not required vastUrl for video bid');\n addBid = false;\n }\n }\n if (addBid) {\n addBidToAuction(auctionInstance, bidResponse);\n }\n}\n\nexport const addBidResponse = createHook('asyncSeries', function(adUnitCode, bid) {\n let auctionInstance = this;\n let bidRequests = auctionInstance.getBidRequests();\n let auctionId = auctionInstance.getAuctionId();\n\n let bidRequest = getBidderRequest(bidRequests, bid.bidderCode, adUnitCode);\n let bidResponse = getPreparedBidForAuction({adUnitCode, bid, bidRequest, auctionId});\n\n if (bidResponse.mediaType === 'video') {\n tryAddVideoBid(auctionInstance, bidResponse, bidRequest);\n } else {\n addBidToAuction(auctionInstance, bidResponse);\n }\n}, 'addBidResponse');\n\n// Postprocess the bids so that all the universal properties exist, no matter which bidder they came from.\n// This should be called before addBidToAuction().\nfunction getPreparedBidForAuction({adUnitCode, bid, bidRequest, auctionId}) {\n const start = bidRequest.start;\n\n let bidObject = Object.assign({}, bid, {\n auctionId,\n responseTimestamp: timestamp(),\n requestTimestamp: start,\n cpm: parseFloat(bid.cpm) || 0,\n bidder: bid.bidderCode,\n adUnitCode\n });\n\n bidObject.timeToRespond = bidObject.responseTimestamp - bidObject.requestTimestamp;\n\n // Let listeners know that now is the time to adjust the bid, if they want to.\n //\n // CAREFUL: Publishers rely on certain bid properties to be available (like cpm),\n // but others to not be set yet (like priceStrings). See #1372 and #1389.\n events.emit(CONSTANTS.EVENTS.BID_ADJUSTMENT, bidObject);\n\n // a publisher-defined renderer can be used to render bids\n const adUnitRenderer =\n bidRequest.bids && bidRequest.bids[0] && bidRequest.bids[0].renderer;\n\n if (adUnitRenderer && adUnitRenderer.url) {\n bidObject.renderer = Renderer.install({ url: adUnitRenderer.url });\n bidObject.renderer.setRender(adUnitRenderer.render);\n }\n\n const priceStringsObj = getPriceBucketString(\n bidObject.cpm,\n config.getConfig('customPriceBucket'),\n config.getConfig('currency.granularityMultiplier')\n );\n bidObject.pbLg = priceStringsObj.low;\n bidObject.pbMg = priceStringsObj.med;\n bidObject.pbHg = priceStringsObj.high;\n bidObject.pbAg = priceStringsObj.auto;\n bidObject.pbDg = priceStringsObj.dense;\n bidObject.pbCg = priceStringsObj.custom;\n\n // if there is any key value pairs to map do here\n var keyValues;\n if (bidObject.bidderCode && (bidObject.cpm > 0 || bidObject.dealId)) {\n keyValues = getKeyValueTargetingPairs(bidObject.bidderCode, bidObject);\n }\n\n // use any targeting provided as defaults, otherwise just set from getKeyValueTargetingPairs\n bidObject.adserverTargeting = Object.assign(bidObject.adserverTargeting || {}, keyValues);\n\n return bidObject;\n}\n\nexport function getStandardBidderSettings() {\n let granularity = config.getConfig('priceGranularity');\n let bidder_settings = pbjs.bidderSettings;\n if (!bidder_settings[CONSTANTS.JSON_MAPPING.BD_SETTING_STANDARD]) {\n bidder_settings[CONSTANTS.JSON_MAPPING.BD_SETTING_STANDARD] = {};\n }\n if (!bidder_settings[CONSTANTS.JSON_MAPPING.BD_SETTING_STANDARD][CONSTANTS.JSON_MAPPING.ADSERVER_TARGETING]) {\n bidder_settings[CONSTANTS.JSON_MAPPING.BD_SETTING_STANDARD][CONSTANTS.JSON_MAPPING.ADSERVER_TARGETING] = [\n {\n key: 'hb_bidder',\n val: function (bidResponse) {\n return bidResponse.bidderCode;\n }\n }, {\n key: 'hb_adid',\n val: function (bidResponse) {\n return bidResponse.adId;\n }\n }, {\n key: 'hb_pb',\n val: function (bidResponse) {\n if (granularity === CONSTANTS.GRANULARITY_OPTIONS.AUTO) {\n return bidResponse.pbAg;\n } else if (granularity === CONSTANTS.GRANULARITY_OPTIONS.DENSE) {\n return bidResponse.pbDg;\n } else if (granularity === CONSTANTS.GRANULARITY_OPTIONS.LOW) {\n return bidResponse.pbLg;\n } else if (granularity === CONSTANTS.GRANULARITY_OPTIONS.MEDIUM) {\n return bidResponse.pbMg;\n } else if (granularity === CONSTANTS.GRANULARITY_OPTIONS.HIGH) {\n return bidResponse.pbHg;\n } else if (granularity === CONSTANTS.GRANULARITY_OPTIONS.CUSTOM) {\n return bidResponse.pbCg;\n }\n }\n }, {\n key: 'hb_size',\n val: function (bidResponse) {\n return bidResponse.size;\n }\n }, {\n key: 'hb_deal',\n val: function (bidResponse) {\n return bidResponse.dealId;\n }\n },\n {\n key: 'hb_source',\n val: function (bidResponse) {\n return bidResponse.source;\n }\n },\n {\n key: 'hb_format',\n val: function (bidResponse) {\n return bidResponse.mediaType;\n }\n },\n ]\n }\n return bidder_settings[CONSTANTS.JSON_MAPPING.BD_SETTING_STANDARD];\n}\n\nexport function getKeyValueTargetingPairs(bidderCode, custBidObj) {\n if (!custBidObj) {\n return {};\n }\n\n var keyValues = {};\n var bidder_settings = pbjs.bidderSettings;\n\n // 1) set the keys from \"standard\" setting or from prebid defaults\n if (bidder_settings) {\n // initialize default if not set\n const standardSettings = getStandardBidderSettings();\n setKeys(keyValues, standardSettings, custBidObj);\n\n // 2) set keys from specific bidder setting override if they exist\n if (bidderCode && bidder_settings[bidderCode] && bidder_settings[bidderCode][CONSTANTS.JSON_MAPPING.ADSERVER_TARGETING]) {\n setKeys(keyValues, bidder_settings[bidderCode], custBidObj);\n custBidObj.sendStandardTargeting = bidder_settings[bidderCode].sendStandardTargeting;\n }\n }\n\n // set native key value targeting\n if (custBidObj['native']) {\n keyValues = Object.assign({}, keyValues, getNativeTargeting(custBidObj));\n }\n\n return keyValues;\n}\n\nfunction setKeys(keyValues, bidderSettings, custBidObj) {\n var targeting = bidderSettings[CONSTANTS.JSON_MAPPING.ADSERVER_TARGETING];\n custBidObj.size = custBidObj.getSize();\n\n utils._each(targeting, function (kvPair) {\n var key = kvPair.key;\n var value = kvPair.val;\n\n if (keyValues[key]) {\n utils.logWarn('The key: ' + key + ' is getting ovewritten');\n }\n\n if (utils.isFn(value)) {\n try {\n value = value(custBidObj);\n } catch (e) {\n utils.logError('bidmanager', 'ERROR', e);\n }\n }\n\n if (\n ((typeof bidderSettings.suppressEmptyKeys !== 'undefined' && bidderSettings.suppressEmptyKeys === true) ||\n key === 'hb_deal') && // hb_deal is suppressed automatically if not set\n (\n utils.isEmptyStr(value) ||\n value === null ||\n value === undefined\n )\n ) {\n utils.logInfo(\"suppressing empty key '\" + key + \"' from adserver targeting\");\n } else {\n keyValues[key] = value;\n }\n });\n\n return keyValues;\n}\n\nexport function adjustBids(bid) {\n let code = bid.bidderCode;\n let bidPriceAdjusted = bid.cpm;\n let bidCpmAdjustment;\n if (pbjs.bidderSettings) {\n if (code && pbjs.bidderSettings[code] && typeof pbjs.bidderSettings[code].bidCpmAdjustment === 'function') {\n bidCpmAdjustment = pbjs.bidderSettings[code].bidCpmAdjustment;\n } else if (pbjs.bidderSettings[CONSTANTS.JSON_MAPPING.BD_SETTING_STANDARD] && typeof pbjs.bidderSettings[CONSTANTS.JSON_MAPPING.BD_SETTING_STANDARD].bidCpmAdjustment === 'function') {\n bidCpmAdjustment = pbjs.bidderSettings[CONSTANTS.JSON_MAPPING.BD_SETTING_STANDARD].bidCpmAdjustment;\n }\n if (bidCpmAdjustment) {\n try {\n bidPriceAdjusted = bidCpmAdjustment(bid.cpm, Object.assign({}, bid));\n } catch (e) {\n utils.logError('Error during bid adjustment', 'bidmanager.js', e);\n }\n }\n }\n\n if (bidPriceAdjusted >= 0) {\n bid.cpm = bidPriceAdjusted;\n }\n}\n\n/**\n * groupByPlacement is a reduce function that converts an array of Bid objects\n * to an object with placement codes as keys, with each key representing an object\n * with an array of `Bid` objects for that placement\n * @returns {*} as { [adUnitCode]: { bids: [Bid, Bid, Bid] } }\n */\nfunction groupByPlacement(bidsByPlacement, bid) {\n if (!bidsByPlacement[bid.adUnitCode]) { bidsByPlacement[bid.adUnitCode] = { bids: [] }; }\n bidsByPlacement[bid.adUnitCode].bids.push(bid);\n return bidsByPlacement;\n}\n\n/**\n * Returns a list of bids that we haven't received a response yet where the bidder did not call done\n * @param {BidRequest[]} bidderRequests List of bids requested for auction instance\n * @param {BidReceived[]} bidsReceived List of bids received for auction instance\n *\n * @typedef {Object} TimedOutBid\n * @property {string} bidId The id representing the bid\n * @property {string} bidder The string name of the bidder\n * @property {string} adUnitCode The code used to uniquely identify the ad unit on the publisher's page\n * @property {string} auctionId The id representing the auction\n *\n * @return {Array} List of bids that Prebid hasn't received a response for\n */\nfunction getTimedOutBids(bidderRequests, bidsReceived) {\n const bidRequestedWithoutDoneCodes = bidderRequests\n .filter(bidderRequest => !bidderRequest.doneCbCallCount)\n .map(bid => bid.bidderCode)\n .filter(uniques);\n\n const bidReceivedCodes = bidsReceived\n .map(bid => bid.bidder)\n .filter(uniques);\n\n const timedOutBidderCodes = bidRequestedWithoutDoneCodes\n .filter(bidder => !includes(bidReceivedCodes, bidder));\n\n const timedOutBids = bidderRequests\n .map(bid => (bid.bids || []).filter(bid => includes(timedOutBidderCodes, bid.bidder)))\n .reduce(flatten, [])\n .map(bid => ({\n bidId: bid.bidId,\n bidder: bid.bidder,\n adUnitCode: bid.adUnitCode,\n auctionId: bid.auctionId,\n }));\n\n return timedOutBids;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/auction.js","var utils = require('./utils.js');\n\n/**\n Required paramaters\n bidderCode,\n height,\n width,\n statusCode\n Optional paramaters\n adId,\n cpm,\n ad,\n adUrl,\n dealId,\n priceKeyString;\n */\nfunction Bid(statusCode, bidRequest) {\n var _bidId = (bidRequest && bidRequest.bidId) || utils.getUniqueIdentifierStr();\n var _bidSrc = (bidRequest && bidRequest.src) || 'client';\n var _statusCode = statusCode || 0;\n\n this.bidderCode = (bidRequest && bidRequest.bidder) || '';\n this.width = 0;\n this.height = 0;\n this.statusMessage = _getStatus();\n this.adId = _bidId;\n this.mediaType = 'banner';\n this.source = _bidSrc;\n\n function _getStatus() {\n switch (_statusCode) {\n case 0:\n return 'Pending';\n case 1:\n return 'Bid available';\n case 2:\n return 'Bid returned empty or error response';\n case 3:\n return 'Bid timed out';\n }\n }\n\n this.getStatusCode = function () {\n return _statusCode;\n };\n\n // returns the size of the bid creative. Concatenation of width and height by ‘x’.\n this.getSize = function () {\n return this.width + 'x' + this.height;\n };\n}\n\n// Bid factory function.\nexports.createBid = function (statusCode, bidRequest) {\n return new Bid(statusCode, bidRequest);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/bidfactory.js","/**\n * This module interacts with the server used to cache video ad content to be restored later.\n * At a high level, the expected workflow goes like this:\n *\n * - Request video ads from Bidders\n * - Generate IDs for each valid bid, and cache the key/value pair on the server.\n * - Return these IDs so that publishers can use them to fetch the bids later.\n *\n * This trickery helps integrate with ad servers, which set character limits on request params.\n */\n\nimport { ajax } from './ajax';\nimport { config } from '../src/config';\n\n/**\n * @typedef {object} CacheableUrlBid\n * @property {string} vastUrl A URL which loads some valid VAST XML.\n */\n\n/**\n * @typedef {object} CacheablePayloadBid\n * @property {string} vastXml Some VAST XML which loads an ad in a video player.\n */\n\n/**\n * A CacheableBid describes the types which the videoCache can store.\n *\n * @typedef {CacheableUrlBid|CacheablePayloadBid} CacheableBid\n */\n\n/**\n * Function which wraps a URI that serves VAST XML, so that it can be loaded.\n *\n * @param {string} uri The URI where the VAST content can be found.\n * @return A VAST URL which loads XML from the given URI.\n */\nfunction wrapURI(uri) {\n // Technically, this is vulnerable to cross-script injection by sketchy vastUrl bids.\n // We could make sure it's a valid URI... but since we're loading VAST XML from the\n // URL they provide anyway, that's probably not a big deal.\n return `\n \n \n prebid.org wrapper\n \n \n \n \n \n `;\n}\n\n/**\n * Wraps a bid in the format expected by the prebid-server endpoints, or returns null if\n * the bid can't be converted cleanly.\n *\n * @param {CacheableBid} bid\n */\nfunction toStorageRequest(bid) {\n const vastValue = bid.vastXml ? bid.vastXml : wrapURI(bid.vastUrl);\n return {\n type: 'xml',\n value: vastValue\n };\n}\n\n/**\n * A function which should be called with the results of the storage operation.\n *\n * @callback videoCacheStoreCallback\n *\n * @param {Error} [error] The error, if one occurred.\n * @param {?string[]} uuids An array of unique IDs. The array will have one element for each bid we were asked\n * to store. It may include null elements if some of the bids were malformed, or an error occurred.\n * Each non-null element in this array is a valid input into the retrieve function, which will fetch\n * some VAST XML which can be used to render this bid's ad.\n */\n\n/**\n * A function which bridges the APIs between the videoCacheStoreCallback and our ajax function's API.\n *\n * @param {videoCacheStoreCallback} done A callback to the \"store\" function.\n * @return {Function} A callback which interprets the cache server's responses, and makes up the right\n * arguments for our callback.\n */\nfunction shimStorageCallback(done) {\n return {\n success: function(responseBody) {\n let ids;\n try {\n ids = JSON.parse(responseBody).responses\n } catch (e) {\n done(e, []);\n return;\n }\n\n if (ids) {\n done(null, ids);\n } else {\n done(new Error(\"The cache server didn't respond with a responses property.\"), []);\n }\n },\n error: function(statusText, responseBody) {\n done(new Error(`Error storing video ad in the cache: ${statusText}: ${JSON.stringify(responseBody)}`), []);\n }\n }\n}\n\n/**\n * If the given bid is for a Video ad, generate a unique ID and cache it somewhere server-side.\n *\n * @param {CacheableBid[]} bids A list of bid objects which should be cached.\n * @param {videoCacheStoreCallback} [done] An optional callback which should be executed after\n * the data has been stored in the cache.\n */\nexport function store(bids, done) {\n const requestData = {\n puts: bids.map(toStorageRequest)\n };\n\n ajax(config.getConfig('cache.url'), shimStorageCallback(done), JSON.stringify(requestData), {\n contentType: 'text/plain',\n withCredentials: true\n });\n}\n\nexport function getCacheUrl(id) {\n return `${config.getConfig('cache.url')}?uuid=${id}`;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/videoCache.js","import { loadScript } from './adloader';\nimport * as utils from './utils';\n\n/**\n * @typedef {object} Renderer\n *\n * A Renderer stores some functions which are used to render a particular Bid.\n * These are used in Outstream Video Bids, returned on the Bid by the adapter, and will\n * be used to render that bid unless the Publisher overrides them.\n */\n\nexport function Renderer(options) {\n const { url, config, id, callback, loaded } = options;\n this.url = url;\n this.config = config;\n this.handlers = {};\n this.id = id;\n\n // a renderer may push to the command queue to delay rendering until the\n // render function is loaded by loadScript, at which point the the command\n // queue will be processed\n this.loaded = loaded;\n this.cmd = [];\n this.push = func => {\n if (typeof func !== 'function') {\n utils.logError('Commands given to Renderer.push must be wrapped in a function');\n return;\n }\n this.loaded ? func.call() : this.cmd.push(func);\n };\n\n // bidders may override this with the `callback` property given to `install`\n this.callback = callback || (() => {\n this.loaded = true;\n this.process();\n });\n\n // we expect to load a renderer url once only so cache the request to load script\n loadScript(url, this.callback, true);\n}\n\nRenderer.install = function({ url, config, id, callback, loaded }) {\n return new Renderer({ url, config, id, callback, loaded });\n};\n\nRenderer.prototype.getConfig = function() {\n return this.config;\n};\n\nRenderer.prototype.setRender = function(fn) {\n this.render = fn;\n};\n\nRenderer.prototype.setEventHandlers = function(handlers) {\n this.handlers = handlers;\n};\n\nRenderer.prototype.handleVideoEvent = function({ id, eventName }) {\n if (typeof this.handlers[eventName] === 'function') {\n this.handlers[eventName]();\n }\n\n utils.logMessage(`Prebid Renderer event for id ${id} type ${eventName}`);\n};\n\n/*\n * Calls functions that were pushed to the command queue before the\n * renderer was loaded by `loadScript`\n */\nRenderer.prototype.process = function() {\n while (this.cmd.length > 0) {\n try {\n this.cmd.shift().call();\n } catch (error) {\n utils.logError('Error processing Renderer command: ', error);\n }\n }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/Renderer.js","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_global.js\n// module id = 17\n// module chunks = 112","var core = module.exports = { version: '2.5.3' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_core.js\n// module id = 18\n// module chunks = 112","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_is-object.js\n// module id = 19\n// module chunks = 112","/*\n * Module for getting and setting Prebid configuration.\n *\n * Prebid previously defined these properties directly on the global object:\n * pbjs.logging = true;\n *\n * Defining and access properties in this way is now deprecated, but these will\n * continue to work during a deprecation window.\n */\nimport { isValidPriceConfig } from './cpmBucketManager';\nimport find from 'core-js/library/fn/array/find';\nimport includes from 'core-js/library/fn/array/includes';\nimport { createHook } from 'src/hook';\nconst utils = require('./utils');\n\nconst DEFAULT_DEBUG = false;\nconst DEFAULT_BIDDER_TIMEOUT = 3000;\nconst DEFAULT_PUBLISHER_DOMAIN = window.location.origin;\nconst DEFAULT_COOKIESYNC_DELAY = 100;\nconst DEFAULT_ENABLE_SEND_ALL_BIDS = true;\n\nconst DEFAULT_TIMEOUTBUFFER = 200;\n\nexport const RANDOM = 'random';\nconst FIXED = 'fixed';\n\nconst VALID_ORDERS = {};\nVALID_ORDERS[RANDOM] = true;\nVALID_ORDERS[FIXED] = true;\n\nconst DEFAULT_BIDDER_SEQUENCE = RANDOM;\n\nconst GRANULARITY_OPTIONS = {\n LOW: 'low',\n MEDIUM: 'medium',\n HIGH: 'high',\n AUTO: 'auto',\n DENSE: 'dense',\n CUSTOM: 'custom'\n};\n\nconst ALL_TOPICS = '*';\n\n/**\n * @typedef {object} PrebidConfig\n *\n * @property {string} cache.url Set a url if we should use prebid-cache to store video bids before adding\n * bids to the auction. **NOTE** This must be set if you want to use the dfpAdServerVideo module.\n */\n\nexport function newConfig() {\n let listeners = [];\n let defaults;\n let config;\n\n function resetConfig() {\n defaults = {};\n config = {\n // `debug` is equivalent to legacy `pbjs.logging` property\n _debug: DEFAULT_DEBUG,\n get debug() {\n return this._debug;\n },\n set debug(val) {\n this._debug = val;\n },\n\n // default timeout for all bids\n _bidderTimeout: DEFAULT_BIDDER_TIMEOUT,\n get bidderTimeout() {\n return this._bidderTimeout;\n },\n set bidderTimeout(val) {\n this._bidderTimeout = val;\n },\n\n // domain where prebid is running for cross domain iframe communication\n _publisherDomain: DEFAULT_PUBLISHER_DOMAIN,\n get publisherDomain() {\n return this._publisherDomain;\n },\n set publisherDomain(val) {\n this._publisherDomain = val;\n },\n\n // delay to request cookie sync to stay out of critical path\n _cookieSyncDelay: DEFAULT_COOKIESYNC_DELAY,\n get cookieSyncDelay() {\n return pbjs.cookieSyncDelay || this._cookieSyncDelay;\n },\n set cookieSyncDelay(val) {\n this._cookieSyncDelay = val;\n },\n\n // calls existing function which may be moved after deprecation\n _priceGranularity: GRANULARITY_OPTIONS.MEDIUM,\n set priceGranularity(val) {\n if (validatePriceGranularity(val)) {\n if (typeof val === 'string') {\n this._priceGranularity = (hasGranularity(val)) ? val : GRANULARITY_OPTIONS.MEDIUM;\n } else if (typeof val === 'object') {\n this._customPriceBucket = val;\n this._priceGranularity = GRANULARITY_OPTIONS.CUSTOM;\n utils.logMessage('Using custom price granularity');\n }\n }\n },\n get priceGranularity() {\n return this._priceGranularity;\n },\n\n _customPriceBucket: {},\n get customPriceBucket() {\n return this._customPriceBucket;\n },\n\n _sendAllBids: DEFAULT_ENABLE_SEND_ALL_BIDS,\n get enableSendAllBids() {\n return this._sendAllBids;\n },\n set enableSendAllBids(val) {\n this._sendAllBids = val;\n },\n\n _bidderSequence: DEFAULT_BIDDER_SEQUENCE,\n get bidderSequence() {\n return this._bidderSequence;\n },\n set bidderSequence(val) {\n if (VALID_ORDERS[val]) {\n this._bidderSequence = val;\n } else {\n utils.logWarn(`Invalid order: ${val}. Bidder Sequence was not set.`);\n }\n },\n\n // timeout buffer to adjust for bidder CDN latency\n _timoutBuffer: DEFAULT_TIMEOUTBUFFER,\n get timeoutBuffer() {\n return this._timoutBuffer;\n },\n set timeoutBuffer(val) {\n this._timoutBuffer = val;\n },\n\n };\n\n function hasGranularity(val) {\n return find(Object.keys(GRANULARITY_OPTIONS), option => val === GRANULARITY_OPTIONS[option]);\n }\n\n function validatePriceGranularity(val) {\n if (!val) {\n utils.logError('Prebid Error: no value passed to `setPriceGranularity()`');\n return false;\n }\n if (typeof val === 'string') {\n if (!hasGranularity(val)) {\n utils.logWarn('Prebid Warning: setPriceGranularity was called with invalid setting, using `medium` as default.');\n }\n } else if (typeof val === 'object') {\n if (!isValidPriceConfig(val)) {\n utils.logError('Invalid custom price value passed to `setPriceGranularity()`');\n return false;\n }\n }\n return true;\n }\n }\n\n /*\n * Returns configuration object if called without parameters,\n * or single configuration property if given a string matching a configuration\n * property name. Allows deep access e.g. getConfig('currency.adServerCurrency')\n *\n * If called with callback parameter, or a string and a callback parameter,\n * subscribes to configuration updates. See `subscribe` function for usage.\n */\n function getConfig(...args) {\n if (args.length <= 1 && typeof args[0] !== 'function') {\n const option = args[0];\n return option ? utils.deepAccess(config, option) : config;\n }\n\n return subscribe(...args);\n }\n\n /*\n * Sets configuration given an object containing key-value pairs and calls\n * listeners that were added by the `subscribe` function\n */\n let setConfig = createHook('asyncSeries', function setConfig(options) {\n if (typeof options !== 'object') {\n utils.logError('setConfig options must be an object');\n return;\n }\n\n let topics = Object.keys(options);\n let topicalConfig = {};\n\n topics.forEach(topic => {\n let option = options[topic];\n\n if (typeof defaults[topic] === 'object' && typeof option === 'object') {\n option = Object.assign({}, defaults[topic], option);\n }\n\n topicalConfig[topic] = config[topic] = option;\n });\n\n callSubscribers(topicalConfig);\n });\n\n /**\n * Sets configuration defaults which setConfig values can be applied on top of\n * @param {object} options\n */\n function setDefaults(options) {\n if (typeof defaults !== 'object') {\n utils.logError('defaults must be an object');\n return;\n }\n\n Object.assign(defaults, options);\n // Add default values to config as well\n Object.assign(config, options);\n }\n\n /*\n * Adds a function to a set of listeners that are invoked whenever `setConfig`\n * is called. The subscribed function will be passed the options object that\n * was used in the `setConfig` call. Topics can be subscribed to to only get\n * updates when specific properties are updated by passing a topic string as\n * the first parameter.\n *\n * Returns an `unsubscribe` function for removing the subscriber from the\n * set of listeners\n *\n * Example use:\n * // subscribe to all configuration changes\n * subscribe((config) => console.log('config set:', config));\n *\n * // subscribe to only 'logging' changes\n * subscribe('logging', (config) => console.log('logging set:', config));\n *\n * // unsubscribe\n * const unsubscribe = subscribe(...);\n * unsubscribe(); // no longer listening\n */\n function subscribe(topic, listener) {\n let callback = listener;\n\n if (typeof topic !== 'string') {\n // first param should be callback function in this case,\n // meaning it gets called for any config change\n callback = topic;\n topic = ALL_TOPICS;\n }\n\n if (typeof callback !== 'function') {\n utils.logError('listener must be a function');\n return;\n }\n\n listeners.push({ topic, callback });\n\n // save and call this function to remove the listener\n return function unsubscribe() {\n listeners.splice(listeners.indexOf(listener), 1);\n };\n }\n\n /*\n * Calls listeners that were added by the `subscribe` function\n */\n function callSubscribers(options) {\n const TOPICS = Object.keys(options);\n\n // call subscribers of a specific topic, passing only that configuration\n listeners\n .filter(listener => includes(TOPICS, listener.topic))\n .forEach(listener => {\n listener.callback({ [listener.topic]: options[listener.topic] });\n });\n\n // call subscribers that didn't give a topic, passing everything that was set\n listeners\n .filter(listener => listener.topic === ALL_TOPICS)\n .forEach(listener => listener.callback(options));\n }\n\n resetConfig();\n\n return {\n getConfig,\n setConfig,\n setDefaults,\n resetConfig\n };\n}\n\nexport const config = newConfig();\n\n\n\n// WEBPACK FOOTER //\n// ./src/config.js","\n/**\n * @typedef {function} HookedFunction\n * @property {function(function(), [number])} addHook A method that takes a new function to attach as a hook\n * to the HookedFunction\n * @property {function(function())} removeHook A method to remove attached hooks\n */\n\n/**\n * A map of global hook methods to allow easy extension of hooked functions that are intended to be extended globally\n * @type {{}}\n */\nexport const hooks = {};\n\n/**\n * A utility function for allowing a regular function to be extensible with additional hook functions\n * @param {string} type The method for applying all attached hooks when this hooked function is called\n * @param {function()} fn The function to make hookable\n * @param {string} hookName If provided this allows you to register a name for a global hook to have easy access to\n * the addHook and removeHook methods for that hook (which are usually accessed as methods on the function itself)\n * @returns {HookedFunction} A new function that implements the HookedFunction interface\n */\nexport function createHook(type, fn, hookName) {\n let _hooks = [{fn, priority: 0}];\n\n let types = {\n sync: function(...args) {\n _hooks.forEach(hook => {\n hook.fn.apply(this, args);\n });\n },\n asyncSeries: function(...args) {\n let curr = 0;\n\n const asyncSeriesNext = (...args) => {\n let hook = _hooks[++curr];\n if (typeof hook === 'object' && typeof hook.fn === 'function') {\n return hook.fn.apply(this, args.concat(asyncSeriesNext))\n }\n };\n\n return _hooks[curr].fn.apply(this, args.concat(asyncSeriesNext));\n }\n };\n\n if (!types[type]) {\n throw 'invalid hook type';\n }\n\n let methods = {\n addHook: function(fn, priority = 10) {\n if (typeof fn === 'function') {\n _hooks.push({\n fn,\n priority: priority\n });\n\n _hooks.sort((a, b) => b.priority - a.priority);\n }\n },\n removeHook: function(removeFn) {\n _hooks = _hooks.filter(hook => hook.fn === fn || hook.fn !== removeFn);\n }\n };\n\n if (typeof hookName === 'string') {\n hooks[hookName] = methods;\n }\n\n function hookedFn(...args) {\n if (_hooks.length === 1 && _hooks[0].fn === fn) {\n return fn.apply(this, args);\n }\n return types[type].apply(this, args);\n }\n\n return Object.assign(hookedFn, methods);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/hook.js","require('../../modules/es6.array.find-index');\nmodule.exports = require('../../modules/_core').Array.findIndex;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/array/find-index.js\n// module id = 21\n// module chunks = 112","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && key in exports) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_export.js\n// module id = 22\n// module chunks = 112","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_descriptors.js\n// module id = 23\n// module chunks = 112","module.exports = function () { /* empty */ };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_add-to-unscopables.js\n// module id = 24\n// module chunks = 112","export default function Adapter(code) {\n var bidderCode = code;\n\n function setBidderCode(code) {\n bidderCode = code;\n }\n\n function getBidderCode() {\n return bidderCode;\n }\n\n function callBids() {\n }\n\n return {\n callBids: callBids,\n setBidderCode: setBidderCode,\n getBidderCode: getBidderCode\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/adapter.js","/**\n * AuctionManager modules is responsible for creating auction instances.\n * This module is the gateway for Prebid core to access auctions.\n * It stores all created instances of auction and can be used to get consolidated values from auction.\n */\n\n/**\n * @typedef {Object} AuctionManager\n *\n * @property {function(): Array} getBidsRequested - returns cosolidated bid requests\n * @property {function(): Array} getBidsReceived - returns cosolidated bid received\n * @property {function(): Array} getAdUnits - returns cosolidated adUnits\n * @property {function(): Array} getAdUnitCodes - returns cosolidated adUnitCodes\n * @property {function(): Object} createAuction - creates auction instance and stores it for future reference\n * @property {function(): Object} findBidByAdId - find bid received by adId. This function will be called by pbjs.renderAd\n * @property {function(): Object} getStandardBidderAdServerTargeting - returns standard bidder targeting for all the adapters. Refer http://prebid.org/dev-docs/publisher-api-reference.html#module_pbjs.bidderSettings for more details\n */\n\nimport { uniques, flatten } from './utils';\nimport { newAuction, getStandardBidderSettings, AUCTION_COMPLETED } from 'src/auction';\nimport find from 'core-js/library/fn/array/find';\n\nconst CONSTANTS = require('./constants.json');\n\n/**\n * Creates new instance of auctionManager. There will only be one instance of auctionManager but\n * a factory is created to assist in testing.\n *\n * @returns {AuctionManager} auctionManagerInstance\n */\nexport function newAuctionManager() {\n let _auctions = [];\n let auctionManager = {};\n\n auctionManager.addWinningBid = function(bid) {\n const auction = find(_auctions, auction => auction.getAuctionId() === bid.auctionId);\n if (auction) {\n auction.setWinningBid(bid);\n } else {\n utils.logWarn(`Auction not found when adding winning bid`);\n }\n }\n\n auctionManager.getAllWinningBids = function() {\n return _auctions.map(auction => auction.getWinningBid())\n .reduce(flatten, []);\n }\n\n auctionManager.getBidsRequested = function() {\n return _auctions.map(auction => auction.getBidRequests())\n .reduce(flatten, []);\n };\n\n auctionManager.getBidsReceived = function() {\n // As of now, an old bid which is not used in auction 1 can be used in auction n.\n // To prevent this, bid.ttl (time to live) will be added to this logic and bid pool will also be added\n // As of now none of the adapters are sending back bid.ttl\n return _auctions.map((auction) => {\n if (auction.getAuctionStatus() === AUCTION_COMPLETED) {\n return auction.getBidsReceived();\n }\n }).reduce(flatten, [])\n .filter(bid => bid);\n };\n\n auctionManager.getAdUnits = function() {\n return _auctions.map(auction => auction.getAdUnits())\n .reduce(flatten, []);\n };\n\n auctionManager.getAdUnitCodes = function() {\n return _auctions.map(auction => auction.getAdUnitCodes())\n .reduce(flatten, [])\n .filter(uniques);\n };\n\n auctionManager.createAuction = function({ adUnits, adUnitCodes, callback, cbTimeout, labels }) {\n const auction = newAuction({ adUnits, adUnitCodes, callback, cbTimeout, labels });\n _addAuction(auction);\n return auction;\n };\n\n auctionManager.findBidByAdId = function(adId) {\n return find(_auctions.map(auction => auction.getBidsReceived()).reduce(flatten, []), bid => bid.adId === adId);\n };\n\n auctionManager.getStandardBidderAdServerTargeting = function() {\n return getStandardBidderSettings()[CONSTANTS.JSON_MAPPING.ADSERVER_TARGETING];\n };\n\n function _addAuction(auction) {\n _auctions.push(auction);\n }\n\n return auctionManager;\n}\n\nexport const auctionManager = newAuctionManager();\n\n\n\n// WEBPACK FOOTER //\n// ./src/auctionManager.js","import find from 'core-js/library/fn/array/find';\nconst utils = require('src/utils');\n\nconst _defaultPrecision = 2;\nconst _lgPriceConfig = {\n 'buckets': [{\n 'min': 0,\n 'max': 5,\n 'increment': 0.5\n }]\n};\nconst _mgPriceConfig = {\n 'buckets': [{\n 'min': 0,\n 'max': 20,\n 'increment': 0.1\n }]\n};\nconst _hgPriceConfig = {\n 'buckets': [{\n 'min': 0,\n 'max': 20,\n 'increment': 0.01\n }]\n};\nconst _densePriceConfig = {\n 'buckets': [{\n 'min': 0,\n 'max': 3,\n 'increment': 0.01\n },\n {\n 'min': 3,\n 'max': 8,\n 'increment': 0.05\n },\n {\n 'min': 8,\n 'max': 20,\n 'increment': 0.5\n }]\n};\nconst _autoPriceConfig = {\n 'buckets': [{\n 'min': 0,\n 'max': 5,\n 'increment': 0.05\n },\n {\n 'min': 5,\n 'max': 10,\n 'increment': 0.1\n },\n {\n 'min': 10,\n 'max': 20,\n 'increment': 0.5\n }]\n};\n\nfunction getPriceBucketString(cpm, customConfig, granularityMultiplier = 1) {\n let cpmFloat = parseFloat(cpm);\n if (isNaN(cpmFloat)) {\n cpmFloat = '';\n }\n\n return {\n low: (cpmFloat === '') ? '' : getCpmStringValue(cpm, _lgPriceConfig, granularityMultiplier),\n med: (cpmFloat === '') ? '' : getCpmStringValue(cpm, _mgPriceConfig, granularityMultiplier),\n high: (cpmFloat === '') ? '' : getCpmStringValue(cpm, _hgPriceConfig, granularityMultiplier),\n auto: (cpmFloat === '') ? '' : getCpmStringValue(cpm, _autoPriceConfig, granularityMultiplier),\n dense: (cpmFloat === '') ? '' : getCpmStringValue(cpm, _densePriceConfig, granularityMultiplier),\n custom: (cpmFloat === '') ? '' : getCpmStringValue(cpm, customConfig, granularityMultiplier)\n };\n}\n\nfunction getCpmStringValue(cpm, config, granularityMultiplier) {\n let cpmStr = '';\n if (!isValidPriceConfig(config)) {\n return cpmStr;\n }\n const cap = config.buckets.reduce((prev, curr) => {\n if (prev.max > curr.max) {\n return prev;\n }\n return curr;\n }, {\n 'max': 0,\n });\n let bucket = find(config.buckets, bucket => {\n if (cpm > cap.max * granularityMultiplier) {\n // cpm exceeds cap, just return the cap.\n let precision = bucket.precision;\n if (typeof precision === 'undefined') {\n precision = _defaultPrecision;\n }\n cpmStr = (bucket.max * granularityMultiplier).toFixed(precision);\n } else if (cpm <= bucket.max * granularityMultiplier && cpm >= bucket.min * granularityMultiplier) {\n return bucket;\n }\n });\n if (bucket) {\n cpmStr = getCpmTarget(cpm, bucket.increment, bucket.precision, granularityMultiplier);\n }\n return cpmStr;\n}\n\nfunction isValidPriceConfig(config) {\n if (utils.isEmpty(config) || !config.buckets || !Array.isArray(config.buckets)) {\n return false;\n }\n let isValid = true;\n config.buckets.forEach(bucket => {\n if (typeof bucket.min === 'undefined' || !bucket.max || !bucket.increment) {\n isValid = false;\n }\n });\n return isValid;\n}\n\nfunction getCpmTarget(cpm, increment, precision, granularityMultiplier) {\n if (typeof precision === 'undefined') {\n precision = _defaultPrecision;\n }\n let bucketSize = 1 / (increment * granularityMultiplier);\n return (Math.floor(cpm * bucketSize) / bucketSize).toFixed(precision);\n}\n\nexport { getPriceBucketString, isValidPriceConfig };\n\n\n\n// WEBPACK FOOTER //\n// ./src/cpmBucketManager.js","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_ctx.js\n// module id = 28\n// module chunks = 112","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_fails.js\n// module id = 29\n// module chunks = 112","module.exports = {\"JSON_MAPPING\":{\"PL_CODE\":\"code\",\"PL_SIZE\":\"sizes\",\"PL_BIDS\":\"bids\",\"BD_BIDDER\":\"bidder\",\"BD_ID\":\"paramsd\",\"BD_PL_ID\":\"placementId\",\"ADSERVER_TARGETING\":\"adserverTargeting\",\"BD_SETTING_STANDARD\":\"standard\"},\"REPO_AND_VERSION\":\"prebid_prebid_1.7.0-pre\",\"DEBUG_MODE\":\"pbjs_debug\",\"STATUS\":{\"GOOD\":1,\"NO_BID\":2},\"CB\":{\"TYPE\":{\"ALL_BIDS_BACK\":\"allRequestedBidsBack\",\"AD_UNIT_BIDS_BACK\":\"adUnitBidsBack\",\"BID_WON\":\"bidWon\",\"REQUEST_BIDS\":\"requestBids\"}},\"EVENTS\":{\"AUCTION_INIT\":\"auctionInit\",\"AUCTION_END\":\"auctionEnd\",\"BID_ADJUSTMENT\":\"bidAdjustment\",\"BID_TIMEOUT\":\"bidTimeout\",\"BID_REQUESTED\":\"bidRequested\",\"BID_RESPONSE\":\"bidResponse\",\"BID_WON\":\"bidWon\",\"SET_TARGETING\":\"setTargeting\",\"REQUEST_BIDS\":\"requestBids\",\"ADD_AD_UNITS\":\"addAdUnits\",\"AD_RENDER_FAILED\":\"adRenderFailed\"},\"AD_RENDER_FAILED_REASON\":{\"PREVENT_WRITING_ON_MAIN_DOCUMENT\":\"preventWritingOnMainDocuemnt\",\"NO_AD\":\"noAd\",\"EXCEPTION\":\"exception\",\"CANNOT_FIND_AD\":\"cannotFindAd\",\"MISSING_DOC_OR_ADID\":\"missingDocOrAdid\"},\"EVENT_ID_PATHS\":{\"bidWon\":\"adUnitCode\"},\"GRANULARITY_OPTIONS\":{\"LOW\":\"low\",\"MEDIUM\":\"medium\",\"HIGH\":\"high\",\"AUTO\":\"auto\",\"DENSE\":\"dense\",\"CUSTOM\":\"custom\"},\"TARGETING_KEYS\":[\"hb_bidder\",\"hb_adid\",\"hb_pb\",\"hb_size\",\"hb_deal\",\"hb_source\",\"hb_format\"],\"S2S\":{\"SRC\":\"s2s\",\"SYNCED_BIDDERS_KEY\":\"pbjsSyncs\"}}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/constants.json\n// module id = 3\n// module chunks = 112","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_array-methods.js\n// module id = 30\n// module chunks = 112","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iobject.js\n// module id = 31\n// module chunks = 112","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_cof.js\n// module id = 32\n// module chunks = 112","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_defined.js\n// module id = 33\n// module chunks = 112","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-length.js\n// module id = 34\n// module chunks = 112","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-integer.js\n// module id = 35\n// module chunks = 112","// if pbjs already exists in global document scope, use it, if not, create the object\n// global defination should happen BEFORE imports to avoid global undefined errors.\nwindow.pbjs = (window.pbjs || {});\nwindow.pbjs.cmd = window.pbjs.cmd || [];\nwindow.pbjs.que = window.pbjs.que || [];\n\nexport function getGlobal() {\n return window.pbjs;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/prebidGlobal.js","import { uniques, isGptPubadsDefined, getHighestCpm, groupBy, isAdUnitCodeMatchingSlot, timestamp } from './utils';\nimport { config } from './config';\nimport { NATIVE_TARGETING_KEYS } from './native';\nimport { auctionManager } from './auctionManager';\nimport includes from 'core-js/library/fn/array/includes';\n\nconst utils = require('./utils.js');\nvar CONSTANTS = require('./constants.json');\n\nvar pbTargetingKeys = [];\n\nexport const BID_TARGETING_SET = 'targetingSet';\n\nconst MAX_DFP_KEYLENGTH = 20;\n\n// return unexpired bids\nexport const isBidExpired = (bid) => (timestamp() - bid.responseTimestamp) < bid.ttl * 1000;\n\n// return bids whose status is not set. Winning bid can have status `targetingSet` or `rendered`.\nconst isUnusedBid = (bid) => bid && ((bid.status && bid.status === BID_TARGETING_SET) || !bid.status);\n\n/**\n * @typedef {Object.} targeting\n * @property {string} targeting_key\n */\n\n/**\n * @typedef {Object.[]>[]} targetingArray\n */\n\nexport function newTargeting(auctionManager) {\n let targeting = {};\n\n targeting.resetPresetTargeting = function(adUnitCode) {\n if (isGptPubadsDefined()) {\n const adUnitCodes = getAdUnitCodes(adUnitCode);\n const adUnits = auctionManager.getAdUnits().filter(adUnit => includes(adUnitCodes, adUnit.code));\n window.googletag.pubads().getSlots().forEach(slot => {\n pbTargetingKeys.forEach(function(key) {\n // reset only registered adunits\n adUnits.forEach(function(unit) {\n if (unit.code === slot.getAdUnitPath() ||\n unit.code === slot.getSlotElementId()) {\n slot.setTargeting(key, null);\n }\n });\n });\n });\n }\n };\n\n /**\n * Returns all ad server targeting for all ad units.\n * @param {string=} adUnitCode\n * @return {Object.} targeting\n */\n targeting.getAllTargeting = function(adUnitCode, bidsReceived = getBidsReceived()) {\n const adUnitCodes = getAdUnitCodes(adUnitCode);\n\n // Get targeting for the winning bid. Add targeting for any bids that have\n // `alwaysUseBid=true`. If sending all bids is enabled, add targeting for losing bids.\n var targeting = getWinningBidTargeting(adUnitCodes, bidsReceived)\n .concat(getCustomBidTargeting(adUnitCodes, bidsReceived))\n .concat(config.getConfig('enableSendAllBids') ? getBidLandscapeTargeting(adUnitCodes, bidsReceived) : []);\n\n // store a reference of the targeting keys\n targeting.map(adUnitCode => {\n Object.keys(adUnitCode).map(key => {\n adUnitCode[key].map(targetKey => {\n if (pbTargetingKeys.indexOf(Object.keys(targetKey)[0]) === -1) {\n pbTargetingKeys = Object.keys(targetKey).concat(pbTargetingKeys);\n }\n });\n });\n });\n\n targeting = flattenTargeting(targeting);\n return targeting;\n };\n\n /**\n * Converts targeting array and flattens to make it easily iteratable\n * e.g: Sample input to this function\n * ```\n * [\n * {\n * \"div-gpt-ad-1460505748561-0\": [{\"hb_bidder\": [\"appnexusAst\"]}]\n * },\n * {\n * \"div-gpt-ad-1460505748561-0\": [{\"hb_bidder_appnexusAs\": [\"appnexusAst\"]}]\n * }\n * ]\n * ```\n * Resulting array\n * ```\n * {\n * \"div-gpt-ad-1460505748561-0\": {\n * \"hb_bidder\": \"appnexusAst\",\n * \"hb_bidder_appnexusAs\": \"appnexusAst\"\n * }\n * }\n * ```\n *\n * @param {targetingArray} targeting\n * @return {Object.} targeting\n */\n function flattenTargeting(targeting) {\n let targetingObj = targeting.map(targeting => {\n return {\n [Object.keys(targeting)[0]]: targeting[Object.keys(targeting)[0]]\n .map(target => {\n return {\n [Object.keys(target)[0]]: target[Object.keys(target)[0]].join(', ')\n };\n }).reduce((p, c) => Object.assign(c, p), {})\n };\n }).reduce(function (accumulator, targeting) {\n var key = Object.keys(targeting)[0];\n accumulator[key] = Object.assign({}, accumulator[key], targeting[key]);\n return accumulator;\n }, {});\n return targetingObj;\n }\n\n /**\n * Sets targeting for DFP\n * @param {Object.>} targetingConfig\n */\n targeting.setTargetingForGPT = function(targetingConfig) {\n window.googletag.pubads().getSlots().forEach(slot => {\n Object.keys(targetingConfig).filter(isAdUnitCodeMatchingSlot(slot))\n .forEach(targetId =>\n Object.keys(targetingConfig[targetId]).forEach(key => {\n let valueArr = targetingConfig[targetId][key].split(',');\n valueArr = (valueArr.length > 1) ? [valueArr] : valueArr;\n valueArr.map((value) => {\n utils.logMessage(`Attempting to set key value for slot: ${slot.getSlotElementId()} key: ${key} value: ${value}`);\n return value;\n }).forEach(value => {\n slot.setTargeting(key, value);\n });\n })\n )\n })\n };\n\n /**\n * normlizes input to a `adUnit.code` array\n * @param {(string|string[])} adUnitCode [description]\n * @return {string[]} AdUnit code array\n */\n function getAdUnitCodes(adUnitCode) {\n if (typeof adUnitCode === 'string') {\n return [adUnitCode];\n } else if (utils.isArray(adUnitCode)) {\n return adUnitCode;\n }\n return auctionManager.getAdUnitCodes() || [];\n }\n\n function getBidsReceived() {\n return auctionManager.getBidsReceived()\n .filter(isUnusedBid)\n .filter(exports.isBidExpired)\n }\n\n /**\n * Returns top bids for a given adUnit or set of adUnits.\n * @param {(string|string[])} adUnitCode adUnitCode or array of adUnitCodes\n * @return {[type]} [description]\n */\n targeting.getWinningBids = function(adUnitCode, bidsReceived = getBidsReceived()) {\n const adUnitCodes = getAdUnitCodes(adUnitCode);\n\n return bidsReceived\n .filter(bid => includes(adUnitCodes, bid.adUnitCode))\n .filter(bid => bid.cpm > 0)\n .map(bid => bid.adUnitCode)\n .filter(uniques)\n .map(adUnitCode => bidsReceived\n .filter(bid => bid.adUnitCode === adUnitCode ? bid : null)\n .reduce(getHighestCpm, getEmptyBid(adUnitCode)));\n };\n\n /**\n * Sets targeting for AST\n */\n targeting.setTargetingForAst = function() {\n let astTargeting = targeting.getAllTargeting();\n Object.keys(astTargeting).forEach(targetId =>\n Object.keys(astTargeting[targetId]).forEach(key => {\n utils.logMessage(`Attempting to set targeting for targetId: ${targetId} key: ${key} value: ${astTargeting[targetId][key]}`);\n // setKeywords supports string and array as value\n if (utils.isStr(astTargeting[targetId][key]) || utils.isArray(astTargeting[targetId][key])) {\n let keywordsObj = {};\n let input = 'hb_adid';\n let nKey = (key.substring(0, input.length) === input) ? key.toUpperCase() : key;\n keywordsObj[nKey] = astTargeting[targetId][key];\n window.apntag.setKeywords(targetId, keywordsObj);\n }\n })\n );\n };\n\n /**\n * Get targeting key value pairs for winning bid.\n * @param {string[]} AdUnit code array\n * @return {targetingArray} winning bids targeting\n */\n function getWinningBidTargeting(adUnitCodes, bidsReceived) {\n let winners = targeting.getWinningBids(adUnitCodes, bidsReceived);\n winners.forEach((winner) => {\n winner.status = BID_TARGETING_SET;\n });\n\n // TODO : Add losing bids to pool from here ?\n let standardKeys = getStandardKeys();\n\n winners = winners.map(winner => {\n return {\n [winner.adUnitCode]: Object.keys(winner.adserverTargeting)\n .filter(key =>\n typeof winner.sendStandardTargeting === 'undefined' ||\n winner.sendStandardTargeting ||\n standardKeys.indexOf(key) === -1)\n .map(key => ({\n [(key === 'hb_deal') ? `${key}_${winner.bidderCode}`.substring(0, MAX_DFP_KEYLENGTH) : key.substring(0, MAX_DFP_KEYLENGTH)]: [winner.adserverTargeting[key]]\n }))\n };\n });\n\n return winners;\n }\n\n function getStandardKeys() {\n return auctionManager.getStandardBidderAdServerTargeting() // in case using a custom standard key set\n .map(targeting => targeting.key)\n .concat(CONSTANTS.TARGETING_KEYS).filter(uniques); // standard keys defined in the library.\n }\n\n /**\n * Merge custom adserverTargeting with same key name for same adUnitCode.\n * e.g: Appnexus defining custom keyvalue pair foo:bar and Rubicon defining custom keyvalue pair foo:baz will be merged to foo: ['bar','baz']\n *\n * @param {Object[]} acc Accumulator for reducer. It will store updated bidResponse objects\n * @param {Object} bid BidResponse\n * @param {number} index current index\n * @param {Array} arr original array\n */\n function mergeAdServerTargeting(acc, bid, index, arr) {\n function concatTargetingValue(key) {\n return function(currentBidElement) {\n if (!utils.isArray(currentBidElement.adserverTargeting[key])) {\n currentBidElement.adserverTargeting[key] = [currentBidElement.adserverTargeting[key]];\n }\n currentBidElement.adserverTargeting[key] = currentBidElement.adserverTargeting[key].concat(bid.adserverTargeting[key]).filter(uniques);\n delete bid.adserverTargeting[key];\n }\n }\n\n function hasSameAdunitCodeAndKey(key) {\n return function(currentBidElement) {\n return currentBidElement.adUnitCode === bid.adUnitCode && currentBidElement.adserverTargeting[key]\n }\n }\n\n Object.keys(bid.adserverTargeting)\n .filter(getCustomKeys())\n .forEach(key => {\n if (acc.length) {\n acc.filter(hasSameAdunitCodeAndKey(key))\n .forEach(concatTargetingValue(key));\n }\n });\n acc.push(bid);\n return acc;\n }\n\n function getCustomKeys() {\n let standardKeys = getStandardKeys();\n return function(key) {\n return standardKeys.indexOf(key) === -1;\n }\n }\n\n function truncateCustomKeys(bid) {\n return {\n [bid.adUnitCode]: Object.keys(bid.adserverTargeting)\n // Get only the non-standard keys of the losing bids, since we\n // don't want to override the standard keys of the winning bid.\n .filter(getCustomKeys())\n .map(key => {\n return {\n [key.substring(0, MAX_DFP_KEYLENGTH)]: [bid.adserverTargeting[key]]\n };\n })\n }\n }\n\n /**\n * Get custom targeting key value pairs for bids.\n * @param {string[]} AdUnit code array\n * @return {targetingArray} bids with custom targeting defined in bidderSettings\n */\n function getCustomBidTargeting(adUnitCodes, bidsReceived) {\n return bidsReceived\n .filter(bid => includes(adUnitCodes, bid.adUnitCode))\n .map(bid => Object.assign({}, bid))\n .reduce(mergeAdServerTargeting, [])\n .map(truncateCustomKeys)\n .filter(bid => bid); // removes empty elements in array;\n }\n\n /**\n * Get targeting key value pairs for non-winning bids.\n * @param {string[]} AdUnit code array\n * @return {targetingArray} all non-winning bids targeting\n */\n function getBidLandscapeTargeting(adUnitCodes, bidsReceived) {\n const standardKeys = CONSTANTS.TARGETING_KEYS.concat(NATIVE_TARGETING_KEYS);\n const bids = [];\n // bucket by adUnitcode\n let buckets = groupBy(bidsReceived, 'adUnitCode');\n // filter top bid for each bucket by bidder\n Object.keys(buckets).forEach(bucketKey => {\n let bidsByBidder = groupBy(buckets[bucketKey], 'bidderCode');\n Object.keys(bidsByBidder).forEach(key => bids.push(bidsByBidder[key].reduce(getHighestCpm, getEmptyBid())));\n });\n // populate targeting keys for the remaining bids\n return bids.map(bid => {\n if (bid.adserverTargeting) {\n return {\n [bid.adUnitCode]: getTargetingMap(bid, standardKeys.filter(\n key => typeof bid.adserverTargeting[key] !== 'undefined')\n )\n };\n }\n }).filter(bid => bid); // removes empty elements in array\n }\n\n function getTargetingMap(bid, keys) {\n return keys.map(key => {\n return {\n [`${key}_${bid.bidderCode}`.substring(0, MAX_DFP_KEYLENGTH)]: [bid.adserverTargeting[key]]\n };\n });\n }\n\n targeting.isApntagDefined = function() {\n if (window.apntag && utils.isFn(window.apntag.setKeywords)) {\n return true;\n }\n };\n\n function getEmptyBid(adUnitCode) {\n return {\n adUnitCode: adUnitCode,\n cpm: 0,\n adserverTargeting: {},\n timeToRespond: 0\n };\n }\n return targeting;\n}\n\nexport const targeting = newTargeting(auctionManager);\n\n\n\n// WEBPACK FOOTER //\n// ./src/targeting.js","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 38\n// module chunks = 112","/** @module pbjs */\n\nimport { getGlobal } from './prebidGlobal';\nimport { flatten, uniques, isGptPubadsDefined, adUnitsFilter, removeRequestId } from './utils';\nimport { listenMessagesFromCreative } from './secureCreatives';\nimport { userSync } from 'src/userSync.js';\nimport { loadScript } from './adloader';\nimport { config } from './config';\nimport { auctionManager } from './auctionManager';\nimport { targeting } from './targeting';\nimport { createHook } from 'src/hook';\nimport includes from 'core-js/library/fn/array/includes';\n\nvar pbjs = getGlobal();\n\nconst CONSTANTS = require('./constants.json');\nvar utils = require('./utils.js');\nvar adaptermanager = require('./adaptermanager');\nvar bidfactory = require('./bidfactory');\nvar events = require('./events');\nconst { triggerUserSyncs } = userSync;\n\n/* private variables */\n\nconst RENDERED = 'rendered';\nconst { ADD_AD_UNITS, BID_WON, REQUEST_BIDS, SET_TARGETING, AD_RENDER_FAILED } = CONSTANTS.EVENTS;\nconst { PREVENT_WRITING_ON_MAIN_DOCUMENT, NO_AD, EXCEPTION, CANNOT_FIND_AD, MISSING_DOC_OR_ADID } = CONSTANTS.AD_RENDER_FAILED_REASON;\n\nvar eventValidators = {\n bidWon: checkDefinedPlacement\n};\n\n/* Public vars */\npbjs.bidderSettings = pbjs.bidderSettings || {};\n\n// current timeout set in `requestBids` or to default `bidderTimeout`\npbjs.cbTimeout = pbjs.cbTimeout || 200;\n\n// let the world know we are loaded\npbjs.libLoaded = true;\n\n// version auto generated from build\npbjs.version = 'v1.7.0-pre';\nutils.logInfo('Prebid.js v1.7.0-pre loaded');\n\n// create adUnit array\npbjs.adUnits = pbjs.adUnits || [];\n\n// Allow publishers who enable user sync override to trigger their sync\npbjs.triggerUserSyncs = triggerUserSyncs;\n\nfunction checkDefinedPlacement(id) {\n var adUnitCodes = auctionManager.getBidsRequested().map(bidSet => bidSet.bids.map(bid => bid.adUnitCode))\n .reduce(flatten)\n .filter(uniques);\n\n if (!utils.contains(adUnitCodes, id)) {\n utils.logError('The \"' + id + '\" placement is not defined.');\n return;\n }\n\n return true;\n}\n\nfunction setRenderSize(doc, width, height) {\n if (doc.defaultView && doc.defaultView.frameElement) {\n doc.defaultView.frameElement.width = width;\n doc.defaultView.frameElement.height = height;\n }\n}\n\n/// ///////////////////////////////\n// //\n// Start Public APIs //\n// //\n/// ///////////////////////////////\n\n/**\n * This function returns the query string targeting parameters available at this moment for a given ad unit. Note that some bidder's response may not have been received if you call this function too quickly after the requests are sent.\n * @param {string} [adunitCode] adUnitCode to get the bid responses for\n * @alias module:pbjs.getAdserverTargetingForAdUnitCodeStr\n * @return {Array} returnObj return bids array\n */\npbjs.getAdserverTargetingForAdUnitCodeStr = function (adunitCode) {\n utils.logInfo('Invoking pbjs.getAdserverTargetingForAdUnitCodeStr', arguments);\n\n // call to retrieve bids array\n if (adunitCode) {\n var res = pbjs.getAdserverTargetingForAdUnitCode(adunitCode);\n return utils.transformAdServerTargetingObj(res);\n } else {\n utils.logMessage('Need to call getAdserverTargetingForAdUnitCodeStr with adunitCode');\n }\n};\n\n/**\n * This function returns the query string targeting parameters available at this moment for a given ad unit. Note that some bidder's response may not have been received if you call this function too quickly after the requests are sent.\n * @param adUnitCode {string} adUnitCode to get the bid responses for\n * @alias module:pbjs.getAdserverTargetingForAdUnitCode\n * @returns {Object} returnObj return bids\n */\npbjs.getAdserverTargetingForAdUnitCode = function(adUnitCode) {\n return pbjs.getAdserverTargeting(adUnitCode)[adUnitCode];\n};\n\n/**\n * returns all ad server targeting for all ad units\n * @return {Object} Map of adUnitCodes and targeting values []\n * @alias module:pbjs.getAdserverTargeting\n */\n\npbjs.getAdserverTargeting = function (adUnitCode) {\n utils.logInfo('Invoking pbjs.getAdserverTargeting', arguments);\n return targeting.getAllTargeting(adUnitCode, auctionManager.getBidsReceived());\n};\n\n/**\n * This function returns the bid responses at the given moment.\n * @alias module:pbjs.getBidResponses\n * @return {Object} map | object that contains the bidResponses\n */\n\npbjs.getBidResponses = function () {\n utils.logInfo('Invoking pbjs.getBidResponses', arguments);\n const responses = auctionManager.getBidsReceived()\n .filter(adUnitsFilter.bind(this, auctionManager.getAdUnitCodes()));\n\n // find the last auction id to get responses for most recent auction only\n const currentAuctionId = responses && responses.length && responses[responses.length - 1].auctionId;\n\n return responses\n .map(bid => bid.adUnitCode)\n .filter(uniques).map(adUnitCode => responses\n .filter(bid => bid.auctionId === currentAuctionId && bid.adUnitCode === adUnitCode))\n .filter(bids => bids && bids[0] && bids[0].adUnitCode)\n .map(bids => {\n return {\n [bids[0].adUnitCode]: { bids: bids.map(removeRequestId) }\n };\n })\n .reduce((a, b) => Object.assign(a, b), {});\n};\n\n/**\n * Returns bidResponses for the specified adUnitCode\n * @param {string} adUnitCode adUnitCode\n * @alias module:pbjs.getBidResponsesForAdUnitCode\n * @return {Object} bidResponse object\n */\n\npbjs.getBidResponsesForAdUnitCode = function (adUnitCode) {\n const bids = auctionManager.getBidsReceived().filter(bid => bid.adUnitCode === adUnitCode);\n return {\n bids: bids.map(removeRequestId)\n };\n};\n\n/**\n * Set query string targeting on one or more GPT ad units.\n * @param {(string|string[])} adUnit a single `adUnit.code` or multiple.\n * @alias module:pbjs.setTargetingForGPTAsync\n */\npbjs.setTargetingForGPTAsync = function (adUnit) {\n utils.logInfo('Invoking pbjs.setTargetingForGPTAsync', arguments);\n if (!isGptPubadsDefined()) {\n utils.logError('window.googletag is not defined on the page');\n return;\n }\n\n // get our ad unit codes\n var targetingSet = targeting.getAllTargeting(adUnit);\n\n // first reset any old targeting\n targeting.resetPresetTargeting(adUnit);\n\n // now set new targeting keys\n targeting.setTargetingForGPT(targetingSet);\n\n // emit event\n events.emit(SET_TARGETING);\n};\n\n/**\n * Set query string targeting on all AST (AppNexus Seller Tag) ad units. Note that this function has to be called after all ad units on page are defined. For working example code, see [Using Prebid.js with AppNexus Publisher Ad Server](http://prebid.org/dev-docs/examples/use-prebid-with-appnexus-ad-server.html).\n * @alias module:pbjs.setTargetingForAst\n */\npbjs.setTargetingForAst = function() {\n utils.logInfo('Invoking pbjs.setTargetingForAn', arguments);\n if (!targeting.isApntagDefined()) {\n utils.logError('window.apntag is not defined on the page');\n return;\n }\n\n targeting.setTargetingForAst();\n\n // emit event\n events.emit(SET_TARGETING);\n};\n\nfunction emitAdRenderFail(reason, message, bid) {\n const data = {};\n\n data.reason = reason;\n data.message = message;\n if (bid) {\n data.bid = bid;\n }\n\n utils.logError(message);\n events.emit(AD_RENDER_FAILED, data);\n}\n/**\n * This function will render the ad (based on params) in the given iframe document passed through.\n * Note that doc SHOULD NOT be the parent document page as we can't doc.write() asynchronously\n * @param {HTMLDocument} doc document\n * @param {string} id bid id to locate the ad\n * @alias module:pbjs.renderAd\n */\npbjs.renderAd = function (doc, id) {\n utils.logInfo('Invoking pbjs.renderAd', arguments);\n utils.logMessage('Calling renderAd with adId :' + id);\n\n if (doc && id) {\n try {\n // lookup ad by ad Id\n const bid = auctionManager.findBidByAdId(id);\n if (bid) {\n bid.status = RENDERED;\n // replace macros according to openRTB with price paid = bid.cpm\n bid.ad = utils.replaceAuctionPrice(bid.ad, bid.cpm);\n bid.adUrl = utils.replaceAuctionPrice(bid.adUrl, bid.cpm);\n // save winning bids\n auctionManager.addWinningBid(bid);\n\n // emit 'bid won' event here\n events.emit(BID_WON, bid);\n\n const { height, width, ad, mediaType, adUrl, renderer } = bid;\n\n const creativeComment = document.createComment(`Creative ${bid.creativeId} served by ${bid.bidder} Prebid.js Header Bidding`);\n utils.insertElement(creativeComment, doc, 'body');\n\n if (renderer && renderer.url) {\n renderer.render(bid);\n } else if ((doc === document && !utils.inIframe()) || mediaType === 'video') {\n const message = `Error trying to write ad. Ad render call ad id ${id} was prevented from writing to the main document.`;\n emitAdRenderFail(PREVENT_WRITING_ON_MAIN_DOCUMENT, message, bid);\n } else if (ad) {\n doc.write(ad);\n doc.close();\n setRenderSize(doc, width, height);\n utils.callBurl(bid);\n } else if (adUrl) {\n const iframe = utils.createInvisibleIframe();\n iframe.height = height;\n iframe.width = width;\n iframe.style.display = 'inline';\n iframe.style.overflow = 'hidden';\n iframe.src = adUrl;\n\n utils.insertElement(iframe, doc, 'body');\n setRenderSize(doc, width, height);\n utils.callBurl(bid);\n } else {\n const message = `Error trying to write ad. No ad for bid response id: ${id}`;\n emitAdRenderFail(NO_AD, message, bid);\n }\n } else {\n const message = `Error trying to write ad. Cannot find ad by given id : ${id}`;\n emitAdRenderFail(CANNOT_FIND_AD, message);\n }\n } catch (e) {\n const message = `Error trying to write ad Id :${id} to the page:${e.message}`;\n emitAdRenderFail(EXCEPTION, message);\n }\n } else {\n const message = `Error trying to write ad Id :${id} to the page. Missing document or adId`;\n emitAdRenderFail(MISSING_DOC_OR_ADID, message);\n }\n};\n\n/**\n * Remove adUnit from the pbjs configuration\n * @param {string} adUnitCode the adUnitCode to remove\n * @alias module:pbjs.removeAdUnit\n */\npbjs.removeAdUnit = function (adUnitCode) {\n utils.logInfo('Invoking pbjs.removeAdUnit', arguments);\n if (adUnitCode) {\n for (var i = 0; i < pbjs.adUnits.length; i++) {\n if (pbjs.adUnits[i].code === adUnitCode) {\n pbjs.adUnits.splice(i, 1);\n }\n }\n }\n};\n\n/**\n * @param {Object} requestOptions\n * @param {function} requestOptions.bidsBackHandler\n * @param {number} requestOptions.timeout\n * @param {Array} requestOptions.adUnits\n * @param {Array} requestOptions.adUnitCodes\n * @param {Array} requestOptions.labels\n * @alias module:pbjs.requestBids\n */\npbjs.requestBids = createHook('asyncSeries', function ({ bidsBackHandler, timeout, adUnits, adUnitCodes, labels } = {}) {\n events.emit(REQUEST_BIDS);\n const cbTimeout = timeout || config.getConfig('bidderTimeout');\n adUnits = adUnits || pbjs.adUnits;\n\n utils.logInfo('Invoking pbjs.requestBids', arguments);\n\n if (adUnitCodes && adUnitCodes.length) {\n // if specific adUnitCodes supplied filter adUnits for those codes\n adUnits = adUnits.filter(unit => includes(adUnitCodes, unit.code));\n } else {\n // otherwise derive adUnitCodes from adUnits\n adUnitCodes = adUnits && adUnits.map(unit => unit.code);\n }\n\n /*\n * for a given adunit which supports a set of mediaTypes\n * and a given bidder which supports a set of mediaTypes\n * a bidder is eligible to participate on the adunit\n * if it supports at least one of the mediaTypes on the adunit\n */\n adUnits.forEach(adUnit => {\n // get the adunit's mediaTypes, defaulting to banner if mediaTypes isn't present\n const adUnitMediaTypes = Object.keys(adUnit.mediaTypes || {'banner': 'banner'});\n\n // get the bidder's mediaTypes\n const bidders = adUnit.bids.map(bid => bid.bidder);\n const bidderRegistry = adaptermanager.bidderRegistry;\n\n bidders.forEach(bidder => {\n const adapter = bidderRegistry[bidder];\n const spec = adapter && adapter.getSpec && adapter.getSpec()\n // banner is default if not specified in spec\n const bidderMediaTypes = (spec && spec.supportedMediaTypes) || ['banner'];\n\n // check if the bidder's mediaTypes are not in the adUnit's mediaTypes\n const bidderEligible = adUnitMediaTypes.some(type => includes(bidderMediaTypes, type));\n if (!bidderEligible) {\n // drop the bidder from the ad unit if it's not compatible\n utils.logWarn(utils.unsupportedBidderMessage(adUnit, bidder));\n adUnit.bids = adUnit.bids.filter(bid => bid.bidder !== bidder);\n }\n });\n });\n\n if (!adUnits || adUnits.length === 0) {\n utils.logMessage('No adUnits configured. No bids requested.');\n if (typeof bidsBackHandler === 'function') {\n // executeCallback, this will only be called in case of first request\n try {\n bidsBackHandler();\n } catch (e) {\n utils.logError('Error executing bidsBackHandler', null, e);\n }\n }\n return;\n }\n\n const auction = auctionManager.createAuction({adUnits, adUnitCodes, callback: bidsBackHandler, cbTimeout, labels});\n auction.callBids();\n return auction;\n});\n\n/**\n *\n * Add adunit(s)\n * @param {Array|Object} adUnitArr Array of adUnits or single adUnit Object.\n * @alias module:pbjs.addAdUnits\n */\npbjs.addAdUnits = function (adUnitArr) {\n utils.logInfo('Invoking pbjs.addAdUnits', arguments);\n if (utils.isArray(adUnitArr)) {\n // generate transactionid for each new adUnits\n // Append array to existing\n adUnitArr.forEach(adUnit => adUnit.transactionId = utils.generateUUID());\n pbjs.adUnits.push.apply(pbjs.adUnits, adUnitArr);\n } else if (typeof adUnitArr === 'object') {\n // Generate the transaction id for the adunit\n adUnitArr.transactionId = utils.generateUUID();\n pbjs.adUnits.push(adUnitArr);\n }\n // emit event\n events.emit(ADD_AD_UNITS);\n};\n\n/**\n * @param {string} event the name of the event\n * @param {Function} handler a callback to set on event\n * @param {string} id an identifier in the context of the event\n * @alias module:pbjs.onEvent\n *\n * This API call allows you to register a callback to handle a Prebid.js event.\n * An optional `id` parameter provides more finely-grained event callback registration.\n * This makes it possible to register callback events for a specific item in the\n * event context. For example, `bidWon` events will accept an `id` for ad unit code.\n * `bidWon` callbacks registered with an ad unit code id will be called when a bid\n * for that ad unit code wins the auction. Without an `id` this method registers the\n * callback for every `bidWon` event.\n *\n * Currently `bidWon` is the only event that accepts an `id` parameter.\n */\npbjs.onEvent = function (event, handler, id) {\n utils.logInfo('Invoking pbjs.onEvent', arguments);\n if (!utils.isFn(handler)) {\n utils.logError('The event handler provided is not a function and was not set on event \"' + event + '\".');\n return;\n }\n\n if (id && !eventValidators[event].call(null, id)) {\n utils.logError('The id provided is not valid for event \"' + event + '\" and no handler was set.');\n return;\n }\n\n events.on(event, handler, id);\n};\n\n/**\n * @param {string} event the name of the event\n * @param {Function} handler a callback to remove from the event\n * @param {string} id an identifier in the context of the event (see `pbjs.onEvent`)\n * @alias module:pbjs.offEvent\n */\npbjs.offEvent = function (event, handler, id) {\n utils.logInfo('Invoking pbjs.offEvent', arguments);\n if (id && !eventValidators[event].call(null, id)) {\n return;\n }\n\n events.off(event, handler, id);\n};\n\n/*\n * Wrapper to register bidderAdapter externally (adaptermanager.registerBidAdapter())\n * @param {Function} bidderAdaptor [description]\n * @param {string} bidderCode [description]\n * @alias module:pbjs.registerBidAdapter\n */\npbjs.registerBidAdapter = function (bidderAdaptor, bidderCode) {\n utils.logInfo('Invoking pbjs.registerBidAdapter', arguments);\n try {\n adaptermanager.registerBidAdapter(bidderAdaptor(), bidderCode);\n } catch (e) {\n utils.logError('Error registering bidder adapter : ' + e.message);\n }\n};\n\n/**\n * Wrapper to register analyticsAdapter externally (adaptermanager.registerAnalyticsAdapter())\n * @param {Object} options [description]\n * @alias module:pbjs.registerAnalyticsAdapter\n */\npbjs.registerAnalyticsAdapter = function (options) {\n utils.logInfo('Invoking pbjs.registerAnalyticsAdapter', arguments);\n try {\n adaptermanager.registerAnalyticsAdapter(options);\n } catch (e) {\n utils.logError('Error registering analytics adapter : ' + e.message);\n }\n};\n\n/**\n * Wrapper to bidfactory.createBid()\n * @param {string} statusCode [description]\n * @alias module:pbjs.createBid\n * @return {Object} bidResponse [description]\n */\npbjs.createBid = function (statusCode) {\n utils.logInfo('Invoking pbjs.createBid', arguments);\n return bidfactory.createBid(statusCode);\n};\n\n/**\n * Wrapper to adloader.loadScript\n * @param {string} tagSrc [description]\n * @param {Function} callback [description]\n * @alias module:pbjs.loadScript\n */\npbjs.loadScript = function (tagSrc, callback, useCache) {\n utils.logInfo('Invoking pbjs.loadScript', arguments);\n loadScript(tagSrc, callback, useCache);\n};\n\n/**\n * Enable sending analytics data to the analytics provider of your\n * choice.\n *\n * For usage, see [Integrate with the Prebid Analytics\n * API](http://prebid.org/dev-docs/integrate-with-the-prebid-analytics-api.html).\n *\n * For a list of analytics adapters, see [Analytics for\n * Prebid](http://prebid.org/overview/analytics.html).\n * @param {Object} config\n * @param {string} config.provider The name of the provider, e.g., `\"ga\"` for Google Analytics.\n * @param {Object} config.options The options for this particular analytics adapter. This will likely vary between adapters.\n * @alias module:pbjs.enableAnalytics\n */\npbjs.enableAnalytics = function (config) {\n if (config && !utils.isEmpty(config)) {\n utils.logInfo('Invoking pbjs.enableAnalytics for: ', config);\n adaptermanager.enableAnalytics(config);\n } else {\n utils.logError('pbjs.enableAnalytics should be called with option {}');\n }\n};\n\n/**\n * @alias module:pbjs.aliasBidder\n */\npbjs.aliasBidder = function (bidderCode, alias) {\n utils.logInfo('Invoking pbjs.aliasBidder', arguments);\n if (bidderCode && alias) {\n adaptermanager.aliasBidAdapter(bidderCode, alias);\n } else {\n utils.logError('bidderCode and alias must be passed as arguments', 'pbjs.aliasBidder');\n }\n};\n\n/**\n * The bid response object returned by an external bidder adapter during the auction.\n * @typedef {Object} AdapterBidResponse\n * @property {string} pbAg Auto granularity price bucket; CPM <= 5 ? increment = 0.05 : CPM > 5 && CPM <= 10 ? increment = 0.10 : CPM > 10 && CPM <= 20 ? increment = 0.50 : CPM > 20 ? priceCap = 20.00. Example: `\"0.80\"`.\n * @property {string} pbCg Custom price bucket. For example setup, see {@link setPriceGranularity}. Example: `\"0.84\"`.\n * @property {string} pbDg Dense granularity price bucket; CPM <= 3 ? increment = 0.01 : CPM > 3 && CPM <= 8 ? increment = 0.05 : CPM > 8 && CPM <= 20 ? increment = 0.50 : CPM > 20? priceCap = 20.00. Example: `\"0.84\"`.\n * @property {string} pbLg Low granularity price bucket; $0.50 increment, capped at $5, floored to two decimal places. Example: `\"0.50\"`.\n * @property {string} pbMg Medium granularity price bucket; $0.10 increment, capped at $20, floored to two decimal places. Example: `\"0.80\"`.\n * @property {string} pbHg High granularity price bucket; $0.01 increment, capped at $20, floored to two decimal places. Example: `\"0.84\"`.\n *\n * @property {string} bidder The string name of the bidder. This *may* be the same as the `bidderCode`. For For a list of all bidders and their codes, see [Bidders' Params](http://prebid.org/dev-docs/bidders.html).\n * @property {string} bidderCode The unique string that identifies this bidder. For a list of all bidders and their codes, see [Bidders' Params](http://prebid.org/dev-docs/bidders.html).\n *\n * @property {string} requestId The [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier) representing the bid request.\n * @property {number} requestTimestamp The time at which the bid request was sent out, expressed in milliseconds.\n * @property {number} responseTimestamp The time at which the bid response was received, expressed in milliseconds.\n * @property {number} timeToRespond How long it took for the bidder to respond with this bid, expressed in milliseconds.\n *\n * @property {string} size The size of the ad creative, expressed in `\"AxB\"` format, where A and B are numbers of pixels. Example: `\"320x50\"`.\n * @property {string} width The width of the ad creative in pixels. Example: `\"320\"`.\n * @property {string} height The height of the ad creative in pixels. Example: `\"50\"`.\n *\n * @property {string} ad The actual ad creative content, often HTML with CSS, JavaScript, and/or links to additional content. Example: `\"\",`.\n * @property {number} ad_id The ad ID of the creative, as understood by the bidder's system. Used by the line item's [creative in the ad server](http://prebid.org/adops/send-all-bids-adops.html#step-3-add-a-creative).\n * @property {string} adUnitCode The code used to uniquely identify the ad unit on the publisher's page.\n *\n * @property {string} statusMessage The status of the bid. Allowed values: `\"Bid available\"` or `\"Bid returned empty or error response\"`.\n * @property {number} cpm The exact bid price from the bidder, expressed to the thousandths place. Example: `\"0.849\"`.\n *\n * @property {Object} adserverTargeting An object whose values represent the ad server's targeting on the bid.\n * @property {string} adserverTargeting.hb_adid The ad ID of the creative, as understood by the ad server.\n * @property {string} adserverTargeting.hb_pb The price paid to show the creative, as logged in the ad server.\n * @property {string} adserverTargeting.hb_bidder The winning bidder whose ad creative will be served by the ad server.\n*/\n\n/**\n * Get all of the bids that have won their respective auctions. Useful for [troubleshooting your integration](http://prebid.org/dev-docs/prebid-troubleshooting-guide.html).\n * @return {Array} A list of bids that have won their respective auctions.\n*/\npbjs.getAllWinningBids = function () {\n return auctionManager.getAllWinningBids()\n .map(removeRequestId);\n};\n\n/**\n * Get array of highest cpm bids for all adUnits, or highest cpm bid\n * object for the given adUnit\n * @param {string} adUnitCode - optional ad unit code\n * @alias module:pbjs.getHighestCpmBids\n * @return {Array} array containing highest cpm bid object(s)\n */\npbjs.getHighestCpmBids = function (adUnitCode) {\n return targeting.getWinningBids(adUnitCode, auctionManager.getBidsReceived())\n .map(removeRequestId);\n};\n\n/**\n * Get Prebid config options\n * @param {Object} options\n * @alias module:pbjs.getConfig\n */\npbjs.getConfig = config.getConfig;\n\n/**\n * Set Prebid config options.\n * (Added in version 0.27.0).\n *\n * `setConfig` is designed to allow for advanced configuration while\n * reducing the surface area of the public API. For more information\n * about the move to `setConfig` (and the resulting deprecations of\n * some other public methods), see [the Prebid 1.0 public API\n * proposal](https://gist.github.com/mkendall07/51ee5f6b9f2df01a89162cf6de7fe5b6).\n *\n * #### Troubleshooting your configuration\n *\n * If you call `pbjs.setConfig` without an object, e.g.,\n *\n * `pbjs.setConfig('debug', 'true'))`\n *\n * then Prebid.js will print an error to the console that says:\n *\n * ```\n * ERROR: setConfig options must be an object\n * ```\n *\n * If you don't see that message, you can assume the config object is valid.\n *\n * @param {Object} options Global Prebid configuration object. Must be JSON - no JavaScript functions are allowed.\n * @param {string} options.bidderSequence The order in which bidders are called. Example: `pbjs.setConfig({ bidderSequence: \"fixed\" })`. Allowed values: `\"fixed\"` (order defined in `adUnit.bids` array on page), `\"random\"`.\n * @param {boolean} options.debug Turn debug logging on/off. Example: `pbjs.setConfig({ debug: true })`.\n * @param {string} options.priceGranularity The bid price granularity to use. Example: `pbjs.setConfig({ priceGranularity: \"medium\" })`. Allowed values: `\"low\"` ($0.50), `\"medium\"` ($0.10), `\"high\"` ($0.01), `\"auto\"` (sliding scale), `\"dense\"` (like `\"auto\"`, with smaller increments at lower CPMs), or a custom price bucket object, e.g., `{ \"buckets\" : [{\"min\" : 0,\"max\" : 20,\"increment\" : 0.1,\"cap\" : true}]}`.\n * @param {boolean} options.enableSendAllBids Turn \"send all bids\" mode on/off. Example: `pbjs.setConfig({ enableSendAllBids: true })`.\n * @param {number} options.bidderTimeout Set a global bidder timeout, in milliseconds. Example: `pbjs.setConfig({ bidderTimeout: 3000 })`. Note that it's still possible for a bid to get into the auction that responds after this timeout. This is due to how [`setTimeout`](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout) works in JS: it queues the callback in the event loop in an approximate location that should execute after this time but it is not guaranteed. For more information about the asynchronous event loop and `setTimeout`, see [How JavaScript Timers Work](https://johnresig.com/blog/how-javascript-timers-work/).\n * @param {string} options.publisherDomain The publisher's domain where Prebid is running, for cross-domain iFrame communication. Example: `pbjs.setConfig({ publisherDomain: \"https://www.theverge.com\" })`.\n * @param {number} options.cookieSyncDelay A delay (in milliseconds) for requesting cookie sync to stay out of the critical path of page load. Example: `pbjs.setConfig({ cookieSyncDelay: 100 })`.\n * @param {Object} options.s2sConfig The configuration object for [server-to-server header bidding](http://prebid.org/dev-docs/get-started-with-prebid-server.html). Example:\n * @alias module:pbjs.setConfig\n * ```\n * pbjs.setConfig({\n * s2sConfig: {\n * accountId: '1',\n * enabled: true,\n * bidders: ['appnexus', 'pubmatic'],\n * timeout: 1000,\n * adapter: 'prebidServer',\n * endpoint: 'https://prebid.adnxs.com/pbs/v1/auction'\n * }\n * })\n * ```\n */\npbjs.setConfig = config.setConfig;\n\npbjs.que.push(() => listenMessagesFromCreative());\n\n/**\n * This queue lets users load Prebid asynchronously, but run functions the same way regardless of whether it gets loaded\n * before or after their script executes. For example, given the code:\n *\n * \n * \n *\n * If the page's script runs before prebid loads, then their function gets added to the queue, and executed\n * by prebid once it's done loading. If it runs after prebid loads, then this monkey-patch causes their\n * function to execute immediately.\n *\n * @memberof pbjs\n * @param {function} command A function which takes no arguments. This is guaranteed to run exactly once, and only after\n * the Prebid script has been fully loaded.\n * @alias module:pbjs.cmd.push\n */\npbjs.cmd.push = function(command) {\n if (typeof command === 'function') {\n try {\n command.call();\n } catch (e) {\n utils.logError('Error processing command :', e.message, e.stack);\n }\n } else {\n utils.logError('Commands written into pbjs.cmd.push must be wrapped in a function');\n }\n};\n\npbjs.que.push = pbjs.cmd.push;\n\nfunction processQueue(queue) {\n queue.forEach(function(cmd) {\n if (typeof cmd.called === 'undefined') {\n try {\n cmd.call();\n cmd.called = true;\n } catch (e) {\n utils.logError('Error processing command :', 'prebid.js', e);\n }\n }\n });\n}\n\n/**\n * @alias module:pbjs.processQueue\n */\npbjs.processQueue = function() {\n processQueue(pbjs.que);\n processQueue(pbjs.cmd);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/prebid.js","/* Secure Creatives\n Provides support for rendering creatives into cross domain iframes such as SafeFrame to prevent\n access to a publisher page from creative payloads.\n */\n\nimport events from './events';\nimport { fireNativeTrackers } from './native';\nimport { EVENTS } from './constants';\nimport { isSlotMatchingAdUnitCode } from './utils';\nimport { auctionManager } from './auctionManager';\nimport find from 'core-js/library/fn/array/find';\n\nconst BID_WON = EVENTS.BID_WON;\n\nexport function listenMessagesFromCreative() {\n addEventListener('message', receiveMessage, false);\n}\n\nfunction receiveMessage(ev) {\n var key = ev.message ? 'message' : 'data';\n var data = {};\n try {\n data = JSON.parse(ev[key]);\n } catch (e) {\n return;\n }\n\n if (data.adId) {\n const adObject = find(auctionManager.getBidsReceived(), function (bid) {\n return bid.adId === data.adId;\n });\n\n if (data.message === 'Prebid Request') {\n sendAdToCreative(adObject, data.adServerDomain, ev.source);\n\n // save winning bids\n auctionManager.addWinningBid(adObject);\n\n events.emit(BID_WON, adObject);\n }\n\n // handle this script from native template in an ad server\n // window.parent.postMessage(JSON.stringify({\n // message: 'Prebid Native',\n // adId: '%%PATTERN:hb_adid%%'\n // }), '*');\n if (data.message === 'Prebid Native') {\n fireNativeTrackers(data, adObject);\n auctionManager.addWinningBid(adObject);\n events.emit(BID_WON, adObject);\n }\n }\n}\n\nfunction sendAdToCreative(adObject, remoteDomain, source) {\n const { adId, ad, adUrl, width, height } = adObject;\n\n if (adId) {\n resizeRemoteCreative(adObject);\n source.postMessage(JSON.stringify({\n message: 'Prebid Response',\n ad,\n adUrl,\n adId,\n width,\n height\n }), remoteDomain);\n }\n}\n\nfunction resizeRemoteCreative({ adUnitCode, width, height }) {\n const iframe = document.getElementById(\n find(window.googletag.pubads().getSlots().filter(isSlotMatchingAdUnitCode(adUnitCode)), slot => slot)\n .getSlotElementId()).querySelector('iframe');\n\n iframe.width = '' + width;\n iframe.height = '' + height;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/secureCreatives.js","/**\n * This file contains the valid Media Types in Prebid.\n *\n * All adapters are assumed to support banner ads. Other media types are specified by Adapters when they\n * register themselves with prebid-core.\n */\n\n/**\n * @typedef {('native'|'video'|'banner')} MediaType\n */\n\n/** @type MediaType */\nexport const NATIVE = 'native';\n/** @type MediaType */\nexport const VIDEO = 'video';\n/** @type MediaType */\nexport const BANNER = 'banner';\n\n\n\n// WEBPACK FOOTER //\n// ./src/mediaTypes.js","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(5);\nvar KEY = 'find';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.array.find.js\n// module id = 41\n// module chunks = 112","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_a-function.js\n// module id = 42\n// module chunks = 112","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_hide.js\n// module id = 43\n// module chunks = 112","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-dp.js\n// module id = 44\n// module chunks = 112","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_an-object.js\n// module id = 45\n// module chunks = 112","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_ie8-dom-define.js\n// module id = 46\n// module chunks = 112","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_dom-create.js\n// module id = 47\n// module chunks = 112","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-primitive.js\n// module id = 48\n// module chunks = 112","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_property-desc.js\n// module id = 49\n// module chunks = 112","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-object.js\n// module id = 50\n// module chunks = 112","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_array-species-create.js\n// module id = 51\n// module chunks = 112","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_array-species-constructor.js\n// module id = 52\n// module chunks = 112","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_is-array.js\n// module id = 53\n// module chunks = 112","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_wks.js\n// module id = 54\n// module chunks = 112","var global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function (key) {\n return store[key] || (store[key] = {});\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_shared.js\n// module id = 55\n// module chunks = 112","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_uid.js\n// module id = 56\n// module chunks = 112","'use strict';\n// https://github.com/tc39/Array.prototype.includes\nvar $export = require('./_export');\nvar $includes = require('./_array-includes')(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\nrequire('./_add-to-unscopables')('includes');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es7.array.includes.js\n// module id = 57\n// module chunks = 112","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_array-includes.js\n// module id = 58\n// module chunks = 112","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-iobject.js\n// module id = 59\n// module chunks = 112","import {parse as parseURL, format as formatURL} from './url';\n\nvar utils = require('./utils');\n\nconst XHR_DONE = 4;\n\n/**\n * Simple IE9+ and cross-browser ajax request function\n * Note: x-domain requests in IE9 do not support the use of cookies\n *\n * @param url string url\n * @param callback {object | function} callback\n * @param data mixed data\n * @param options object\n */\nexport const ajax = ajaxBuilder();\n\nexport function ajaxBuilder(timeout = 3000) {\n return function(url, callback, data, options = {}) {\n try {\n let x;\n let useXDomainRequest = false;\n let method = options.method || (data ? 'POST' : 'GET');\n\n let callbacks = typeof callback === 'object' ? callback : {\n success: function() {\n utils.logMessage('xhr success');\n },\n error: function(e) {\n utils.logError('xhr error', null, e);\n }\n };\n\n if (typeof callback === 'function') {\n callbacks.success = callback;\n }\n\n if (!window.XMLHttpRequest) {\n useXDomainRequest = true;\n } else {\n x = new window.XMLHttpRequest();\n if (x.responseType === undefined) {\n useXDomainRequest = true;\n }\n }\n\n if (useXDomainRequest) {\n x = new window.XDomainRequest();\n x.onload = function () {\n callbacks.success(x.responseText, x);\n };\n\n // http://stackoverflow.com/questions/15786966/xdomainrequest-aborts-post-on-ie-9\n x.onerror = function () {\n callbacks.error('error', x);\n };\n x.ontimeout = function () {\n callbacks.error('timeout', x);\n };\n x.onprogress = function() {\n utils.logMessage('xhr onprogress');\n };\n } else {\n x.onreadystatechange = function () {\n if (x.readyState === XHR_DONE) {\n let status = x.status;\n if ((status >= 200 && status < 300) || status === 304) {\n callbacks.success(x.responseText, x);\n } else {\n callbacks.error(x.statusText, x);\n }\n }\n };\n x.ontimeout = function () {\n utils.logError(' xhr timeout after ', x.timeout, 'ms');\n };\n }\n\n if (method === 'GET' && data) {\n let urlInfo = parseURL(url, options);\n Object.assign(urlInfo.search, data);\n url = formatURL(urlInfo);\n }\n\n x.open(method, url);\n // IE needs timoeut to be set after open - see #1410\n x.timeout = timeout;\n\n if (!useXDomainRequest) {\n if (options.withCredentials) {\n x.withCredentials = true;\n }\n utils._each(options.customHeaders, (value, header) => {\n x.setRequestHeader(header, value);\n });\n if (options.preflight) {\n x.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n x.setRequestHeader('Content-Type', options.contentType || 'text/plain');\n }\n if (method === 'POST' && data) {\n x.send(data);\n } else {\n x.send();\n }\n } catch (error) {\n utils.logError('xhr construction', error);\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ajax.js","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-absolute-index.js\n// module id = 60\n// module chunks = 112","module.exports = clone;\n\n/*\n Identical to `just-extend(true, {}, obj1)`\n\n var arr = [1, 2, 3];\n var subObj = {aa: 1};\n var obj = {a: 3, b: 5, c: arr, d: subObj};\n var objClone = clone(obj);\n arr.push(4);\n subObj.bb = 2;\n obj; // {a: 3, b: 5, c: [1, 2, 3, 4], d: {aa: 1}} \n objClone; // {a: 3, b: 5, c: [1, 2, 3], d: {aa: 1, bb: 2}}\n*/\n\nfunction clone(obj) {\n var result = Array.isArray(obj) ? [] : {};\n for (var key in obj) {\n // include prototype properties\n var value = obj[key];\n if (value && typeof value == 'object') {\n result[key] = clone(value);\n } else {\n result[key] = value;\n }\n }\n return result;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/just-clone/index.js\n// module id = 61\n// module chunks = 112","import { config } from 'src/config';\nimport { logWarn } from 'src/utils';\nimport includes from 'core-js/library/fn/array/includes';\n\nlet sizeConfig = [];\n\n/**\n * @typedef {object} SizeConfig\n *\n * @property {string} [mediaQuery] A CSS media query string that will to be interpreted by window.matchMedia. If the\n * media query matches then the this config will be active and sizesSupported will filter bid and adUnit sizes. If\n * this property is not present then this SizeConfig will only be active if triggered manually by a call to\n * pbjs.setConfig({labels:['label']) specifying one of the labels present on this SizeConfig.\n * @property {Array} sizesSupported The sizes to be accepted if this SizeConfig is enabled.\n * @property {Array} labels The active labels to match this SizeConfig to an adUnits and/or bidders.\n */\n\n/**\n *\n * @param {Array} config\n */\nexport function setSizeConfig(config) {\n sizeConfig = config;\n}\nconfig.getConfig('sizeConfig', config => setSizeConfig(config.sizeConfig));\n\n/**\n * Resolves the unique set of the union of all sizes and labels that are active from a SizeConfig.mediaQuery match\n * @param {Array} labels Labels specified on adUnit or bidder\n * @param {boolean} labelAll if true, all labels must match to be enabled\n * @param {Array} activeLabels Labels passed in through requestBids\n * @param {Array>} sizes Sizes specified on adUnit\n * @param {Array} configs\n * @returns {{labels: Array, sizes: Array>}}\n */\nexport function resolveStatus({labels = [], labelAll = false, activeLabels = []} = {}, sizes = [], configs = sizeConfig) {\n let maps = evaluateSizeConfig(configs);\n\n let filteredSizes;\n if (maps.shouldFilter) {\n filteredSizes = sizes.filter(size => maps.sizesSupported[size]);\n } else {\n filteredSizes = sizes;\n }\n\n return {\n active: filteredSizes.length > 0 && (\n labels.length === 0 || (\n (!labelAll && (\n labels.some(label => maps.labels[label]) ||\n labels.some(label => includes(activeLabels, label))\n )) ||\n (labelAll && (\n labels.reduce((result, label) => !result ? result : (\n maps.labels[label] || includes(activeLabels, label)\n ), true)\n ))\n )\n ),\n sizes: filteredSizes\n };\n}\n\nfunction evaluateSizeConfig(configs) {\n return configs.reduce((results, config) => {\n if (\n typeof config === 'object' &&\n typeof config.mediaQuery === 'string'\n ) {\n if (matchMedia(config.mediaQuery).matches) {\n if (Array.isArray(config.sizesSupported)) {\n results.shouldFilter = true;\n }\n ['labels', 'sizesSupported'].forEach(\n type => (config[type] || []).forEach(\n thing => results[type][thing] = true\n )\n );\n }\n } else {\n logWarn('sizeConfig rule missing required property \"mediaQuery\"');\n }\n return results;\n }, {\n labels: {},\n sizesSupported: {},\n shouldFilter: false\n });\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/sizeMapping.js","import { videoAdapters } from './adaptermanager';\nimport { getBidRequest, deepAccess, logError } from './utils';\nimport { config } from '../src/config';\nimport includes from 'core-js/library/fn/array/includes';\n\nconst VIDEO_MEDIA_TYPE = 'video';\nconst OUTSTREAM = 'outstream';\n\n/**\n * Helper functions for working with video-enabled adUnits\n */\nexport const videoAdUnit = adUnit => {\n const mediaType = adUnit.mediaType === VIDEO_MEDIA_TYPE;\n const mediaTypes = deepAccess(adUnit, 'mediaTypes.video');\n return mediaType || mediaTypes;\n};\nexport const videoBidder = bid => includes(videoAdapters, bid.bidder);\nexport const hasNonVideoBidder = adUnit =>\n adUnit.bids.filter(bid => !videoBidder(bid)).length;\n\n/**\n * @typedef {object} VideoBid\n * @property {string} adId id of the bid\n */\n\n/**\n * Validate that the assets required for video context are present on the bid\n * @param {VideoBid} bid Video bid to validate\n * @param {BidRequest[]} bidRequests All bid requests for an auction\n * @return {Boolean} If object is valid\n */\nexport function isValidVideoBid(bid, bidRequests) {\n const bidRequest = getBidRequest(bid.adId, bidRequests);\n\n const videoMediaType =\n bidRequest && deepAccess(bidRequest, 'mediaTypes.video');\n const context = videoMediaType && deepAccess(videoMediaType, 'context');\n\n // if context not defined assume default 'instream' for video bids\n // instream bids require a vast url or vast xml content\n if (!bidRequest || (videoMediaType && context !== OUTSTREAM)) {\n // xml-only video bids require a prebid cache url\n if (!config.getConfig('cache.url') && bid.vastXml && !bid.vastUrl) {\n logError(`\n This bid contains only vastXml and will not work when a prebid cache url is not specified.\n Try enabling prebid cache with pbjs.setConfig({ cache: {url: \"...\"} });\n `);\n return false;\n }\n\n return !!(bid.vastUrl || bid.vastXml);\n }\n\n // outstream bids require a renderer on the bid or pub-defined on adunit\n if (context === OUTSTREAM) {\n return !!(bid.renderer || bidRequest.renderer);\n }\n\n return true;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/video.js","/** @module adaptermanger */\n\nimport { flatten, getBidderCodes, getDefinedParams, shuffle, timestamp } from './utils';\nimport { resolveStatus } from './sizeMapping';\nimport { processNativeAdUnitParams, nativeAdapters } from './native';\nimport { newBidder } from './adapters/bidderFactory';\nimport { ajaxBuilder } from 'src/ajax';\nimport { config, RANDOM } from 'src/config';\nimport includes from 'core-js/library/fn/array/includes';\n\nvar utils = require('./utils.js');\nvar CONSTANTS = require('./constants.json');\nvar events = require('./events');\nlet s2sTestingModule; // store s2sTesting module if it's loaded\n\nvar _bidderRegistry = {};\nexports.bidderRegistry = _bidderRegistry;\n\nlet _s2sConfig = {};\nconfig.getConfig('s2sConfig', config => {\n _s2sConfig = config.s2sConfig;\n});\n\nvar _analyticsRegistry = {};\n\n/**\n * @typedef {object} LabelDescriptor\n * @property {boolean} labelAll describes whether or not this object expects all labels to match, or any label to match\n * @property {Array} labels the labels listed on the bidder or adUnit\n * @property {Array} activeLabels the labels specified as being active by requestBids\n */\n\n/**\n * Returns object describing the status of labels on the adUnit or bidder along with labels passed into requestBids\n * @param bidOrAdUnit the bidder or adUnit to get label info on\n * @param activeLabels the labels passed to requestBids\n * @returns {LabelDescriptor}\n */\nfunction getLabels(bidOrAdUnit, activeLabels) {\n if (bidOrAdUnit.labelAll) {\n return {labelAll: true, labels: bidOrAdUnit.labelAll, activeLabels};\n }\n return {labelAll: false, labels: bidOrAdUnit.labelAny, activeLabels};\n}\n\nfunction getBids({bidderCode, auctionId, bidderRequestId, adUnits, labels}) {\n return adUnits.reduce((result, adUnit) => {\n let {active, sizes: filteredAdUnitSizes} = resolveStatus(getLabels(adUnit, labels), adUnit.sizes);\n\n if (active) {\n result.push(adUnit.bids.filter(bid => bid.bidder === bidderCode)\n .reduce((bids, bid) => {\n if (adUnit.mediaTypes) {\n if (utils.isValidMediaTypes(adUnit.mediaTypes)) {\n bid = Object.assign({}, bid, {mediaTypes: adUnit.mediaTypes});\n } else {\n utils.logError(\n `mediaTypes is not correctly configured for adunit ${adUnit.code}`\n );\n }\n }\n\n const nativeParams =\n adUnit.nativeParams || utils.deepAccess(adUnit, 'mediaTypes.native');\n if (nativeParams) {\n bid = Object.assign({}, bid, {\n nativeParams: processNativeAdUnitParams(nativeParams),\n });\n }\n\n bid = Object.assign({}, bid, getDefinedParams(adUnit, [\n 'mediaType',\n 'renderer'\n ]));\n\n let {active, sizes} = resolveStatus(getLabels(bid, labels), filteredAdUnitSizes);\n\n if (active) {\n bids.push(Object.assign({}, bid, {\n adUnitCode: adUnit.code,\n transactionId: adUnit.transactionId,\n sizes: sizes,\n bidId: bid.bid_id || utils.getUniqueIdentifierStr(),\n bidderRequestId,\n auctionId\n }));\n }\n return bids;\n }, [])\n );\n }\n return result;\n }, []).reduce(flatten, []).filter(val => val !== '');\n}\n\nfunction transformHeightWidth(adUnit) {\n let sizesObj = [];\n let sizes = utils.parseSizesInput(adUnit.sizes);\n sizes.forEach(size => {\n let heightWidth = size.split('x');\n let sizeObj = {\n 'w': parseInt(heightWidth[0]),\n 'h': parseInt(heightWidth[1])\n };\n sizesObj.push(sizeObj);\n });\n return sizesObj;\n}\n\nfunction getAdUnitCopyForPrebidServer(adUnits) {\n let adaptersServerSide = _s2sConfig.bidders;\n let adUnitsCopy = utils.deepClone(adUnits);\n\n adUnitsCopy.forEach((adUnit) => {\n adUnit.sizes = transformHeightWidth(adUnit);\n\n // filter out client side bids\n adUnit.bids = adUnit.bids.filter((bid) => {\n return includes(adaptersServerSide, bid.bidder) && (!doingS2STesting() || bid.finalSource !== s2sTestingModule.CLIENT);\n }).map((bid) => {\n bid.bid_id = utils.getUniqueIdentifierStr();\n return bid;\n });\n });\n\n // don't send empty requests\n adUnitsCopy = adUnitsCopy.filter(adUnit => {\n return adUnit.bids.length !== 0;\n });\n return adUnitsCopy;\n}\n\nfunction getAdUnitCopyForClientAdapters(adUnits) {\n let adUnitsClientCopy = utils.deepClone(adUnits);\n // filter out s2s bids\n adUnitsClientCopy.forEach((adUnit) => {\n adUnit.bids = adUnit.bids.filter((bid) => {\n return !doingS2STesting() || bid.finalSource !== s2sTestingModule.SERVER;\n })\n });\n\n // don't send empty requests\n adUnitsClientCopy = adUnitsClientCopy.filter(adUnit => {\n return adUnit.bids.length !== 0;\n });\n\n return adUnitsClientCopy;\n}\n\nexports.makeBidRequests = function(adUnits, auctionStart, auctionId, cbTimeout, labels) {\n let bidRequests = [];\n\n adUnits = exports.checkBidRequestSizes(adUnits);\n\n let bidderCodes = getBidderCodes(adUnits);\n if (config.getConfig('bidderSequence') === RANDOM) {\n bidderCodes = shuffle(bidderCodes);\n }\n\n let clientBidderCodes = bidderCodes;\n let clientTestAdapters = [];\n if (_s2sConfig.enabled) {\n // if s2sConfig.bidderControl testing is turned on\n if (doingS2STesting()) {\n // get all adapters doing client testing\n clientTestAdapters = s2sTestingModule.getSourceBidderMap(adUnits)[s2sTestingModule.CLIENT];\n }\n\n // these are called on the s2s adapter\n let adaptersServerSide = _s2sConfig.bidders;\n\n // don't call these client side (unless client request is needed for testing)\n clientBidderCodes = bidderCodes.filter((elm) => {\n return !includes(adaptersServerSide, elm) || includes(clientTestAdapters, elm);\n });\n\n let adUnitsS2SCopy = getAdUnitCopyForPrebidServer(adUnits);\n let tid = utils.generateUUID();\n adaptersServerSide.forEach(bidderCode => {\n const bidderRequestId = utils.getUniqueIdentifierStr();\n const bidderRequest = {\n bidderCode,\n auctionId,\n bidderRequestId,\n tid,\n adUnitsS2SCopy,\n bids: getBids({bidderCode, auctionId, bidderRequestId, 'adUnits': adUnitsS2SCopy, labels}),\n auctionStart: auctionStart,\n timeout: _s2sConfig.timeout,\n src: CONSTANTS.S2S.SRC\n };\n if (bidderRequest.bids.length !== 0) {\n bidRequests.push(bidderRequest);\n }\n });\n }\n\n // client adapters\n let adUnitsClientCopy = getAdUnitCopyForClientAdapters(adUnits);\n clientBidderCodes.forEach(bidderCode => {\n const bidderRequestId = utils.getUniqueIdentifierStr();\n const bidderRequest = {\n bidderCode,\n auctionId,\n bidderRequestId,\n bids: getBids({bidderCode, auctionId, bidderRequestId, 'adUnits': adUnitsClientCopy, labels}),\n auctionStart: auctionStart,\n timeout: cbTimeout\n };\n if (bidderRequest.bids && bidderRequest.bids.length !== 0) {\n bidRequests.push(bidderRequest);\n }\n });\n return bidRequests;\n};\n\nexports.checkBidRequestSizes = (adUnits) => {\n Array.prototype.forEach.call(adUnits, adUnit => {\n if (adUnit.sizes) {\n utils.logWarn('Usage of adUnits.sizes will eventually be deprecated. Please define size dimensions within the corresponding area of the mediaTypes. (eg mediaTypes.banner.sizes).');\n }\n\n const mediaTypes = adUnit.mediaTypes;\n if (mediaTypes && mediaTypes.banner) {\n const banner = mediaTypes.banner;\n if (banner.sizes) {\n adUnit.sizes = banner.sizes;\n } else {\n utils.logError('Detected a mediaTypes.banner object did not include sizes. This is a required field for the mediaTypes.banner object. Removing invalid mediaTypes.banner object from request.');\n delete adUnit.mediaTypes.banner;\n }\n }\n\n if (mediaTypes && mediaTypes.video) {\n const video = mediaTypes.video;\n if (video.playerSize) {\n if (Array.isArray(video.playerSize) && video.playerSize.length === 2 && utils.isInteger(video.playerSize[0]) && utils.isInteger(video.playerSize[1])) {\n adUnit.sizes = video.playerSize;\n } else {\n utils.logError('Detected incorrect configuration of mediaTypes.video.playerSize. Please specify only one set of dimensions in a format like: [640, 480]. Removing invalid mediaTypes.video.playerSize property from request.');\n delete adUnit.mediaTypes.video.playerSize;\n }\n }\n }\n\n if (mediaTypes && mediaTypes.native) {\n const native = mediaTypes.native;\n if (native.image && native.image.sizes && !Array.isArray(native.image.sizes)) {\n utils.logError('Please use an array of sizes for native.image.sizes field. Removing invalid mediaTypes.native.image.sizes property from request.');\n delete adUnit.mediaTypes.native.image.sizes;\n }\n if (native.image && native.image.aspect_ratios && !Array.isArray(native.image.aspect_ratios)) {\n utils.logError('Please use an array of sizes for native.image.aspect_ratios field. Removing invalid mediaTypes.native.image.aspect_ratios property from request.');\n delete adUnit.mediaTypes.native.image.aspect_ratios;\n }\n if (native.icon && native.icon.sizes && !Array.isArray(native.icon.sizes)) {\n utils.logError('Please use an array of sizes for native.icon.sizes field. Removing invalid mediaTypes.native.icon.sizes property from request.');\n delete adUnit.mediaTypes.native.icon.sizes;\n }\n }\n });\n return adUnits;\n}\n\nexports.callBids = (adUnits, bidRequests, addBidResponse, doneCb) => {\n if (!bidRequests.length) {\n utils.logWarn('callBids executed with no bidRequests. Were they filtered by labels or sizing?');\n return;\n }\n\n let ajax = ajaxBuilder(bidRequests[0].timeout);\n\n let [clientBidRequests, serverBidRequests] = bidRequests.reduce((partitions, bidRequest) => {\n partitions[Number(typeof bidRequest.src !== 'undefined' && bidRequest.src === CONSTANTS.S2S.SRC)].push(bidRequest);\n return partitions;\n }, [[], []]);\n\n if (serverBidRequests.length) {\n let adaptersServerSide = _s2sConfig.bidders;\n const s2sAdapter = _bidderRegistry[_s2sConfig.adapter];\n let tid = serverBidRequests[0].tid;\n let adUnitsS2SCopy = serverBidRequests[0].adUnitsS2SCopy;\n\n if (s2sAdapter) {\n let s2sBidRequest = {tid, 'ad_units': adUnitsS2SCopy};\n if (s2sBidRequest.ad_units.length) {\n let doneCbs = serverBidRequests.map(bidRequest => {\n bidRequest.start = timestamp();\n bidRequest.doneCbCallCount = 0;\n return doneCb(bidRequest.bidderRequestId)\n });\n\n // only log adapters that actually have adUnit bids\n let allBidders = s2sBidRequest.ad_units.reduce((adapters, adUnit) => {\n return adapters.concat((adUnit.bids || []).reduce((adapters, bid) => { return adapters.concat(bid.bidder) }, []));\n }, []);\n utils.logMessage(`CALLING S2S HEADER BIDDERS ==== ${adaptersServerSide.filter(adapter => {\n return includes(allBidders, adapter);\n }).join(',')}`);\n\n // fire BID_REQUESTED event for each s2s bidRequest\n serverBidRequests.forEach(bidRequest => {\n events.emit(CONSTANTS.EVENTS.BID_REQUESTED, bidRequest);\n });\n\n // make bid requests\n s2sAdapter.callBids(\n s2sBidRequest,\n serverBidRequests,\n addBidResponse,\n () => doneCbs.forEach(done => done()),\n ajax\n );\n }\n }\n }\n\n // handle client adapter requests\n clientBidRequests.forEach(bidRequest => {\n bidRequest.start = timestamp();\n // TODO : Do we check for bid in pool from here and skip calling adapter again ?\n const adapter = _bidderRegistry[bidRequest.bidderCode];\n if (adapter) {\n utils.logMessage(`CALLING BIDDER ======= ${bidRequest.bidderCode}`);\n events.emit(CONSTANTS.EVENTS.BID_REQUESTED, bidRequest);\n bidRequest.doneCbCallCount = 0;\n let done = doneCb(bidRequest.bidderRequestId);\n adapter.callBids(bidRequest, addBidResponse, done, ajax);\n } else {\n utils.logError(`Adapter trying to be called which does not exist: ${bidRequest.bidderCode} adaptermanager.callBids`);\n }\n });\n}\n\nfunction doingS2STesting() {\n return _s2sConfig && _s2sConfig.enabled && _s2sConfig.testing && s2sTestingModule;\n}\n\nfunction getSupportedMediaTypes(bidderCode) {\n let result = [];\n if (includes(exports.videoAdapters, bidderCode)) result.push('video');\n if (includes(nativeAdapters, bidderCode)) result.push('native');\n return result;\n}\n\nexports.videoAdapters = []; // added by adapterLoader for now\n\nexports.registerBidAdapter = function (bidAdaptor, bidderCode, {supportedMediaTypes = []} = {}) {\n if (bidAdaptor && bidderCode) {\n if (typeof bidAdaptor.callBids === 'function') {\n _bidderRegistry[bidderCode] = bidAdaptor;\n\n if (includes(supportedMediaTypes, 'video')) {\n exports.videoAdapters.push(bidderCode);\n }\n if (includes(supportedMediaTypes, 'native')) {\n nativeAdapters.push(bidderCode);\n }\n } else {\n utils.logError('Bidder adaptor error for bidder code: ' + bidderCode + 'bidder must implement a callBids() function');\n }\n } else {\n utils.logError('bidAdaptor or bidderCode not specified');\n }\n};\n\nexports.aliasBidAdapter = function (bidderCode, alias) {\n var existingAlias = _bidderRegistry[alias];\n\n if (typeof existingAlias === 'undefined') {\n var bidAdaptor = _bidderRegistry[bidderCode];\n if (typeof bidAdaptor === 'undefined') {\n utils.logError('bidderCode \"' + bidderCode + '\" is not an existing bidder.', 'adaptermanager.aliasBidAdapter');\n } else {\n try {\n let newAdapter;\n let supportedMediaTypes = getSupportedMediaTypes(bidderCode);\n // Have kept old code to support backward compatibilitiy.\n // Remove this if loop when all adapters are supporting bidderFactory. i.e When Prebid.js is 1.0\n if (bidAdaptor.constructor.prototype != Object.prototype) {\n newAdapter = new bidAdaptor.constructor();\n newAdapter.setBidderCode(alias);\n } else {\n let spec = bidAdaptor.getSpec();\n newAdapter = newBidder(Object.assign({}, spec, { code: alias }));\n }\n this.registerBidAdapter(newAdapter, alias, {\n supportedMediaTypes\n });\n } catch (e) {\n utils.logError(bidderCode + ' bidder does not currently support aliasing.', 'adaptermanager.aliasBidAdapter');\n }\n }\n } else {\n utils.logMessage('alias name \"' + alias + '\" has been already specified.');\n }\n};\n\nexports.registerAnalyticsAdapter = function ({adapter, code}) {\n if (adapter && code) {\n if (typeof adapter.enableAnalytics === 'function') {\n adapter.code = code;\n _analyticsRegistry[code] = adapter;\n } else {\n utils.logError(`Prebid Error: Analytics adaptor error for analytics \"${code}\"\n analytics adapter must implement an enableAnalytics() function`);\n }\n } else {\n utils.logError('Prebid Error: analyticsAdapter or analyticsCode not specified');\n }\n};\n\nexports.enableAnalytics = function (config) {\n if (!utils.isArray(config)) {\n config = [config];\n }\n\n utils._each(config, adapterConfig => {\n var adapter = _analyticsRegistry[adapterConfig.provider];\n if (adapter) {\n adapter.enableAnalytics(adapterConfig);\n } else {\n utils.logError(`Prebid Error: no analytics adapter found in registry for\n ${adapterConfig.provider}.`);\n }\n });\n};\n\nexports.getBidAdapter = function(bidder) {\n return _bidderRegistry[bidder];\n};\n\n// the s2sTesting module is injected when it's loaded rather than being imported\n// importing it causes the packager to include it even when it's not explicitly included in the build\nexports.setS2STestingModule = function (module) {\n s2sTestingModule = module;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/adaptermanager.js","require('../../modules/es7.array.includes');\nmodule.exports = require('../../modules/_core').Array.includes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/array/includes.js\n// module id = 8\n// module chunks = 112","/**\n * events.js\n */\nvar utils = require('./utils');\nvar CONSTANTS = require('./constants');\nvar slice = Array.prototype.slice;\nvar push = Array.prototype.push;\n\n// define entire events\n// var allEvents = ['bidRequested','bidResponse','bidWon','bidTimeout'];\nvar allEvents = utils._map(CONSTANTS.EVENTS, function (v) {\n return v;\n});\n\nvar idPaths = CONSTANTS.EVENT_ID_PATHS;\n\n// keep a record of all events fired\nvar eventsFired = [];\n\nmodule.exports = (function () {\n var _handlers = {};\n var _public = {};\n\n /**\n *\n * @param {String} eventString The name of the event.\n * @param {Array} args The payload emitted with the event.\n * @private\n */\n function _dispatch(eventString, args) {\n utils.logMessage('Emitting event for: ' + eventString);\n\n var eventPayload = args[0] || {};\n var idPath = idPaths[eventString];\n var key = eventPayload[idPath];\n var event = _handlers[eventString] || { que: [] };\n var eventKeys = utils._map(event, function (v, k) {\n return k;\n });\n\n var callbacks = [];\n\n // record the event:\n eventsFired.push({\n eventType: eventString,\n args: eventPayload,\n id: key\n });\n\n /** Push each specific callback to the `callbacks` array.\n * If the `event` map has a key that matches the value of the\n * event payload id path, e.g. `eventPayload[idPath]`, then apply\n * each function in the `que` array as an argument to push to the\n * `callbacks` array\n * */\n if (key && utils.contains(eventKeys, key)) {\n push.apply(callbacks, event[key].que);\n }\n\n /** Push each general callback to the `callbacks` array. */\n push.apply(callbacks, event.que);\n\n /** call each of the callbacks */\n utils._each(callbacks, function (fn) {\n if (!fn) return;\n try {\n fn.apply(null, args);\n } catch (e) {\n utils.logError('Error executing handler:', 'events.js', e);\n }\n });\n }\n\n function _checkAvailableEvent(event) {\n return utils.contains(allEvents, event);\n }\n\n _public.on = function (eventString, handler, id) {\n // check whether available event or not\n if (_checkAvailableEvent(eventString)) {\n var event = _handlers[eventString] || { que: [] };\n\n if (id) {\n event[id] = event[id] || { que: [] };\n event[id].que.push(handler);\n } else {\n event.que.push(handler);\n }\n\n _handlers[eventString] = event;\n } else {\n utils.logError('Wrong event name : ' + eventString + ' Valid event names :' + allEvents);\n }\n };\n\n _public.emit = function (event) {\n var args = slice.call(arguments, 1);\n _dispatch(event, args);\n };\n\n _public.off = function (eventString, handler, id) {\n var event = _handlers[eventString];\n\n if (utils.isEmpty(event) || (utils.isEmpty(event.que) && utils.isEmpty(event[id]))) {\n return;\n }\n\n if (id && (utils.isEmpty(event[id]) || utils.isEmpty(event[id].que))) {\n return;\n }\n\n if (id) {\n utils._each(event[id].que, function (_handler) {\n var que = event[id].que;\n if (_handler === handler) {\n que.splice(utils.indexOf.call(que, _handler), 1);\n }\n });\n } else {\n utils._each(event.que, function (_handler) {\n var que = event.que;\n if (_handler === handler) {\n que.splice(utils.indexOf.call(que, _handler), 1);\n }\n });\n }\n\n _handlers[eventString] = event;\n };\n\n _public.get = function () {\n return _handlers;\n };\n\n /**\n * This method can return a copy of all the events fired\n * @return {Array} array of events fired\n */\n _public.getEvents = function () {\n var arrayCopy = [];\n utils._each(eventsFired, function (value) {\n var newProp = Object.assign({}, value);\n arrayCopy.push(newProp);\n });\n\n return arrayCopy;\n };\n\n return _public;\n}());\n\n\n\n// WEBPACK FOOTER //\n// ./src/events.js","'use strict';\n// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(6);\nvar KEY = 'findIndex';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.array.find-index.js\n// module id = 94\n// module chunks = 112","import { userSync } from 'src/userSync'\nconst { registerBidder } = require('../src/adapters/bidderFactory');\nconst { config } = require('../src/config');\n\nconst BIDDER_CODE = '33across';\nconst END_POINT = 'https://ssc.33across.com/api/v1/hb';\nconst SYNC_ENDPOINT = 'https://de.tynt.com/deb/v2?m=xch&rt=html';\n\n// All this assumes that only one bid is ever returned by ttx\nfunction _createBidResponse(response) {\n return {\n requestId: response.id,\n bidderCode: BIDDER_CODE,\n cpm: response.seatbid[0].bid[0].price,\n width: response.seatbid[0].bid[0].w,\n height: response.seatbid[0].bid[0].h,\n ad: response.seatbid[0].bid[0].adm,\n ttl: response.seatbid[0].bid[0].ttl || 60,\n creativeId: response.seatbid[0].bid[0].crid,\n currency: response.cur,\n netRevenue: true\n }\n}\n\n// infer the necessary data from valid bid for a minimal ttxRequest and create HTTP request\nfunction _createServerRequest(bidRequest) {\n const ttxRequest = {};\n const params = bidRequest.params;\n\n /*\n * Infer data for the request payload\n */\n ttxRequest.imp = [];\n ttxRequest.imp[0] = {\n banner: {\n format: bidRequest.sizes.map(_getFormatSize)\n },\n ext: {\n ttx: {\n prod: params.productId\n }\n }\n }\n ttxRequest.site = { id: params.siteId };\n // Go ahead send the bidId in request to 33exchange so it's kept track of in the bid response and\n // therefore in ad targetting process\n ttxRequest.id = bidRequest.bidId;\n // Finally, set the openRTB 'test' param if this is to be a test bid\n if (params.test === 1) {\n ttxRequest.test = 1;\n }\n\n /*\n * Now construt the full server request\n */\n const options = {\n contentType: 'application/json',\n withCredentials: false\n };\n // Allow the ability to configure the HB endpoint for testing purposes.\n const ttxSettings = config.getConfig('ttxSettings');\n const url = (ttxSettings && ttxSettings.url) || END_POINT;\n\n // Return the server request\n return {\n 'method': 'POST',\n 'url': url,\n 'data': JSON.stringify(ttxRequest),\n 'options': options\n }\n}\n\nfunction _getFormatSize(sizeArr) {\n return {\n w: sizeArr[0],\n h: sizeArr[1],\n ext: {}\n }\n}\n\n// Register one sync per bid since each ad unit may potenitally be linked to a uniqe guid\n// Sync type will always be 'iframe' for 33Across\nfunction _registerUserSyncs(requestData) {\n let ttxRequest;\n try {\n ttxRequest = JSON.parse(requestData);\n } catch (err) {\n // No point in trying to register sync since the requisite data cannot be parsed.\n return;\n }\n const ttxSettings = config.getConfig('ttxSettings');\n\n let syncUrl = (ttxSettings && ttxSettings.syncUrl) || SYNC_ENDPOINT;\n\n syncUrl = `${syncUrl}&id=${ttxRequest.site.id}`;\n userSync.registerSync('iframe', BIDDER_CODE, syncUrl);\n}\n\nfunction isBidRequestValid(bid) {\n if (bid.bidder !== BIDDER_CODE || typeof bid.params === 'undefined') {\n return false;\n }\n\n if (typeof bid.params.siteId === 'undefined' || typeof bid.params.productId === 'undefined') {\n return false;\n }\n\n return true;\n}\n\n// NOTE: At this point, 33exchange only accepts request for a single impression\nfunction buildRequests(bidRequests) {\n return bidRequests.map(_createServerRequest);\n}\n\n// NOTE: At this point, the response from 33exchange will only ever contain one bid i.e. the highest bid\nfunction interpretResponse(serverResponse, bidRequest) {\n // Register user sync first\n if (bidRequest && bidRequest.data) {\n _registerUserSyncs(bidRequest.data);\n }\n\n const bidResponses = [];\n\n // If there are bids, look at the first bid of the first seatbid (see NOTE above for assumption about ttx)\n if (serverResponse.body.seatbid.length > 0 && serverResponse.body.seatbid[0].bid.length > 0) {\n bidResponses.push(_createBidResponse(serverResponse.body));\n }\n\n return bidResponses;\n}\n\nconst spec = {\n code: BIDDER_CODE,\n isBidRequestValid,\n buildRequests,\n interpretResponse\n}\n\nregisterBidder(spec);\n\nmodule.exports = spec;\n\n\n\n// WEBPACK FOOTER //\n// ./modules/33acrossBidAdapter.js","import {registerBidder} from 'src/adapters/bidderFactory';\nimport * as utils from 'src/utils';\n\nconst A4G_BIDDER_CODE = 'a4g';\nconst A4G_CURRENCY = 'USD';\nconst A4G_DEFAULT_BID_URL = '//ads.ad4game.com/v1/bid';\nconst A4G_TTL = 120;\n\nconst LOCATION_PARAM_NAME = 'siteurl';\nconst ID_PARAM_NAME = 'id';\nconst IFRAME_PARAM_NAME = 'if';\nconst ZONE_ID_PARAM_NAME = 'zoneId';\nconst SIZE_PARAM_NAME = 'size';\n\nconst ARRAY_PARAM_SEPARATOR = ';';\nconst ARRAY_SIZE_SEPARATOR = ',';\nconst SIZE_SEPARATOR = 'x';\n\nexport const spec = {\n code: A4G_BIDDER_CODE,\n isBidRequestValid: function(bid) {\n return bid.params && !!bid.params.zoneId;\n },\n\n buildRequests: function(validBidRequests) {\n let deliveryUrl = '';\n const idParams = [];\n const sizeParams = [];\n const zoneIds = [];\n\n utils._each(validBidRequests, function(bid) {\n if (!deliveryUrl && typeof bid.params.deliveryUrl === 'string') {\n deliveryUrl = bid.params.deliveryUrl;\n }\n idParams.push(bid.bidId);\n sizeParams.push(bid.sizes.map(size => size.join(SIZE_SEPARATOR)).join(ARRAY_SIZE_SEPARATOR));\n zoneIds.push(bid.params.zoneId);\n });\n\n if (!deliveryUrl) {\n deliveryUrl = A4G_DEFAULT_BID_URL;\n }\n\n return {\n method: 'GET',\n url: deliveryUrl,\n data: {\n [IFRAME_PARAM_NAME]: 0,\n [LOCATION_PARAM_NAME]: utils.getTopWindowUrl(),\n [SIZE_PARAM_NAME]: sizeParams.join(ARRAY_PARAM_SEPARATOR),\n [ID_PARAM_NAME]: idParams.join(ARRAY_PARAM_SEPARATOR),\n [ZONE_ID_PARAM_NAME]: zoneIds.join(ARRAY_PARAM_SEPARATOR)\n }\n };\n },\n\n interpretResponse: function(serverResponses, request) {\n const bidResponses = [];\n utils._each(serverResponses.body, function(response) {\n if (response.cpm > 0) {\n const bidResponse = {\n requestId: response.id,\n creativeId: response.id,\n adId: response.id,\n cpm: response.cpm,\n width: response.width,\n height: response.height,\n currency: A4G_CURRENCY,\n netRevenue: true,\n ttl: A4G_TTL,\n ad: response.ad\n };\n bidResponses.push(bidResponse);\n }\n });\n return bidResponses;\n }\n};\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/a4gBidAdapter.js","'use strict';\n\nimport * as utils from 'src/utils';\nimport {config} from 'src/config';\nimport {registerBidder} from 'src/adapters/bidderFactory';\n\nconst BIDDER_CODE = 'adbutler';\n\nexport const spec = {\n code: BIDDER_CODE,\n pageID: Math.floor(Math.random() * 10e6),\n\n isBidRequestValid: function (bid) {\n return !!(bid.params.accountID && bid.params.zoneID);\n },\n\n buildRequests: function (validBidRequests) {\n var i;\n var zoneID;\n var bidRequest;\n var accountID;\n var keyword;\n var domain;\n var requestURI;\n var serverRequests = [];\n var zoneCounters = {};\n\n for (i = 0; i < validBidRequests.length; i++) {\n bidRequest = validBidRequests[i];\n zoneID = utils.getBidIdParameter('zoneID', bidRequest.params);\n accountID = utils.getBidIdParameter('accountID', bidRequest.params);\n keyword = utils.getBidIdParameter('keyword', bidRequest.params);\n domain = utils.getBidIdParameter('domain', bidRequest.params);\n\n if (!(zoneID in zoneCounters)) {\n zoneCounters[zoneID] = 0;\n }\n\n if (typeof domain === 'undefined' || domain.length === 0) {\n domain = 'servedbyadbutler.com';\n }\n\n requestURI = location.protocol + '//' + domain + '/adserve/;type=hbr;';\n requestURI += 'ID=' + encodeURIComponent(accountID) + ';';\n requestURI += 'setID=' + encodeURIComponent(zoneID) + ';';\n requestURI += 'pid=' + encodeURIComponent(spec.pageID) + ';';\n requestURI += 'place=' + encodeURIComponent(zoneCounters[zoneID]) + ';';\n\n // append the keyword for targeting if one was passed in\n if (keyword !== '') {\n requestURI += 'kw=' + encodeURIComponent(keyword) + ';';\n }\n\n zoneCounters[zoneID]++;\n serverRequests.push({\n method: 'GET',\n url: requestURI,\n data: {},\n bidRequest: bidRequest\n });\n }\n return serverRequests;\n },\n\n interpretResponse: function (serverResponse, bidRequest) {\n var bidObj = bidRequest.bidRequest;\n var bidResponses = [];\n var bidResponse = {};\n var isCorrectSize = false;\n var isCorrectCPM = true;\n var CPM;\n var minCPM;\n var maxCPM;\n var width;\n var height;\n\n serverResponse = serverResponse.body;\n if (serverResponse && serverResponse.status === 'SUCCESS' && bidObj) {\n CPM = serverResponse.cpm;\n minCPM = utils.getBidIdParameter('minCPM', bidObj.params);\n maxCPM = utils.getBidIdParameter('maxCPM', bidObj.params);\n width = parseInt(serverResponse.width);\n height = parseInt(serverResponse.height);\n\n // Ensure response CPM is within the given bounds\n if (minCPM !== '' && CPM < parseFloat(minCPM)) {\n isCorrectCPM = false;\n }\n if (maxCPM !== '' && CPM > parseFloat(maxCPM)) {\n isCorrectCPM = false;\n }\n\n // Ensure that response ad matches one of the placement sizes.\n utils._each(bidObj.sizes, function (size) {\n if (width === size[0] && height === size[1]) {\n isCorrectSize = true;\n }\n });\n if (isCorrectCPM && isCorrectSize) {\n bidResponse.requestId = bidObj.bidId;\n bidResponse.bidderCode = spec.code;\n bidResponse.creativeId = serverResponse.placement_id;\n bidResponse.cpm = CPM;\n bidResponse.width = width;\n bidResponse.height = height;\n bidResponse.ad = serverResponse.ad_code;\n bidResponse.ad += spec.addTrackingPixels(serverResponse.tracking_pixels);\n bidResponse.currency = 'USD';\n bidResponse.netRevenue = true;\n bidResponse.ttl = config.getConfig('_bidderTimeout');\n bidResponse.referrer = utils.getTopWindowUrl();\n bidResponses.push(bidResponse);\n }\n }\n return bidResponses;\n },\n\n addTrackingPixels: function (trackingPixels) {\n var trackingPixelMarkup = '';\n utils._each(trackingPixels, function (pixelURL) {\n var trackingPixel = ' 0) {\n bidRequest = bidRequests.bidRequest;\n const bidResponse = {\n requestId: bidRequest.bidId,\n cpm: body.cpm || 0,\n width: bidRequest.sizes[0][0],\n height: bidRequest.sizes[0][1],\n creativeId: body.creativeid || '',\n dealId: body.dealid || '',\n currency: 'JPY',\n netRevenue: true,\n ttl: body.ttl || 10,\n referrer: utils.getTopWindowUrl(),\n };\n if (bidRequest.mediaTypes && bidRequest.mediaTypes.native) {\n bidResponse.native = createNativeAd(body);\n bidResponse.mediaType = NATIVE;\n } else {\n // banner\n bidResponse.ad = createAd(body, bidRequest);\n }\n bidResponses.push(bidResponse);\n }\n return bidResponses; // noAdは空を返す\n },\n\n /**\n * Register the user sync pixels which should be dropped after the auction.\n *\n * @param {SyncOptions} syncOptions Which user syncs are allowed?\n * @param {ServerResponse[]} serverResponses List of server's responses.\n * @return {UserSync[]} The user syncs which should be dropped.\n */\n getUserSyncs: function (syncOptions, serverResponses) {\n const syncs = [];\n return syncs;\n }\n};\n\nfunction createAd(body, bidRequest) {\n let ad = body.ad;\n if (body.vastxml && body.vastxml.length > 0) {\n ad = `
${createAPVTag()}${insertVASTMethod(bidRequest.bidId, body.vastxml)}`;\n }\n ad = appendChildToBody(ad, body.beacon);\n if (removeWrapper(ad)) return removeWrapper(ad);\n return ad;\n}\n\nfunction createNativeAd(body) {\n let native = {};\n if (body.native_ad && body.native_ad.assets.length > 0) {\n const assets = body.native_ad.assets;\n for (let i = 0, len = assets.length; i < len; i++) {\n switch (assets[i].id) {\n case 1:\n native.title = assets[i].title.text;\n break;\n case 2:\n native.image = {\n url: assets[i].img.url,\n height: assets[i].img.h,\n width: assets[i].img.w,\n };\n break;\n case 3:\n native.icon = {\n url: assets[i].img.url,\n height: assets[i].img.h,\n width: assets[i].img.w,\n };\n break;\n case 4:\n native.sponsoredBy = assets[i].data.value;\n break;\n case 5:\n native.body = assets[i].data.value;\n break;\n case 6:\n native.cta = assets[i].data.value;\n break;\n }\n }\n native.clickUrl = body.native_ad.link.url;\n native.clickTrackers = body.native_ad.link.clicktrackers || [];\n native.impressionTrackers = body.native_ad.imptrackers || [];\n if (body.beaconurl && body.beaconurl != '') {\n native.impressionTrackers.push(body.beaconurl)\n }\n }\n return native;\n}\n\nfunction appendChildToBody(ad, data) {\n return ad.replace(/<\\/\\s?body>/, `${data}`);\n}\n\nfunction createAPVTag() {\n const APVURL = 'https://cdn.apvdr.com/js/VideoAd.min.js';\n let apvScript = document.createElement('script');\n apvScript.type = 'text/javascript';\n apvScript.id = 'apv';\n apvScript.src = APVURL;\n return apvScript.outerHTML;\n}\n\nfunction insertVASTMethod(targetId, vastXml) {\n let apvVideoAdParam = {\n s: targetId\n };\n let script = document.createElement(`script`);\n script.type = 'text/javascript';\n script.innerHTML = `(function(){ new APV.VideoAd(${JSON.stringify(apvVideoAdParam)}).load('${vastXml.replace(/\\r?\\n/g, '')}'); })();`;\n return script.outerHTML;\n}\n\n/**\n *\n * @param ad\n */\nfunction removeWrapper(ad) {\n const bodyIndex = ad.indexOf('');\n const lastBodyIndex = ad.lastIndexOf('');\n if (bodyIndex === -1 || lastBodyIndex === -1) return false;\n return ad.substr(bodyIndex, lastBodyIndex).replace('', '').replace('', '');\n}\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/adgenerationBidAdapter.js","import CONSTANTS from './constants';\nimport { loadScript } from './adloader';\nimport { ajax } from './ajax';\n\nconst events = require('./events');\nconst utils = require('./utils');\n\nconst AUCTION_INIT = CONSTANTS.EVENTS.AUCTION_INIT;\nconst AUCTION_END = CONSTANTS.EVENTS.AUCTION_END;\nconst BID_REQUESTED = CONSTANTS.EVENTS.BID_REQUESTED;\nconst BID_TIMEOUT = CONSTANTS.EVENTS.BID_TIMEOUT;\nconst BID_RESPONSE = CONSTANTS.EVENTS.BID_RESPONSE;\nconst BID_WON = CONSTANTS.EVENTS.BID_WON;\nconst BID_ADJUSTMENT = CONSTANTS.EVENTS.BID_ADJUSTMENT;\nconst SET_TARGETING = CONSTANTS.EVENTS.SET_TARGETING;\nconst AD_RENDER_FAILED = CONSTANTS.EVENTS.AD_RENDER_FAILED;\n\nconst LIBRARY = 'library';\nconst ENDPOINT = 'endpoint';\nconst BUNDLE = 'bundle';\n\nvar _sampled = true;\n\nexport default function AnalyticsAdapter({ url, analyticsType, global, handler }) {\n var _queue = [];\n var _eventCount = 0;\n var _enableCheck = true;\n var _handlers;\n\n if (analyticsType === LIBRARY) {\n loadScript(url, _emptyQueue);\n }\n\n if (analyticsType === ENDPOINT || BUNDLE) {\n _emptyQueue();\n }\n\n return {\n track: _track,\n enqueue: _enqueue,\n enableAnalytics: _enable,\n disableAnalytics: _disable,\n getAdapterType: () => analyticsType,\n getGlobal: () => global,\n getHandler: () => handler,\n getUrl: () => url\n };\n\n function _track({ eventType, args }) {\n if (this.getAdapterType() === LIBRARY || BUNDLE) {\n window[global](handler, eventType, args);\n }\n\n if (this.getAdapterType() === ENDPOINT) {\n _callEndpoint(...arguments);\n }\n }\n\n function _callEndpoint({ eventType, args, callback }) {\n ajax(url, callback, JSON.stringify({ eventType, args }));\n }\n\n function _enqueue({ eventType, args }) {\n const _this = this;\n\n if (global && window[global] && eventType && args) {\n this.track({ eventType, args });\n } else {\n _queue.push(function () {\n _eventCount++;\n _this.track({ eventType, args });\n });\n }\n }\n\n function _enable(config) {\n var _this = this;\n\n if (typeof config === 'object' && typeof config.options === 'object') {\n _sampled = typeof config.options.sampling === 'undefined' || Math.random() < parseFloat(config.options.sampling);\n } else {\n _sampled = true;\n }\n\n if (_sampled) {\n // first send all events fired before enableAnalytics called\n events.getEvents().forEach(event => {\n if (!event) {\n return;\n }\n\n const { eventType, args } = event;\n\n if (eventType !== BID_TIMEOUT) {\n _enqueue.call(_this, { eventType, args });\n }\n });\n\n // Next register event listeners to send data immediately\n\n _handlers = {\n [BID_REQUESTED]: args => this.enqueue({ eventType: BID_REQUESTED, args }),\n [BID_RESPONSE]: args => this.enqueue({ eventType: BID_RESPONSE, args }),\n [BID_TIMEOUT]: args => this.enqueue({ eventType: BID_TIMEOUT, args }),\n [BID_WON]: args => this.enqueue({ eventType: BID_WON, args }),\n [BID_ADJUSTMENT]: args => this.enqueue({ eventType: BID_ADJUSTMENT, args }),\n [SET_TARGETING]: args => this.enqueue({ eventType: SET_TARGETING, args }),\n [AUCTION_END]: args => this.enqueue({ eventType: AUCTION_END, args }),\n [AD_RENDER_FAILED]: args => this.enqueue({ eventType: AD_RENDER_FAILED, args }),\n [AUCTION_INIT]: args => {\n args.config = config.options; // enableAnaltyics configuration object\n this.enqueue({ eventType: AUCTION_INIT, args });\n }\n };\n\n utils._each(_handlers, (handler, event) => {\n events.on(event, handler);\n });\n } else {\n utils.logMessage(`Analytics adapter for \"${global}\" disabled by sampling`);\n }\n\n // finally set this function to return log message, prevents multiple adapter listeners\n this.enableAnalytics = function _enable() {\n return utils.logMessage(`Analytics adapter for \"${global}\" already enabled, unnecessary call to \\`enableAnalytics\\`.`);\n };\n }\n\n function _disable() {\n utils._each(_handlers, (handler, event) => {\n events.off(event, handler);\n });\n }\n\n function _emptyQueue() {\n if (_enableCheck) {\n for (var i = 0; i < _queue.length; i++) {\n _queue[i]();\n }\n\n // override push to execute the command immediately from now on\n _queue.push = function (fn) {\n fn();\n };\n\n _enableCheck = false;\n }\n\n utils.logMessage(`event count sent to ${global}: ${_eventCount}`);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/AnalyticsAdapter.js","import adapter from 'src/AnalyticsAdapter';\nimport CONSTANTS from 'src/constants.json';\nimport adaptermanager from 'src/adaptermanager';\nimport {parse} from 'src/url';\nimport * as utils from 'src/utils';\nimport {ajax} from 'src/ajax';\n\nconst ANALYTICS_VERSION = '1.0.0';\nconst DEFAULT_QUEUE_TIMEOUT = 4000;\nconst DEFAULT_HOST = 'tag.adkernel.com';\n\nconst ADK_HB_EVENTS = {\n AUCTION_INIT: 'auctionInit',\n BID_REQUEST: 'bidRequested',\n BID_RESPONSE: 'bidResponse',\n BID_WON: 'bidWon',\n AUCTION_END: 'auctionEnd',\n TIMEOUT: 'adapterTimedOut'\n};\n\nfunction buildRequestTemplate(pubId) {\n const url = utils.getTopWindowUrl();\n const ref = utils.getTopWindowReferrer();\n const topLocation = utils.getTopWindowLocation();\n\n return {\n ver: ANALYTICS_VERSION,\n domain: topLocation.hostname,\n path: topLocation.pathname,\n accId: pubId,\n env: {\n screen: {\n w: window.screen.width,\n h: window.screen.height\n },\n lang: navigator.language\n },\n src: getUmtSource(url, ref)\n }\n}\n\nlet analyticsAdapter = Object.assign(adapter({analyticsType: 'endpoint'}),\n {\n track({ eventType, args }) {\n if (!analyticsAdapter.context) {\n return;\n }\n let handler = null;\n switch (eventType) {\n case CONSTANTS.EVENTS.AUCTION_INIT:\n if (analyticsAdapter.context.queue) {\n analyticsAdapter.context.queue.init();\n }\n handler = trackAuctionInit;\n break;\n case CONSTANTS.EVENTS.BID_REQUESTED:\n handler = trackBidRequest;\n break;\n case CONSTANTS.EVENTS.BID_RESPONSE:\n handler = trackBidResponse;\n break;\n case CONSTANTS.EVENTS.BID_WON:\n handler = trackBidWon;\n break;\n case CONSTANTS.EVENTS.BID_TIMEOUT:\n handler = trackBidTimeout;\n break;\n case CONSTANTS.EVENTS.AUCTION_END:\n handler = trackAuctionEnd;\n break;\n }\n if (handler) {\n let events = handler(args);\n if (analyticsAdapter.context.queue) {\n analyticsAdapter.context.queue.push(events);\n }\n if (eventType === CONSTANTS.EVENTS.AUCTION_END) {\n sendAll();\n }\n }\n }\n });\n\nanalyticsAdapter.context = {};\n\nanalyticsAdapter.originEnableAnalytics = analyticsAdapter.enableAnalytics;\n\nanalyticsAdapter.enableAnalytics = (config) => {\n if (!config.options.pubId) {\n utils.logError('PubId is not defined. Analytics won\\'t work');\n return;\n }\n analyticsAdapter.context = {\n host: config.options.host || DEFAULT_HOST,\n pubId: config.options.pubId,\n requestTemplate: buildRequestTemplate(config.options.pubId),\n queue: new ExpiringQueue(sendAll, config.options.queueTimeout || DEFAULT_QUEUE_TIMEOUT)\n };\n analyticsAdapter.originEnableAnalytics(config);\n};\n\nadaptermanager.registerAnalyticsAdapter({\n adapter: analyticsAdapter,\n code: 'adkernelAdn'\n});\n\nexport default analyticsAdapter;\n\nfunction sendAll() {\n let events = analyticsAdapter.context.queue.popAll();\n if (events.length !== 0) {\n let req = Object.assign({}, analyticsAdapter.context.requestTemplate, {hb_ev: events});\n ajax(`//${analyticsAdapter.context.host}/hb-analytics`, () => {\n }, JSON.stringify(req));\n }\n}\n\nfunction trackAuctionInit() {\n analyticsAdapter.context.auctionTimeStart = Date.now();\n const event = createHbEvent(undefined, ADK_HB_EVENTS.AUCTION_INIT);\n return [event];\n}\n\nfunction trackBidRequest(args) {\n return args.bids.map(bid =>\n createHbEvent(args.bidderCode, ADK_HB_EVENTS.BID_REQUEST, bid.placementCode));\n}\n\nfunction trackBidResponse(args) {\n const event = createHbEvent(args.bidderCode, ADK_HB_EVENTS.BID_RESPONSE,\n args.adUnitCode, args.cpm, args.timeToRespond / 1000);\n return [event];\n}\n\nfunction trackBidWon(args) {\n const event = createHbEvent(args.bidderCode, ADK_HB_EVENTS.BID_WON, args.adUnitCode, args.cpm);\n return [event];\n}\n\nfunction trackAuctionEnd(args) {\n const event = createHbEvent(undefined, ADK_HB_EVENTS.AUCTION_END, undefined,\n undefined, (Date.now() - analyticsAdapter.context.auctionTimeStart) / 1000);\n return [event];\n}\n\nfunction trackBidTimeout(args) {\n return args.map(bidderName => createHbEvent(bidderName, ADK_HB_EVENTS.TIMEOUT));\n}\n\nfunction createHbEvent(adapter, event, tagid = undefined, value = 0, time = 0) {\n let ev = { event: event };\n if (adapter) {\n ev.adapter = adapter\n }\n if (tagid) {\n ev.tagid = tagid;\n }\n if (value) {\n ev.val = value;\n }\n if (time) {\n ev.time = time;\n }\n return ev;\n}\n\nconst UTM_TAGS = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'utm_c1', 'utm_c2', 'utm_c3', 'utm_c4', 'utm_c5'];\nconst ADKERNEL_PREBID_KEY = 'adk_dpt_analytics';\nconst DIRECT = '(direct)';\nconst REFERRAL = '(referral)';\nconst ORGANIC = '(organic)';\n\nexport let storage = {\n getItem: (name) => {\n return localStorage.getItem(name);\n },\n setItem: (name, value) => {\n localStorage.setItem(name, value);\n }\n};\n\nexport function getUmtSource(pageUrl, referrer) {\n let prevUtm = getPreviousTrafficSource();\n let currUtm = getCurrentTrafficSource(pageUrl, referrer);\n let [updated, actual] = chooseActualUtm(prevUtm, currUtm);\n if (updated) {\n storeUtm(actual);\n }\n return actual;\n\n function getPreviousTrafficSource() {\n let val = storage.getItem(ADKERNEL_PREBID_KEY);\n if (!val) {\n return getDirect();\n }\n return JSON.parse(val);\n }\n\n function getCurrentTrafficSource(pageUrl, referrer) {\n var source = getUTM(pageUrl);\n if (source) {\n return source;\n }\n if (referrer) {\n let se = getSearchEngine(referrer);\n if (se) {\n return asUtm(se, ORGANIC, ORGANIC);\n }\n let parsedUrl = parse(pageUrl);\n let [refHost, refPath] = getReferrer(referrer);\n if (refHost && refHost !== parsedUrl.hostname) {\n return asUtm(refHost, REFERRAL, REFERRAL, '', refPath);\n }\n }\n return getDirect();\n }\n\n function getSearchEngine(pageUrl) {\n let engines = {\n 'google': /^https?\\:\\/\\/(?:www\\.)?(?:google\\.(?:com?\\.)?(?:com|cat|[a-z]{2})|g.cn)\\//i,\n 'yandex': /^https?\\:\\/\\/(?:www\\.)?ya(?:ndex\\.(?:com|net)?\\.?(?:asia|mobi|org|[a-z]{2})?|\\.ru)\\//i,\n 'bing': /^https?\\:\\/\\/(?:www\\.)?bing\\.com\\//i,\n 'duckduckgo': /^https?\\:\\/\\/(?:www\\.)?duckduckgo\\.com\\//i,\n 'ask': /^https?\\:\\/\\/(?:www\\.)?ask\\.com\\//i,\n 'yahoo': /^https?\\:\\/\\/(?:[-a-z]+\\.)?(?:search\\.)?yahoo\\.com\\//i\n };\n\n for (let engine in engines) {\n if (engines.hasOwnProperty(engine) && engines[engine].test(pageUrl)) {\n return engine;\n }\n }\n }\n\n function getReferrer(referrer) {\n let ref = parse(referrer);\n return [ref.hostname, ref.pathname];\n }\n\n function getUTM(pageUrl) {\n let urlParameters = parse(pageUrl).search;\n if (!urlParameters['utm_campaign'] || !urlParameters['utm_source']) {\n return;\n }\n let utmArgs = [];\n utils._each(UTM_TAGS, (utmTagName) => {\n let utmValue = urlParameters[utmTagName] || '';\n utmArgs.push(utmValue);\n });\n return asUtm.apply(this, utmArgs);\n }\n\n function getDirect() {\n return asUtm(DIRECT, DIRECT, DIRECT);\n }\n\n function storeUtm(utm) {\n let val = JSON.stringify(utm);\n storage.setItem(ADKERNEL_PREBID_KEY, val);\n }\n\n function asUtm(source, medium, campaign, term = '', content = '', c1 = '', c2 = '', c3 = '', c4 = '', c5 = '') {\n let result = {\n source: source,\n medium: medium,\n campaign: campaign\n };\n if (term) {\n result.term = term;\n }\n if (content) {\n result.content = content;\n }\n if (c1) {\n result.c1 = c1;\n }\n if (c2) {\n result.c2 = c2;\n }\n if (c3) {\n result.c3 = c3;\n }\n if (c4) {\n result.c4 = c4;\n }\n if (c5) {\n result.c5 = c5;\n }\n return result;\n }\n\n function chooseActualUtm(prev, curr) {\n if (ord(prev) < ord(curr)) {\n return [true, curr];\n } if (ord(prev) > ord(curr)) {\n return [false, prev];\n } else {\n if (prev.campaign === REFERRAL && prev.content !== curr.content) {\n return [true, curr];\n } else if (prev.campaign === ORGANIC && prev.source !== curr.source) {\n return [true, curr];\n } else if (isCampaignTraffic(prev) && (prev.campaign !== curr.campaign || prev.source !== curr.source)) {\n return [true, curr];\n }\n }\n return [false, prev];\n }\n\n function ord(utm) {\n switch (utm.campaign) {\n case DIRECT:\n return 0;\n case ORGANIC:\n return 1;\n case REFERRAL:\n return 2;\n default:\n return 3;\n }\n }\n\n function isCampaignTraffic(utm) {\n return [DIRECT, REFERRAL, ORGANIC].indexOf(utm.campaign) === -1;\n }\n}\n\n/**\n * Expiring queue implementation. Fires callback on elapsed timeout since last last update or creation.\n * @param callback\n * @param ttl\n * @constructor\n */\nexport function ExpiringQueue(callback, ttl) {\n let queue = [];\n let timeoutId;\n\n this.push = (event) => {\n if (event instanceof Array) {\n queue.push.apply(queue, event);\n } else {\n queue.push(event);\n }\n reset();\n };\n\n this.popAll = () => {\n let result = queue;\n queue = [];\n reset();\n return result;\n };\n\n /**\n * For test/debug purposes only\n * @return {Array}\n */\n this.peekAll = () => {\n return queue;\n };\n\n this.init = reset;\n\n function reset() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n if (queue.length) {\n callback();\n }\n }, ttl);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./modules/adkernelAdnAnalyticsAdapter.js","import * as utils from 'src/utils';\nimport {registerBidder} from 'src/adapters/bidderFactory';\nimport { BANNER, VIDEO } from 'src/mediaTypes';\nimport includes from 'core-js/library/fn/array/includes';\n\nconst DEFAULT_ADKERNEL_DSP_DOMAIN = 'tag.adkernel.com';\nconst VIDEO_TARGETING = ['mimes', 'protocols', 'api'];\nconst DEFAULT_MIMES = ['video/mp4', 'video/webm', 'application/x-shockwave-flash', 'application/javascript'];\nconst DEFAULT_PROTOCOLS = [2, 3, 5, 6];\nconst DEFAULT_APIS = [1, 2];\n\nfunction isRtbDebugEnabled() {\n return utils.getTopWindowLocation().href.indexOf('adk_debug=true') !== -1;\n}\n\nfunction buildImp(bidRequest) {\n const sizes = bidRequest.sizes;\n let imp = {\n id: bidRequest.bidId,\n tagid: bidRequest.placementCode\n };\n if (bidRequest.mediaType === 'video' || utils.deepAccess(bidRequest, 'mediaTypes.video')) {\n imp.video = {\n w: sizes[0],\n h: sizes[1],\n mimes: DEFAULT_MIMES,\n protocols: DEFAULT_PROTOCOLS,\n api: DEFAULT_APIS\n };\n if (bidRequest.params.video) {\n Object.keys(bidRequest.params.video)\n .filter(param => includes(VIDEO_TARGETING, param))\n .forEach(param => imp.video[param] = bidRequest.params.video[param]);\n }\n } else {\n imp.banner = {\n format: utils.parseSizesInput(bidRequest.sizes)\n };\n }\n return imp;\n}\n\nfunction buildRequestParams(auctionId, transactionId, tags) {\n let loc = utils.getTopWindowLocation();\n return {\n id: auctionId,\n tid: transactionId,\n site: {\n page: loc.href,\n ref: utils.getTopWindowReferrer(),\n secure: ~~(loc.protocol === 'https:')\n },\n imp: tags\n };\n}\n\nfunction buildBid(tag) {\n let bid = {\n requestId: tag.impid,\n bidderCode: spec.code,\n cpm: tag.bid,\n width: tag.w,\n height: tag.h,\n creativeId: tag.crid,\n currency: 'USD',\n ttl: 720,\n netRevenue: true\n };\n if (tag.tag) {\n bid.ad = `${tag.tag}`;\n bid.mediaType = BANNER;\n } else if (tag.vast_url) {\n bid.vastUrl = tag.vast_url;\n bid.mediaType = VIDEO;\n }\n return bid;\n}\n\nexport const spec = {\n\n code: 'adkernelAdn',\n\n supportedMediaTypes: [BANNER, VIDEO],\n\n isBidRequestValid: function(bidRequest) {\n return 'params' in bidRequest && (typeof bidRequest.params.host === 'undefined' || typeof bidRequest.params.host === 'string') &&\n typeof bidRequest.params.pubId === 'number';\n },\n\n buildRequests: function(bidRequests) {\n let transactionId;\n let auctionId;\n let dispatch = bidRequests.map(buildImp)\n .reduce((acc, curr, index) => {\n let bidRequest = bidRequests[index];\n let pubId = bidRequest.params.pubId;\n let host = bidRequest.params.host || DEFAULT_ADKERNEL_DSP_DOMAIN;\n acc[host] = acc[host] || {};\n acc[host][pubId] = acc[host][pubId] || [];\n acc[host][pubId].push(curr);\n transactionId = bidRequest.transactionId;\n auctionId = bidRequest.bidderRequestId;\n return acc;\n }, {});\n let requests = [];\n Object.keys(dispatch).forEach(host => {\n Object.keys(dispatch[host]).forEach(pubId => {\n let request = buildRequestParams(auctionId, transactionId, dispatch[host][pubId]);\n requests.push({\n method: 'POST',\n url: `//${host}/tag?account=${pubId}&pb=1${isRtbDebugEnabled() ? '&debug=1' : ''}`,\n data: JSON.stringify(request)\n })\n });\n });\n return requests;\n },\n\n interpretResponse: function(serverResponse) {\n let response = serverResponse.body;\n if (!response.tags) {\n return [];\n }\n if (response.debug) {\n utils.logInfo(`ADKERNEL DEBUG:\\n${response.debug}`);\n }\n return response.tags.map(buildBid);\n },\n\n getUserSyncs: function(syncOptions, serverResponses) {\n if (!syncOptions.iframeEnabled || !serverResponses || serverResponses.length === 0) {\n return [];\n }\n return serverResponses.filter(rps => 'syncpages' in rps.body)\n .map(rsp => rsp.body.syncpages)\n .reduce((a, b) => a.concat(b), [])\n .map(sync_url => {\n return {\n type: 'iframe',\n url: sync_url\n }\n });\n }\n};\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/adkernelAdnBidAdapter.js","import * as utils from 'src/utils';\nimport { BANNER, VIDEO } from 'src/mediaTypes';\nimport {registerBidder} from 'src/adapters/bidderFactory';\nimport find from 'core-js/library/fn/array/find';\nimport includes from 'core-js/library/fn/array/includes';\n\nconst VIDEO_TARGETING = ['mimes', 'minduration', 'maxduration', 'protocols',\n 'startdelay', 'linearity', 'boxingallowed', 'playbackmethod', 'delivery',\n 'pos', 'api', 'ext'];\nconst VERSION = '1.1';\n\n/**\n * Adapter for requesting bids from AdKernel white-label display platform\n */\nexport const spec = {\n\n code: 'adkernel',\n aliases: ['headbidding'],\n supportedMediaTypes: [BANNER, VIDEO],\n isBidRequestValid: function(bidRequest) {\n return 'params' in bidRequest && typeof bidRequest.params.host !== 'undefined' &&\n 'zoneId' in bidRequest.params && !isNaN(Number(bidRequest.params.zoneId));\n },\n buildRequests: function(bidRequests) {\n let auctionId;\n let dispatch = bidRequests.map(buildImp)\n .reduce((acc, curr, index) => {\n let bidRequest = bidRequests[index];\n let zoneId = bidRequest.params.zoneId;\n let host = bidRequest.params.host;\n acc[host] = acc[host] || {};\n acc[host][zoneId] = acc[host][zoneId] || [];\n acc[host][zoneId].push(curr);\n auctionId = bidRequest.bidderRequestId;\n return acc;\n }, {});\n let requests = [];\n Object.keys(dispatch).forEach(host => {\n Object.keys(dispatch[host]).forEach(zoneId => {\n const request = buildRtbRequest(dispatch[host][zoneId], auctionId);\n requests.push({\n method: 'GET',\n url: `${window.location.protocol}//${host}/rtbg`,\n data: {\n zone: Number(zoneId),\n ad_type: 'rtb',\n v: VERSION,\n r: JSON.stringify(request)\n }\n });\n });\n });\n return requests;\n },\n interpretResponse: function(serverResponse, request) {\n let response = serverResponse.body;\n if (!response.seatbid) {\n return [];\n }\n\n let rtbRequest = JSON.parse(request.data.r);\n let rtbImps = rtbRequest.imp;\n let rtbBids = response.seatbid\n .map(seatbid => seatbid.bid)\n .reduce((a, b) => a.concat(b), []);\n\n return rtbBids.map(rtbBid => {\n let imp = find(rtbImps, imp => imp.id === rtbBid.impid);\n let prBid = {\n requestId: rtbBid.impid,\n cpm: rtbBid.price,\n creativeId: rtbBid.crid,\n currency: 'USD',\n ttl: 360,\n netRevenue: true\n };\n if ('banner' in imp) {\n prBid.mediaType = BANNER;\n prBid.width = rtbBid.w;\n prBid.height = rtbBid.h;\n prBid.ad = formatAdMarkup(rtbBid);\n }\n if ('video' in imp) {\n prBid.mediaType = VIDEO;\n prBid.vastUrl = rtbBid.nurl;\n prBid.width = imp.video.w;\n prBid.height = imp.video.h;\n }\n return prBid;\n });\n },\n getUserSyncs: function(syncOptions, serverResponses) {\n if (!syncOptions.iframeEnabled || !serverResponses || serverResponses.length === 0) {\n return [];\n }\n return serverResponses.filter(rsp => rsp.body && rsp.body.ext && rsp.body.ext.adk_usersync)\n .map(rsp => rsp.body.ext.adk_usersync)\n .reduce((a, b) => a.concat(b), [])\n .map(sync_url => ({type: 'iframe', url: sync_url}));\n }\n};\n\nregisterBidder(spec);\n\n/**\n * Builds parameters object for single impression\n */\nfunction buildImp(bid) {\n const sizes = bid.sizes;\n const imp = {\n 'id': bid.bidId,\n 'tagid': bid.placementCode\n };\n\n if (bid.mediaType === 'video') {\n imp.video = {w: sizes[0], h: sizes[1]};\n if (bid.params.video) {\n Object.keys(bid.params.video)\n .filter(param => includes(VIDEO_TARGETING, param))\n .forEach(param => imp.video[param] = bid.params.video[param]);\n }\n } else {\n imp.banner = {\n format: sizes.map(s => ({'w': s[0], 'h': s[1]})),\n topframe: 0\n };\n }\n if (utils.getTopWindowLocation().protocol === 'https:') {\n imp.secure = 1;\n }\n return imp;\n}\n\n/**\n * Builds complete rtb request\n * @param imps collection of impressions\n * @param auctionId\n */\nfunction buildRtbRequest(imps, auctionId) {\n let req = {\n 'id': auctionId,\n 'imp': imps,\n 'site': createSite(),\n 'at': 1,\n 'device': {\n 'ip': 'caller',\n 'ua': 'caller',\n 'js': 1,\n 'language': getLanguage()\n },\n 'ext': {\n 'adk_usersync': 1\n }\n };\n if (utils.getDNT()) {\n req.device.dnt = 1;\n }\n return req;\n}\n\nfunction getLanguage() {\n const language = navigator.language ? 'language' : 'userLanguage';\n return navigator[language].split('-')[0];\n}\n\n/**\n * Creates site description object\n */\nfunction createSite() {\n var location = utils.getTopWindowLocation();\n return {\n 'domain': location.hostname,\n 'page': location.href.split('?')[0]\n };\n}\n\n/**\n * Format creative with optional nurl call\n * @param bid rtb Bid object\n */\nfunction formatAdMarkup(bid) {\n var adm = bid.adm;\n if ('nurl' in bid) {\n adm += utils.createTrackPixelHtml(`${bid.nurl}&px=1`);\n }\n return `${adm}`;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./modules/adkernelBidAdapter.js","import * as utils from 'src/utils';\nimport {registerBidder} from 'src/adapters/bidderFactory';\n\nconst BIDDER_CODE = 'admixer';\nconst ENDPOINT_URL = '//inv-nets.admixer.net/prebid.1.0.aspx';\nexport const spec = {\n code: BIDDER_CODE,\n aliases: [],\n supportedMediaTypes: ['banner', 'video'],\n /**\n * Determines whether or not the given bid request is valid.\n *\n * @param {BidRequest} bid The bid params to validate.\n * @return boolean True if this is a valid bid, and false otherwise.\n */\n isBidRequestValid: function (bid) {\n return !!bid.params.zone;\n },\n /**\n * Make a server request from the list of BidRequests.\n *\n * @param {bidderRequest} - bidderRequest.bids[] is an array of AdUnits and bids\n * @return ServerRequest Info describing the request to the server.\n */\n buildRequests: function (bidderRequest) {\n const payload = {\n imps: [],\n referrer: utils.getTopWindowUrl(),\n };\n bidderRequest.forEach((bid) => {\n if (bid.bidder === BIDDER_CODE) {\n payload.imps.push(bid);\n }\n });\n const payloadString = JSON.stringify(payload);\n return {\n method: 'GET',\n url: ENDPOINT_URL,\n data: `data=${payloadString}`,\n };\n },\n /**\n * Unpack the response from the server into a list of bids.\n *\n * @param {*} serverResponse A successful response from the server.\n * @return {Bid[]} An array of bids which were nested inside the server.\n */\n interpretResponse: function (serverResponse, bidRequest) {\n const bidResponses = [];\n // loop through serverResponses {\n try {\n serverResponse = serverResponse.body;\n serverResponse.forEach((bidResponse) => {\n const bidResp = {\n requestId: bidResponse.bidId,\n cpm: bidResponse.cpm,\n width: bidResponse.width,\n height: bidResponse.height,\n ad: bidResponse.ad,\n ttl: bidResponse.ttl,\n creativeId: bidResponse.creativeId,\n netRevenue: bidResponse.netRevenue,\n currency: bidResponse.currency,\n vastUrl: bidResponse.vastUrl,\n };\n bidResponses.push(bidResp);\n });\n } catch (e) {\n utils.logError(e);\n }\n return bidResponses;\n }\n};\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/admixerBidAdapter.js","import * as utils from 'src/utils';\nimport { registerBidder } from 'src/adapters/bidderFactory';\n\nconst BIDDER_CODE = 'adocean';\n\nfunction buildEndpointUrl(emiter, payload) {\n let payloadString = '';\n utils._each(payload, function(v, k) {\n if (payloadString.length) {\n payloadString += '&';\n }\n payloadString += k + '=' + encodeURIComponent(v);\n });\n\n return 'https://' + emiter + '/ad.json?' + payloadString;\n}\n\nfunction buildRequest(masterBidRequests, masterId) {\n const firstBid = masterBidRequests[0];\n const payload = {\n id: masterId,\n };\n\n const bidIdMap = {};\n\n utils._each(masterBidRequests, function(v) {\n bidIdMap[v.params.slaveId] = v.bidId;\n });\n\n return {\n method: 'GET',\n url: buildEndpointUrl(firstBid.params.emiter, payload),\n data: {},\n bidIdMap: bidIdMap\n };\n}\n\nfunction assignToMaster(bidRequest, bidRequestsByMaster) {\n const masterId = bidRequest.params.masterId;\n bidRequestsByMaster[masterId] = bidRequestsByMaster[masterId] || [];\n bidRequestsByMaster[masterId].push(bidRequest);\n}\n\nfunction interpretResponse(placementResponse, bidRequest, bids) {\n if (!placementResponse.error) {\n let adCode = '';\n },\n _parseBidResponse: function (response, bidRequest) {\n let bidData;\n\n try {\n bidData = response.seatbid[0].bid[0];\n } catch (e) {\n return;\n }\n\n let cpm;\n\n if (bidData.ext && bidData.ext.encp) {\n cpm = bidData.ext.encp;\n } else {\n cpm = bidData.price;\n\n if (cpm === null || isNaN(cpm)) {\n utils.logError('Invalid price in bid response', AOL_BIDDERS_CODES.AOL, bid);\n return;\n }\n }\n\n let ad = bidData.adm;\n if (response.ext && response.ext.pixels) {\n if (config.getConfig('aol.userSyncOn') !== EVENTS.BID_RESPONSE) {\n ad += this._formatPixels(response.ext.pixels);\n }\n }\n\n return {\n bidderCode: bidRequest.bidderCode,\n requestId: bidRequest.bidId,\n ad: ad,\n cpm: cpm,\n width: bidData.w,\n height: bidData.h,\n creativeId: bidData.crid,\n pubapiId: response.id,\n currency: response.cur,\n dealId: bidData.dealid,\n netRevenue: true,\n ttl: bidRequest.ttl\n };\n },\n getUserSyncs: function(options, bidResponses) {\n let bidResponse = bidResponses[0];\n\n if (config.getConfig('aol.userSyncOn') === EVENTS.BID_RESPONSE) {\n if (!pbjs.aolGlobals.pixelsDropped && bidResponse.ext && bidResponse.ext.pixels) {\n pbjs.aolGlobals.pixelsDropped = true;\n\n return parsePixelItems(bidResponse.ext.pixels);\n }\n }\n\n return [];\n }\n};\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/aolBidAdapter.js","/**\n * appnexus.js - AppNexus Prebid Analytics Adapter\n */\n\nimport adapter from 'src/AnalyticsAdapter';\nimport adaptermanager from 'src/adaptermanager';\n\nvar appnexusAdapter = adapter({\n global: 'AppNexusPrebidAnalytics',\n handler: 'on',\n analyticsType: 'bundle'\n});\n\nadaptermanager.registerAnalyticsAdapter({\n adapter: appnexusAdapter,\n code: 'appnexus'\n});\n\nexport default appnexusAdapter;\n\n\n\n// WEBPACK FOOTER //\n// ./modules/appnexusAnalyticsAdapter.js","import { Renderer } from 'src/Renderer';\nimport * as utils from 'src/utils';\nimport { registerBidder } from 'src/adapters/bidderFactory';\nimport { BANNER, NATIVE, VIDEO } from 'src/mediaTypes';\nimport find from 'core-js/library/fn/array/find';\nimport includes from 'core-js/library/fn/array/includes';\n\nconst BIDDER_CODE = 'appnexus';\nconst URL = '//ib.adnxs.com/ut/v3/prebid';\nconst VIDEO_TARGETING = ['id', 'mimes', 'minduration', 'maxduration',\n 'startdelay', 'skippable', 'playback_method', 'frameworks'];\nconst USER_PARAMS = ['age', 'external_uid', 'segments', 'gender', 'dnt', 'language'];\nconst NATIVE_MAPPING = {\n body: 'description',\n cta: 'ctatext',\n image: {\n serverName: 'main_image',\n requiredParams: { required: true },\n minimumParams: { sizes: [{}] },\n },\n icon: {\n serverName: 'icon',\n requiredParams: { required: true },\n minimumParams: { sizes: [{}] },\n },\n sponsoredBy: 'sponsored_by',\n};\nconst SOURCE = 'pbjs';\n\nexport const spec = {\n code: BIDDER_CODE,\n aliases: ['appnexusAst', 'brealtime', 'pagescience', 'defymedia', 'gourmetads', 'matomy', 'featureforward', 'oftmedia', 'districtm'],\n supportedMediaTypes: [BANNER, VIDEO, NATIVE],\n\n /**\n * Determines whether or not the given bid request is valid.\n *\n * @param {object} bid The bid to validate.\n * @return boolean True if this is a valid bid, and false otherwise.\n */\n isBidRequestValid: function(bid) {\n return !!(bid.params.placementId || (bid.params.member && bid.params.invCode));\n },\n\n /**\n * Make a server request from the list of BidRequests.\n *\n * @param {BidRequest[]} bidRequests A non-empty list of bid requests which should be sent to the Server.\n * @return ServerRequest Info describing the request to the server.\n */\n buildRequests: function(bidRequests, bidderRequest) {\n const tags = bidRequests.map(bidToTag);\n const userObjBid = find(bidRequests, hasUserInfo);\n let userObj;\n if (userObjBid) {\n userObj = {};\n Object.keys(userObjBid.params.user)\n .filter(param => includes(USER_PARAMS, param))\n .forEach(param => userObj[param] = userObjBid.params.user[param]);\n }\n\n const memberIdBid = find(bidRequests, hasMemberId);\n const member = memberIdBid ? parseInt(memberIdBid.params.member, 10) : 0;\n\n const payload = {\n tags: [...tags],\n user: userObj,\n sdk: {\n source: SOURCE,\n version: '1.7.0-pre'\n }\n };\n if (member > 0) {\n payload.member_id = member;\n }\n const payloadString = JSON.stringify(payload);\n return {\n method: 'POST',\n url: URL,\n data: payloadString,\n bidderRequest\n };\n },\n\n /**\n * Unpack the response from the server into a list of bids.\n *\n * @param {*} serverResponse A successful response from the server.\n * @return {Bid[]} An array of bids which were nested inside the server.\n */\n interpretResponse: function(serverResponse, {bidderRequest}) {\n serverResponse = serverResponse.body;\n const bids = [];\n if (!serverResponse || serverResponse.error) {\n let errorMessage = `in response for ${bidderRequest.bidderCode} adapter`;\n if (serverResponse && serverResponse.error) { errorMessage += `: ${serverResponse.error}`; }\n utils.logError(errorMessage);\n return bids;\n }\n\n if (serverResponse.tags) {\n serverResponse.tags.forEach(serverBid => {\n const rtbBid = getRtbBid(serverBid);\n if (rtbBid) {\n if (rtbBid.cpm !== 0 && includes(this.supportedMediaTypes, rtbBid.ad_type)) {\n const bid = newBid(serverBid, rtbBid, bidderRequest);\n bid.mediaType = parseMediaType(rtbBid);\n bids.push(bid);\n }\n }\n });\n }\n return bids;\n },\n\n getUserSyncs: function(syncOptions) {\n if (syncOptions.iframeEnabled) {\n return [{\n type: 'iframe',\n url: '//acdn.adnxs.com/ib/static/usersync/v3/async_usersync.html'\n }];\n }\n }\n}\n\nfunction newRenderer(adUnitCode, rtbBid, rendererOptions = {}) {\n const renderer = Renderer.install({\n id: rtbBid.renderer_id,\n url: rtbBid.renderer_url,\n config: rendererOptions,\n loaded: false,\n });\n\n try {\n renderer.setRender(outstreamRender);\n } catch (err) {\n utils.logWarn('Prebid Error calling setRender on renderer', err);\n }\n\n renderer.setEventHandlers({\n impression: () => utils.logMessage('AppNexus outstream video impression event'),\n loaded: () => utils.logMessage('AppNexus outstream video loaded event'),\n ended: () => {\n utils.logMessage('AppNexus outstream renderer video event');\n document.querySelector(`#${adUnitCode}`).style.display = 'none';\n }\n });\n return renderer;\n}\n\n/* Turn keywords parameter into ut-compatible format */\nfunction getKeywords(keywords) {\n let arrs = [];\n\n utils._each(keywords, (v, k) => {\n if (utils.isArray(v)) {\n let values = [];\n utils._each(v, (val) => {\n val = utils.getValueString('keywords.' + k, val);\n if (val) { values.push(val); }\n });\n v = values;\n } else {\n v = utils.getValueString('keywords.' + k, v);\n if (utils.isStr(v)) {\n v = [v];\n } else {\n return;\n } // unsuported types - don't send a key\n }\n arrs.push({key: k, value: v});\n });\n\n return arrs;\n}\n\n/**\n * Unpack the Server's Bid into a Prebid-compatible one.\n * @param serverBid\n * @param rtbBid\n * @param bidderRequest\n * @return Bid\n */\nfunction newBid(serverBid, rtbBid, bidderRequest) {\n const bid = {\n requestId: serverBid.uuid,\n cpm: rtbBid.cpm,\n creativeId: rtbBid.creative_id,\n dealId: rtbBid.deal_id,\n currency: 'USD',\n netRevenue: true,\n ttl: 300,\n appnexus: {\n buyerMemberId: rtbBid.buyer_member_id\n }\n };\n\n if (rtbBid.rtb.video) {\n Object.assign(bid, {\n width: rtbBid.rtb.video.player_width,\n height: rtbBid.rtb.video.player_height,\n vastUrl: rtbBid.rtb.video.asset_url,\n ttl: 3600\n });\n // This supports Outstream Video\n if (rtbBid.renderer_url) {\n const rendererOptions = utils.deepAccess(\n bidderRequest.bids[0],\n 'renderer.options'\n );\n\n Object.assign(bid, {\n adResponse: serverBid,\n renderer: newRenderer(bid.adUnitCode, rtbBid, rendererOptions)\n });\n bid.adResponse.ad = bid.adResponse.ads[0];\n bid.adResponse.ad.video = bid.adResponse.ad.rtb.video;\n }\n } else if (rtbBid.rtb[NATIVE]) {\n const nativeAd = rtbBid.rtb[NATIVE];\n bid[NATIVE] = {\n title: nativeAd.title,\n body: nativeAd.desc,\n cta: nativeAd.ctatext,\n sponsoredBy: nativeAd.sponsored,\n clickUrl: nativeAd.link.url,\n clickTrackers: nativeAd.link.click_trackers,\n impressionTrackers: nativeAd.impression_trackers,\n };\n if (nativeAd.main_img) {\n bid['native'].image = {\n url: nativeAd.main_img.url,\n height: nativeAd.main_img.height,\n width: nativeAd.main_img.width,\n };\n }\n if (nativeAd.icon) {\n bid['native'].icon = {\n url: nativeAd.icon.url,\n height: nativeAd.icon.height,\n width: nativeAd.icon.width,\n };\n }\n } else {\n Object.assign(bid, {\n width: rtbBid.rtb.banner.width,\n height: rtbBid.rtb.banner.height,\n ad: rtbBid.rtb.banner.content\n });\n try {\n const url = rtbBid.rtb.trackers[0].impression_urls[0];\n const tracker = utils.createTrackPixelHtml(url);\n bid.ad += tracker;\n } catch (error) {\n utils.logError('Error appending tracking pixel', error);\n }\n }\n\n return bid;\n}\n\nfunction bidToTag(bid) {\n const tag = {};\n tag.sizes = transformSizes(bid.sizes);\n tag.primary_size = tag.sizes[0];\n tag.ad_types = [];\n tag.uuid = bid.bidId;\n if (bid.params.placementId) {\n tag.id = parseInt(bid.params.placementId, 10);\n } else {\n tag.code = bid.params.invCode;\n }\n tag.allow_smaller_sizes = bid.params.allowSmallerSizes || false;\n tag.use_pmt_rule = bid.params.usePaymentRule || false\n tag.prebid = true;\n tag.disable_psa = true;\n if (bid.params.reserve) {\n tag.reserve = bid.params.reserve;\n }\n if (bid.params.position) {\n tag.position = {'above': 1, 'below': 2}[bid.params.position] || 0;\n }\n if (bid.params.trafficSourceCode) {\n tag.traffic_source_code = bid.params.trafficSourceCode;\n }\n if (bid.params.privateSizes) {\n tag.private_sizes = transformSizes(bid.params.privateSizes);\n }\n if (bid.params.supplyType) {\n tag.supply_type = bid.params.supplyType;\n }\n if (bid.params.pubClick) {\n tag.pubclick = bid.params.pubClick;\n }\n if (bid.params.extInvCode) {\n tag.ext_inv_code = bid.params.extInvCode;\n }\n if (bid.params.externalImpId) {\n tag.external_imp_id = bid.params.externalImpId;\n }\n if (!utils.isEmpty(bid.params.keywords)) {\n tag.keywords = getKeywords(bid.params.keywords);\n }\n\n if (bid.mediaType === NATIVE || utils.deepAccess(bid, `mediaTypes.${NATIVE}`)) {\n tag.ad_types.push(NATIVE);\n\n if (bid.nativeParams) {\n const nativeRequest = buildNativeRequest(bid.nativeParams);\n tag[NATIVE] = {layouts: [nativeRequest]};\n }\n }\n\n const videoMediaType = utils.deepAccess(bid, `mediaTypes.${VIDEO}`);\n const context = utils.deepAccess(bid, 'mediaTypes.video.context');\n\n if (bid.mediaType === VIDEO || videoMediaType) {\n tag.ad_types.push(VIDEO);\n }\n\n // instream gets vastUrl, outstream gets vastXml\n if (bid.mediaType === VIDEO || (videoMediaType && context !== 'outstream')) {\n tag.require_asset_url = true;\n }\n\n if (bid.params.video) {\n tag.video = {};\n // place any valid video params on the tag\n Object.keys(bid.params.video)\n .filter(param => includes(VIDEO_TARGETING, param))\n .forEach(param => tag.video[param] = bid.params.video[param]);\n }\n\n if (\n (utils.isEmpty(bid.mediaType) && utils.isEmpty(bid.mediaTypes)) ||\n (bid.mediaType === BANNER || (bid.mediaTypes && bid.mediaTypes[BANNER]))\n ) {\n tag.ad_types.push(BANNER);\n }\n\n return tag;\n}\n\n/* Turn bid request sizes into ut-compatible format */\nfunction transformSizes(requestSizes) {\n let sizes = [];\n let sizeObj = {};\n\n if (utils.isArray(requestSizes) && requestSizes.length === 2 &&\n !utils.isArray(requestSizes[0])) {\n sizeObj.width = parseInt(requestSizes[0], 10);\n sizeObj.height = parseInt(requestSizes[1], 10);\n sizes.push(sizeObj);\n } else if (typeof requestSizes === 'object') {\n for (let i = 0; i < requestSizes.length; i++) {\n let size = requestSizes[i];\n sizeObj = {};\n sizeObj.width = parseInt(size[0], 10);\n sizeObj.height = parseInt(size[1], 10);\n sizes.push(sizeObj);\n }\n }\n\n return sizes;\n}\n\nfunction hasUserInfo(bid) {\n return !!bid.params.user;\n}\n\nfunction hasMemberId(bid) {\n return !!parseInt(bid.params.member, 10);\n}\n\nfunction getRtbBid(tag) {\n return tag && tag.ads && tag.ads.length && find(tag.ads, ad => ad.rtb);\n}\n\nfunction buildNativeRequest(params) {\n const request = {};\n\n // map standard prebid native asset identifier to /ut parameters\n // e.g., tag specifies `body` but /ut only knows `description`.\n // mapping may be in form {tag: ''} or\n // {tag: {serverName: '', requiredParams: {...}}}\n Object.keys(params).forEach(key => {\n // check if one of the forms is used, otherwise\n // a mapping wasn't specified so pass the key straight through\n const requestKey =\n (NATIVE_MAPPING[key] && NATIVE_MAPPING[key].serverName) ||\n NATIVE_MAPPING[key] ||\n key;\n\n // required params are always passed on request\n const requiredParams = NATIVE_MAPPING[key] && NATIVE_MAPPING[key].requiredParams;\n request[requestKey] = Object.assign({}, requiredParams, params[key]);\n\n // minimum params are passed if no non-required params given on adunit\n const minimumParams = NATIVE_MAPPING[key] && NATIVE_MAPPING[key].minimumParams;\n\n if (requiredParams && minimumParams) {\n // subtract required keys from adunit keys\n const adunitKeys = Object.keys(params[key]);\n const requiredKeys = Object.keys(requiredParams);\n const remaining = adunitKeys.filter(key => !includes(requiredKeys, key));\n\n // if none are left over, the minimum params needs to be sent\n if (remaining.length === 0) {\n request[requestKey] = Object.assign({}, request[requestKey], minimumParams);\n }\n }\n });\n\n return request;\n}\n\nfunction outstreamRender(bid) {\n // push to render queue because ANOutstreamVideo may not be loaded yet\n bid.renderer.push(() => {\n window.ANOutstreamVideo.renderAd({\n tagId: bid.adResponse.tag_id,\n sizes: [bid.getSize().split('x')],\n targetId: bid.adUnitCode, // target div id to render video\n uuid: bid.adResponse.uuid,\n adResponse: bid.adResponse,\n rendererOptions: bid.renderer.getConfig()\n }, handleOutstreamRendererEvents.bind(null, bid));\n });\n}\n\nfunction handleOutstreamRendererEvents(bid, id, eventName) {\n bid.renderer.handleVideoEvent({ id, eventName });\n}\n\nfunction parseMediaType(rtbBid) {\n const adType = rtbBid.ad_type;\n if (adType === VIDEO) {\n return VIDEO;\n } else if (adType === NATIVE) {\n return NATIVE;\n } else {\n return BANNER;\n }\n}\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/appnexusBidAdapter.js","import * as utils from 'src/utils';\nimport {BANNER} from 'src/mediaTypes';\nimport {registerBidder} from 'src/adapters/bidderFactory';\nimport {config} from 'src/config';\n\nconst BIDDER_CODE = 'arteebee';\n\nconst DEFAULT_HOST = 'bidder.mamrtb.com';\n\nconst DEFAULT_SSP = 'arteebee';\n\nexport const spec = {\n code: BIDDER_CODE,\n supportedMediaTypes: [BANNER],\n isBidRequestValid: function (bidRequest) {\n return 'params' in bidRequest && bidRequest.params.pub !== undefined &&\n bidRequest.params.source !== undefined;\n },\n buildRequests: function (validBidRequests) {\n var requests = [];\n\n for (let i = 0; i < validBidRequests.length; i++) {\n let prebidReq = makePrebidRequest(validBidRequests[i]);\n if (prebidReq) {\n requests.push(prebidReq);\n }\n }\n\n return requests;\n },\n interpretResponse: function (serverResponse, bidRequest) {\n var rtbResp = serverResponse.body;\n\n if ((!rtbResp) || (!rtbResp.seatbid)) {\n return [];\n }\n\n let bidResponses = [];\n\n for (let i = 0; i < rtbResp.seatbid.length; i++) {\n let seatbid = rtbResp.seatbid[i];\n for (let j = 0; j < seatbid.bid.length; j++) {\n let bid = seatbid.bid[j];\n let bidResponse = {\n requestId: bid.impid,\n cpm: bid.price,\n width: bid.w,\n height: bid.h,\n mediaType: BANNER,\n creativeId: bid.crid,\n currency: 'USD',\n netRevenue: true,\n ttl: bid.exp,\n ad: bid.adm\n };\n bidResponses.push(bidResponse);\n }\n }\n return bidResponses;\n },\n getUserSyncs: function (syncOptions, serverResponses) {\n return [];\n }\n}\n\nregisterBidder(spec);\n\nfunction makePrebidRequest(req) {\n var host = req.params.host || DEFAULT_HOST;\n var ssp = req.params.ssp || DEFAULT_SSP;\n\n var url = window.location.protocol + '//' + host + '/rtb/bid/' + ssp + '?type=json®ister=0';\n\n const payload = makeRtbRequest(req);\n const payloadString = JSON.stringify(payload);\n\n return {\n method: 'POST',\n url: url,\n data: payloadString\n };\n}\n\nfunction makeRtbRequest(req) {\n var auctionId = req.requestId;\n\n var imp = [];\n imp.push(makeImp(req));\n\n var rtbReq = {\n 'id': auctionId,\n 'imp': imp,\n 'site': makeSite(req),\n 'device': makeDevice(),\n 'at': 1,\n 'tmax': config.getConfig('bidderTimeout')\n };\n\n if (req.params.coppa) {\n rtbReq.regs = {coppa: 1};\n }\n\n if (req.params.test) {\n rtbReq.test = 1;\n }\n\n return rtbReq;\n}\n\nfunction makeImp(req) {\n var imp = {\n 'id': req.bidId,\n 'tagid': req.placementCode\n };\n\n if (window.location.protocol === 'https:') {\n imp.secure = 1;\n }\n\n imp.banner = makeBanner(req);\n\n return imp;\n}\n\nfunction makeBanner(req) {\n var format = [];\n\n for (let i = 0; i < req.sizes.length; i++) {\n format.push({\n w: req.sizes[i][0],\n h: req.sizes[i][1]\n });\n }\n return {\n 'format': format\n };\n}\n\nfunction makeSite(req) {\n var params = req.params;\n\n var site = {\n 'id': params.source,\n 'page': utils.getTopWindowUrl(),\n 'ref': utils.getTopWindowReferrer(),\n 'publisher': makePublisher(req)\n };\n\n return site;\n}\n\nfunction makePublisher(req) {\n var params = req.params;\n\n var publisher = {\n 'id': params.pub,\n 'domain': getDomain(config.getConfig('publisherDomain'))\n };\n\n return publisher;\n}\n\nfunction getDomain(url) {\n var a = document.createElement('a');\n a.href = url;\n\n return a.host;\n}\n\nfunction makeDevice() {\n var device = {\n 'ua': 'caller',\n 'ip': 'caller',\n 'js': 1\n };\n\n return device;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./modules/arteebeeBidAdapter.js","import * as utils from 'src/utils';\nimport {registerBidder} from 'src/adapters/bidderFactory';\n\nconst BIDDER_CODE = 'atomx';\n\nfunction getDomain() {\n var domain = '';\n\n try {\n if ((domain === '') && (window.top == window)) {\n domain = window.location.href;\n }\n\n if ((domain === '') && (window.top == window.parent)) {\n domain = document.referrer;\n }\n\n if (domain == '') {\n var atomxt = 'atomxtest';\n\n // It should be impossible to change the window.location.ancestorOrigins.\n window.location.ancestorOrigins[0] = atomxt;\n if (window.location.ancestorOrigins[0] != atomxt) {\n var ancestorOrigins = window.location.ancestorOrigins;\n\n // If the length is 0 we are a javascript tag running in the main domain.\n // But window.top != window or window.location.hostname is empty.\n if (ancestorOrigins.length == 0) {\n // This browser is so fucked up, just return an empty string.\n return '';\n }\n\n // ancestorOrigins is an array where [0] is our own window.location\n // and [length-1] is the top window.location.\n domain = ancestorOrigins[ancestorOrigins.length - 1];\n }\n }\n } catch (unused) {\n }\n\n if (domain === '') {\n domain = document.referrer;\n }\n\n if (domain === '') {\n domain = window.location.href;\n }\n\n return domain.substr(0, 512);\n}\n\nexport const spec = {\n code: BIDDER_CODE,\n\n isBidRequestValid: function(bid) {\n return bid.params && (!!bid.params.id);\n },\n\n buildRequests: function(validBidRequests) {\n return validBidRequests.map(bidRequest => {\n return {\n method: 'GET',\n url: location.protocol + '//p.ato.mx/placement',\n data: {\n v: 12,\n id: bidRequest.params.id,\n size: utils.parseSizesInput(bidRequest.sizes)[0],\n prebid: bidRequest.bidId,\n b: 0,\n h: '7t3y9',\n type: 'javascript',\n screen: window.screen.width + 'x' + window.screen.height + 'x' + window.screen.colorDepth,\n timezone: new Date().getTimezoneOffset(),\n domain: getDomain(),\n r: document.referrer.substr(0, 512),\n },\n };\n });\n },\n\n interpretResponse: function (serverResponse, bidRequest) {\n const body = serverResponse.body;\n const res = {\n requestId: body.code,\n cpm: body.cpm * 1000,\n width: body.width,\n height: body.height,\n creativeId: body.creative_id,\n currency: 'USD',\n netRevenue: true,\n ttl: 60,\n };\n\n if (body.adm) {\n res.ad = body.adm;\n } else {\n res.adUrl = body.url;\n }\n\n return [res];\n },\n\n getUserSyncs: function(syncOptions, serverResponses) {\n return [];\n },\n};\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/atomxBidAdapter.js","/**\n * @file AudienceNetwork adapter.\n */\nimport { registerBidder } from 'src/adapters/bidderFactory';\nimport { config } from 'src/config';\nimport { formatQS } from 'src/url';\nimport { generateUUID, getTopWindowUrl, isSafariBrowser } from 'src/utils';\nimport findIndex from 'core-js/library/fn/array/find-index';\nimport includes from 'core-js/library/fn/array/includes';\n\nconst code = 'audienceNetwork';\nconst currency = 'USD';\nconst method = 'GET';\nconst url = 'https://an.facebook.com/v2/placementbid.json';\nconst supportedMediaTypes = ['banner', 'video'];\nconst netRevenue = true;\nconst hb_bidder = 'fan';\nconst pbv = '1.7.0-pre';\n\n/**\n * Does this bid request contain valid parameters?\n * @param {Object} bid\n * @returns {Boolean}\n */\nconst isBidRequestValid = bid =>\n typeof bid.params === 'object' &&\n typeof bid.params.placementId === 'string' &&\n bid.params.placementId.length > 0 &&\n Array.isArray(bid.sizes) && bid.sizes.length > 0 &&\n (isFullWidth(bid.params.format) ? bid.sizes.map(flattenSize).every(size => size === '300x250') : true) &&\n (isValidNonSizedFormat(bid.params.format) || bid.sizes.map(flattenSize).some(isValidSize));\n\n/**\n * Flattens a 2-element [W, H] array as a 'WxH' string,\n * otherwise passes value through.\n * @param {Array|String} size\n * @returns {String}\n */\nconst flattenSize = size =>\n (Array.isArray(size) && size.length === 2) ? `${size[0]}x${size[1]}` : size;\n\n/**\n * Expands a 'WxH' string as a 2-element [W, H] array\n * @param {String} size\n * @returns {Array}\n */\nconst expandSize = size => size.split('x').map(Number);\n\n/**\n * Is this a valid slot size?\n * @param {String} size\n * @returns {Boolean}\n */\nconst isValidSize = size => includes(['300x250', '320x50'], size);\n\n/**\n * Is this a valid, non-sized format?\n * @param {String} size\n * @returns {Boolean}\n */\nconst isValidNonSizedFormat = format => includes(['video', 'native'], format);\n\n/**\n * Is this a valid size and format?\n * @param {String} size\n * @returns {Boolean}\n */\nconst isValidSizeAndFormat = (size, format) =>\n (isFullWidth(format) && flattenSize(size) === '300x250') ||\n isValidNonSizedFormat(format) ||\n isValidSize(flattenSize(size));\n\n/**\n * Is this a video format?\n * @param {String} format\n * @returns {Boolean}\n */\nconst isVideo = format => format === 'video';\n\n/**\n * Is this a fullwidth format?\n * @param {String} format\n * @returns {Boolean}\n */\nconst isFullWidth = format => format === 'fullwidth';\n\n/**\n * Which SDK version should be used for this format?\n * @param {String} format\n * @returns {String}\n */\nconst sdkVersion = format => isVideo(format) ? '' : '5.5.web';\n\n/**\n * Does the search part of the URL contain \"anhb_testmode\"\n * and therefore indicate testmode should be used?\n * @returns {String} \"true\" or \"false\"\n */\nconst isTestmode = () => Boolean(\n window && window.location &&\n typeof window.location.search === 'string' &&\n window.location.search.indexOf('anhb_testmode') !== -1\n).toString();\n\n/**\n * Generate ad HTML for injection into an iframe\n * @param {String} placementId\n * @param {String} format\n * @param {String} bidId\n * @returns {String} HTML\n */\nconst createAdHtml = (placementId, format, bidId) => {\n const nativeStyle = format === 'native' ? '' : '';\n const nativeContainer = format === 'native' ? '
' : '';\n return `${nativeStyle}
\n\n${nativeContainer}
`;\n};\n\n/**\n * Get the current window location URL correctly encoded for use in a URL query string.\n * @returns {String} URI-encoded URL\n */\nconst getTopWindowUrlEncoded = () => encodeURIComponent(getTopWindowUrl());\n\n/**\n * Convert each bid request to a single URL to fetch those bids.\n * @param {Array} bids - list of bids\n * @param {String} bids[].placementCode - Prebid placement identifier\n * @param {Object} bids[].params\n * @param {String} bids[].params.placementId - Audience Network placement identifier\n * @param {String} bids[].params.format - Optional format, one of 'video', 'native' or 'fullwidth' if set\n * @param {Array} bids[].sizes - list of desired advert sizes\n * @param {Array} bids[].sizes[] - Size arrays [h,w]: should include one of [300, 250], [320, 50]: first matched size is used\n * @returns {Array} List of URLs to fetch, plus formats and sizes for later use with interpretResponse\n */\nconst buildRequests = bids => {\n // Build lists of placementids, adformats, sizes and SDK versions\n const placementids = [];\n const adformats = [];\n const sizes = [];\n const sdk = [];\n const requestIds = [];\n\n bids.forEach(bid => bid.sizes\n .map(flattenSize)\n .filter(size => isValidSizeAndFormat(size, bid.params.format))\n .slice(0, 1)\n .forEach(size => {\n placementids.push(bid.params.placementId);\n adformats.push(bid.params.format || size);\n sizes.push(size);\n sdk.push(sdkVersion(bid.params.format));\n requestIds.push(bid.bidId);\n })\n );\n\n // Build URL\n const testmode = isTestmode();\n const pageurl = getTopWindowUrlEncoded();\n const search = {\n placementids,\n adformats,\n testmode,\n pageurl,\n sdk,\n pbv\n };\n const video = findIndex(adformats, isVideo);\n if (video !== -1) {\n [search.playerwidth, search.playerheight] = expandSize(sizes[video]);\n }\n if (isSafariBrowser()) {\n search.cb = generateUUID();\n }\n const data = formatQS(search);\n\n return [{ adformats, data, method, requestIds, sizes, url }];\n};\n\n/**\n * Convert a server response to a bid response.\n * @param {Object} response - object representing the response\n * @param {Object} response.body - response body, already converted from JSON\n * @param {Object} bidRequests - the original bid requests\n * @param {Array} bidRequest.adformats - list of formats for the original bid requests\n * @param {Array} bidRequest.sizes - list of sizes fot the original bid requests\n * @returns {Array} A list of bid response objects\n */\nconst interpretResponse = ({ body }, { adformats, requestIds, sizes }) => {\n const ttl = Number(config.getConfig().bidderTimeout);\n\n const { bids = {} } = body;\n return Object.keys(bids)\n // extract Array of bid responses\n .map(placementId => bids[placementId])\n // flatten\n .reduce((a, b) => a.concat(b), [])\n // transform to bidResponse\n .map((bid, i) => {\n const {\n bid_id: fb_bidid,\n placement_id: creativeId,\n bid_price_cents: cpm\n } = bid;\n\n const format = adformats[i];\n const [width, height] = expandSize(flattenSize(sizes[i]));\n const ad = createAdHtml(creativeId, format, fb_bidid);\n const requestId = requestIds[i];\n\n const bidResponse = {\n // Prebid attributes\n requestId,\n cpm: cpm / 100,\n width,\n height,\n ad,\n ttl,\n creativeId,\n netRevenue,\n currency,\n // Audience Network attributes\n hb_bidder,\n fb_bidid,\n fb_format: format,\n fb_placementid: creativeId\n };\n // Video attributes\n if (isVideo(format)) {\n const pageurl = getTopWindowUrlEncoded();\n bidResponse.mediaType = 'video';\n bidResponse.vastUrl = `https://an.facebook.com/v1/instream/vast.xml?placementid=${creativeId}&pageurl=${pageurl}&playerwidth=${width}&playerheight=${height}&bidid=${fb_bidid}`;\n }\n return bidResponse;\n });\n};\n\nexport const spec = {\n code,\n supportedMediaTypes,\n isBidRequestValid,\n buildRequests,\n interpretResponse\n};\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/audienceNetworkBidAdapter.js","import * as utils from 'src/utils';\nimport { registerBidder } from 'src/adapters/bidderFactory';\nimport { VIDEO, BANNER } from 'src/mediaTypes';\nimport find from 'core-js/library/fn/array/find';\n\nconst ADAPTER_VERSION = '1.0';\nconst ADAPTER_NAME = 'BFIO_PREBID';\n\nexport const VIDEO_ENDPOINT = '//reachms.bfmio.com/bid.json?exchange_id=';\nexport const BANNER_ENDPOINT = '//display.bfmio.com/prebid_display';\n\nexport const spec = {\n code: 'beachfront',\n supportedMediaTypes: [ VIDEO, BANNER ],\n\n isBidRequestValid(bid) {\n return !!(bid && bid.params && bid.params.appId && bid.params.bidfloor);\n },\n\n buildRequests(bids) {\n let requests = [];\n let videoBids = bids.filter(bid => isVideoBid(bid));\n let bannerBids = bids.filter(bid => !isVideoBid(bid));\n videoBids.forEach(bid => {\n requests.push({\n method: 'POST',\n url: VIDEO_ENDPOINT + bid.params.appId,\n data: createVideoRequestData(bid),\n bidRequest: bid\n });\n });\n if (bannerBids.length) {\n requests.push({\n method: 'POST',\n url: BANNER_ENDPOINT,\n data: createBannerRequestData(bannerBids),\n bidRequest: bannerBids\n });\n }\n return requests;\n },\n\n interpretResponse(response, { bidRequest }) {\n response = response.body;\n\n if (isVideoBid(bidRequest)) {\n if (!response || !response.url || !response.bidPrice) {\n utils.logWarn(`No valid video bids from ${spec.code} bidder`);\n return [];\n }\n let size = getFirstSize(bidRequest);\n return {\n requestId: bidRequest.bidId,\n bidderCode: spec.code,\n vastUrl: response.url,\n cpm: response.bidPrice,\n width: size.w,\n height: size.h,\n creativeId: response.cmpId,\n mediaType: VIDEO,\n currency: 'USD',\n netRevenue: true,\n ttl: 300\n };\n } else {\n if (!response || !response.length) {\n utils.logWarn(`No valid banner bids from ${spec.code} bidder`);\n return [];\n }\n return response.map((bid) => {\n let request = find(bidRequest, req => req.adUnitCode === bid.slot);\n return {\n requestId: request.bidId,\n bidderCode: spec.code,\n ad: bid.adm,\n creativeId: bid.crid,\n cpm: bid.price,\n width: bid.w,\n height: bid.h,\n mediaType: BANNER,\n currency: 'USD',\n netRevenue: true,\n ttl: 300\n };\n });\n }\n }\n};\n\nfunction getSizes(bid) {\n return utils.parseSizesInput(bid.sizes).map(size => {\n let [ width, height ] = size.split('x');\n return {\n w: parseInt(width, 10) || undefined,\n h: parseInt(height, 10) || undefined\n };\n });\n}\n\nfunction getFirstSize(bid) {\n let sizes = getSizes(bid);\n return sizes.length ? sizes[0] : { w: undefined, h: undefined };\n}\n\nfunction getOsVersion() {\n let clientStrings = [\n { s: 'Android', r: /Android/ },\n { s: 'iOS', r: /(iPhone|iPad|iPod)/ },\n { s: 'Mac OS X', r: /Mac OS X/ },\n { s: 'Mac OS', r: /(MacPPC|MacIntel|Mac_PowerPC|Macintosh)/ },\n { s: 'Linux', r: /(Linux|X11)/ },\n { s: 'Windows 10', r: /(Windows 10.0|Windows NT 10.0)/ },\n { s: 'Windows 8.1', r: /(Windows 8.1|Windows NT 6.3)/ },\n { s: 'Windows 8', r: /(Windows 8|Windows NT 6.2)/ },\n { s: 'Windows 7', r: /(Windows 7|Windows NT 6.1)/ },\n { s: 'Windows Vista', r: /Windows NT 6.0/ },\n { s: 'Windows Server 2003', r: /Windows NT 5.2/ },\n { s: 'Windows XP', r: /(Windows NT 5.1|Windows XP)/ },\n { s: 'UNIX', r: /UNIX/ },\n { s: 'Search Bot', r: /(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\\/Teoma|ia_archiver)/ }\n ];\n let cs = find(clientStrings, cs => cs.r.test(navigator.userAgent));\n return cs ? cs.s : 'unknown';\n}\n\nfunction isMobile() {\n return (/(ios|ipod|ipad|iphone|android)/i).test(navigator.userAgent);\n}\n\nfunction isConnectedTV() {\n return (/(smart[-]?tv|hbbtv|appletv|googletv|hdmi|netcast\\.tv|viera|nettv|roku|\\bdtv\\b|sonydtv|inettvbrowser|\\btv\\b)/i).test(navigator.userAgent);\n}\n\nfunction getDoNotTrack() {\n return navigator.doNotTrack === '1' || window.doNotTrack === '1' || navigator.msDoNoTrack === '1' || navigator.doNotTrack === 'yes';\n}\n\nfunction isVideoBid(bid) {\n return bid.mediaTypes && bid.mediaTypes.video;\n}\n\nfunction createVideoRequestData(bid) {\n let size = getFirstSize(bid);\n let topLocation = utils.getTopWindowLocation();\n return {\n isPrebid: true,\n appId: bid.params.appId,\n domain: document.location.hostname,\n id: utils.getUniqueIdentifierStr(),\n imp: [{\n video: {\n w: size.w,\n h: size.h\n },\n bidfloor: bid.params.bidfloor\n }],\n site: {\n page: topLocation.host\n },\n device: {\n ua: navigator.userAgent,\n devicetype: isMobile() ? 1 : isConnectedTV() ? 3 : 2,\n geo: {}\n },\n cur: ['USD']\n };\n}\n\nfunction createBannerRequestData(bids) {\n let topLocation = utils.getTopWindowLocation();\n let referrer = utils.getTopWindowReferrer();\n let slots = bids.map(bid => {\n return {\n slot: bid.adUnitCode,\n id: bid.params.appId,\n bidfloor: bid.params.bidfloor,\n sizes: getSizes(bid)\n };\n });\n return {\n slots: slots,\n page: topLocation.href,\n domain: topLocation.hostname,\n search: topLocation.search,\n secure: topLocation.protocol === 'https:' ? 1 : 0,\n referrer: referrer,\n ua: navigator.userAgent,\n deviceOs: getOsVersion(),\n isMobile: isMobile() ? 1 : 0,\n dnt: getDoNotTrack() ? 1 : 0,\n adapterVersion: ADAPTER_VERSION,\n adapterName: ADAPTER_NAME\n };\n}\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/beachfrontBidAdapter.js","import * as utils from 'src/utils';\nimport {registerBidder} from 'src/adapters/bidderFactory';\nimport find from 'core-js/library/fn/array/find';\n\nconst BIDDER_CODE = 'bridgewell';\nconst REQUEST_ENDPOINT = '//rec.scupio.com/recweb/prebid.aspx';\n\nexport const spec = {\n code: BIDDER_CODE,\n\n /**\n * Determines whether or not the given bid request is valid.\n *\n * @param {BidRequest} bid The bid params to validate.\n * @return boolean True if this is a valid bid, and false otherwise.\n */\n isBidRequestValid: function(bid) {\n let valid = false;\n let typeOfCpmWeight;\n\n if (bid && bid.params) {\n if (bid.params.ChannelID) {\n // cpmWeight is optinal parameter and should above than zero\n typeOfCpmWeight = typeof bid.params.cpmWeight;\n if (typeOfCpmWeight === 'undefined') {\n bid.params.cpmWeight = 1;\n valid = true;\n } else if (typeOfCpmWeight === 'number' && bid.params.cpmWeight > 0) {\n valid = true;\n } else {\n valid = false;\n }\n }\n }\n\n return valid;\n },\n\n /**\n * Make a server request from the list of BidRequests.\n *\n * @param {BidRequest[]} validBidRequests - an array of bids\n * @return ServerRequest Info describing the request to the server.\n */\n buildRequests: function(validBidRequests) {\n const channelIDs = [];\n\n utils._each(validBidRequests, function(bid) {\n channelIDs.push(bid.params.ChannelID);\n });\n\n return {\n method: 'GET',\n url: REQUEST_ENDPOINT,\n data: {\n 'ChannelID': channelIDs.join(',')\n },\n validBidRequests: validBidRequests\n };\n },\n\n /**\n * Unpack the response from the server into a list of bids.\n *\n * @param {*} serverResponse A successful response from the server.\n * @param {*} bidRequest\n * @return {Bid[]} An array of bids which were nested inside the server.\n */\n interpretResponse: function(serverResponse, bidRequest) {\n const bidResponses = [];\n\n // map responses to requests\n utils._each(bidRequest.validBidRequests, function(req) {\n const bidResponse = {};\n\n if (!serverResponse.body) {\n return;\n }\n\n let matchedResponse = find(serverResponse.body, function(res) {\n return !!res && !res.consumed && find(req.sizes, function(size) {\n return res.width === size[0] && res.height === size[1];\n });\n });\n\n if (matchedResponse) {\n matchedResponse.consumed = true;\n\n // check required parameters\n if (typeof matchedResponse.cpm !== 'number') {\n return;\n } else if (typeof matchedResponse.width !== 'number' || typeof matchedResponse.height !== 'number') {\n return;\n } else if (typeof matchedResponse.ad !== 'string') {\n return;\n } else if (typeof matchedResponse.net_revenue === 'undefined') {\n return;\n } else if (typeof matchedResponse.currency !== 'string') {\n return;\n }\n\n bidResponse.requestId = req.bidId;\n bidResponse.cpm = matchedResponse.cpm * req.params.cpmWeight;\n bidResponse.width = matchedResponse.width;\n bidResponse.height = matchedResponse.height;\n bidResponse.ad = matchedResponse.ad;\n bidResponse.ttl = matchedResponse.ttl;\n bidResponse.creativeId = matchedResponse.id;\n bidResponse.netRevenue = matchedResponse.net_revenue === 'true';\n bidResponse.currency = matchedResponse.currency;\n\n bidResponses.push(bidResponse);\n }\n });\n\n return bidResponses;\n }\n};\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/bridgewellBidAdapter.js","import { registerBidder } from 'src/adapters/bidderFactory';\nimport * as utils from 'src/utils';\nimport { userSync } from 'src/userSync';\n\nconst BIDDER_CODE = 'c1x';\nconst URL = 'https://ht.c1exchange.com/ht';\nconst PIXEL_ENDPOINT = '//px.c1exchange.com/pubpixel/';\nconst LOG_MSG = {\n invalidBid: 'C1X: [ERROR] bidder returns an invalid bid',\n noSite: 'C1X: [ERROR] no site id supplied',\n noBid: 'C1X: [INFO] creating a NO bid for Adunit: ',\n bidWin: 'C1X: [INFO] creating a bid for Adunit: '\n};\n\n/**\n * Adapter for requesting bids from C1X header tag server.\n * v3.0 (c) C1X Inc., 2017\n */\n\nexport const c1xAdapter = {\n code: BIDDER_CODE,\n\n // check the bids sent to c1x bidder\n isBidRequestValid: function(bid) {\n const siteId = bid.params.siteId || '';\n if (!siteId) {\n utils.logError(LOG_MSG.noSite);\n }\n return !!(bid.adUnitCode && siteId);\n },\n\n buildRequests: function(bidRequests) {\n let payload = {};\n let tagObj = {};\n const adunits = bidRequests.length;\n const rnd = new Date().getTime();\n const c1xTags = bidRequests.map(bidToTag);\n const bidIdTags = bidRequests.map(bidToShortTag); // include only adUnitCode and bidId from request obj\n\n // flattened tags in a tag object\n tagObj = c1xTags.reduce((current, next) => Object.assign(current, next));\n const pixelId = tagObj.pixelId;\n const useSSL = document.location.protocol;\n\n payload = {\n adunits: adunits.toString(),\n rnd: rnd.toString(),\n response: 'json',\n compress: 'gzip'\n }\n Object.assign(payload, tagObj);\n\n let payloadString = stringifyPayload(payload);\n\n if (pixelId) {\n const pixelUrl = (useSSL ? 'https:' : 'http:') + PIXEL_ENDPOINT + pixelId;\n userSync.registerSync('image', BIDDER_CODE, pixelUrl);\n }\n\n // ServerRequest object\n return {\n method: 'GET',\n url: URL,\n data: payloadString,\n bids: bidIdTags\n };\n },\n\n interpretResponse: function(serverResponse, requests) {\n serverResponse = serverResponse.body;\n requests = requests.bids || [];\n const currency = 'USD';\n const bidResponses = [];\n let netRevenue = false;\n\n if (!serverResponse || serverResponse.error) {\n let errorMessage = serverResponse.error;\n utils.logError(LOG_MSG.invalidBid + errorMessage);\n return bidResponses;\n } else {\n serverResponse.forEach(bid => {\n if (bid.bid) {\n if (bid.bidType === 'NET_BID') {\n netRevenue = !netRevenue;\n }\n const curBid = {\n width: bid.width,\n height: bid.height,\n cpm: bid.cpm,\n ad: bid.ad,\n creativeId: bid.crid,\n currency: currency,\n ttl: 300,\n netRevenue: netRevenue\n };\n\n for (let i = 0; i < requests.length; i++) {\n if (bid.adId === requests[i].adUnitCode) {\n curBid.requestId = requests[i].bidId;\n }\n }\n utils.logInfo(LOG_MSG.bidWin + bid.adId + ' size: ' + curBid.width + 'x' + curBid.height);\n bidResponses.push(curBid);\n } else {\n // no bid\n utils.logInfo(LOG_MSG.noBid + bid.adId);\n }\n });\n }\n\n return bidResponses;\n }\n}\n\nfunction bidToTag(bid, index) {\n const tag = {};\n const adIndex = 'a' + (index + 1).toString(); // ad unit id for c1x\n const sizeKey = adIndex + 's';\n const priceKey = adIndex + 'p';\n // TODO: Multiple Floor Prices\n\n const sizesArr = bid.sizes;\n const floorPriceMap = bid.params.floorPriceMap || '';\n tag['site'] = bid.params.siteId || '';\n\n // prevent pixelId becoming undefined when publishers don't fill this param in ad units they have on the same page\n if (bid.params.pixelId) {\n tag['pixelId'] = bid.params.pixelId\n }\n\n tag[adIndex] = bid.adUnitCode;\n tag[sizeKey] = sizesArr.reduce((prev, current) => prev + (prev === '' ? '' : ',') + current.join('x'), '');\n\n const newSizeArr = tag[sizeKey].split(',');\n if (floorPriceMap) {\n newSizeArr.forEach(size => {\n if (size in floorPriceMap) {\n tag[priceKey] = floorPriceMap[size].toString();\n } // we only accept one cpm price in floorPriceMap\n });\n }\n if (bid.params.pageurl) {\n tag['pageurl'] = bid.params.pageurl;\n }\n\n return tag;\n}\n\nfunction bidToShortTag(bid) {\n const tag = {};\n tag.adUnitCode = bid.adUnitCode;\n tag.bidId = bid.bidId;\n\n return tag;\n}\n\nfunction stringifyPayload(payload) {\n let payloadString = '';\n payloadString = JSON.stringify(payload).replace(/\":\"|\",\"|{\"|\"}/g, (foundChar) => {\n if (foundChar == '\":\"') return '=';\n else if (foundChar == '\",\"') return '&';\n else return '';\n });\n return payloadString;\n}\n\nregisterBidder(c1xAdapter);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/c1xBidAdapter.js","import { registerBidder } from 'src/adapters/bidderFactory';\nimport * as utils from 'src/utils';\n\nconst BIDDER_CODE = 'colossusssp';\nconst URL = '//colossusssp.com/?c=o&m=multi';\nconst URL_SYNC = '//colossusssp.com/?c=o&m=cookie';\n\nlet sizeObj = {\n '468x60': 1,\n '728x90': 2,\n '300x600': 10,\n '300x250': 15,\n '300x100': 19,\n '320x50': 43,\n '300x50': 44,\n '300x300': 48,\n '300x1050': 54,\n '970x90': 55,\n '970x250': 57,\n '1000x90': 58,\n '320x80': 59,\n '640x480': 65,\n '320x480': 67,\n '320x320': 72,\n '320x160': 73,\n '480x300': 83,\n '970x310': 94,\n '970x210': 96,\n '480x320': 101,\n '768x1024': 102,\n '1000x300': 113,\n '320x100': 117,\n '800x250': 118,\n '200x600': 119\n};\n\nutils._each(sizeObj, (item, key) => sizeObj[item] = key);\n\nexport const spec = {\n code: BIDDER_CODE,\n\n /**\n * Determines whether or not the given bid request is valid.\n *\n * @param {object} bid The bid to validate.\n * @return boolean True if this is a valid bid, and false otherwise.\n */\n isBidRequestValid: (bid) => {\n return (!isNaN(bid.params.placement_id) &&\n ((bid.params.sizes !== undefined && bid.params.sizes.length > 0 && bid.params.sizes.some((sizeIndex) => sizeObj[sizeIndex] !== undefined)) ||\n (bid.sizes !== undefined && bid.sizes.length > 0 && bid.sizes.map((size) => `${size[0]}x${size[1]}`).some((size) => sizeObj[size] !== undefined))));\n },\n\n /**\n * Make a server request from the list of BidRequests.\n *\n * @param {BidRequest[]} validBidRequests A non-empty list of valid bid requests that should be sent to the Server.\n * @return ServerRequest Info describing the request to the server.\n */\n buildRequests: (validBidRequests) => {\n let winTop = window;\n try {\n window.top.location.toString();\n winTop = window.top;\n } catch (e) {\n utils.logMessage(e);\n };\n let location = utils.getTopWindowLocation();\n let placements = [];\n let request = {\n 'deviceWidth': winTop.screen.width,\n 'deviceHeight': winTop.screen.height,\n 'language': (navigator && navigator.language) ? navigator.language : '',\n 'secure': location.protocol === 'https:' ? 1 : 0,\n 'host': location.host,\n 'page': location.pathname,\n 'placements': placements\n };\n for (let i = 0; i < validBidRequests.length; i++) {\n let bid = validBidRequests[i];\n let placement = {};\n placement['placementId'] = bid.params.placement_id;\n placement['bidId'] = bid.bidId;\n placement['sizes'] = bid.sizes;\n placements.push(placement);\n }\n return {\n method: 'POST',\n url: URL,\n data: request\n };\n },\n\n /**\n * Unpack the response from the server into a list of bids.\n *\n * @param {*} serverResponse A successful response from the server.\n * @return {Bid[]} An array of bids which were nested inside the server.\n */\n interpretResponse: (serverResponse) => {\n let response = [];\n try {\n serverResponse = serverResponse.body;\n for (let i = 0; i < serverResponse.length; i++) {\n let resItem = serverResponse[i];\n if (resItem.width && !isNaN(resItem.width) &&\n resItem.height && !isNaN(resItem.height) &&\n resItem.requestId && typeof resItem.requestId === 'string' &&\n resItem.cpm && !isNaN(resItem.cpm) &&\n resItem.ad && typeof resItem.ad === 'string' &&\n resItem.ttl && !isNaN(resItem.ttl) &&\n resItem.creativeId && typeof resItem.creativeId === 'string' &&\n resItem.netRevenue && typeof resItem.netRevenue === 'boolean' &&\n resItem.currency && typeof resItem.currency === 'string') {\n response.push(resItem);\n }\n }\n } catch (e) {\n utils.logMessage(e);\n };\n return response;\n },\n\n getUserSyncs: () => {\n return [{\n type: 'image',\n url: URL_SYNC\n }];\n }\n};\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/colossussspBidAdapter.js","import { registerBidder } from 'src/adapters/bidderFactory';\nimport { config } from 'src/config';\nimport * as utils from 'src/utils';\n\nconst BIDDER_CODE = 'contentignite';\n\nexport const spec = {\n code: BIDDER_CODE,\n pageID: Math.floor(Math.random() * 10e6),\n\n isBidRequestValid: (bid) => {\n return !!(bid.params.accountID && bid.params.zoneID);\n },\n\n buildRequests: (validBidRequests) => {\n let i;\n let zoneID;\n let bidRequest;\n let accountID;\n let keyword;\n let requestURI;\n const serverRequests = [];\n const zoneCounters = {};\n\n for (i = 0; i < validBidRequests.length; i++) {\n bidRequest = validBidRequests[i];\n zoneID = utils.getBidIdParameter('zoneID', bidRequest.params);\n accountID = utils.getBidIdParameter('accountID', bidRequest.params);\n keyword = utils.getBidIdParameter('keyword', bidRequest.params);\n\n if (!(zoneID in zoneCounters)) {\n zoneCounters[zoneID] = 0;\n }\n\n requestURI =\n location.protocol + '//serve.connectignite.com/adserve/;type=hbr;';\n requestURI += `ID=${encodeURIComponent(accountID)};`;\n requestURI += `setID=${encodeURIComponent(zoneID)};`;\n requestURI += `pid=${spec.pageID};`;\n requestURI += `place=${encodeURIComponent(zoneCounters[zoneID])};`;\n\n // append the keyword for targeting if one was passed in\n if (keyword !== '') {\n requestURI += `kw=${encodeURIComponent(keyword)};`;\n }\n\n zoneCounters[zoneID]++;\n serverRequests.push({\n method: 'GET',\n url: requestURI,\n data: {},\n bidRequest: bidRequest\n });\n }\n return serverRequests;\n },\n\n // tslint:disable-next-line:cyclomatic-complexity\n interpretResponse: (serverResponse, bidRequest) => {\n const bidObj = bidRequest.bidRequest;\n const bidResponses = [];\n const bidResponse = {};\n let isCorrectSize = false;\n let isCorrectCPM = true;\n let cpm;\n let minCPM;\n let maxCPM;\n let width;\n let height;\n\n serverResponse = serverResponse.body;\n if (serverResponse && serverResponse.status === 'SUCCESS' && bidObj) {\n cpm = serverResponse.cpm;\n minCPM = utils.getBidIdParameter('minCPM', bidObj.params);\n maxCPM = utils.getBidIdParameter('maxCPM', bidObj.params);\n width = parseInt(serverResponse.width);\n height = parseInt(serverResponse.height);\n\n // Ensure response CPM is within the given bounds\n if (minCPM !== '' && cpm < parseFloat(minCPM)) {\n isCorrectCPM = false;\n utils.logWarn('ContentIgnite: CPM did not meet minCPM requirements.');\n } else if (maxCPM !== '' && cpm > parseFloat(maxCPM)) {\n isCorrectCPM = false;\n utils.logWarn('ContentIgnite: CPM did not meet maxCPM requirements.');\n }\n\n // Ensure that response ad matches one of the placement sizes.\n utils._each(bidObj.sizes, (size) => {\n if (width === size[0] && height === size[1]) {\n isCorrectSize = true;\n } else {\n utils.logWarn(\n 'ContentIgnite: Returned ad is of a different size to that requested.'\n );\n }\n });\n if (isCorrectCPM && isCorrectSize) {\n bidResponse.requestId = bidObj.bidId;\n bidResponse.creativeId = serverResponse.placement_id;\n bidResponse.cpm = cpm;\n bidResponse.width = width;\n bidResponse.height = height;\n bidResponse.ad = serverResponse.ad_code;\n bidResponse.currency = 'USD';\n bidResponse.netRevenue = true;\n bidResponse.ttl = config.getConfig('_bidderTimeout');\n bidResponse.referrer = utils.getTopWindowUrl();\n bidResponses.push(bidResponse);\n }\n }\n return bidResponses;\n }\n};\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/contentigniteBidAdapter.js","import * as utils from 'src/utils';\nimport {registerBidder} from 'src/adapters/bidderFactory';\nimport { BANNER, VIDEO } from 'src/mediaTypes';\n\nconst BIDDER_CODE = 'conversant';\nconst URL = '//media.msg.dotomi.com/s2s/header/24';\nconst SYNC_URL = '//media.msg.dotomi.com/w/user.sync';\nconst VERSION = '2.2.2';\n\nexport const spec = {\n code: BIDDER_CODE,\n aliases: ['cnvr'], // short code\n supportedMediaTypes: [BANNER, VIDEO],\n\n /**\n * Determines whether or not the given bid request is valid.\n *\n * @param {BidRequest} bid - The bid params to validate.\n * @return {boolean} True if this is a valid bid, and false otherwise.\n */\n isBidRequestValid: function(bid) {\n if (!bid || !bid.params) {\n utils.logWarn(BIDDER_CODE + ': Missing bid parameters');\n return false;\n }\n\n if (!utils.isStr(bid.params.site_id)) {\n utils.logWarn(BIDDER_CODE + ': site_id must be specified as a string')\n return false;\n }\n\n if (isVideoRequest(bid)) {\n if (!bid.params.mimes) {\n // Give a warning but let it pass\n utils.logWarn(BIDDER_CODE + ': mimes should be specified for videos');\n } else if (!utils.isArray(bid.params.mimes) || !bid.params.mimes.every(s => utils.isStr(s))) {\n utils.logWarn(BIDDER_CODE + ': mimes must be an array of strings');\n return false;\n }\n }\n\n return true;\n },\n\n /**\n * Make a server request from the list of BidRequests.\n *\n * @param {BidRequest[]} validBidRequests - an array of bids\n * @return {ServerRequest} Info describing the request to the server.\n */\n buildRequests: function(validBidRequests) {\n const loc = utils.getTopWindowLocation();\n const page = loc.href;\n const isPageSecure = (loc.protocol === 'https:') ? 1 : 0;\n let siteId = '';\n let requestId = '';\n let pubcid = null;\n\n const conversantImps = validBidRequests.map(function(bid) {\n const bidfloor = utils.getBidIdParameter('bidfloor', bid.params);\n const secure = isPageSecure || (utils.getBidIdParameter('secure', bid.params) ? 1 : 0);\n\n siteId = utils.getBidIdParameter('site_id', bid.params);\n requestId = bid.auctionId;\n\n const format = convertSizes(bid.sizes);\n\n const imp = {\n id: bid.bidId,\n secure: secure,\n bidfloor: bidfloor || 0,\n displaymanager: 'Prebid.js',\n displaymanagerver: VERSION\n };\n\n copyOptProperty(bid.params, 'tag_id', imp, 'tagid');\n\n if (isVideoRequest(bid)) {\n const video = {\n w: format[0].w,\n h: format[0].h\n };\n\n copyOptProperty(bid.params, 'position', video, 'pos');\n copyOptProperty(bid.params, 'mimes', video);\n copyOptProperty(bid.params, 'maxduration', video);\n copyOptProperty(bid.params, 'protocols', video);\n copyOptProperty(bid.params, 'api', video);\n\n imp.video = video;\n } else {\n const banner = {format: format};\n\n copyOptProperty(bid.params, 'position', banner, 'pos');\n\n imp.banner = banner;\n }\n\n if (bid.crumbs && bid.crumbs.pubcid) {\n pubcid = bid.crumbs.pubcid;\n }\n\n return imp;\n });\n\n const payload = {\n id: requestId,\n imp: conversantImps,\n site: {\n id: siteId,\n mobile: document.querySelector('meta[name=\"viewport\"][content*=\"width=device-width\"]') !== null ? 1 : 0,\n page: page\n },\n device: getDevice(),\n at: 1\n };\n\n if (pubcid) {\n payload.user = {\n ext: {\n fpc: pubcid\n }\n };\n }\n\n return {\n method: 'POST',\n url: URL,\n data: payload,\n };\n },\n /**\n * Unpack the response from the server into a list of bids.\n *\n * @param {*} serverResponse A successful response from the server.\n * @return {Bid[]} An array of bids which were nested inside the server.\n */\n interpretResponse: function(serverResponse, bidRequest) {\n const bidResponses = [];\n const requestMap = {};\n serverResponse = serverResponse.body;\n\n if (bidRequest && bidRequest.data && bidRequest.data.imp) {\n utils._each(bidRequest.data.imp, imp => requestMap[imp.id] = imp);\n }\n\n if (serverResponse && utils.isArray(serverResponse.seatbid)) {\n utils._each(serverResponse.seatbid, function(bidList) {\n utils._each(bidList.bid, function(conversantBid) {\n const responseCPM = parseFloat(conversantBid.price);\n if (responseCPM > 0.0 && conversantBid.impid) {\n const responseAd = conversantBid.adm || '';\n const responseNurl = conversantBid.nurl || '';\n const request = requestMap[conversantBid.impid];\n\n const bid = {\n requestId: conversantBid.impid,\n currency: serverResponse.cur || 'USD',\n cpm: responseCPM,\n creativeId: conversantBid.crid || '',\n ttl: 300,\n netRevenue: true\n };\n\n if (request.video) {\n bid.vastUrl = responseAd;\n bid.mediaType = 'video';\n bid.width = request.video.w;\n bid.height = request.video.h;\n } else {\n bid.ad = responseAd + '';\n bid.width = conversantBid.w;\n bid.height = conversantBid.h;\n }\n\n bidResponses.push(bid);\n }\n })\n });\n }\n\n return bidResponses;\n },\n\n /**\n * Return use sync info\n *\n * @param {SyncOptions} syncOptions - Info about usersyncs that the adapter should obey\n * @return {UserSync} Adapter sync type and url\n */\n getUserSyncs: function(syncOptions) {\n if (syncOptions.pixelEnabled) {\n return [{\n type: 'image',\n url: SYNC_URL\n }];\n }\n }\n};\n\n/**\n * Determine do-not-track state\n *\n * @returns {boolean}\n */\nfunction getDNT() {\n return navigator.doNotTrack === '1' || window.doNotTrack === '1' || navigator.msDoNoTrack === '1' || navigator.doNotTrack === 'yes';\n}\n\n/**\n * Return openrtb device object that includes ua, width, and height.\n *\n * @returns {Device} Openrtb device object\n */\nfunction getDevice() {\n const language = navigator.language ? 'language' : 'userLanguage';\n return {\n h: screen.height,\n w: screen.width,\n dnt: getDNT() ? 1 : 0,\n language: navigator[language].split('-')[0],\n make: navigator.vendor ? navigator.vendor : '',\n ua: navigator.userAgent\n };\n}\n\n/**\n * Convert arrays of widths and heights to an array of objects with w and h properties.\n *\n * [[300, 250], [300, 600]] => [{w: 300, h: 250}, {w: 300, h: 600}]\n *\n * @param {number[2][]|number[2]} bidSizes - arrays of widths and heights\n * @returns {object[]} Array of objects with w and h\n */\nfunction convertSizes(bidSizes) {\n let format;\n\n if (bidSizes.length === 2 && typeof bidSizes[0] === 'number' && typeof bidSizes[1] === 'number') {\n format = [{w: bidSizes[0], h: bidSizes[1]}];\n } else {\n format = utils._map(bidSizes, d => { return {w: d[0], h: d[1]}; });\n }\n\n return format;\n}\n\n/**\n * Check if it's a video bid request\n *\n * @param {BidRequest} bid - Bid request generated from ad slots\n * @returns {boolean} True if it's a video bid\n */\nfunction isVideoRequest(bid) {\n return bid.mediaType === 'video' || !!utils.deepAccess(bid, 'mediaTypes.video');\n}\n\n/**\n * Copy property if exists from src to dst\n *\n * @param {object} src\n * @param {string} srcName\n * @param {object} dst\n * @param {string} [dstName] - Optional. If not specified then srcName is used.\n */\nfunction copyOptProperty(src, srcName, dst, dstName) {\n dstName = dstName || srcName;\n const obj = utils.getBidIdParameter(srcName, src);\n if (obj !== '') {\n dst[dstName] = obj;\n }\n}\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/conversantBidAdapter.js","import bidfactory from 'src/bidfactory';\nimport { STATUS } from 'src/constants';\nimport { ajax } from 'src/ajax';\nimport * as utils from 'src/utils';\nimport { config } from 'src/config';\nimport { hooks } from 'src/hook.js';\n\nconst DEFAULT_CURRENCY_RATE_URL = 'http://currency.prebid.org/latest.json';\nconst CURRENCY_RATE_PRECISION = 4;\n\nvar bidResponseQueue = [];\nvar conversionCache = {};\nvar currencyRatesLoaded = false;\nvar adServerCurrency = 'USD';\n\nexport var currencySupportEnabled = false;\nexport var currencyRates = {};\nvar bidderCurrencyDefault = {};\nvar defaultRates;\n\n/**\n * Configuration function for currency\n * @param {string} [config.adServerCurrency = 'USD']\n * ISO 4217 3-letter currency code that represents the target currency. (e.g. 'EUR'). If this value is present,\n * the currency conversion feature is activated.\n * @param {number} [config.granularityMultiplier = 1]\n * A decimal value representing how mcuh to scale the price granularity calculations.\n * @param {object} config.bidderCurrencyDefault\n * An optional argument to specify bid currencies for bid adapters. This option is provided for the transitional phase\n * before every bid adapter will specify its own bid currency. If the adapter specifies a bid currency, this value is\n * ignored for that bidder.\n *\n * example:\n * {\n * rubicon: 'USD'\n * }\n * @param {string} [config.conversionRateFile = 'http://currency.prebid.org/latest.json']\n * Optional path to a file containing currency conversion data. Prebid.org hosts a file that is used as the default,\n * if not specified.\n * @param {object} [config.rates]\n * This optional argument allows you to specify the rates with a JSON object, subverting the need for a external\n * config.conversionRateFile parameter. If this argument is specified, the conversion rate file will not be loaded.\n *\n * example:\n * {\n * 'GBP': { 'CNY': 8.8282, 'JPY': 141.7, 'USD': 1.2824 },\n * 'USD': { 'CNY': 6.8842, 'GBP': 0.7798, 'JPY': 110.49 }\n * }\n * @param {object} [config.defaultRates]\n * This optional currency rates definition follows the same format as config.rates, however it is only utilized if\n * there is an error loading the config.conversionRateFile.\n */\nexport function setConfig(config) {\n let url = DEFAULT_CURRENCY_RATE_URL;\n\n if (typeof config.rates === 'object') {\n currencyRates.conversions = config.rates;\n currencyRatesLoaded = true;\n }\n\n if (typeof config.defaultRates === 'object') {\n defaultRates = config.defaultRates;\n }\n\n if (typeof config.adServerCurrency === 'string') {\n utils.logInfo('enabling currency support', arguments);\n\n adServerCurrency = config.adServerCurrency;\n if (config.conversionRateFile) {\n utils.logInfo('currency using override conversionRateFile:', config.conversionRateFile);\n url = config.conversionRateFile;\n }\n initCurrency(url);\n } else {\n // currency support is disabled, setting defaults\n utils.logInfo('disabling currency support');\n resetCurrency();\n }\n if (typeof config.bidderCurrencyDefault === 'object') {\n bidderCurrencyDefault = config.bidderCurrencyDefault;\n }\n}\nconfig.getConfig('currency', config => setConfig(config.currency));\n\nfunction errorSettingsRates(msg) {\n if (defaultRates) {\n currencyRates.conversions = defaultRates;\n currencyRatesLoaded = true;\n utils.logWarn(msg);\n utils.logWarn('Currency failed loading rates, falling back to currency.defaultRates');\n } else {\n utils.logError(msg);\n }\n}\n\nfunction initCurrency(url) {\n conversionCache = {};\n currencySupportEnabled = true;\n\n utils.logInfo('Installing addBidResponse decorator for currency module', arguments);\n\n hooks['addBidResponse'].addHook(addBidResponseHook, 100);\n\n if (!currencyRates.conversions) {\n ajax(url,\n {\n success: function (response) {\n try {\n currencyRates = JSON.parse(response);\n utils.logInfo('currencyRates set to ' + JSON.stringify(currencyRates));\n currencyRatesLoaded = true;\n processBidResponseQueue();\n } catch (e) {\n errorSettingsRates('Failed to parse currencyRates response: ' + response);\n }\n },\n error: errorSettingsRates\n }\n );\n }\n}\n\nfunction resetCurrency() {\n utils.logInfo('Uninstalling addBidResponse decorator for currency module', arguments);\n\n hooks['addBidResponse'].removeHook(addBidResponseHook, 100);\n\n adServerCurrency = 'USD';\n conversionCache = {};\n currencySupportEnabled = false;\n currencyRatesLoaded = false;\n currencyRates = {};\n bidderCurrencyDefault = {};\n}\n\nexport function addBidResponseHook(adUnitCode, bid, fn) {\n if (!bid) {\n return fn.apply(this, arguments); // if no bid, call original and let it display warnings\n }\n\n let bidder = bid.bidderCode || bid.bidder;\n if (bidderCurrencyDefault[bidder]) {\n let currencyDefault = bidderCurrencyDefault[bidder];\n if (bid.currency && currencyDefault !== bid.currency) {\n utils.logWarn(`Currency default '${bidder}: ${currencyDefault}' ignored. adapter specified '${bid.currency}'`);\n } else {\n bid.currency = currencyDefault;\n }\n }\n\n // default to USD if currency not set\n if (!bid.currency) {\n utils.logWarn('Currency not specified on bid. Defaulted to \"USD\"');\n bid.currency = 'USD';\n }\n\n // execute immediately if the bid is already in the desired currency\n if (bid.currency === adServerCurrency) {\n return fn.apply(this, arguments);\n }\n\n bidResponseQueue.push(wrapFunction(fn, this, arguments));\n if (!currencySupportEnabled || currencyRatesLoaded) {\n processBidResponseQueue();\n }\n}\n\nfunction processBidResponseQueue() {\n while (bidResponseQueue.length > 0) {\n (bidResponseQueue.shift())();\n }\n}\n\nfunction wrapFunction(fn, context, params) {\n return function() {\n var bid = params[1];\n if (bid !== undefined && 'currency' in bid && 'cpm' in bid) {\n var fromCurrency = bid.currency;\n try {\n var conversion = getCurrencyConversion(fromCurrency);\n bid.originalCpm = bid.cpm;\n bid.originalCurrency = bid.currency;\n if (conversion !== 1) {\n bid.cpm = (parseFloat(bid.cpm) * conversion).toFixed(4);\n bid.currency = adServerCurrency;\n }\n } catch (e) {\n utils.logWarn('Returning NO_BID, getCurrencyConversion threw error: ', e);\n params[1] = bidfactory.createBid(STATUS.NO_BID, {\n bidder: bid.bidderCode || bid.bidder,\n bidId: bid.adId\n });\n }\n }\n return fn.apply(context, params);\n };\n}\n\nfunction getCurrencyConversion(fromCurrency) {\n var conversionRate = null;\n var rates;\n\n if (fromCurrency in conversionCache) {\n conversionRate = conversionCache[fromCurrency];\n utils.logMessage('Using conversionCache value ' + conversionRate + ' for fromCurrency ' + fromCurrency);\n } else if (currencySupportEnabled === false) {\n if (fromCurrency === 'USD') {\n conversionRate = 1;\n } else {\n throw new Error('Prebid currency support has not been enabled and fromCurrency is not USD');\n }\n } else if (fromCurrency === adServerCurrency) {\n conversionRate = 1;\n } else {\n var toCurrency = adServerCurrency;\n\n if (fromCurrency in currencyRates.conversions) {\n // using direct conversion rate from fromCurrency to toCurrency\n rates = currencyRates.conversions[fromCurrency];\n if (!(toCurrency in rates)) {\n // bid should fail, currency is not supported\n throw new Error('Specified adServerCurrency in config \\'' + toCurrency + '\\' not found in the currency rates file');\n }\n conversionRate = rates[toCurrency];\n utils.logInfo('getCurrencyConversion using direct ' + fromCurrency + ' to ' + toCurrency + ' conversionRate ' + conversionRate);\n } else if (toCurrency in currencyRates.conversions) {\n // using reciprocal of conversion rate from toCurrency to fromCurrency\n rates = currencyRates.conversions[toCurrency];\n if (!(fromCurrency in rates)) {\n // bid should fail, currency is not supported\n throw new Error('Specified fromCurrency \\'' + fromCurrency + '\\' not found in the currency rates file');\n }\n conversionRate = roundFloat(1 / rates[fromCurrency], CURRENCY_RATE_PRECISION);\n utils.logInfo('getCurrencyConversion using reciprocal ' + fromCurrency + ' to ' + toCurrency + ' conversionRate ' + conversionRate);\n } else {\n // first defined currency base used as intermediary\n var anyBaseCurrency = Object.keys(currencyRates.conversions)[0];\n\n if (!(fromCurrency in currencyRates.conversions[anyBaseCurrency])) {\n // bid should fail, currency is not supported\n throw new Error('Specified fromCurrency \\'' + fromCurrency + '\\' not found in the currency rates file');\n }\n var toIntermediateConversionRate = 1 / currencyRates.conversions[anyBaseCurrency][fromCurrency];\n\n if (!(toCurrency in currencyRates.conversions[anyBaseCurrency])) {\n // bid should fail, currency is not supported\n throw new Error('Specified adServerCurrency in config \\'' + toCurrency + '\\' not found in the currency rates file');\n }\n var fromIntermediateConversionRate = currencyRates.conversions[anyBaseCurrency][toCurrency];\n\n conversionRate = roundFloat(toIntermediateConversionRate * fromIntermediateConversionRate, CURRENCY_RATE_PRECISION);\n utils.logInfo('getCurrencyConversion using intermediate ' + fromCurrency + ' thru ' + anyBaseCurrency + ' to ' + toCurrency + ' conversionRate ' + conversionRate);\n }\n }\n if (!(fromCurrency in conversionCache)) {\n utils.logMessage('Adding conversionCache value ' + conversionRate + ' for fromCurrency ' + fromCurrency);\n conversionCache[fromCurrency] = conversionRate;\n }\n return conversionRate;\n}\n\nfunction roundFloat(num, dec) {\n var d = 1;\n for (let i = 0; i < dec; i++) {\n d += '0';\n }\n return Math.round(num * d) / d;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./modules/currency.js","import * as utils from 'src/utils';\nimport {registerBidder} from 'src/adapters/bidderFactory';\nconst BIDDER_CODE = 'danmarket';\nconst ENDPOINT_URL = '//ads.danmarketplace.com/hb';\nconst TIME_TO_LIVE = 360;\nconst ADAPTER_SYNC_URL = '//ads.danmarketplace.com/push_sync';\nconst LOG_ERROR_MESS = {\n noAuid: 'Bid from response has no auid parameter - ',\n noAdm: 'Bid from response has no adm parameter - ',\n noBid: 'Array of bid objects is empty',\n noPlacementCode: 'Can\\'t find in requested bids the bid with auid - ',\n emptyUids: 'Uids should be not empty',\n emptySeatbid: 'Seatbid array from response has empty item',\n emptyResponse: 'Response is empty',\n hasEmptySeatbidArray: 'Response has empty seatbid array',\n hasNoArrayOfBids: 'Seatbid from response has no array of bid objects - '\n};\n\n/**\n * Dentsu Aegis Network Marketplace Bid Adapter.\n * Contact: niels@baarsma.net\n *\n */\nexport const spec = {\n code: BIDDER_CODE,\n\n aliases: ['DANMarketplace', 'DAN_Marketplace', 'danmarketplace'],\n\n isBidRequestValid: function(bid) {\n return !!bid.params.uid;\n },\n\n buildRequests: function(validBidRequests) {\n const auids = [];\n const bidsMap = {};\n const bids = validBidRequests || [];\n let priceType = 'net';\n let reqId;\n\n bids.forEach(bid => {\n if (bid.params.priceType === 'gross') {\n priceType = 'gross';\n }\n if (!bidsMap[bid.params.uid]) {\n bidsMap[bid.params.uid] = [bid];\n auids.push(bid.params.uid);\n } else {\n bidsMap[bid.params.uid].push(bid);\n }\n reqId = bid.bidderRequestId;\n });\n\n const payload = {\n u: utils.getTopWindowUrl(),\n pt: priceType,\n auids: auids.join(','),\n r: reqId,\n };\n\n return {\n method: 'GET',\n url: ENDPOINT_URL,\n data: payload,\n bidsMap: bidsMap,\n };\n },\n\n interpretResponse: function(serverResponse, bidRequest) {\n serverResponse = serverResponse && serverResponse.body\n const bidResponses = [];\n const bidsMap = bidRequest.bidsMap;\n const priceType = bidRequest.data.pt;\n\n let errorMessage;\n\n if (!serverResponse) errorMessage = LOG_ERROR_MESS.emptyResponse;\n else if (serverResponse.seatbid && !serverResponse.seatbid.length) {\n errorMessage = LOG_ERROR_MESS.hasEmptySeatbidArray;\n }\n\n if (!errorMessage && serverResponse.seatbid) {\n serverResponse.seatbid.forEach(respItem => {\n _addBidResponse(_getBidFromResponse(respItem), bidsMap, priceType, bidResponses);\n });\n }\n if (errorMessage) utils.logError(errorMessage);\n return bidResponses;\n },\n\n getUserSyncs: function(syncOptions) {\n if (syncOptions.pixelEnabled) {\n return [{\n type: 'image',\n url: ADAPTER_SYNC_URL\n }];\n }\n }\n}\n\nfunction _getBidFromResponse(respItem) {\n if (!respItem) {\n utils.logError(LOG_ERROR_MESS.emptySeatbid);\n } else if (!respItem.bid) {\n utils.logError(LOG_ERROR_MESS.hasNoArrayOfBids + JSON.stringify(respItem));\n } else if (!respItem.bid[0]) {\n utils.logError(LOG_ERROR_MESS.noBid);\n }\n return respItem && respItem.bid && respItem.bid[0];\n}\n\nfunction _addBidResponse(serverBid, bidsMap, priceType, bidResponses) {\n if (!serverBid) return;\n let errorMessage;\n if (!serverBid.auid) errorMessage = LOG_ERROR_MESS.noAuid + JSON.stringify(serverBid);\n if (!serverBid.adm) errorMessage = LOG_ERROR_MESS.noAdm + JSON.stringify(serverBid);\n else {\n const awaitingBids = bidsMap[serverBid.auid];\n if (awaitingBids) {\n awaitingBids.forEach(bid => {\n const bidResponse = {\n requestId: bid.bidId, // bid.bidderRequestId,\n cpm: serverBid.price,\n width: serverBid.w,\n height: serverBid.h,\n creativeId: serverBid.auid, // bid.bidId,\n currency: 'USD',\n netRevenue: priceType !== 'gross',\n ttl: TIME_TO_LIVE,\n ad: serverBid.adm,\n dealId: serverBid.dealid\n };\n bidResponses.push(bidResponse);\n });\n } else {\n errorMessage = LOG_ERROR_MESS.noPlacementCode + serverBid.auid;\n }\n }\n if (errorMessage) {\n utils.logError(errorMessage);\n }\n}\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/danmarketBidAdapter.js","/**\n * This module adds [DFP support]{@link https://www.doubleclickbygoogle.com/} for Video to Prebid.\n */\n\nimport { registerVideoSupport } from '../src/adServerManager';\nimport { targeting } from '../src/targeting';\nimport { formatQS, format as buildUrl, parse } from '../src/url';\nimport { deepAccess, isEmpty, logError, parseSizesInput } from '../src/utils';\nimport { config } from '../src/config';\n\n/**\n * @typedef {Object} DfpVideoParams\n *\n * This object contains the params needed to form a URL which hits the\n * [DFP API]{@link https://support.google.com/dfp_premium/answer/1068325?hl=en}.\n *\n * All params (except iu, mentioned below) should be considered optional. This module will choose reasonable\n * defaults for all of the other required params.\n *\n * The cust_params property, if present, must be an object. It will be merged with the rest of the\n * standard Prebid targeting params (hb_adid, hb_bidder, etc).\n *\n * @param {string} iu This param *must* be included, in order for us to create a valid request.\n * @param [string] description_url This field is required if you want Ad Exchange to bid on our ad unit...\n * but otherwise optional\n */\n\n/**\n * @typedef {Object} DfpVideoOptions\n *\n * @param {Object} adUnit The adUnit which this bid is supposed to help fill.\n * @param [Object] bid The bid which should be considered alongside the rest of the adserver's demand.\n * If this isn't defined, then we'll use the winning bid for the adUnit.\n *\n * @param {DfpVideoParams} [params] Query params which should be set on the DFP request.\n * These will override this module's defaults whenever they conflict.\n * @param {string} [url] video adserver url\n */\n\n/** Safe defaults which work on pretty much all video calls. */\nconst defaultParamConstants = {\n env: 'vp',\n gdfp_req: 1,\n output: 'xml_vast3',\n unviewed_position_start: 1,\n};\n\n/**\n * Merge all the bid data and publisher-supplied options into a single URL, and then return it.\n *\n * @see [The DFP API]{@link https://support.google.com/dfp_premium/answer/1068325?hl=en#env} for details.\n *\n * @param {DfpVideoOptions} options Options which should be used to construct the URL.\n *\n * @return {string} A URL which calls DFP, letting options.bid\n * (or the auction's winning bid for this adUnit, if undefined) compete alongside the rest of the\n * demand in DFP.\n */\nexport default function buildDfpVideoUrl(options) {\n if (!options.params && !options.url) {\n logError(`A params object or a url is required to use pbjs.adServers.dfp.buildVideoUrl`);\n return;\n }\n\n const adUnit = options.adUnit;\n const bid = options.bid || targeting.getWinningBids(adUnit.code)[0];\n\n let urlComponents = {};\n\n if (options.url) {\n // when both `url` and `params` are given, parsed url will be overwriten\n // with any matching param components\n urlComponents = parse(options.url);\n\n if (isEmpty(options.params)) {\n return buildUrlFromAdserverUrlComponents(urlComponents, bid);\n }\n }\n\n const derivedParams = {\n correlator: Date.now(),\n sz: parseSizesInput(adUnit.sizes).join('|'),\n url: location.href,\n };\n\n const adserverTargeting = (bid && bid.adserverTargeting) || {};\n\n const customParams = Object.assign({},\n adserverTargeting,\n { hb_uuid: bid && bid.videoCacheKey },\n // hb_uuid will be deprecated and replaced by hb_cache_id\n {hb_cache_id: bid && bid.videoCacheKey},\n options.params.cust_params);\n\n const queryParams = Object.assign({},\n defaultParamConstants,\n urlComponents.search,\n derivedParams,\n options.params,\n { cust_params: encodeURIComponent(formatQS(customParams)) }\n );\n\n const descriptionUrl = getDescriptionUrl(bid, options, 'params');\n if (descriptionUrl) { queryParams.description_url = descriptionUrl; }\n\n return buildUrl({\n protocol: 'https',\n host: 'pubads.g.doubleclick.net',\n pathname: '/gampad/ads',\n search: queryParams\n });\n}\n\n/**\n * Builds a video url from a base dfp video url and a winning bid, appending\n * Prebid-specific key-values.\n * @param {Object} components base video adserver url parsed into components object\n * @param {AdapterBidResponse} bid winning bid object to append parameters from\n * @return {string} video url\n */\nfunction buildUrlFromAdserverUrlComponents(components, bid) {\n const descriptionUrl = getDescriptionUrl(bid, components, 'search');\n if (descriptionUrl) { components.search.description_url = descriptionUrl; }\n\n const adserverTargeting = (bid && bid.adserverTargeting) || {};\n const customParams = Object.assign({},\n adserverTargeting,\n );\n components.search.cust_params = encodeURIComponent(formatQS(customParams));\n\n return buildUrl(components);\n}\n\n/**\n * Returns the encoded vast url if it exists on a bid object, only if prebid-cache\n * is disabled, and description_url is not already set on a given input\n * @param {AdapterBidResponse} bid object to check for vast url\n * @param {Object} components the object to check that description_url is NOT set on\n * @param {string} prop the property of components that would contain description_url\n * @return {string | undefined} The encoded vast url if it exists, or undefined\n */\nfunction getDescriptionUrl(bid, components, prop) {\n if (config.getConfig('cache.url')) { return; }\n\n if (!deepAccess(components, `${prop}.description_url`)) {\n const vastUrl = bid && bid.vastUrl;\n if (vastUrl) { return encodeURIComponent(vastUrl); }\n } else {\n logError(`input cannnot contain description_url`);\n }\n}\n\nregisterVideoSupport('dfp', {\n buildVideoUrl: buildDfpVideoUrl\n});\n\n\n\n// WEBPACK FOOTER //\n// ./modules/dfpAdServerVideo.js","import { getGlobal } from './prebidGlobal';\nimport { logWarn } from './utils';\n\nconst prebid = getGlobal();\n\n/**\n * This file defines the plugin points in prebid-core for AdServer-specific functionality.\n *\n * Its main job is to expose functions for AdServer modules to append functionality to the Prebid public API.\n * For a given Ad Server with name \"adServerName\", these functions will only change the API in the\n * pbjs.adServers[adServerName] namespace.\n */\n\n/**\n * @typedef {Object} CachedVideoBid\n *\n * @property {string} videoCacheId The ID which can be used to retrieve this video from prebid-server.\n * This is the same ID given to the callback in the videoCache's store function.\n */\n\n/**\n * @function VideoAdUrlBuilder\n *\n * @param {CachedVideoBid} bid The winning Bid which the ad server should show, assuming it beats out\n * the competition.\n *\n * @param {Object} options Options required by the Ad Server to make a valid AdServer URL.\n * This object will have different properties depending on the specific ad server supported.\n * For more information, see the docs inside the ad server module you're supporting.\n *\n * @return {string} A URL which can be passed into the Video player to play an ad.\n */\n\n/**\n * @typedef {Object} VideoSupport\n *\n * @function {VideoAdUrlBuilder} buildVideoAdUrl\n */\n\n/**\n * Enable video support for the Ad Server.\n *\n * @property {string} name The identifying name for this adserver.\n * @property {VideoSupport} videoSupport An object with the functions needed to support video in Prebid.\n */\nexport function registerVideoSupport(name, videoSupport) {\n prebid.adServers = prebid.adServers || { };\n prebid.adServers[name] = prebid.adServers[name] || { };\n if (prebid.adServers[name].buildVideoUrl) {\n logWarn(`Multiple calls to registerVideoSupport for AdServer ${name}. Expect surprising behavior.`);\n return;\n }\n prebid.adServers[name].buildVideoUrl = videoSupport.buildVideoUrl;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/adServerManager.js","import {ajax} from 'src/ajax';\nimport adapter from 'src/AnalyticsAdapter';\nimport adaptermanager from 'src/adaptermanager';\nimport * as utils from 'src/utils';\n\nconst CONSTANTS = require('src/constants.json');\n\nconst analyticsType = 'endpoint';\nconst EPL_HOST = 'https://ads.us.e-planning.net/hba/1/';\n\nfunction auctionEndHandler(args) {\n return {auctionId: args.auctionId};\n}\n\nfunction auctionInitHandler(args) {\n return {\n auctionId: args.auctionId,\n time: args.timestamp\n };\n}\n\nfunction bidRequestedHandler(args) {\n return {\n auctionId: args.auctionId,\n time: args.start,\n bidder: args.bidderCode,\n bids: args.bids.map(function(bid) {\n return {\n time: bid.startTime,\n bidder: bid.bidder,\n placementCode: bid.placementCode,\n auctionId: bid.auctionId,\n sizes: bid.sizes\n };\n }),\n };\n}\n\nfunction bidResponseHandler(args) {\n return {\n bidder: args.bidder,\n size: args.size,\n auctionId: args.auctionId,\n cpm: args.cpm,\n time: args.responseTimestamp,\n };\n}\n\nfunction bidWonHandler(args) {\n return {\n auctionId: args.auctionId,\n size: args.width + 'x' + args.height,\n };\n}\n\nfunction bidTimeoutHandler(args) {\n return args.map(function(bid) {\n return {\n bidder: bid.bidder,\n auctionId: bid.auctionId\n };\n })\n}\n\nfunction callHandler(evtype, args) {\n let handler = null;\n\n if (evtype === CONSTANTS.EVENTS.AUCTION_INIT) {\n handler = auctionInitHandler;\n eplAnalyticsAdapter.context.events = [];\n } else if (evtype === CONSTANTS.EVENTS.AUCTION_END) {\n handler = auctionEndHandler;\n } else if (evtype === CONSTANTS.EVENTS.BID_REQUESTED) {\n handler = bidRequestedHandler;\n } else if (evtype === CONSTANTS.EVENTS.BID_RESPONSE) {\n handler = bidResponseHandler\n } else if (evtype === CONSTANTS.EVENTS.BID_TIMEOUT) {\n handler = bidTimeoutHandler;\n } else if (evtype === CONSTANTS.EVENTS.BID_WON) {\n handler = bidWonHandler;\n }\n\n if (handler) {\n eplAnalyticsAdapter.context.events.push({ec: evtype, p: handler(args)});\n }\n}\n\nvar eplAnalyticsAdapter = Object.assign(adapter(\n {\n EPL_HOST,\n analyticsType\n }),\n{\n track({eventType, args}) {\n if (typeof args !== 'undefined') {\n callHandler(eventType, args);\n }\n\n if (eventType === CONSTANTS.EVENTS.AUCTION_END) {\n try {\n let strjson = JSON.stringify(eplAnalyticsAdapter.context.events);\n ajax(eplAnalyticsAdapter.context.host + eplAnalyticsAdapter.context.ci + '?d=' + encodeURIComponent(strjson));\n } catch (err) {}\n }\n }\n}\n);\n\neplAnalyticsAdapter.originEnableAnalytics = eplAnalyticsAdapter.enableAnalytics;\n\neplAnalyticsAdapter.enableAnalytics = function (config) {\n if (!config.options.ci) {\n utils.logError('Client ID (ci) option is not defined. Analytics won\\'t work');\n return;\n }\n\n eplAnalyticsAdapter.context = {\n events: [],\n host: config.options.host || EPL_HOST,\n ci: config.options.ci\n };\n\n eplAnalyticsAdapter.originEnableAnalytics(config);\n};\n\nadaptermanager.registerAnalyticsAdapter({\n adapter: eplAnalyticsAdapter,\n code: 'eplanning'\n});\n\nexport default eplAnalyticsAdapter;\n\n\n\n// WEBPACK FOOTER //\n// ./modules/eplanningAnalyticsAdapter.js","import * as utils from 'src/utils';\nimport { registerBidder } from 'src/adapters/bidderFactory';\n\nconst BIDDER_CODE = 'eplanning';\nconst rnd = Math.random();\nconst DEFAULT_SV = 'ads.us.e-planning.net';\nconst DEFAULT_ISV = 'i.e-planning.net';\nconst PARAMS = ['ci', 'sv', 't'];\nconst DOLLARS = 'USD';\nconst NET_REVENUE = true;\nconst TTL = 120;\nconst NULL_SIZE = '1x1';\nconst FILE = 'file';\n\nexport const spec = {\n code: BIDDER_CODE,\n isBidRequestValid: function(bid) {\n return Boolean(bid.params.ci) || Boolean(bid.params.t);\n },\n buildRequests: function(bidRequests) {\n const method = 'GET';\n const dfpClientId = '1';\n const sec = 'ROS';\n let url;\n let params;\n const urlConfig = getUrlConfig(bidRequests);\n\n if (urlConfig.t) {\n url = urlConfig.isv + '/layers/t_pbjs_2.json';\n params = {};\n } else {\n url = '//' + (urlConfig.sv || DEFAULT_SV) + '/hb/1/' + urlConfig.ci + '/' + dfpClientId + '/' + (utils.getTopWindowLocation().hostname || FILE) + '/' + sec;\n const referrerUrl = utils.getTopWindowReferrer();\n const spacesString = getSpacesString(bidRequests);\n params = {\n rnd: rnd,\n e: spacesString,\n ur: utils.getTopWindowUrl() || FILE,\n r: 'pbjs',\n pbv: '1.7.0-pre',\n ncb: '1'\n };\n if (referrerUrl) {\n params.fr = referrerUrl;\n }\n }\n\n return {\n method: method,\n url: url,\n data: params,\n adUnitToBidId: getBidIdMap(bidRequests),\n };\n },\n interpretResponse: function(serverResponse, request) {\n const response = serverResponse.body;\n let bidResponses = [];\n\n if (response && !utils.isEmpty(response.sp)) {\n response.sp.forEach(space => {\n if (!utils.isEmpty(space.a)) {\n space.a.forEach(ad => {\n const bidResponse = {\n requestId: request.adUnitToBidId[space.k],\n cpm: ad.pr,\n width: ad.w,\n height: ad.h,\n ad: ad.adm,\n ttl: TTL,\n creativeId: ad.crid,\n netRevenue: NET_REVENUE,\n currency: DOLLARS,\n };\n bidResponses.push(bidResponse);\n });\n }\n });\n }\n\n return bidResponses;\n },\n getUserSyncs: function(syncOptions, serverResponses) {\n const syncs = [];\n const response = !utils.isEmpty(serverResponses) && serverResponses[0].body;\n\n if (response && !utils.isEmpty(response.cs)) {\n const responseSyncs = response.cs;\n responseSyncs.forEach(sync => {\n if (typeof sync === 'string' && syncOptions.pixelEnabled) {\n syncs.push({\n type: 'image',\n url: sync,\n });\n } else if (typeof sync === 'object' && sync.ifr && syncOptions.iframeEnabled) {\n syncs.push({\n type: 'iframe',\n url: sync.u,\n })\n }\n });\n }\n\n return syncs;\n },\n}\n\nfunction cleanName(name) {\n return name.replace(/_|\\.|-|\\//g, '').replace(/\\)\\(|\\(|\\)/g, '_').replace(/^_+|_+$/g, '');\n}\nfunction getUrlConfig(bidRequests) {\n if (isTestRequest(bidRequests)) {\n return getTestConfig(bidRequests.filter(br => br.params.t));\n }\n\n let config = {};\n bidRequests.forEach(bid => {\n PARAMS.forEach(param => {\n if (bid.params[param] && !config[param]) {\n config[param] = bid.params[param];\n }\n });\n });\n\n if (config.sv) {\n config.sv = '//' + config.sv;\n }\n\n return config;\n}\nfunction isTestRequest(bidRequests) {\n let isTest = false;\n bidRequests.forEach(bid => isTest = bid.params.t);\n return isTest;\n}\nfunction getTestConfig(bidRequests) {\n let isv;\n bidRequests.forEach(br => isv = isv || br.params.isv);\n return {\n t: true,\n isv: '//' + (isv || DEFAULT_ISV)\n };\n}\nfunction getSpacesString(bids) {\n const spacesString = bids.map(bid =>\n cleanName(bid.adUnitCode) + ':' + (bid.sizes && bid.sizes.length ? utils.parseSizesInput(bid.sizes).join(',') : NULL_SIZE)\n ).join('+');\n\n return spacesString;\n}\nfunction getBidIdMap(bidRequests) {\n let map = {};\n bidRequests.forEach(bid => map[cleanName(bid.adUnitCode)] = bid.bidId);\n return map;\n}\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/eplanningBidAdapter.js","\nimport * as utils from 'src/utils';\n\nconst MODULE_NAME = 'express';\n\n/**\n * Express Module\n *\n * The express module allows the initiation of Prebid.js auctions automatically based on calls such as gpt.defineSlot.\n * It works by monkey-patching the gpt methods and overloading their functionality. In order for this module to be\n * used gpt must be included in the page, this module must be included in the Prebid.js bundle, and a call to\n * pbjs.express() must be made.\n *\n * @param {Object[]} [adUnits = pbjs.adUnits] - an array of adUnits for express to operate on.\n */\npbjs.express = function(adUnits = pbjs.adUnits) {\n utils.logMessage('loading ' + MODULE_NAME);\n\n if (adUnits.length === 0) {\n utils.logWarn('no valid adUnits found, not loading ' + MODULE_NAME);\n }\n\n // store gpt slots in a more performant hash lookup by elementId (adUnit code)\n var gptSlotCache = {};\n // put adUnits in a more performant hash lookup by code.\n var adUnitsCache = adUnits.reduce(function (cache, adUnit) {\n if (adUnit.code && adUnit.bids) {\n cache[adUnit.code] = adUnit;\n } else {\n utils.logError('misconfigured adUnit', null, adUnit);\n }\n return cache;\n }, {});\n\n window.googletag = window.googletag || {};\n window.googletag.cmd = window.googletag.cmd || [];\n window.googletag.cmd.push(function () {\n // verify all necessary gpt functions exist\n var gpt = window.googletag;\n var pads = gpt.pubads;\n if (!gpt.display || !gpt.enableServices || typeof pads !== 'function' || !pads().refresh || !pads().disableInitialLoad || !pads().getSlots || !pads().enableSingleRequest) {\n utils.logError('could not bind to gpt googletag api');\n return;\n }\n utils.logMessage('running');\n\n // function to convert google tag slot sizes to [[w,h],...]\n function mapGptSlotSizes(aGPTSlotSizes) {\n var aSlotSizes = [];\n for (var i = 0; i < aGPTSlotSizes.length; i++) {\n try {\n aSlotSizes.push([aGPTSlotSizes[i].getWidth(), aGPTSlotSizes[i].getHeight()]);\n } catch (e) {\n utils.logWarn('slot size ' + aGPTSlotSizes[i].toString() + ' not supported by' + MODULE_NAME);\n }\n }\n return aSlotSizes;\n }\n\n // a helper function to verify slots or get slots if not present\n function defaultSlots(slots) {\n return Array.isArray(slots)\n ? slots.slice()\n : googletag.pubads().getSlots().slice();\n }\n\n // maps gpt slots to adUnits, matches are copied to new array and removed from passed array.\n function pickAdUnits(gptSlots) {\n var adUnits = [];\n // traverse backwards (since gptSlots is mutated) to find adUnits in cache and remove non-mapped slots\n for (var i = gptSlots.length - 1; i > -1; i--) {\n const gptSlot = gptSlots[i];\n const elemId = gptSlot.getSlotElementId();\n const adUnit = adUnitsCache[elemId];\n\n if (adUnit) {\n gptSlotCache[elemId] = gptSlot; // store by elementId\n adUnit.sizes = adUnit.sizes || mapGptSlotSizes(gptSlot.getSizes());\n adUnits.push(adUnit);\n gptSlots.splice(i, 1);\n }\n }\n\n return adUnits;\n }\n\n // store original gpt functions that will be overridden\n var fGptDisplay = gpt.display;\n var fGptEnableServices = gpt.enableServices;\n var fGptRefresh = pads().refresh;\n var fGptDisableInitialLoad = pads().disableInitialLoad;\n var fGptEnableSingleRequest = pads().enableSingleRequest;\n\n // override googletag.enableServices()\n // - make sure fGptDisableInitialLoad() has been called so we can\n // better control when slots are displayed, then call original\n // fGptEnableServices()\n gpt.enableServices = function () {\n if (!bInitialLoadDisabled) {\n fGptDisableInitialLoad.apply(pads());\n }\n return fGptEnableServices.apply(gpt, arguments);\n };\n\n // override googletag.display()\n // - call the real fGptDisplay(). this won't initiate auctions because we've disabled initial load\n // - define all corresponding rubicon slots\n // - if disableInitialLoad() has been called by the pub, done\n // - else run an auction and call the real fGptRefresh() to\n // initiate the DFP request\n gpt.display = function (sElementId) {\n utils.logInfo('display:', sElementId);\n // call original gpt display() function\n fGptDisplay.apply(gpt, arguments);\n\n // if not SRA mode, get only the gpt slot corresponding to sEementId\n var aGptSlots;\n if (!bEnabledSRA) {\n aGptSlots = googletag.pubads().getSlots().filter(function (oGptSlot) {\n return oGptSlot.getSlotElementId() === sElementId;\n });\n }\n\n aGptSlots = defaultSlots(aGptSlots).filter(function (gptSlot) {\n return !gptSlot._displayed;\n });\n\n aGptSlots.forEach(function (gptSlot) {\n gptSlot._displayed = true;\n });\n\n var adUnits = pickAdUnits(/* mutated: */ aGptSlots);\n\n if (!bInitialLoadDisabled) {\n if (aGptSlots.length) {\n fGptRefresh.apply(pads(), [aGptSlots]);\n }\n\n if (adUnits.length) {\n pbjs.requestBids({\n adUnits: adUnits,\n bidsBackHandler: function () {\n pbjs.setTargetingForGPTAsync();\n fGptRefresh.apply(pads(), [\n adUnits.map(function (adUnit) {\n return gptSlotCache[adUnit.code];\n })\n ]);\n }\n });\n }\n }\n };\n\n // override gpt refresh() function\n // - run auctions for provided gpt slots, then initiate ad-server call\n pads().refresh = function (aGptSlots, options) {\n utils.logInfo('refresh:', aGptSlots);\n // get already displayed adUnits from aGptSlots if provided, else all defined gptSlots\n aGptSlots = defaultSlots(aGptSlots);\n var adUnits = pickAdUnits(/* mutated: */ aGptSlots).filter(function (adUnit) {\n return gptSlotCache[adUnit.code]._displayed;\n });\n\n if (aGptSlots.length) {\n fGptRefresh.apply(pads(), [aGptSlots, options]);\n }\n\n if (adUnits.length) {\n pbjs.requestBids({\n adUnits: adUnits,\n bidsBackHandler: function () {\n pbjs.setTargetingForGPTAsync();\n fGptRefresh.apply(pads(), [\n adUnits.map(function (adUnit) {\n return gptSlotCache[adUnit.code];\n }),\n options\n ]);\n }\n });\n }\n };\n\n // override gpt disableInitialLoad function\n // Register that initial load was called, meaning calls to display()\n // should not initiate an ad-server request. Instead a call to\n // refresh() will be needed to iniate the request.\n // We will assume the pub is using this the correct way, calling it\n // before enableServices()\n var bInitialLoadDisabled = false;\n pads().disableInitialLoad = function () {\n bInitialLoadDisabled = true;\n return fGptDisableInitialLoad.apply(window.googletag.pubads(), arguments);\n };\n\n // override gpt useSingleRequest function\n // Register that SRA has been turned on\n // We will assume the pub is using this the correct way, calling it\n // before enableServices()\n var bEnabledSRA = false;\n pads().enableSingleRequest = function () {\n bEnabledSRA = true;\n return fGptEnableSingleRequest.apply(window.googletag.pubads(), arguments);\n };\n });\n};\n\n\n\n// WEBPACK FOOTER //\n// ./modules/express.js","import * as utils from 'src/utils';\nimport {registerBidder} from 'src/adapters/bidderFactory';\nconst BIDDER_CODE = 'fairtrade';\nconst ENDPOINT_URL = '//pool.fair-trademedia.com/hb';\nconst TIME_TO_LIVE = 360;\nconst ADAPTER_SYNC_URL = '//pool.fair-trademedia.com/push_sync';\nconst LOG_ERROR_MESS = {\n noAuid: 'Bid from response has no auid parameter - ',\n noAdm: 'Bid from response has no adm parameter - ',\n noBid: 'Array of bid objects is empty',\n noPlacementCode: 'Can\\'t find in requested bids the bid with auid - ',\n emptyUids: 'Uids should be not empty',\n emptySeatbid: 'Seatbid array from response has empty item',\n emptyResponse: 'Response is empty',\n hasEmptySeatbidArray: 'Response has empty seatbid array',\n hasNoArrayOfBids: 'Seatbid from response has no array of bid objects - '\n};\nexport const spec = {\n code: BIDDER_CODE,\n /**\n * Determines whether or not the given bid request is valid.\n *\n * @param {BidRequest} bid The bid params to validate.\n * @return boolean True if this is a valid bid, and false otherwise.\n */\n isBidRequestValid: function(bid) {\n return !!bid.params.uid;\n },\n /**\n * Make a server request from the list of BidRequests.\n *\n * @param {BidRequest[]} validBidRequests - an array of bids\n * @return ServerRequest Info describing the request to the server.\n */\n buildRequests: function(validBidRequests) {\n const auids = [];\n const bidsMap = {};\n const bids = validBidRequests || [];\n let priceType = 'net';\n let reqId;\n\n bids.forEach(bid => {\n if (bid.params.priceType === 'gross') {\n priceType = 'gross';\n }\n reqId = bid.bidderRequestId;\n if (!bidsMap[bid.params.uid]) {\n bidsMap[bid.params.uid] = [bid];\n auids.push(bid.params.uid);\n } else {\n bidsMap[bid.params.uid].push(bid);\n }\n });\n\n const payload = {\n u: utils.getTopWindowUrl(),\n pt: priceType,\n auids: auids.join(','),\n r: reqId\n };\n\n return {\n method: 'GET',\n url: ENDPOINT_URL,\n data: payload,\n bidsMap: bidsMap,\n };\n },\n /**\n * Unpack the response from the server into a list of bids.\n *\n * @param {*} serverResponse A successful response from the server.\n * @param {*} bidRequest\n * @return {Bid[]} An array of bids which were nested inside the server.\n */\n interpretResponse: function(serverResponse, bidRequest) {\n serverResponse = serverResponse && serverResponse.body\n const bidResponses = [];\n const bidsMap = bidRequest.bidsMap;\n const priceType = bidRequest.data.pt;\n\n let errorMessage;\n\n if (!serverResponse) errorMessage = LOG_ERROR_MESS.emptyResponse;\n else if (serverResponse.seatbid && !serverResponse.seatbid.length) {\n errorMessage = LOG_ERROR_MESS.hasEmptySeatbidArray;\n }\n\n if (!errorMessage && serverResponse.seatbid) {\n serverResponse.seatbid.forEach(respItem => {\n _addBidResponse(_getBidFromResponse(respItem), bidsMap, priceType, bidResponses);\n });\n }\n if (errorMessage) utils.logError(errorMessage);\n return bidResponses;\n },\n getUserSyncs: function(syncOptions) {\n if (syncOptions.pixelEnabled) {\n return [{\n type: 'image',\n url: ADAPTER_SYNC_URL\n }];\n }\n }\n}\n\nfunction _getBidFromResponse(respItem) {\n if (!respItem) {\n utils.logError(LOG_ERROR_MESS.emptySeatbid);\n } else if (!respItem.bid) {\n utils.logError(LOG_ERROR_MESS.hasNoArrayOfBids + JSON.stringify(respItem));\n } else if (!respItem.bid[0]) {\n utils.logError(LOG_ERROR_MESS.noBid);\n }\n return respItem && respItem.bid && respItem.bid[0];\n}\n\nfunction _addBidResponse(serverBid, bidsMap, priceType, bidResponses) {\n if (!serverBid) return;\n let errorMessage;\n if (!serverBid.auid) errorMessage = LOG_ERROR_MESS.noAuid + JSON.stringify(serverBid);\n if (!serverBid.adm) errorMessage = LOG_ERROR_MESS.noAdm + JSON.stringify(serverBid);\n else {\n const awaitingBids = bidsMap[serverBid.auid];\n if (awaitingBids) {\n awaitingBids.forEach(bid => {\n const bidResponse = {\n requestId: bid.bidId, // bid.bidderRequestId,\n cpm: serverBid.price,\n width: serverBid.w,\n height: serverBid.h,\n creativeId: serverBid.auid, // bid.bidId,\n currency: 'USD',\n netRevenue: priceType !== 'gross',\n ttl: TIME_TO_LIVE,\n ad: serverBid.adm,\n dealId: serverBid.dealid\n };\n bidResponses.push(bidResponse);\n });\n } else {\n errorMessage = LOG_ERROR_MESS.noPlacementCode + serverBid.auid;\n }\n }\n if (errorMessage) {\n utils.logError(errorMessage);\n }\n}\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/fairtradeBidAdapter.js","import * as utils from 'src/utils';\r\nimport {registerBidder} from 'src/adapters/bidderFactory';\r\n\r\nconst BIDDER_CODE = 'fidelity';\r\nconst BIDDER_SERVER = 'x.fidelity-media.com';\r\nexport const spec = {\r\n code: BIDDER_CODE,\r\n isBidRequestValid: function(bid) {\r\n return !!(bid && bid.params && bid.params.zoneid);\r\n },\r\n buildRequests: function(validBidRequests, bidderRequest) {\n return validBidRequests.map(bidRequest => {\n var server = bidRequest.params.server || BIDDER_SERVER;\n\n const payload = {\n from: 'hb',\n v: '1.0',\n requestid: bidRequest.bidderRequestId,\n impid: bidRequest.bidId,\n zoneid: bidRequest.params.zoneid,\n floor: parseFloat(bidRequest.params.floor) > 0 ? bidRequest.params.floor : 0,\n charset: document.charSet || document.characterSet,\n defloc: utils.getTopWindowUrl(),\n altloc: window.location.href,\n subid: 'hb',\n flashver: getFlashVersion(),\n tmax: bidderRequest.timeout,\n };\n if (document.referrer) {\n payload.referrer = document.referrer;\r\n }\r\n\n return {\n method: 'GET',\n url: '//' + server + '/delivery/hb.php',\n data: payload\n };\n });\n },\n interpretResponse: function(serverResponse) {\r\n serverResponse = serverResponse.body;\r\n const bidResponses = [];\n if (serverResponse && serverResponse.seatbid) {\n serverResponse.seatbid.forEach(seatBid => seatBid.bid.forEach(bid => {\n const bidResponse = {\n requestId: bid.impid,\r\n creativeId: bid.impid,\n cpm: bid.price,\n width: bid.width,\n height: bid.height,\n ad: bid.adm,\n netRevenue: bid.netRevenue,\n currency: bid.cur,\n ttl: bid.ttl,\r\n };\n\n bidResponses.push(bidResponse);\n }));\n }\n return bidResponses;\r\n },\n getUserSyncs: function getUserSyncs(syncOptions) {\n if (syncOptions.iframeEnabled) {\n return [{\r\n type: 'iframe',\r\n url: '//' + BIDDER_SERVER + '/delivery/matches.php?type=iframe',\r\n }];\n }\n }\r\n}\r\n\r\nfunction getFlashVersion() {\n var plugins, plugin, result;\n\n if (navigator.plugins && navigator.plugins.length > 0) {\n plugins = navigator.plugins;\n for (var i = 0; i < plugins.length && !result; i++) {\n plugin = plugins[i];\n if (plugin.name.indexOf('Shockwave Flash') > -1) {\n result = plugin.description.split('Shockwave Flash ')[1];\n }\n }\n }\n return result || '';\n}\r\n\r\nregisterBidder(spec);\r\n\n\n\n// WEBPACK FOOTER //\n// ./modules/fidelityBidAdapter.js","import * as utils from 'src/utils';\nimport { registerBidder } from 'src/adapters/bidderFactory';\n// import { config } from 'src/config';\n\nconst BIDDER_CODE = 'freewheel-ssp';\n\nconst PROTOCOL = getProtocol();\nconst FREEWHEEL_ADSSETUP = PROTOCOL + '://ads.stickyadstv.com/www/delivery/swfIndex.php';\nconst MUSTANG_URL = PROTOCOL + '://cdn.stickyadstv.com/mustang/mustang.min.js';\nconst PRIMETIME_URL = PROTOCOL + '://cdn.stickyadstv.com/prime-time/';\nconst USER_SYNC_URL = PROTOCOL + '://ads.stickyadstv.com/auto-user-sync';\n\nfunction getProtocol() {\n if (location.protocol && location.protocol.indexOf('https') === 0) {\n return 'https';\n } else {\n return 'http';\n }\n}\n\nfunction isValidUrl(str) {\n if (!str) {\n return false;\n }\n\n // regExp for url validation\n var pattern = /^(https?|ftp|file):\\/\\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+\\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\\/($|[a-zA-Z0-9.,?'\\\\+&%$#=~_-]+))*$/;\n return pattern.test(str);\n}\n\nfunction getBiggerSize(array) {\n var result = [0, 0];\n for (var i = 0; i < array.length; i++) {\n if (array[i][0] * array[i][1] > result[0] * result[1]) {\n result = array[i];\n }\n }\n return result;\n}\n\n/*\n* read the pricing extension with this format: 1.0000\n* @return {object} pricing data in format: {currency: \"EUR\", price:\"1.000\"}\n*/\nfunction getPricing(xmlNode) {\n var pricingExtNode;\n var princingData = {};\n\n var extensions = xmlNode.querySelectorAll('Extension');\n // Nodelist.forEach is not supported in IE and Edge\n // Workaround given here https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/10638731/\n Array.prototype.forEach.call(extensions, function(node) {\n if (node.getAttribute('type') === 'StickyPricing') {\n pricingExtNode = node;\n }\n });\n\n if (pricingExtNode) {\n var priceNode = pricingExtNode.querySelector('Price');\n princingData = {\n currency: priceNode.getAttribute('currency'),\n price: priceNode.textContent || priceNode.innerText\n };\n } else {\n utils.logWarn('PREBID - ' + BIDDER_CODE + ': Can\\'t get pricing data. Is price awareness enabled?');\n }\n\n return princingData;\n}\n\nfunction getCreativeId(xmlNode) {\n var creaId = '';\n var adNodes = xmlNode.querySelectorAll('Ad');\n // Nodelist.forEach is not supported in IE and Edge\n // Workaround given here https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/10638731/\n Array.prototype.forEach.call(adNodes, function(el) {\n creaId += '[' + el.getAttribute('id') + ']';\n });\n\n return creaId;\n}\n\n/**\n* returns the top most accessible window\n*/\nfunction getTopMostWindow() {\n var res = window;\n\n try {\n while (top !== res) {\n if (res.parent.location.href.length) { res = res.parent; }\n }\n } catch (e) {}\n\n return res;\n}\n\nfunction getComponentId(inputFormat) {\n var component = 'mustang'; // default component id\n\n if (inputFormat && inputFormat !== 'inbanner') {\n // format identifiers are equals to their component ids.\n component = inputFormat;\n }\n\n return component;\n}\n\nfunction getAPIName(componentId) {\n componentId = componentId || '';\n\n // remove dash in componentId to get API name\n return componentId.replace('-', '');\n}\n\nfunction formatAdHTML(bid, size) {\n var integrationType = bid.params.format;\n\n var divHtml = '
';\n\n var script = '';\n var libUrl = '';\n if (integrationType && integrationType !== 'inbanner') {\n libUrl = PRIMETIME_URL + getComponentId(bid.params.format) + '.min.js';\n script = getOutstreamScript(bid, size);\n } else {\n libUrl = MUSTANG_URL;\n script = getInBannerScript(bid, size);\n }\n\n return divHtml +\n '';\n}\n\nvar getInBannerScript = function(bid, size) {\n return 'var config = {' +\n ' preloadedVast:vast,' +\n ' autoPlay:true' +\n ' };' +\n ' var ad = new window.com.stickyadstv.vpaid.Ad(document.getElementById(\"freewheelssp_prebid_target\"),config);' +\n ' (new window.com.stickyadstv.tools.ASLoader(' + bid.params.zoneId + ', \\'' + getComponentId(bid.params.format) + '\\')).registerEvents(ad);' +\n ' ad.initAd(' + size[0] + ',' + size[1] + ',\"\",0,\"\",\"\");';\n};\n\nvar getOutstreamScript = function(bid) {\n var placementCode = bid.adUnitCode;\n\n var config = bid.params;\n\n // default placement if no placement is set\n if (!config.hasOwnProperty('domId') && !config.hasOwnProperty('auto') && !config.hasOwnProperty('p') && !config.hasOwnProperty('article')) {\n config.domId = placementCode;\n }\n\n var script = 'var config = {' +\n ' preloadedVast:vast,' +\n ' ASLoader:new window.com.stickyadstv.tools.ASLoader(' + bid.params.zoneId + ', \\'' + getComponentId(bid.params.format) + '\\')';\n\n for (var key in config) {\n // dont' send format parameter\n // neither zone nor vastUrlParams value as Vast is already loaded\n if (config.hasOwnProperty(key) && key !== 'format' && key !== 'zone' && key !== 'zoneId' && key !== 'vastUrlParams') {\n script += ',' + key + ':\"' + config[key] + '\"';\n }\n }\n script += '};' +\n\n 'window.com.stickyadstv.' + getAPIName(bid.params.format) + '.start(config);';\n\n return script;\n};\n\nexport const spec = {\n code: BIDDER_CODE,\n supportedMediaTypes: ['banner', 'video'],\n aliases: ['stickyadstv'], // former name for freewheel-ssp\n /**\n * Determines whether or not the given bid request is valid.\n *\n * @param {object} bid The bid to validate.\n * @return boolean True if this is a valid bid, and false otherwise.\n */\n isBidRequestValid: function(bid) {\n return !!(bid.params.zoneId);\n },\n\n /**\n * Make a server request from the list of BidRequests.\n *\n * @param {BidRequest[]} bidRequests A non-empty list of bid requests which should be sent to the Server.\n * @return ServerRequest Info describing the request to the server.\n */\n buildRequests: function(bidRequests) {\n // var currency = config.getConfig(currency);\n\n var currentBidRequest = bidRequests[0];\n if (bidRequests.length > 1) {\n utils.logMessage('Prebid.JS - freewheel bid adapter: only one ad unit is required.');\n }\n\n var requestParams = {\n reqType: 'AdsSetup',\n protocolVersion: '2.0',\n zoneId: currentBidRequest.params.zoneId,\n componentId: getComponentId(currentBidRequest.params.format)\n };\n\n var location = utils.getTopWindowUrl();\n if (isValidUrl(location)) {\n requestParams.loc = location;\n }\n\n var playerSize = getBiggerSize(currentBidRequest.sizes);\n if (playerSize[0] > 0 || playerSize[1] > 0) {\n requestParams.playerSize = playerSize[0] + 'x' + playerSize[1];\n }\n\n return {\n method: 'GET',\n url: FREEWHEEL_ADSSETUP,\n data: requestParams,\n bidRequest: currentBidRequest\n };\n },\n\n /**\n * Unpack the response from the server into a list of bids.\n *\n * @param {*} serverResponse A successful response from the server.\n * @param {object} request: the built request object containing the initial bidRequest.\n * @return {Bid[]} An array of bids which were nested inside the server.\n */\n interpretResponse: function(serverResponse, request) {\n var bidrequest = request.bidRequest;\n var playerSize = getBiggerSize(bidrequest.sizes);\n\n if (typeof serverResponse == 'object' && typeof serverResponse.body == 'string') {\n serverResponse = serverResponse.body;\n }\n\n var xmlDoc;\n try {\n var parser = new DOMParser();\n xmlDoc = parser.parseFromString(serverResponse, 'application/xml');\n } catch (err) {\n utils.logWarn('Prebid.js - ' + BIDDER_CODE + ' : ' + err);\n return;\n }\n\n const princingData = getPricing(xmlDoc);\n const creativeId = getCreativeId(xmlDoc);\n\n const topWin = getTopMostWindow();\n if (!topWin.freewheelssp_cache) {\n topWin.freewheelssp_cache = {};\n }\n topWin.freewheelssp_cache[bidrequest.adUnitCode] = serverResponse;\n\n const bidResponses = [];\n\n if (princingData.price) {\n const bidResponse = {\n requestId: bidrequest.bidId,\n cpm: princingData.price,\n width: playerSize[0],\n height: playerSize[1],\n creativeId: creativeId,\n currency: princingData.currency,\n netRevenue: true,\n ttl: 360\n };\n\n var mediaTypes = bidrequest.mediaTypes || {};\n if (mediaTypes.video) {\n // bidResponse.vastXml = serverResponse;\n bidResponse.mediaType = 'video';\n\n var blob = new Blob([serverResponse], {type: 'application/xml'});\n bidResponse.vastUrl = window.URL.createObjectURL(blob);\n } else {\n bidResponse.ad = formatAdHTML(bidrequest, playerSize);\n }\n\n bidResponses.push(bidResponse);\n }\n\n return bidResponses;\n },\n\n getUserSyncs: function(syncOptions) {\n if (syncOptions.pixelEnabled) {\n return [{\n type: 'image',\n url: USER_SYNC_URL\n }];\n }\n }\n}\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/freewheelSSPBidAdapter.js","import * as utils from 'src/utils';\nimport { registerBidder } from 'src/adapters/bidderFactory';\nimport find from 'core-js/library/fn/array/find';\n\nconst ENDPOINT = 'hb.gammaplatform.com';\nconst BIDDER_CODE = 'gamma';\n\nexport const spec = {\n code: BIDDER_CODE,\n aliases: ['gamma'],\n supportedMediaTypes: ['banner', 'video'],\n\n /**\n * Determines whether or not the given bid request is valid.\n *\n * @param {object} bid The bid to validate.\n * @return boolean True if this is a valid bid, and false otherwise.\n */\n isBidRequestValid: function(bid) {\n return !!(bid.params.siteId || bid.params.zoneId);\n },\n\n /**\n * Make a server request from the list of BidRequests.\n *\n * @param {BidRequest[]} bidRequests A non-empty list of bid requests which should be sent to the Server.\n * @return ServerRequest Info describing the request to the server.\n */\n buildRequests: function(bidRequests) {\n const gaxObjParams = find(bidRequests, hasParamInfo);\n return {\n method: 'GET',\n url: '//' + ENDPOINT + '/adx/request?wid=' + gaxObjParams.params.siteId + '&zid=' + gaxObjParams.params.zoneId + '&hb=pbjs&bidid=' + gaxObjParams.bidId + '&urf=' + utils.getTopWindowUrl()\n };\n },\n\n /**\n * Unpack the response from the server into a list of bids.\n *\n * @param {*} serverResponse A successful response from the server.\n * @return {Bid[]} An array of bids which were nested inside the server.\n */\n interpretResponse: function(serverResponse) {\n serverResponse = serverResponse.body;\n\n const bids = [];\n\n if (serverResponse.id) {\n const bid = newBid(serverResponse);\n bids.push(bid);\n }\n\n return bids;\n },\n\n getUserSyncs: function(syncOptions) {\n if (syncOptions.iframeEnabled) {\n return [{\n type: 'iframe',\n url: '//' + ENDPOINT + '/adx/usersync'\n }];\n }\n }\n}\n\n/**\n * Unpack the Server's Bid into a Prebid-compatible one.\n * @param serverBid\n * @return Bid\n */\nfunction newBid(serverBid) {\n const bid = {\n ad: serverBid.seatbid[0].bid[0].adm,\n cpm: serverBid.seatbid[0].bid[0].price,\n creativeId: serverBid.seatbid[0].bid[0].adid,\n currency: serverBid.cur,\n dealId: serverBid.seatbid[0].bid[0].dealid,\n width: serverBid.seatbid[0].bid[0].w,\n height: serverBid.seatbid[0].bid[0].h,\n mediaType: serverBid.type,\n netRevenue: true,\n requestId: serverBid.id,\n ttl: serverBid.seatbid[0].bid[0].ttl || 300\n };\n\n if (serverBid.type == 'video') {\n Object.assign(bid, {\n vastXml: serverBid.seatbid[0].bid[0].vastXml,\n vastUrl: serverBid.seatbid[0].bid[0].vastUrl,\n ttl: 3600\n });\n }\n\n return bid;\n}\n\nfunction hasParamInfo(bid) {\n return !!bid.params;\n}\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/gammaBidAdapter.js","import { registerBidder } from 'src/adapters/bidderFactory';\n\nconst BIDDER_CODE = 'getintent';\nconst IS_NET_REVENUE = true;\nconst BID_HOST = 'px.adhigh.net';\nconst BID_BANNER_PATH = '/rtb/direct_banner';\nconst BID_VIDEO_PATH = '/rtb/direct_vast';\nconst BID_RESPONSE_TTL_SEC = 360;\nconst VIDEO_PROPERTIES = [\n 'protocols', 'mimes', 'min_dur', 'max_dur', 'min_btr', 'max_btr', 'vi_format', 'api', 'skippable'\n];\nconst OPTIONAL_PROPERTIES = [\n 'cur', 'floor'\n];\n\nexport const spec = {\n code: BIDDER_CODE,\n aliases: ['getintentAdapter'],\n supportedMediaTypes: ['video', 'banner'],\n\n /**\n * Determines whether or not the given bid request is valid.\n *\n * @param {BidRequest} bid The bid to validate.\n * @return {boolean} True if this is a valid bid, and false otherwise.\n * */\n isBidRequestValid: function(bid) {\n return !!(bid && bid.params && bid.params.pid && bid.params.tid);\n },\n\n /**\n * Make a server request from the list of BidRequests.\n *\n * @param {BidRequest[]} bidRequests - an array of bids.\n * @return ServerRequest[]\n */\n buildRequests: function(bidRequests) {\n return bidRequests.map(bidRequest => {\n let giBidRequest = buildGiBidRequest(bidRequest);\n return {\n method: 'GET',\n url: buildUrl(giBidRequest),\n data: giBidRequest,\n };\n });\n },\n\n /**\n * Callback for bids, after the call to DSP completes.\n * Parse the response from the server into a list of bids.\n *\n * @param {object} serverResponse A response from the server.\n * @return {Bid[]} An array of bids which were nested inside the server.\n */\n interpretResponse: function(serverResponse) {\n let responseBody = serverResponse.body;\n const bids = [];\n if (responseBody && responseBody.no_bid !== 1) {\n let size = parseSize(responseBody.size);\n let bid = {\n requestId: responseBody.bid_id,\n ttl: BID_RESPONSE_TTL_SEC,\n netRevenue: IS_NET_REVENUE,\n currency: responseBody.currency,\n creativeId: responseBody.creative_id,\n cpm: responseBody.cpm,\n width: size[0],\n height: size[1]\n };\n if (responseBody.vast_url) {\n bid.mediaType = 'video';\n bid.vastUrl = responseBody.vast_url;\n } else {\n bid.mediaType = 'banner';\n bid.ad = responseBody.ad;\n }\n bids.push(bid);\n }\n return bids;\n }\n\n}\n\nfunction buildUrl(bid) {\n return '//' + BID_HOST + (bid.is_video ? BID_VIDEO_PATH : BID_BANNER_PATH);\n}\n\n/**\n * Builds GI bid request from BidRequest.\n *\n * @param {BidRequest} bidRequest.\n * @return {object} GI bid request.\n * */\nfunction buildGiBidRequest(bidRequest) {\n let giBidRequest = {\n bid_id: bidRequest.bidId,\n pid: bidRequest.params.pid, // required\n tid: bidRequest.params.tid, // required\n known: bidRequest.params.known || 1,\n is_video: bidRequest.mediaType === 'video',\n resp_type: 'JSON'\n };\n if (bidRequest.sizes) {\n giBidRequest.size = produceSize(bidRequest.sizes);\n }\n addVideo(bidRequest.params.video, giBidRequest);\n addOptional(bidRequest.params, giBidRequest, OPTIONAL_PROPERTIES);\n return giBidRequest;\n}\n\nfunction addVideo(video, giBidRequest) {\n if (giBidRequest.is_video && video) {\n for (let i = 0, l = VIDEO_PROPERTIES.length; i < l; i++) {\n let key = VIDEO_PROPERTIES[i];\n if (video.hasOwnProperty(key)) {\n giBidRequest[key] = Array.isArray(video[key]) ? video[key].join(',') : video[key];\n }\n }\n }\n}\n\nfunction addOptional(params, request, props) {\n for (let i = 0; i < props.length; i++) {\n if (params.hasOwnProperty(props[i])) {\n request[props[i]] = params[props[i]];\n }\n }\n}\n\nfunction parseSize(s) {\n return s.split('x').map(Number);\n}\n\nfunction produceSize(sizes) {\n // TODO: add support for multiple sizes\n if (Array.isArray(sizes[0])) {\n return sizes[0].join('x');\n } else {\n return sizes.join('x');\n }\n}\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/getintentBidAdapter.js","import * as utils from 'src/utils';\nimport {registerBidder} from 'src/adapters/bidderFactory';\n\nconst BIDDER_CODE = 'gjirafa';\nconst ENDPOINT_URL = 'https://gjc.gjirafa.com/Home/GetBid';\nconst DIMENSION_SEPARATOR = 'x';\nconst SIZE_SEPARATOR = ';';\n\nexport const spec = {\n code: BIDDER_CODE,\n /**\n * Determines whether or not the given bid request is valid.\n *\n * @param {BidRequest} bid The bid params to validate.\n * @return boolean True if this is a valid bid, and false otherwise.\n */\n isBidRequestValid: function(bid) {\n return bid.params && (!!bid.params.placementId || (!!bid.params.minCPM && !!bid.params.minCPC));\n },\n /**\n * Make a server request from the list of BidRequests.\n *\n * @param {validBidRequests[]} - an array of bids\n * @return ServerRequest Info describing the request to the server.\n */\n buildRequests: function(validBidRequests, bidderRequest) {\n return validBidRequests.map(bidRequest => {\n let gjid = Math.floor(Math.random() * 99999999);\n let sizes = generateSizeParam(bidRequest.sizes);\n let configId = bidRequest.params.placementId || '';\n let minCPM = bidRequest.params.minCPM || 0.0;\n let minCPC = bidRequest.params.minCPC || 0.0;\n let allowExplicit = bidRequest.params.explicit || 0;\n const body = {\n gjid: gjid,\n sizes: sizes,\n configId: configId,\n minCPM: minCPM,\n minCPC: minCPC,\n allowExplicit: allowExplicit,\n referrer: utils.getTopWindowUrl(),\n requestid: bidRequest.bidderRequestId,\n bidid: bidRequest.bidId\n };\n if (document.referrer) {\n body.referrer = document.referrer;\n }\n return {\n method: 'GET',\n url: ENDPOINT_URL,\n data: body\n };\n });\n },\n /**\n * Unpack the response from the server into a list of bids.\n *\n * @param {ServerResponse} serverResponse A successful response from the server.\n * @return {Bid[]} An array of bids which were nested inside the server.\n */\n interpretResponse: function(serverResponse, bidRequest) {\n const serverBody = serverResponse.body;\n const bidResponses = [];\n const bidResponse = {\n requestId: bidRequest.data.bidid,\n cpm: serverBody.CPM,\n width: serverBody.Width,\n height: serverBody.Height,\n creativeId: serverBody.CreativeId,\n currency: serverBody.Currency,\n netRevenue: serverBody.NetRevenue,\n ttl: serverBody.TTL,\n referrer: serverBody.Referrer,\n ad: serverBody.Ad\n };\n bidResponses.push(bidResponse);\n return bidResponses;\n }\n}\n\n/**\n* Generate size param for bid request using sizes array\n*\n* @param {Array} sizes Possible sizes for the ad unit.\n* @return {string} Processed sizes param to be used for the bid request.\n*/\nfunction generateSizeParam(sizes) {\n return sizes.map(size => size.join(DIMENSION_SEPARATOR)).join(SIZE_SEPARATOR);\n}\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/gjirafaBidAdapter.js","/**\n * ga.js - analytics adapter for google analytics\n */\n\nvar events = require('src/events');\nvar utils = require('src/utils');\nvar CONSTANTS = require('src/constants.json');\nvar adaptermanager = require('src/adaptermanager');\n\nvar BID_REQUESTED = CONSTANTS.EVENTS.BID_REQUESTED;\nvar BID_TIMEOUT = CONSTANTS.EVENTS.BID_TIMEOUT;\nvar BID_RESPONSE = CONSTANTS.EVENTS.BID_RESPONSE;\nvar BID_WON = CONSTANTS.EVENTS.BID_WON;\n\nvar _disableInteraction = { nonInteraction: true };\nvar _analyticsQueue = [];\nvar _gaGlobal = null;\nvar _enableCheck = true;\nvar _category = 'Prebid.js Bids';\nvar _eventCount = 0;\nvar _enableDistribution = false;\nvar _trackerSend = null;\nvar _sampled = true;\n\n/**\n * This will enable sending data to google analytics. Only call once, or duplicate data will be sent!\n * @param {object} provider use to set GA global (if renamed);\n * @param {object} options use to configure adapter;\n * @return {[type]} [description]\n */\nexports.enableAnalytics = function ({ provider, options }) {\n _gaGlobal = provider || 'ga';\n _trackerSend = options && options.trackerName ? options.trackerName + '.send' : 'send';\n _sampled = typeof options === 'undefined' || typeof options.sampling === 'undefined' ||\n Math.random() < parseFloat(options.sampling);\n\n if (options && typeof options.global !== 'undefined') {\n _gaGlobal = options.global;\n }\n if (options && typeof options.enableDistribution !== 'undefined') {\n _enableDistribution = options.enableDistribution;\n }\n\n var bid = null;\n\n if (_sampled) {\n // first send all events fired before enableAnalytics called\n\n var existingEvents = events.getEvents();\n\n utils._each(existingEvents, function (eventObj) {\n if (typeof eventObj !== 'object') {\n return;\n }\n var args = eventObj.args;\n\n if (eventObj.eventType === BID_REQUESTED) {\n bid = args;\n sendBidRequestToGa(bid);\n } else if (eventObj.eventType === BID_RESPONSE) {\n // bid is 2nd args\n bid = args;\n sendBidResponseToGa(bid);\n } else if (eventObj.eventType === BID_TIMEOUT) {\n const bidderArray = args;\n sendBidTimeouts(bidderArray);\n } else if (eventObj.eventType === BID_WON) {\n bid = args;\n sendBidWonToGa(bid);\n }\n });\n\n // Next register event listeners to send data immediately\n\n // bidRequests\n events.on(BID_REQUESTED, function (bidRequestObj) {\n sendBidRequestToGa(bidRequestObj);\n });\n\n // bidResponses\n events.on(BID_RESPONSE, function (bid) {\n sendBidResponseToGa(bid);\n });\n\n // bidTimeouts\n events.on(BID_TIMEOUT, function (bidderArray) {\n sendBidTimeouts(bidderArray);\n });\n\n // wins\n events.on(BID_WON, function (bid) {\n sendBidWonToGa(bid);\n });\n } else {\n utils.logMessage('Prebid.js google analytics disabled by sampling');\n }\n\n // finally set this function to return log message, prevents multiple adapter listeners\n this.enableAnalytics = function _enable() {\n return utils.logMessage(`Analytics adapter already enabled, unnecessary call to \\`enableAnalytics\\`.`);\n };\n};\n\nexports.getTrackerSend = function getTrackerSend() {\n return _trackerSend;\n};\n\n/**\n * Check if gaGlobal or window.ga is defined on page. If defined execute all the GA commands\n */\nfunction checkAnalytics() {\n if (_enableCheck && typeof window[_gaGlobal] === 'function') {\n for (var i = 0; i < _analyticsQueue.length; i++) {\n _analyticsQueue[i].call();\n }\n\n // override push to execute the command immediately from now on\n _analyticsQueue.push = function (fn) {\n fn.call();\n };\n\n // turn check into NOOP\n _enableCheck = false;\n }\n\n utils.logMessage('event count sent to GA: ' + _eventCount);\n}\n\nfunction convertToCents(dollars) {\n if (dollars) {\n return Math.floor(dollars * 100);\n }\n\n return 0;\n}\n\nfunction getLoadTimeDistribution(time) {\n var distribution;\n if (time >= 0 && time < 200) {\n distribution = '0-200ms';\n } else if (time >= 200 && time < 300) {\n distribution = '0200-300ms';\n } else if (time >= 300 && time < 400) {\n distribution = '0300-400ms';\n } else if (time >= 400 && time < 500) {\n distribution = '0400-500ms';\n } else if (time >= 500 && time < 600) {\n distribution = '0500-600ms';\n } else if (time >= 600 && time < 800) {\n distribution = '0600-800ms';\n } else if (time >= 800 && time < 1000) {\n distribution = '0800-1000ms';\n } else if (time >= 1000 && time < 1200) {\n distribution = '1000-1200ms';\n } else if (time >= 1200 && time < 1500) {\n distribution = '1200-1500ms';\n } else if (time >= 1500 && time < 2000) {\n distribution = '1500-2000ms';\n } else if (time >= 2000) {\n distribution = '2000ms above';\n }\n\n return distribution;\n}\n\nfunction getCpmDistribution(cpm) {\n var distribution;\n if (cpm >= 0 && cpm < 0.5) {\n distribution = '$0-0.5';\n } else if (cpm >= 0.5 && cpm < 1) {\n distribution = '$0.5-1';\n } else if (cpm >= 1 && cpm < 1.5) {\n distribution = '$1-1.5';\n } else if (cpm >= 1.5 && cpm < 2) {\n distribution = '$1.5-2';\n } else if (cpm >= 2 && cpm < 2.5) {\n distribution = '$2-2.5';\n } else if (cpm >= 2.5 && cpm < 3) {\n distribution = '$2.5-3';\n } else if (cpm >= 3 && cpm < 4) {\n distribution = '$3-4';\n } else if (cpm >= 4 && cpm < 6) {\n distribution = '$4-6';\n } else if (cpm >= 6 && cpm < 8) {\n distribution = '$6-8';\n } else if (cpm >= 8) {\n distribution = '$8 above';\n }\n\n return distribution;\n}\n\nfunction sendBidRequestToGa(bid) {\n if (bid && bid.bidderCode) {\n _analyticsQueue.push(function () {\n _eventCount++;\n window[_gaGlobal](_trackerSend, 'event', _category, 'Requests', bid.bidderCode, 1, _disableInteraction);\n });\n }\n\n // check the queue\n checkAnalytics();\n}\n\nfunction sendBidResponseToGa(bid) {\n if (bid && bid.bidderCode) {\n _analyticsQueue.push(function () {\n var cpmCents = convertToCents(bid.cpm);\n var bidder = bid.bidderCode;\n if (typeof bid.timeToRespond !== 'undefined' && _enableDistribution) {\n _eventCount++;\n var dis = getLoadTimeDistribution(bid.timeToRespond);\n window[_gaGlobal](_trackerSend, 'event', 'Prebid.js Load Time Distribution', dis, bidder, 1, _disableInteraction);\n }\n\n if (bid.cpm > 0) {\n _eventCount = _eventCount + 2;\n var cpmDis = getCpmDistribution(bid.cpm);\n if (_enableDistribution) {\n _eventCount++;\n window[_gaGlobal](_trackerSend, 'event', 'Prebid.js CPM Distribution', cpmDis, bidder, 1, _disableInteraction);\n }\n\n window[_gaGlobal](_trackerSend, 'event', _category, 'Bids', bidder, cpmCents, _disableInteraction);\n window[_gaGlobal](_trackerSend, 'event', _category, 'Bid Load Time', bidder, bid.timeToRespond, _disableInteraction);\n }\n });\n }\n\n // check the queue\n checkAnalytics();\n}\n\nfunction sendBidTimeouts(timedOutBidders) {\n _analyticsQueue.push(function () {\n utils._each(timedOutBidders, function (bidderCode) {\n _eventCount++;\n window[_gaGlobal](_trackerSend, 'event', _category, 'Timeouts', bidderCode, _disableInteraction);\n });\n });\n\n checkAnalytics();\n}\n\nfunction sendBidWonToGa(bid) {\n var cpmCents = convertToCents(bid.cpm);\n _analyticsQueue.push(function () {\n _eventCount++;\n window[_gaGlobal](_trackerSend, 'event', _category, 'Wins', bid.bidderCode, cpmCents, _disableInteraction);\n });\n\n checkAnalytics();\n}\n\nadaptermanager.registerAnalyticsAdapter({\n adapter: exports,\n code: 'ga'\n});\n\n\n\n// WEBPACK FOOTER //\n// ./modules/googleAnalyticsAdapter.js","import * as utils from 'src/utils'\n\nimport { config } from 'src/config'\nimport { registerBidder } from 'src/adapters/bidderFactory'\n\nconst BIDDER_CODE = 'gumgum'\nconst ALIAS_BIDDER_CODE = ['gg']\nconst BID_ENDPOINT = `https://g2.gumgum.com/hbid/imp`\nconst DT_CREDENTIALS = { member: 'YcXr87z2lpbB' }\nconst TIME_TO_LIVE = 60\nlet browserParams = {};\n\n// TODO: potential 0 values for browserParams sent to ad server\nfunction _getBrowserParams() {\n let topWindow\n let topScreen\n let topUrl\n let ggad\n if (browserParams.vw) {\n // we've already initialized browserParams, just return it.\n return browserParams\n }\n\n try {\n topWindow = global.top;\n topScreen = topWindow.screen;\n topUrl = utils.getTopWindowUrl()\n } catch (error) {\n utils.logError(error);\n return browserParams\n }\n\n browserParams = {\n vw: topWindow.innerWidth,\n vh: topWindow.innerHeight,\n sw: topScreen.width,\n sh: topScreen.height,\n pu: topUrl,\n ce: utils.cookiesAreEnabled(),\n dpr: topWindow.devicePixelRatio || 1\n }\n ggad = (topUrl.match(/#ggad=(\\w+)$/) || [0, 0])[1]\n if (ggad) {\n browserParams[isNaN(ggad) ? 'eAdBuyId' : 'adBuyId'] = ggad\n }\n return browserParams\n}\n\nfunction getWrapperCode(wrapper, data) {\n return wrapper.replace('AD_JSON', window.btoa(JSON.stringify(data)))\n}\n\n// TODO: use getConfig()\nfunction _getDigiTrustQueryParams() {\n function getDigiTrustId () {\n var digiTrustUser = (window.DigiTrust && window.DigiTrust.getUser) ? window.DigiTrust.getUser(DT_CREDENTIALS) : {};\n return (digiTrustUser && digiTrustUser.success && digiTrustUser.identity) || '';\n };\n\n let digiTrustId = getDigiTrustId();\n // Verify there is an ID and this user has not opted out\n if (!digiTrustId || (digiTrustId.privacy && digiTrustId.privacy.optout)) {\n return {};\n }\n return {\n 'dt': digiTrustId.id\n };\n}\n\n/**\n * Determines whether or not the given bid request is valid.\n *\n * @param {BidRequest} bid The bid params to validate.\n * @return boolean True if this is a valid bid, and false otherwise.\n */\nfunction isBidRequestValid (bid) {\n const {\n params,\n adUnitCode\n } = bid;\n\n switch (true) {\n case !!(params.inScreen): break;\n case !!(params.inSlot): break;\n case !!(params.ICV): break;\n default:\n utils.logWarn(`[GumGum] No product selected for the placement ${adUnitCode}, please check your implementation.`);\n return false;\n }\n return true;\n}\n\n/**\n * Make a server request from the list of BidRequests.\n *\n * @param {validBidRequests[]} - an array of bids\n * @return ServerRequest Info describing the request to the server.\n */\nfunction buildRequests (validBidRequests) {\n const bids = [];\n utils._each(validBidRequests, bidRequest => {\n const timeout = config.getConfig('bidderTimeout');\n const {\n bidId,\n params = {},\n transactionId\n } = bidRequest;\n const data = {}\n\n if (params.inScreen) {\n data.t = params.inScreen;\n data.pi = 2;\n }\n if (params.inSlot) {\n data.si = parseInt(params.inSlot, 10);\n data.pi = 3;\n }\n if (params.ICV) {\n data.ni = parseInt(params.ICV, 10);\n data.pi = 5;\n }\n\n bids.push({\n id: bidId,\n tmax: timeout,\n tId: transactionId,\n pi: data.pi,\n selector: params.selector,\n sizes: bidRequest.sizes,\n url: BID_ENDPOINT,\n method: 'GET',\n data: Object.assign(data, _getBrowserParams(), _getDigiTrustQueryParams())\n })\n });\n return bids;\n}\n\n/**\n * Unpack the response from the server into a list of bids.\n *\n * @param {*} serverResponse A successful response from the server.\n * @return {Bid[]} An array of bids which were nested inside the server.\n */\nfunction interpretResponse (serverResponse, bidRequest) {\n const bidResponses = []\n const serverResponseBody = serverResponse.body\n const {\n ad: {\n price: cpm,\n id: creativeId,\n markup\n },\n cw: wrapper\n } = serverResponseBody\n let isTestUnit = (bidRequest.data && bidRequest.data.pi === 3 && bidRequest.data.si === 9)\n let [width, height] = utils.parseSizesInput(bidRequest.sizes)[0].split('x')\n\n if (creativeId) {\n bidResponses.push({\n // dealId: DEAL_ID,\n // referrer: REFERER,\n ad: wrapper ? getWrapperCode(wrapper, Object.assign({}, serverResponseBody, { bidRequest })) : markup,\n cpm: isTestUnit ? 0.1 : cpm,\n creativeId,\n currency: 'USD',\n height,\n netRevenue: true,\n requestId: bidRequest.id,\n ttl: TIME_TO_LIVE,\n width\n })\n }\n return bidResponses\n}\n\nexport const spec = {\n code: BIDDER_CODE,\n aliases: ALIAS_BIDDER_CODE,\n isBidRequestValid,\n buildRequests,\n interpretResponse\n}\nregisterBidder(spec)\n\n\n\n// WEBPACK FOOTER //\n// ./modules/gumgumBidAdapter.js","import { registerBidder } from 'src/adapters/bidderFactory';\nimport * as utils from 'src/utils';\n\nconst BIDDER_CODE = 'huddledmasses';\nconst URL = '//huddledmassessupply.com/?c=o&m=multi';\nconst URL_SYNC = '//huddledmassessupply.com/?c=o&m=cookie';\n\nlet sizeObj = {\n '468x60': 1,\n '728x90': 2,\n '300x600': 10,\n '300x250': 15,\n '300x100': 19,\n '320x50': 43,\n '300x50': 44,\n '300x300': 48,\n '300x1050': 54,\n '970x90': 55,\n '970x250': 57,\n '1000x90': 58,\n '320x80': 59,\n '640x480': 65,\n '320x480': 67,\n '320x320': 72,\n '320x160': 73,\n '480x300': 83,\n '970x310': 94,\n '970x210': 96,\n '480x320': 101,\n '768x1024': 102,\n '1000x300': 113,\n '320x100': 117,\n '800x250': 118,\n '200x600': 119\n};\n\nutils._each(sizeObj, (item, key) => sizeObj[item] = key);\n\nexport const spec = {\n code: BIDDER_CODE,\n\n /**\n * Determines whether or not the given bid request is valid.\n *\n * @param {object} bid The bid to validate.\n * @return boolean True if this is a valid bid, and false otherwise.\n */\n isBidRequestValid: (bid) => {\n return (!isNaN(bid.params.placement_id) &&\n ((bid.params.sizes !== undefined && bid.params.sizes.length > 0 && bid.params.sizes.some((sizeIndex) => sizeObj[sizeIndex] !== undefined)) ||\n (bid.sizes !== undefined && bid.sizes.length > 0 && bid.sizes.map((size) => `${size[0]}x${size[1]}`).some((size) => sizeObj[size] !== undefined))));\n },\n\n /**\n * Make a server request from the list of BidRequests.\n *\n * @param {BidRequest[]} validBidRequests A non-empty list of valid bid requests that should be sent to the Server.\n * @return ServerRequest Info describing the request to the server.\n */\n buildRequests: (validBidRequests) => {\n let winTop = window;\n try {\n window.top.location.toString();\n winTop = window.top;\n } catch (e) {\n utils.logMessage(e);\n };\n let location = utils.getTopWindowLocation();\n let placements = [];\n let request = {\n 'deviceWidth': winTop.screen.width,\n 'deviceHeight': winTop.screen.height,\n 'language': (navigator && navigator.language) ? navigator.language : '',\n 'secure': location.protocol === 'https:' ? 1 : 0,\n 'host': location.host,\n 'page': location.pathname,\n 'placements': placements\n };\n for (let i = 0; i < validBidRequests.length; i++) {\n let bid = validBidRequests[i];\n let placement = {};\n placement['placementId'] = bid.params.placement_id;\n placement['bidId'] = bid.bidId;\n placement['sizes'] = bid.sizes;\n placements.push(placement);\n }\n return {\n method: 'POST',\n url: URL,\n data: request\n };\n },\n\n /**\n * Unpack the response from the server into a list of bids.\n *\n * @param {*} serverResponse A successful response from the server.\n * @return {Bid[]} An array of bids which were nested inside the server.\n */\n interpretResponse: (serverResponse) => {\n let response = [];\n try {\n serverResponse = serverResponse.body;\n for (let i = 0; i < serverResponse.length; i++) {\n let resItem = serverResponse[i];\n if (resItem.width && !isNaN(resItem.width) &&\n resItem.height && !isNaN(resItem.height) &&\n resItem.requestId && typeof resItem.requestId === 'string' &&\n resItem.cpm && !isNaN(resItem.cpm) &&\n resItem.ad && typeof resItem.ad === 'string' &&\n resItem.ttl && !isNaN(resItem.ttl) &&\n resItem.creativeId && typeof resItem.creativeId === 'string' &&\n resItem.netRevenue && typeof resItem.netRevenue === 'boolean' &&\n resItem.currency && typeof resItem.currency === 'string') {\n response.push(resItem);\n }\n }\n } catch (e) {\n utils.logMessage(e);\n };\n return response;\n },\n\n getUserSyncs: () => {\n return [{\n type: 'image',\n url: URL_SYNC\n }];\n }\n};\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/huddledmassesBidAdapter.js","import * as utils from 'src/utils';\nimport { registerBidder } from 'src/adapters/bidderFactory';\n\nconst BIDDER_CODE = 'ias';\n\nfunction isBidRequestValid(bid) {\n const { pubId, adUnitPath } = bid.params;\n return !!(pubId && adUnitPath);\n}\n\n/**\n * Converts GPT-style size array into a string\n * @param {Array} sizes: list of GPT-style sizes, e.g. [[300, 250], [300, 300]]\n * @return {String} a string containing sizes, e.g. '[300.250,300.300]'\n */\nfunction stringifySlotSizes(sizes) {\n let result = '';\n if (utils.isArray(sizes)) {\n result = sizes.reduce((acc, size) => {\n acc.push(size.join('.'));\n return acc;\n }, []);\n result = '[' + result.join(',') + ']';\n }\n return result;\n}\n\nfunction stringifySlot(bidRequest) {\n const id = bidRequest.adUnitCode;\n const ss = stringifySlotSizes(bidRequest.sizes);\n const p = bidRequest.params.adUnitPath;\n const slot = { id, ss, p };\n const keyValues = utils.getKeys(slot).map(function(key) {\n return [key, slot[key]].join(':');\n });\n return '{' + keyValues.join(',') + '}';\n}\n\nfunction stringifyWindowSize() {\n return [window.innerWidth || -1, window.innerHeight || -1].join('.');\n}\n\nfunction stringifyScreenSize() {\n return [(window.screen && window.screen.width) || -1, (window.screen && window.screen.height) || -1].join('.');\n}\n\nfunction buildRequests(bidRequests) {\n const IAS_HOST = '//pixel.adsafeprotected.com/services/pub';\n const anId = bidRequests[0].params.pubId;\n\n let queries = [];\n queries.push(['anId', anId]);\n queries = queries.concat(bidRequests.reduce(function(acc, request) {\n acc.push(['slot', stringifySlot(request)]);\n return acc;\n }, []));\n\n queries.push(['wr', stringifyWindowSize()]);\n queries.push(['sr', stringifyScreenSize()]);\n\n const queryString = encodeURI(queries.map(qs => qs.join('=')).join('&'));\n\n return {\n method: 'GET',\n url: IAS_HOST,\n data: queryString,\n bidRequest: bidRequests[0]\n }\n}\n\nfunction getPageLevelKeywords(response) {\n let result = {};\n shallowMerge(result, response.brandSafety);\n result.fr = response.fr;\n return result;\n}\n\nfunction shallowMerge(dest, src) {\n utils.getKeys(src).reduce((dest, srcKey) => {\n dest[srcKey] = src[srcKey];\n return dest;\n }, dest);\n}\n\nfunction interpretResponse(serverResponse, request) {\n const iasResponse = serverResponse.body;\n const bidResponses = [];\n\n // Keys in common bid response are not used;\n // Necessary to get around with prebid's common bid response check\n const commonBidResponse = {\n requestId: request.bidRequest.bidId,\n cpm: 0.01,\n width: 100,\n height: 200,\n creativeId: 434,\n dealId: 42,\n currency: 'usd',\n netRevenue: true,\n ttl: 360\n };\n\n shallowMerge(commonBidResponse, getPageLevelKeywords(iasResponse));\n commonBidResponse.slots = iasResponse.slots;\n bidResponses.push(commonBidResponse);\n return bidResponses;\n}\n\nexport const spec = {\n code: BIDDER_CODE,\n aliases: [],\n isBidRequestValid: isBidRequestValid,\n buildRequests: buildRequests,\n interpretResponse: interpretResponse\n};\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/iasBidAdapter.js","import * as utils from 'src/utils';\nimport { registerBidder } from 'src/adapters/bidderFactory';\nimport { config } from 'src/config';\nimport { userSync } from 'src/userSync';\n\nconst BIDDER_CODE = 'improvedigital';\n\nexport const spec = {\n version: '4.1.0',\n code: BIDDER_CODE,\n aliases: ['id'],\n\n /**\n * Determines whether or not the given bid request is valid.\n *\n * @param {object} bid The bid to validate.\n * @return boolean True if this is a valid bid, and false otherwise.\n */\n isBidRequestValid: function (bid) {\n return !!(bid && bid.params && (bid.params.placementId || (bid.params.placementKey && bid.params.publisherId)));\n },\n\n /**\n * Make a server request from the list of BidRequests.\n *\n * @param {BidRequest[]} bidRequests A non-empty list of bid requests which should be sent to the Server.\n * @return ServerRequest Info describing the request to the server.\n */\n buildRequests: function (bidRequests) {\n let normalizedBids = bidRequests.map((bidRequest) => {\n return getNormalizedBidRequest(bidRequest);\n });\n\n let idClient = new ImproveDigitalAdServerJSClient('hb');\n let requestParameters = {\n singleRequestMode: false,\n httpRequestType: idClient.CONSTANTS.HTTP_REQUEST_TYPE.GET,\n returnObjType: idClient.CONSTANTS.RETURN_OBJ_TYPE.PREBID,\n libVersion: this.version\n };\n\n let requestObj = idClient.createRequest(\n normalizedBids, // requestObject\n requestParameters\n );\n\n if (requestObj.errors && requestObj.errors.length > 0) {\n utils.logError('ID WARNING 0x01');\n }\n\n return requestObj.requests;\n },\n\n /**\n * Unpack the response from the server into a list of bids.\n *\n * @param {*} serverResponse A successful response from the server.\n * @return {Bid[]} An array of bids which were nested inside the server.\n */\n interpretResponse: function (serverResponse, request) {\n const bids = [];\n utils._each(serverResponse.body.bid, function (bidObject) {\n if (!bidObject.price || bidObject.price === null ||\n bidObject.hasOwnProperty('errorCode') ||\n typeof bidObject.adm !== 'string') {\n return;\n }\n\n let bid = {};\n let nurl = '';\n if (bidObject.nurl && bidObject.nurl.length > 0) {\n nurl = ``;\n }\n bid.ad = `${nurl}`;\n bid.adId = bidObject.id;\n bid.cpm = parseFloat(bidObject.price);\n bid.creativeId = bidObject.crid;\n bid.currency = bidObject.currency ? bidObject.currency.toUpperCase() : 'USD';\n if (utils.isNumber(bidObject.lid)) {\n bid.dealId = bidObject.lid;\n } else if (typeof bidObject.lid === 'object' && bidObject.lid['1']) {\n bid.dealId = bidObject.lid['1'];\n }\n bid.height = bidObject.h;\n bid.netRevenue = bidObject.isNet ? bidObject.isNet : false;\n bid.requestId = bidObject.id;\n bid.ttl = 300;\n bid.width = bidObject.w;\n\n bids.push(bid);\n\n // Register user sync URLs\n if (utils.isArray(bidObject.sync)) {\n utils._each(bidObject.sync, function (syncElement) {\n userSync.registerSync('image', spec.code, syncElement);\n });\n }\n });\n return bids;\n }\n};\n\nfunction getNormalizedBidRequest(bid) {\n let adUnitId = utils.getBidIdParameter('adUnitCode', bid) || null;\n let placementId = utils.getBidIdParameter('placementId', bid.params) || null;\n let publisherId = null;\n let placementKey = null;\n\n if (placementId === null) {\n publisherId = utils.getBidIdParameter('publisherId', bid.params) || null;\n placementKey = utils.getBidIdParameter('placementKey', bid.params) || null;\n }\n let keyValues = utils.getBidIdParameter('keyValues', bid.params) || null;\n let localSize = utils.getBidIdParameter('size', bid.params) || null;\n let bidId = utils.getBidIdParameter('bidId', bid);\n let transactionId = utils.getBidIdParameter('transactionId', bid);\n const currency = config.getConfig('currency.adServerCurrency');\n\n let normalizedBidRequest = {};\n if (placementId) {\n normalizedBidRequest.placementId = placementId;\n } else {\n if (publisherId) {\n normalizedBidRequest.publisherId = publisherId;\n }\n if (placementKey) {\n normalizedBidRequest.placementKey = placementKey;\n }\n }\n\n if (keyValues) {\n normalizedBidRequest.keyValues = keyValues;\n }\n if (localSize && localSize.w && localSize.h) {\n normalizedBidRequest.size = {};\n normalizedBidRequest.size.h = localSize.h;\n normalizedBidRequest.size.w = localSize.w;\n }\n if (bidId) {\n normalizedBidRequest.id = bidId;\n }\n if (adUnitId) {\n normalizedBidRequest.adUnitId = adUnitId;\n }\n if (transactionId) {\n normalizedBidRequest.transactionId = transactionId;\n }\n if (currency) {\n normalizedBidRequest.currency = currency;\n }\n return normalizedBidRequest;\n}\nregisterBidder(spec);\n\nfunction ImproveDigitalAdServerJSClient(endPoint) {\n this.CONSTANTS = {\n HTTP_REQUEST_TYPE: {\n GET: 0,\n POST: 1\n },\n HTTP_SECURITY: {\n STANDARD: 0,\n SECURE: 1\n },\n AD_SERVER_BASE_URL: 'ad.360yield.com',\n END_POINT: endPoint || 'hb',\n AD_SERVER_URL_PARAM: 'jsonp=',\n CLIENT_VERSION: 'JS-4.3.3',\n MAX_URL_LENGTH: 2083,\n ERROR_CODES: {\n BAD_HTTP_REQUEST_TYPE_PARAM: 1,\n MISSING_PLACEMENT_PARAMS: 2,\n LIB_VERSION_MISSING: 3\n },\n RETURN_OBJ_TYPE: {\n DEFAULT: 0,\n PREBID: 1\n }\n };\n\n this.getErrorReturn = function(errorCode) {\n return {\n idMappings: {},\n requests: {},\n 'errorCode': errorCode\n };\n };\n\n this.createRequest = function(requestObject, requestParameters, extraRequestParameters) {\n if (requestParameters.httpRequestType !== this.CONSTANTS.HTTP_REQUEST_TYPE.GET) {\n return this.getErrorReturn(this.CONSTANTS.ERROR_CODES.BAD_HTTP_REQUEST_TYPE_PARAM);\n }\n if (!requestParameters.libVersion) {\n return this.getErrorReturn(this.CONSTANTS.ERROR_CODES.LIB_VERSION_MISSING);\n }\n\n requestParameters.returnObjType = requestParameters.returnObjType || this.CONSTANTS.RETURN_OBJ_TYPE.DEFAULT;\n\n let impressionObjects = [];\n let impressionObject;\n let counter;\n if (utils.isArray(requestObject)) {\n for (counter = 0; counter < requestObject.length; counter++) {\n impressionObject = this.createImpressionObject(requestObject[counter]);\n impressionObjects.push(impressionObject);\n }\n } else {\n impressionObject = this.createImpressionObject(requestObject);\n impressionObjects.push(impressionObject);\n }\n\n let returnIdMappings = true;\n if (requestParameters.returnObjType === this.CONSTANTS.RETURN_OBJ_TYPE.PREBID) {\n returnIdMappings = false;\n }\n\n let returnObject = {};\n returnObject.requests = [];\n if (returnIdMappings) {\n returnObject.idMappings = [];\n }\n let errors = null;\n\n let baseUrl = `${(requestParameters.secure === 1 ? 'https' : 'http')}://${this.CONSTANTS.AD_SERVER_BASE_URL}/${this.CONSTANTS.END_POINT}?${this.CONSTANTS.AD_SERVER_URL_PARAM}`;\n\n let bidRequestObject = {\n bid_request: this.createBasicBidRequestObject(requestParameters, extraRequestParameters)\n };\n for (counter = 0; counter < impressionObjects.length; counter++) {\n impressionObject = impressionObjects[counter];\n\n if (impressionObject.errorCode) {\n errors = errors || [];\n errors.push({\n errorCode: impressionObject.errorCode,\n adUnitId: impressionObject.adUnitId\n });\n } else {\n if (returnIdMappings) {\n returnObject.idMappings.push({\n adUnitId: impressionObject.adUnitId,\n id: impressionObject.impressionObject.id\n });\n }\n bidRequestObject.bid_request.imp = bidRequestObject.bid_request.imp || [];\n bidRequestObject.bid_request.imp.push(impressionObject.impressionObject);\n\n let writeLongRequest = false;\n const outputUri = baseUrl + encodeURIComponent(JSON.stringify(bidRequestObject));\n if (outputUri.length > this.CONSTANTS.MAX_URL_LENGTH) {\n writeLongRequest = true;\n if (bidRequestObject.bid_request.imp.length > 1) {\n // Pop the current request and process it again in the next iteration\n bidRequestObject.bid_request.imp.pop();\n if (returnIdMappings) {\n returnObject.idMappings.pop();\n }\n counter--;\n }\n }\n\n if (writeLongRequest ||\n !requestParameters.singleRequestMode ||\n counter === impressionObjects.length - 1) {\n returnObject.requests.push(this.formatRequest(requestParameters, bidRequestObject));\n bidRequestObject = {\n bid_request: this.createBasicBidRequestObject(requestParameters, extraRequestParameters)\n };\n }\n }\n }\n\n if (errors) {\n returnObject.errors = errors;\n }\n\n return returnObject;\n };\n\n this.formatRequest = function(requestParameters, bidRequestObject) {\n switch (requestParameters.returnObjType) {\n case this.CONSTANTS.RETURN_OBJ_TYPE.PREBID:\n return {\n method: 'GET',\n url: `//${this.CONSTANTS.AD_SERVER_BASE_URL}/${this.CONSTANTS.END_POINT}`,\n data: `${this.CONSTANTS.AD_SERVER_URL_PARAM}${JSON.stringify(bidRequestObject)}`\n };\n default:\n const baseUrl = `${(requestParameters.secure === 1 ? 'https' : 'http')}://` +\n `${this.CONSTANTS.AD_SERVER_BASE_URL}/` +\n `${this.CONSTANTS.END_POINT}?${this.CONSTANTS.AD_SERVER_URL_PARAM}`;\n return {\n url: baseUrl + encodeURIComponent(JSON.stringify(bidRequestObject))\n }\n }\n };\n\n this.createBasicBidRequestObject = function(requestParameters, extraRequestParameters) {\n let impressionBidRequestObject = {};\n if (requestParameters.requestId) {\n impressionBidRequestObject.id = requestParameters.requestId;\n } else {\n impressionBidRequestObject.id = utils.getUniqueIdentifierStr();\n }\n if (requestParameters.domain) {\n impressionBidRequestObject.domain = requestParameters.domain;\n }\n if (requestParameters.page) {\n impressionBidRequestObject.page = requestParameters.page;\n }\n if (requestParameters.ref) {\n impressionBidRequestObject.ref = requestParameters.ref;\n }\n if (requestParameters.callback) {\n impressionBidRequestObject.callback = requestParameters.callback;\n }\n if ('secure' in requestParameters) {\n impressionBidRequestObject.secure = requestParameters.secure;\n }\n if (requestParameters.libVersion) {\n impressionBidRequestObject.version = requestParameters.libVersion + '-' + this.CONSTANTS.CLIENT_VERSION;\n }\n if (extraRequestParameters) {\n for (let prop in extraRequestParameters) {\n impressionBidRequestObject[prop] = extraRequestParameters[prop];\n }\n }\n\n return impressionBidRequestObject;\n };\n\n this.createImpressionObject = function(placementObject) {\n let outputObject = {};\n let impressionObject = {};\n outputObject.impressionObject = impressionObject;\n\n if (placementObject.id) {\n impressionObject.id = placementObject.id;\n } else {\n impressionObject.id = utils.getUniqueIdentifierStr();\n }\n if (placementObject.adUnitId) {\n outputObject.adUnitId = placementObject.adUnitId;\n }\n if (placementObject.currency) {\n impressionObject.currency = placementObject.currency.toUpperCase();\n }\n if (placementObject.placementId) {\n impressionObject.pid = placementObject.placementId;\n }\n if (placementObject.publisherId) {\n impressionObject.pubid = placementObject.publisherId;\n }\n if (placementObject.placementKey) {\n impressionObject.pkey = placementObject.placementKey;\n }\n if (placementObject.transactionId) {\n impressionObject.tid = placementObject.transactionId;\n }\n if (placementObject.keyValues) {\n for (let key in placementObject.keyValues) {\n for (let valueCounter = 0; valueCounter < placementObject.keyValues[key].length; valueCounter++) {\n impressionObject.kvw = impressionObject.kvw || {};\n impressionObject.kvw[key] = impressionObject.kvw[key] || [];\n impressionObject.kvw[key].push(placementObject.keyValues[key][valueCounter]);\n }\n }\n }\n if (placementObject.size && placementObject.size.w && placementObject.size.h) {\n impressionObject.banner = {};\n impressionObject.banner.w = placementObject.size.w;\n impressionObject.banner.h = placementObject.size.h;\n } else {\n impressionObject.banner = {};\n }\n\n if (!impressionObject.pid &&\n !impressionObject.pubid &&\n !impressionObject.pkey &&\n !(impressionObject.banner && impressionObject.banner.w && impressionObject.banner.h)) {\n outputObject.impressionObject = null;\n outputObject.errorCode = this.CONSTANTS.ERROR_CODES.MISSING_PLACEMENT_PARAMS;\n }\n return outputObject;\n };\n}\n\nexports.ImproveDigitalAdServerJSClient = ImproveDigitalAdServerJSClient;\n\n\n\n// WEBPACK FOOTER //\n// ./modules/improvedigitalBidAdapter.js","import * as utils from 'src/utils';\nimport { registerBidder } from 'src/adapters/bidderFactory';\n\nconst BIDDER_CODE = 'innity';\nconst ENDPOINT = location.protocol + '//as.innity.com/synd/';\n\nexport const spec = {\n code: BIDDER_CODE,\n isBidRequestValid: function(bid) {\n return !!(bid.params && bid.params.pub && bid.params.zone);\n },\n buildRequests: function(validBidRequests) {\n return validBidRequests.map(bidRequest => {\n let parseSized = utils.parseSizesInput(bidRequest.sizes);\n let arrSize = parseSized[0].split('x');\n return {\n method: 'GET',\n url: ENDPOINT,\n data: {\n cb: utils.timestamp(),\n ver: 2,\n hb: 1,\n output: 'js',\n pub: bidRequest.params.pub,\n zone: bidRequest.params.zone,\n url: encodeURIComponent(utils.getTopWindowUrl()),\n width: arrSize[0],\n height: arrSize[1],\n vpw: window.screen.width,\n vph: window.screen.height,\n callback: 'json',\n callback_uid: bidRequest.bidId,\n auction: bidRequest.auctionId,\n },\n };\n });\n },\n interpretResponse: function(serverResponse, request) {\n const res = serverResponse.body;\n const bidResponse = {\n requestId: res.callback_uid,\n cpm: parseFloat(res.cpm) / 100,\n width: res.width,\n height: res.height,\n creativeId: res.creative_id,\n currency: 'USD',\n netRevenue: true,\n ttl: 60,\n ad: '' + res.tag,\n };\n return [bidResponse];\n }\n}\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/innityBidAdapter.js","import * as utils from 'src/utils';\nimport { registerBidder } from 'src/adapters/bidderFactory';\n\nconst BIDDER_CODE = 'inskin';\n\nconst CONFIG = {\n 'inskin': {\n 'BASE_URI': 'https://mfad.inskinad.com/api/v2'\n }\n};\n\nexport const spec = {\n code: BIDDER_CODE,\n\n /**\n * Determines whether or not the given bid request is valid.\n *\n * @param {BidRequest} bid The bid params to validate.\n * @return boolean True if this is a valid bid, and false otherwise.\n */\n isBidRequestValid: function(bid) {\n return !!(bid.params.networkId && bid.params.siteId);\n },\n\n /**\n * Make a server request from the list of BidRequests.\n *\n * @param {validBidRequests[]} - an array of bids\n * @return ServerRequest Info describing the request to the server.\n */\n\n buildRequests: function(validBidRequests) {\n // Do we need to group by bidder? i.e. to make multiple requests for\n // different endpoints.\n\n let ret = {\n method: 'POST',\n url: '',\n data: '',\n bidRequest: []\n };\n\n if (validBidRequests.length < 1) {\n return ret;\n }\n\n let ENDPOINT_URL;\n\n const data = Object.assign({\n placements: [],\n time: Date.now(),\n user: {},\n url: utils.getTopWindowUrl(),\n enableBotFiltering: true,\n includePricingData: true,\n parallel: true\n }, validBidRequests[0].params);\n\n validBidRequests.map(bid => {\n let config = CONFIG[bid.bidder];\n ENDPOINT_URL = config.BASE_URI;\n\n const placement = Object.assign({\n divName: bid.bidId,\n adTypes: bid.adTypes || getSize(bid.sizes),\n eventIds: [40, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295]\n }, bid.params);\n\n placement.adTypes.push(5, 9, 163, 2163, 3006);\n\n if (placement.networkId && placement.siteId) {\n data.placements.push(placement);\n }\n });\n\n ret.data = JSON.stringify(data);\n ret.bidRequest = validBidRequests;\n ret.url = ENDPOINT_URL;\n\n return ret;\n },\n\n /**\n * Unpack the response from the server into a list of bids.\n *\n * @param {*} serverResponse A successful response from the server.\n * @return {Bid[]} An array of bids which were nested inside the server.\n */\n interpretResponse: function(serverResponse, bidRequest) {\n let bid;\n let bids;\n let bidId;\n let bidObj;\n let bidResponses = [];\n let bidsMap = {};\n\n bids = bidRequest.bidRequest;\n\n serverResponse = (serverResponse || {}).body;\n for (let i = 0; i < bids.length; i++) {\n bid = {};\n bidObj = bids[i];\n bidId = bidObj.bidId;\n\n bidsMap[bidId] = bidObj;\n\n if (serverResponse) {\n const decision = serverResponse.decisions && serverResponse.decisions[bidId];\n const price = decision && decision.pricing && decision.pricing.clearPrice;\n\n if (decision && price) {\n bid.requestId = bidId;\n bid.cpm = price;\n bid.width = decision.width;\n bid.height = decision.height;\n bid.ad = retrieveAd(bidId, decision);\n bid.currency = 'USD';\n bid.creativeId = decision.adId;\n bid.ttl = 360;\n bid.netRevenue = true;\n bid.referrer = utils.getTopWindowUrl();\n\n bidResponses.push(bid);\n }\n }\n }\n\n if (bidResponses.length) {\n window.addEventListener('message', function(e) {\n if (!e.data || e.data.from !== 'ism-bid') {\n return;\n }\n\n const decision = serverResponse.decisions && serverResponse.decisions[e.data.bidId];\n if (!decision) {\n return;\n }\n\n const id = 'ism_tag_' + Math.floor((Math.random() * 10e16));\n window[id] = {\n bidId: e.data.bidId,\n serverResponse\n };\n const script = document.createElement('script');\n script.src = 'https://cdn.inskinad.com/isfe/publishercode/' + bidsMap[e.data.bidId].params.siteId + '/default.js?autoload&id=' + id;\n document.getElementsByTagName('head')[0].appendChild(script);\n });\n }\n\n return bidResponses;\n },\n\n getUserSyncs: function(syncOptions) {\n return [];\n }\n};\n\nconst sizeMap = [\n null,\n '120x90',\n '120x90',\n '468x60',\n '728x90',\n '300x250',\n '160x600',\n '120x600',\n '300x100',\n '180x150',\n '336x280',\n '240x400',\n '234x60',\n '88x31',\n '120x60',\n '120x240',\n '125x125',\n '220x250',\n '250x250',\n '250x90',\n '0x0',\n '200x90',\n '300x50',\n '320x50',\n '320x480',\n '185x185',\n '620x45',\n '300x125',\n '800x250'\n];\n\nsizeMap[77] = '970x90';\nsizeMap[123] = '970x250';\nsizeMap[43] = '300x600';\n\nfunction getSize(sizes) {\n const result = [];\n sizes.forEach(function(size) {\n const index = sizeMap.indexOf(size[0] + 'x' + size[1]);\n if (index >= 0) {\n result.push(index);\n }\n });\n return result;\n}\n\nfunction retrieveAd(bidId, decision) {\n return \"\n \n creativeHtml\n \n `\n .replace('creativeHtml', bidModel.CreativeHtml);\n}\n\nfunction getCappedCampaignsAsString() {\n const key = 'ivvcap';\n\n let loadData = function () {\n try {\n return JSON.parse(localStorage.getItem(key)) || {};\n } catch (e) {\n return {};\n }\n };\n\n let saveData = function (data) {\n localStorage.setItem(key, JSON.stringify(data));\n };\n\n let clearExpired = function () {\n let now = new Date().getTime();\n let data = loadData();\n let dirty = false;\n Object.keys(data).forEach(function (k) {\n let exp = data[k][1];\n if (exp <= now) {\n delete data[k];\n dirty = true;\n }\n });\n if (dirty) {\n saveData(data);\n }\n };\n\n let getCappedCampaigns = function () {\n clearExpired();\n let data = loadData();\n return Object.keys(data)\n .filter(function (k) { return data.hasOwnProperty(k); })\n .sort()\n .map(function (k) { return [k, data[k][0]]; });\n };\n\n return getCappedCampaigns()\n .map(function (record) { return record.join('='); })\n .join(',');\n}\n\nfunction initLogger() {\n const noop = function () { };\n\n if (localStorage && localStorage.InvibesDEBUG) {\n return window.console;\n }\n\n return { info: noop, error: noop, log: noop, warn: noop, debug: noop };\n}\n\n/// Local domain cookie management =====================\nlet Uid = {\n generate: function () {\n let date = new Date().getTime();\n if (date > 151 * 10e9) {\n let datePart = Math.floor(date / 1000).toString(36);\n let maxRand = parseInt('zzzzzz', 36)\n let randPart = Math.floor(Math.random() * maxRand).toString(36);\n return datePart + '.' + randPart;\n }\n },\n getCrTime: function (s) {\n let toks = s.split('.');\n return parseInt(toks[0] || 0, 36) * 1e3;\n }\n};\n\nlet cookieDomain, noCookies;\nfunction getCookie(name) {\n let i, x, y;\n let cookies = document.cookie.split(';');\n for (i = 0; i < cookies.length; i++) {\n x = cookies[i].substr(0, cookies[i].indexOf('='));\n y = cookies[i].substr(cookies[i].indexOf('=') + 1);\n x = x.replace(/^\\s+|\\s+$/g, '');\n if (x === name) {\n return unescape(y);\n }\n }\n};\n\nfunction setCookie(name, value, exdays, domain) {\n if (noCookies && name != 'ivNoCookie' && (exdays || 0) >= 0) { return; }\n if (exdays > 365) { exdays = 365; }\n domain = domain || cookieDomain;\n let exdate = new Date();\n let exms = exdays * 24 * 60 * 60 * 1000;\n exdate.setTime(exdate.getTime() + exms);\n let cookieValue = value + ((!exdays) ? '' : '; expires=' + exdate.toUTCString());\n cookieValue += ';domain=' + domain + ';path=/';\n document.cookie = name + '=' + cookieValue;\n};\n\nlet detectTopmostCookieDomain = function () {\n let testCookie = Uid.generate();\n let hostParts = location.host.split('.');\n if (hostParts.length === 1) {\n return location.host;\n }\n for (let i = hostParts.length - 1; i >= 0; i--) {\n let domain = '.' + hostParts.slice(i).join('.');\n setCookie(testCookie, testCookie, 1, domain);\n let val = getCookie(testCookie);\n if (val === testCookie) {\n setCookie(testCookie, testCookie, -1, domain);\n return domain;\n }\n }\n};\ncookieDomain = detectTopmostCookieDomain();\nnoCookies = getCookie('ivNoCookie');\n\nfunction initDomainId(invibes, persistence) {\n if (typeof invibes.dom === 'object') {\n return;\n }\n\n let cookiePersistence = {\n cname: 'ivbsdid',\n load: function () {\n let str = getCookie(this.cname) || '';\n try {\n return JSON.parse(str);\n } catch (e) { }\n },\n save: function (obj) {\n setCookie(this.cname, JSON.stringify(obj), 365);\n }\n };\n\n persistence = persistence || cookiePersistence;\n let state;\n const minHC = 5;\n\n let validGradTime = function (d) {\n const min = 151 * 10e9;\n let yesterday = new Date().getTime() - 864 * 10e4\n return d > min && d < yesterday;\n };\n\n state = persistence.load() || {\n id: Uid.generate(),\n hc: 1,\n temp: 1\n };\n\n let graduate;\n\n let setId = function () {\n invibes.dom = {\n id: state.temp ? undefined : state.id,\n tempId: state.id,\n graduate: graduate\n };\n };\n\n graduate = function () {\n if (!state.temp) { return; }\n delete state.temp;\n delete state.hc;\n persistence.save(state);\n setId();\n }\n\n if (state.temp) {\n if (state.hc < minHC) {\n state.hc++;\n }\n if (state.hc >= minHC && validGradTime(Uid.getCrTime(state.id))) {\n graduate();\n }\n }\n\n persistence.save(state);\n setId();\n};\n// =====================\n\n\n\n// WEBPACK FOOTER //\n// ./modules/invibesBidAdapter.js","import * as utils from 'src/utils';\n// import {config} from 'src/config';\nimport {registerBidder} from 'src/adapters/bidderFactory';\nconst BIDDER_CODE = 'iqm';\nconst ENDPOINT_URL = 'https://pbd.bids.iqm.com';\nconst VERSION = 'v.1.0.0';\n\nexport const spec = {\n code: BIDDER_CODE,\n aliases: ['iqm'], // short code\n /**\n * Determines whether or not the given bid request is valid.\n *\n * @param {BidRequest} bid The bid params to validate.\n * @return boolean True if this is a valid bid, and false otherwise.\n */\n isBidRequestValid: function(bid) {\n return !!(bid && bid.params && bid.params.publisherId && bid.params.placementId && bid.params.tagId);\n },\n /**\n * Make a server request from the list of BidRequests.\n *\n * @return ServerRequest Info describing the request to the server.\n * @param validBidRequests - an array of bids\n */\n buildRequests: function(validBidRequests) {\n let requestId = '';\n let siteId = '';\n let device = getDevice();\n return validBidRequests.map(bid => {\n requestId = bid.requestId;\n let bidfloor = utils.getBidIdParameter('bidfloor', bid.params);\n siteId = utils.getBidIdParameter('tagId', bid.params);\n const imp = {\n id: bid.bidId,\n secure: 1,\n bidfloor: bidfloor || 0,\n displaymanager: 'Prebid.js',\n displaymanagerver: VERSION,\n mediatype: 'banner'\n };\n imp.banner = getSize(bid.sizes);\n let data = {\n id: requestId,\n publisherId: utils.getBidIdParameter('publisherId', bid.params),\n tagId: utils.getBidIdParameter('tagId', bid.params),\n placementId: utils.getBidIdParameter('placementId', bid.params),\n device: device,\n site: {\n id: siteId,\n page: utils.getTopWindowLocation().href,\n domain: utils.getTopWindowLocation().host\n },\n imp: imp\n };\n return {\n method: 'POST',\n url: ENDPOINT_URL,\n data: data\n };\n });\n },\n /**\n * Unpack the response from the server into a list of bids.\n *\n * @param {*} serverResponse A successful response from the server.\n * @param bidRequest\n * @return {Bid[]} An array of bids which were nested inside the server.\n */\n interpretResponse: function(serverResponse, bidRequest) {\n // const serverBody = serverResponse.body;\n // const headerValue = serverResponse.headers.get('some-response-header')\n const bidResponses = [];\n serverResponse = serverResponse.body;\n if (serverResponse && utils.isArray(serverResponse.seatbid)) {\n utils._each(serverResponse.seatbid, function(bidList) {\n utils._each(bidList.bid, function(bid) {\n const responseCPM = parseFloat(bid.price);\n if (responseCPM > 0.0 && bid.impid) {\n // const responseNurl = bid.nurl || '';\n const bidResponse = {\n requestId: bid.impid,\n currency: serverResponse.cur || 'USD',\n cpm: responseCPM,\n netRevenue: true,\n creativeId: bid.crid || '',\n ad: bid.adm || '',\n width: bid.w || bidRequest.data.imp.banner.w,\n height: bid.h || bidRequest.data.imp.banner.h,\n ttl: bid.ttl || 300\n };\n\n bidResponses.push(bidResponse);\n }\n })\n });\n }\n return bidResponses;\n }\n};\n\nlet getDevice = function () {\n const language = navigator.language ? 'language' : 'userLanguage';\n return {\n h: screen.height,\n w: screen.width,\n dnt: _getDNT() ? 1 : 0,\n language: navigator[language].split('-')[0],\n make: navigator.vendor ? navigator.vendor : '',\n ua: navigator.userAgent,\n devicetype: _isMobile() ? 1 : _isConnectedTV() ? 3 : 2\n };\n};\n\nlet _getDNT = function () {\n return navigator.doNotTrack === '1' || window.doNotTrack === '1' || navigator.msDoNotTrack === '1' || navigator.doNotTrack === 'yes';\n};\n\nlet getSize = function (sizes) {\n let sizeMap;\n if (sizes.length === 2 && typeof sizes[0] === 'number' && typeof sizes[1] === 'number') {\n sizeMap = {w: sizes[0], h: sizes[1]};\n } else {\n sizeMap = {w: sizes[0][0], h: sizes[0][1]};\n }\n return sizeMap;\n};\n\nfunction _isMobile() {\n return (/(ios|ipod|ipad|iphone|android)/i).test(global.navigator.userAgent);\n}\n\nfunction _isConnectedTV() {\n return (/(smart[-]?tv|hbbtv|appletv|googletv|hdmi|netcast\\.tv|viera|nettv|roku|\\bdtv\\b|sonydtv|inettvbrowser|\\btv\\b)/i).test(global.navigator.userAgent);\n}\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/iqmBidAdapter.js","import * as utils from 'src/utils';\nimport {registerBidder} from 'src/adapters/bidderFactory';\nconst BIDDER_CODE = 'jcm';\nconst URL = '//media.adfrontiers.com/pq'\n\nexport const spec = {\n code: BIDDER_CODE,\n aliases: ['jcarter'],\n isBidRequestValid: function(bid) {\n return !!(bid.params && bid.params.siteId && bid.bidId);\n },\n\n buildRequests: function(validBidRequests) {\n var BidRequestStr = {\n bids: []\n };\n\n for (var i = 0; i < validBidRequests.length; i++) {\n var adSizes = '';\n var bid = validBidRequests[i];\n for (var x = 0; x < bid.sizes.length; x++) {\n adSizes += utils.parseGPTSingleSizeArray(bid.sizes[x]);\n if (x !== (bid.sizes.length - 1)) {\n adSizes += ',';\n }\n }\n\n BidRequestStr.bids.push({\n 'callbackId': bid.bidId,\n 'siteId': bid.params.siteId,\n 'adSizes': adSizes,\n });\n }\n\n var JSONStr = JSON.stringify(BidRequestStr);\n var dataStr = 't=hb&ver=1.0&compact=true&bids=' + encodeURIComponent(JSONStr);\n\n return {\n method: 'GET',\n url: URL,\n data: dataStr\n }\n },\n\n interpretResponse: function(serverResponse) {\n const bidResponses = [];\n serverResponse = serverResponse.body;\n // loop through serverResponses\n if (serverResponse) {\n if (serverResponse.bids) {\n var bids = serverResponse.bids;\n for (var i = 0; i < bids.length; i++) {\n var bid = bids[i];\n const bidResponse = {\n requestId: bid.callbackId,\n bidderCode: spec.code,\n cpm: bid.cpm,\n width: bid.width,\n height: bid.height,\n creativeId: bid.creativeId,\n currency: 'USD',\n netRevenue: bid.netRevenue,\n ttl: bid.ttl,\n ad: decodeURIComponent(bid.ad.replace(/\\+/g, '%20'))\n };\n bidResponses.push(bidResponse);\n };\n };\n }\n return bidResponses;\n },\n\n getUserSyncs: function(syncOptions) {\n if (syncOptions.iframeEnabled) {\n return [{\n type: 'iframe',\n url: '//media.adfrontiers.com/hb/jcm_usersync.html'\n }];\n }\n if (syncOptions.image) {\n return [{\n type: 'image',\n url: '//media.adfrontiers.com/hb/jcm_usersync.png'\n }];\n }\n }\n}\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/jcmBidAdapter.js","import { registerBidder } from 'src/adapters/bidderFactory'\nimport { getTopWindowLocation } from 'src/utils'\n\nconst BIDDER_CODE = 'justpremium'\nconst ENDPOINT_URL = getTopWindowLocation().protocol + '//pre.ads.justpremium.com/v/2.0/t/xhr'\nconst pixels = []\n\nexport const spec = {\n code: BIDDER_CODE,\n time: 60000,\n\n isBidRequestValid: (bid) => {\n return !!(bid && bid.params && bid.params.zone)\n },\n\n buildRequests: (validBidRequests) => {\n const c = preparePubCond(validBidRequests)\n const dim = getWebsiteDim()\n const payload = {\n zone: validBidRequests.map(b => {\n return parseInt(b.params.zone)\n }).filter((value, index, self) => {\n return self.indexOf(value) === index\n }),\n hostname: getTopWindowLocation().hostname,\n protocol: getTopWindowLocation().protocol.replace(':', ''),\n sw: dim.screenWidth,\n sh: dim.screenHeight,\n ww: dim.innerWidth,\n wh: dim.innerHeight,\n c: c,\n id: validBidRequests[0].params.zone,\n sizes: {}\n }\n validBidRequests.forEach(b => {\n const zone = b.params.zone\n const sizes = payload.sizes\n sizes[zone] = sizes[zone] || []\n sizes[zone].push.apply(sizes[zone], b.sizes)\n })\n const payloadString = JSON.stringify(payload)\n\n return {\n method: 'POST',\n url: ENDPOINT_URL + '?i=' + (+new Date()),\n data: payloadString,\n bids: validBidRequests\n }\n },\n\n interpretResponse: (serverResponse, bidRequests) => {\n const body = serverResponse.body\n let bidResponses = []\n bidRequests.bids.forEach(adUnit => {\n let bid = findBid(adUnit.params, body.bid)\n if (bid) {\n let size = (adUnit.sizes && adUnit.sizes.length && adUnit.sizes[0]) || []\n let bidResponse = {\n requestId: adUnit.bidId,\n creativeId: bid.id,\n width: size[0] || bid.width,\n height: size[1] || bid.height,\n ad: bid.adm,\n cpm: bid.price,\n netRevenue: true,\n currency: bid.currency || 'USD',\n ttl: bid.ttl || spec.time\n }\n bidResponses.push(bidResponse)\n }\n })\n\n return bidResponses\n },\n\n getUserSyncs: (syncOptions) => {\n if (syncOptions.iframeEnabled) {\n pixels.push({\n type: 'iframe',\n src: '//us-u.openx.net/w/1.0/pd?plm=10&ph=26e53f82-d199-49df-9eca-7b350c0f9646'\n })\n }\n return pixels\n }\n}\n\nfunction findBid (params, bids) {\n const tagId = params.zone\n if (bids[tagId]) {\n let len = bids[tagId].length\n while (len--) {\n if (passCond(params, bids[tagId][len])) {\n return bids[tagId].splice(len, 1).pop()\n }\n }\n }\n\n return false\n}\n\nfunction passCond (params, bid) {\n const format = bid.format\n\n if (params.allow && params.allow.length) {\n return params.allow.indexOf(format) > -1\n }\n\n if (params.exclude && params.exclude.length) {\n return params.exclude.indexOf(format) < 0\n }\n\n return true\n}\n\nfunction preparePubCond (bids) {\n const cond = {}\n const count = {}\n\n bids.forEach((bid) => {\n const params = bid.params\n const zone = params.zone\n\n if (cond[zone] === 1) {\n return\n }\n\n const allow = params.allow || params.formats || []\n const exclude = params.exclude || []\n\n if (allow.length === 0 && exclude.length === 0) {\n return cond[params.zone] = 1\n }\n\n cond[zone] = cond[zone] || [[], {}]\n cond[zone][0] = arrayUnique(cond[zone][0].concat(allow))\n exclude.forEach((e) => {\n if (!cond[zone][1][e]) {\n cond[zone][1][e] = 1\n } else {\n cond[zone][1][e]++\n }\n })\n\n count[zone] = count[zone] || 0\n if (exclude.length) {\n count[zone]++\n }\n })\n\n Object.keys(count).forEach((zone) => {\n if (cond[zone] === 1) return\n\n const exclude = []\n Object.keys(cond[zone][1]).forEach((format) => {\n if (cond[zone][1][format] === count[zone]) {\n exclude.push(format)\n }\n })\n cond[zone][1] = exclude\n })\n\n Object.keys(cond).forEach((zone) => {\n if (cond[zone] !== 1 && cond[zone][1].length) {\n cond[zone][0].forEach((r) => {\n let idx = cond[zone][1].indexOf(r)\n if (idx > -1) {\n cond[zone][1].splice(idx, 1)\n }\n })\n cond[zone][0].length = 0\n }\n\n if (cond[zone] !== 1 && !cond[zone][0].length && !cond[zone][1].length) {\n cond[zone] = 1\n }\n })\n\n return cond\n}\n\nfunction arrayUnique (array) {\n const a = array.concat()\n for (let i = 0; i < a.length; ++i) {\n for (let j = i + 1; j < a.length; ++j) {\n if (a[i] === a[j]) {\n a.splice(j--, 1)\n }\n }\n }\n\n return a\n}\n\nfunction getWebsiteDim () {\n let top\n try {\n top = window.top\n } catch (e) {\n top = window\n }\n\n return {\n screenWidth: top.screen.width,\n screenHeight: top.screen.height,\n innerWidth: top.innerWidth,\n innerHeight: top.innerHeight\n }\n}\n\nregisterBidder(spec)\n\n\n\n// WEBPACK FOOTER //\n// ./modules/justpremiumBidAdapter.js","import * as utils from 'src/utils';\nimport {config} from 'src/config';\nimport {registerBidder} from 'src/adapters/bidderFactory';\nconst BIDDER_CODE = 'kargo';\nconst HOST = 'https://krk.kargo.com';\nexport const spec = {\n code: BIDDER_CODE,\n isBidRequestValid: function(bid) {\n if (!bid || !bid.params) {\n return false;\n }\n return !!bid.params.placementId;\n },\n buildRequests: function(validBidRequests, bidderRequest) {\n const currency = config.getConfig('currency');\n const transformedParams = Object.assign({}, {\n timeout: bidderRequest.timeout,\n currency: currency,\n cpmGranularity: 1,\n cpmRange: {\n floor: 0,\n ceil: 20\n },\n adSlotIds: utils._map(validBidRequests, bid => bid.params.placementId)\n }, spec._getAllMetadata());\n const encodedParams = encodeURIComponent(JSON.stringify(transformedParams));\n return Object.assign({}, bidderRequest, {\n method: 'GET',\n url: `${HOST}/api/v1/bid`,\n data: `json=${encodedParams}`,\n currency: currency\n });\n },\n interpretResponse: function(response, bidRequest) {\n let adUnits = response.body;\n let bids = {};\n utils._each(bidRequest.bids, bid => bids[bid.params.placementId] = bid);\n const bidResponses = [];\n for (let adUnitId in adUnits) {\n let adUnit = adUnits[adUnitId];\n bidResponses.push({\n requestId: bids[adUnitId].bidId,\n cpm: Number(adUnit.cpm),\n width: adUnit.width,\n height: adUnit.height,\n ad: adUnit.adm,\n ttl: 300,\n creativeId: adUnitId,\n netRevenue: true,\n currency: bidRequest.currency\n });\n }\n return bidResponses;\n },\n\n // PRIVATE\n _readCookie(name) {\n let nameEquals = `${name}=`;\n let cookies = document.cookie.split(';');\n\n for (let key in cookies) {\n let cookie = cookies[key];\n while (cookie.charAt(0) === ' ') {\n cookie = cookie.substring(1, cookie.length);\n }\n\n if (cookie.indexOf(nameEquals) === 0) {\n return cookie.substring(nameEquals.length, cookie.length);\n }\n }\n\n return null;\n },\n\n _getCrbIds() {\n try {\n const crb = JSON.parse(decodeURIComponent(spec._readCookie('krg_crb')));\n let syncIds = {};\n\n if (crb && crb.v) {\n let vParsed = JSON.parse(atob(crb.v));\n\n if (vParsed && vParsed.syncIds) {\n syncIds = vParsed.syncIds;\n }\n }\n\n return syncIds;\n } catch (e) {\n return {};\n }\n },\n\n _getUid() {\n try {\n const uid = JSON.parse(decodeURIComponent(spec._readCookie('krg_uid')));\n let vData = {};\n\n if (uid && uid.v) {\n vData = uid.v;\n }\n\n return vData;\n } catch (e) {\n return {};\n }\n },\n\n _getKruxUserId() {\n return spec._getLocalStorageSafely('kxkar_user');\n },\n\n _getKruxSegments() {\n return spec._getLocalStorageSafely('kxkar_segs');\n },\n\n _getKrux() {\n const segmentsStr = spec._getKruxSegments();\n let segments = [];\n\n if (segmentsStr) {\n segments = segmentsStr.split(',');\n }\n\n return {\n userID: spec._getKruxUserId(),\n segments: segments\n };\n },\n\n _getLocalStorageSafely(key) {\n try {\n return localStorage.getItem(key);\n } catch (e) {\n return null;\n }\n },\n\n _getUserIds() {\n const uid = spec._getUid();\n const crbIds = spec._getCrbIds();\n\n return {\n kargoID: uid.userId,\n clientID: uid.clientId,\n crbIDs: crbIds,\n optOut: uid.optOut\n };\n },\n\n _getAllMetadata() {\n return {\n userIDs: spec._getUserIds(),\n krux: spec._getKrux(),\n pageURL: window.location.href,\n rawCRB: spec._readCookie('krg_crb')\n };\n }\n};\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/kargoBidAdapter.js","import * as utils from 'src/utils';\nimport { registerBidder } from 'src/adapters/bidderFactory';\n\nconst BIDDER_CODE = 'komoona';\nconst ENDPOINT = '//bidder.komoona.com/v1/GetSBids';\nconst USYNCURL = '//s.komoona.com/sync/usync.html';\n\nexport const spec = {\n code: BIDDER_CODE,\n\n /**\n * Determines whether or not the given bid request is valid. Valid bid request must have placementId and hbid\n *\n * @param {BidRequest} bid The bid params to validate.\n * @return boolean True if this is a valid bid, and false otherwise.\n */\n isBidRequestValid: bid => {\n return !!(bid && bid.params && bid.params.placementId && bid.params.hbid);\n },\n /**\n * Make a server request from the list of BidRequests.\n *\n * @param {validBidRequests[]} - an array of bids\n * @return ServerRequest Info describing the request to the server.\n */\n buildRequests: validBidRequests => {\n const tags = validBidRequests.map(bid => {\n // map each bid id to bid object to retrieve adUnit code in callback\n let tag = {\n uuid: bid.bidId,\n sizes: bid.sizes,\n trid: bid.transactionId,\n hbid: bid.params.hbid,\n placementid: bid.params.placementId\n };\n\n // add floor price if specified (not mandatory)\n if (bid.params.floorPrice) {\n tag.floorprice = bid.params.floorPrice;\n }\n\n return tag;\n });\n\n // Komoona server config\n const time = new Date().getTime();\n const kbConf = {\n ts_as: time,\n hb_placements: [],\n hb_placement_bidids: {},\n hb_floors: {},\n cb: _generateCb(time),\n tz: new Date().getTimezoneOffset(),\n };\n\n validBidRequests.forEach(bid => {\n kbConf.hdbdid = kbConf.hdbdid || bid.params.hbid;\n kbConf.encode_bid = kbConf.encode_bid || bid.params.encode_bid;\n kbConf.hb_placement_bidids[bid.params.placementId] = bid.bidId;\n if (bid.params.floorPrice) {\n kbConf.hb_floors[bid.params.placementId] = bid.params.floorPrice;\n }\n kbConf.hb_placements.push(bid.params.placementId);\n });\n\n let payload = {};\n if (!utils.isEmpty(tags)) {\n payload = { bids: [...tags], kbConf: kbConf };\n }\n\n return {\n method: 'POST',\n url: ENDPOINT,\n data: JSON.stringify(payload)\n };\n },\n /**\n * Unpack the response from the server into a list of bids.\n *\n * @param {*} response A successful response from the server.\n * @return {Bid[]} An array of bids which were nested inside the server.\n */\n interpretResponse: (response, request) => {\n const bidResponses = [];\n try {\n if (response.body && response.body.bids) {\n response.body.bids.forEach(bid => {\n // The bid ID. Used to tie this bid back to the request.\n bid.requestId = bid.uuid;\n // The creative payload of the returned bid.\n bid.ad = bid.creative;\n bidResponses.push(bid);\n });\n }\n } catch (error) {\n utils.logError(error);\n }\n return bidResponses;\n },\n /**\n * Register User Sync.\n */\n getUserSyncs: syncOptions => {\n if (syncOptions.iframeEnabled) {\n return [{\n type: 'iframe',\n url: USYNCURL\n }];\n }\n }\n};\n\n/**\n* Generated cache baster value to be sent to bid server\n* @param {*} time current time to use for creating cb.\n*/\nfunction _generateCb(time) {\n return Math.floor((time % 65536) + (Math.floor(Math.random() * 65536) * 65536));\n}\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/komoonaBidAdapter.js","\nimport {logError, getTopWindowLocation, getTopWindowReferrer, parseSizesInput} from 'src/utils';\nimport { registerBidder } from 'src/adapters/bidderFactory';\n\nexport const spec = {\n\n code: 'kumma',\n\n isBidRequestValid: bid => (\n !!(bid && bid.params && bid.params.pubId && bid.params.siteId)\n ),\n buildRequests: bidRequests => {\n const request = {\n id: bidRequests[0].bidderRequestId,\n at: 2,\n imp: bidRequests.map(slot => impression(slot)),\n site: site(bidRequests),\n device: device(),\n };\n return {\n method: 'POST',\n url: '//hb.kumma.com/',\n data: JSON.stringify(request),\n };\n },\n interpretResponse: (response, request) => (\n bidResponseAvailable(request, response.body)\n ),\n};\nfunction bidResponseAvailable(bidRequest, bidResponse) {\n const idToImpMap = {};\n const idToBidMap = {};\n let ortbRequest = null;\n try {\n ortbRequest = JSON.parse(bidRequest.data);\n } catch (ex) {\n logError('kumma.parse', 'ERROR', ex);\n }\n ortbRequest.imp.forEach(imp => {\n idToImpMap[imp.id] = imp;\n });\n if (bidResponse) {\n bidResponse.seatbid.forEach(seatBid => seatBid.bid.forEach(bid => {\n idToBidMap[bid.impid] = bid;\n }));\n }\n const bids = [];\n Object.keys(idToImpMap).forEach(id => {\n if (idToBidMap[id]) {\n const bid = {};\n bid.requestId = id;\n bid.creativeId = idToBidMap[id].adid;\n bid.cpm = idToBidMap[id].price;\n bid.currency = bidResponse.cur;\n bid.ttl = 360;\n bid.netRevenue = true;\n bid.ad = idToBidMap[id].adm;\n bid.ad = bid.ad.replace(/\\$(%7B|\\{)AUCTION_IMP_ID(%7D|\\})/gi, idToBidMap[id].impid);\n bid.ad = bid.ad.replace(/\\$(%7B|\\{)AUCTION_AD_ID(%7D|\\})/gi, idToBidMap[id].adid);\n bid.ad = bid.ad.replace(/\\$(%7B|\\{)AUCTION_PRICE(%7D|\\})/gi, idToBidMap[id].price);\n bid.ad = bid.ad.replace(/\\$(%7B|\\{)AUCTION_CURRENCY(%7D|\\})/gi, bidResponse.cur);\n bid.ad = bid.ad.replace(/\\$(%7B|\\{)AUCTION_BID_ID(%7D|\\})/gi, bidResponse.bidid);\n bid.width = idToImpMap[id].banner.w;\n bid.height = idToImpMap[id].banner.h;\n bids.push(bid);\n }\n });\n return bids;\n}\nfunction impression(slot) {\n return {\n id: slot.bidId,\n banner: banner(slot),\n bidfloor: slot.params.bidFloor || '0.000001',\n tagid: slot.params.placementId.toString(),\n };\n}\nfunction banner(slot) {\n const size = parseSizesInput(slot.sizes)[0].split('x');\n const width = parseInt(size[0]);\n const height = parseInt(size[1]);\n return {\n w: width,\n h: height,\n };\n}\nfunction site(bidderRequest) {\n const pubId = bidderRequest && bidderRequest.length > 0 ? bidderRequest[0].params.pubId : '0';\n const siteId = bidderRequest && bidderRequest.length > 0 ? bidderRequest[0].params.siteId : '0';\n const appParams = bidderRequest[0].params.app;\n if (!appParams) {\n return {\n publisher: {\n id: pubId.toString(),\n domain: getTopWindowLocation().hostname,\n },\n id: siteId.toString(),\n ref: getTopWindowReferrer(),\n page: getTopWindowLocation().href,\n }\n }\n return null;\n}\nfunction device() {\n return {\n ua: navigator.userAgent,\n language: (navigator.language || navigator.browserLanguage || navigator.userLanguage || navigator.systemLanguage),\n w: (window.screen.width || window.innerWidth),\n h: (window.screen.height || window.innerHeigh),\n };\n}\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/kummaBidAdapter.js","import * as utils from 'src/utils';\nimport {registerBidder} from 'src/adapters/bidderFactory';\nimport { BANNER, VIDEO } from 'src/mediaTypes';\n\nconst BIDDER_CODE = 'lifestreet';\nconst ADAPTER_VERSION = 'prebidJS-2.0';\n\nconst urlTemplate = template`//ads.lfstmedia.com/gate/${'adapter'}/${'slot'}?adkey=${'adkey'}&ad_size=${'ad_size'}&__location=${'location'}&__referrer=${'referrer'}&__wn=${'wn'}&__sf=${'sf'}&__fif=${'fif'}&__if=${'if'}&__stamp=${'stamp'}&__pp=1&__hb=1&_prebid_json=1&__gz=1&deferred_format=vast_2_0,vast_3_0&__hbver=${'hbver'}`;\n\n/**\n * Creates a bid requests for a given bid.\n *\n * @param {BidRequest} bid The bid params to use for formatting a request\n */\nfunction formatBidRequest(bid) {\n let url = urlTemplate({\n adapter: 'prebid',\n slot: bid.params.slot,\n adkey: bid.params.adkey,\n ad_size: bid.params.ad_size,\n location: encodeURIComponent(utils.getTopWindowLocation()),\n referrer: encodeURIComponent(utils.getTopWindowReferrer()),\n wn: boolToString(/fb_http/i.test(window.name)),\n sf: boolToString(window['sfAPI'] || window['$sf']),\n fif: boolToString(window['inDapIF'] === true),\n if: boolToString(window !== window.top),\n stamp: new Date().getTime(),\n hbver: ADAPTER_VERSION\n });\n\n return {\n method: 'GET',\n url: url,\n bidId: bid.bidId\n };\n}\n\n/**\n * A helper function to form URL from the template\n */\nfunction template(strings, ...keys) {\n return function(...values) {\n let dict = values[values.length - 1] || {};\n let result = [strings[0]];\n keys.forEach(function(key, i) {\n let value = isInteger(key) ? values[key] : dict[key];\n result.push(value, strings[i + 1]);\n });\n return result.join('');\n };\n}\n\n/**\n * A helper function for template to generate string from boolean\n */\nfunction boolToString(value) {\n return value ? '1' : '0';\n}\n\n/**\n * A helper function for template\n */\nfunction isInteger(value) {\n return typeof value === 'number' &&\n isFinite(value) && Math.floor(value) === value;\n}\n\n/**\n * Validates response from Lifestreet AD server\n */\nfunction isResponseValid(response) {\n return !/^\\s*\\{\\s*\"advertisementAvailable\"\\s*:\\s*false/i.test(response.content) &&\n response.content.indexOf('') === -1 && (typeof response.cpm !== 'undefined') &&\n response.status === 1;\n}\n\nexport const spec = {\n code: BIDDER_CODE,\n aliases: ['lsm'], // short code\n supportedMediaTypes: [BANNER, VIDEO], // Lifestreet supports banner and video media types\n\n /**\n * Determines whether or not the given bid request is valid.\n *\n * @param {BidRequest} bid The bid params to validate.\n * @return boolean True if this is a valid bid, and false otherwise.\n */\n isBidRequestValid: function(bid) {\n return !!(bid.params.slot && bid.params.adkey && bid.params.ad_size);\n },\n\n /**\n * Make a server request from the list of BidRequests.\n *\n * @param {validBidRequests[]} - an array of bids\n * @return ServerRequest Info describing the request to the server.\n */\n buildRequests: function(validBidRequests) {\n return validBidRequests.map(bid => {\n return formatBidRequest(bid)\n });\n },\n\n /**\n * Unpack the response from the server into a list of bids.\n *\n * @param {ServerResponse} serverResponse A successful response from the server.\n * @return {Bid[]} An array of bids which were nested inside the server.\n */\n interpretResponse: function(serverResponse, bidRequest) {\n const bidResponses = [];\n let response = serverResponse.body;\n if (!isResponseValid(response)) {\n return bidResponses;\n }\n\n const bidResponse = {\n requestId: bidRequest.bidId,\n cpm: response.cpm,\n width: response.width,\n height: response.height,\n creativeId: response.creativeId,\n currency: response.currency ? response.currency : 'USD',\n netRevenue: response.netRevenue ? response.netRevenue : true,\n ttl: response.ttl ? response.ttl : 86400\n };\n\n if (response.hasOwnProperty('dealId')) {\n bidResponse.dealId = response.dealId;\n }\n\n if (response.content_type.indexOf('vast') > -1) {\n if (typeof response.vastUrl !== 'undefined') {\n bidResponse.vastUrl = response.vastUrl;\n } else {\n bidResponse.vastXml = response.content;\n }\n bidResponse.mediaType = VIDEO;\n } else {\n bidResponse.ad = response.content;\n bidResponse.mediaType = BANNER;\n }\n\n bidResponses.push(bidResponse);\n return bidResponses;\n }\n};\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/lifestreetBidAdapter.js","import {registerBidder} from 'src/adapters/bidderFactory';\n\nfunction inIframe() {\n try {\n return window.self !== window.top && !window.mantis_link;\n } catch (e) {\n return true;\n }\n}\n\nfunction isDesktop(ignoreTouch) {\n var supportsTouch = !ignoreTouch && ('ontouchstart' in window || navigator.msMaxTouchPoints);\n if (inIframe()) {\n return !supportsTouch;\n }\n var width = window.innerWidth || window.document.documentElement.clientWidth || window.document.body.clientWidth;\n return !supportsTouch && (!width || width >= (window.mantis_breakpoint || 768));\n}\n\nfunction storeUuid(uuid) {\n if (window.mantis_uuid) {\n return false;\n }\n window.mantis_uuid = uuid;\n if (window.localStorage) {\n try {\n window.localStorage.setItem('mantis:uuid', uuid);\n } catch (ex) {\n }\n }\n}\n\nfunction isSendable(val) {\n if (val === null || val === undefined) {\n return false;\n }\n if (typeof val === 'string') {\n return !(!val || /^\\s*$/.test(val));\n }\n if (typeof val === 'number') {\n return !isNaN(val);\n }\n return true;\n}\n\nfunction isObject(value) {\n return Object.prototype.toString.call(value) === '[object Object]';\n}\n\nfunction isAmp() {\n return typeof window.context === 'object' && (window.context.tagName === 'AMP-AD' || window.context.tagName === 'AMP-EMBED');\n}\n\nfunction isSecure() {\n return document.location.protocol === 'https:';\n}\n\nfunction isArray(value) {\n return Object.prototype.toString.call(value) === '[object Array]';\n}\n\nfunction jsonToQuery(data, chain, form) {\n if (!data) {\n return null;\n }\n var parts = form || [];\n for (var key in data) {\n var queryKey = key;\n if (chain) {\n queryKey = chain + '[' + key + ']';\n }\n var val = data[key];\n if (isArray(val)) {\n for (var index = 0; index < val.length; index++) {\n var akey = queryKey + '[' + index + ']';\n var aval = val[index];\n if (isObject(aval)) {\n jsonToQuery(aval, akey, parts);\n } else if (isSendable(aval)) {\n parts.push(akey + '=' + encodeURIComponent(aval));\n }\n }\n } else if (isObject(val) && val != data) {\n jsonToQuery(val, queryKey, parts);\n } else if (isSendable(val)) {\n parts.push(queryKey + '=' + encodeURIComponent(val));\n }\n }\n return parts.join('&');\n}\n\nfunction buildMantisUrl(path, data, domain) {\n var params = {\n referrer: document.referrer,\n tz: new Date().getTimezoneOffset(),\n buster: new Date().getTime(),\n secure: isSecure()\n };\n if (!inIframe() || isAmp()) {\n params.mobile = !isAmp() && isDesktop(true) ? 'false' : 'true';\n }\n if (window.mantis_uuid) {\n params.uuid = window.mantis_uuid;\n } else if (window.localStorage) {\n var localUuid = window.localStorage.getItem('mantis:uuid');\n if (localUuid) {\n params.uuid = localUuid;\n }\n }\n if (!inIframe()) {\n try {\n params.title = window.top.document.title;\n params.referrer = window.top.document.referrer;\n params.url = window.top.document.location.href;\n } catch (ex) {\n }\n } else {\n params.iframe = true;\n }\n if (isAmp()) {\n params.amp = true;\n if (!params.url && window.context.canonicalUrl) {\n params.url = window.context.canonicalUrl;\n }\n if (!params.url && window.context.location) {\n params.url = window.context.location.href;\n }\n if (!params.referrer && window.context.referrer) {\n params.referrer = window.context.referrer;\n }\n }\n Object.keys(data || {}).forEach(function (key) {\n params[key] = data[key];\n });\n var query = jsonToQuery(params);\n return (window.mantis_domain === undefined ? domain || 'https://mantodea.mantisadnetwork.com' : window.mantis_domain) + path + '?' + query;\n}\n\nconst spec = {\n code: 'mantis',\n supportedMediaTypes: ['banner', 'video', 'native'],\n isBidRequestValid: function (bid) {\n return !!(bid.params.property && (bid.params.code || bid.params.zoneId || bid.params.zone));\n },\n buildRequests: function (validBidRequests) {\n var property = null;\n validBidRequests.some(function (bid) {\n if (bid.params.property) {\n property = bid.params.property;\n return true;\n }\n });\n const query = {\n bids: validBidRequests.map(function (bid) {\n return {\n bidId: bid.bidId,\n config: bid.params,\n sizes: bid.sizes.map(function (size) {\n return {width: size[0], height: size[1]};\n })\n };\n }),\n property: property,\n version: 2\n };\n return {\n method: 'GET',\n url: buildMantisUrl('/prebid/display', query) + '&foo',\n data: ''\n };\n },\n interpretResponse: function (serverResponse) {\n storeUuid(serverResponse.uuid);\n return serverResponse.body.ads.map(function (ad) {\n return {\n requestId: ad.bid,\n cpm: ad.cpm,\n width: ad.width,\n height: ad.height,\n ad: ad.html,\n ttl: 86400,\n creativeId: ad.view,\n netRevenue: true,\n currency: 'USD'\n };\n });\n },\n getUserSyncs: function (syncOptions) {\n if (syncOptions.iframeEnabled) {\n return [{\n type: 'iframe',\n url: buildMantisUrl('/prebid/iframe')\n }];\n }\n if (syncOptions.pixelEnabled) {\n return [{\n type: 'image',\n url: buildMantisUrl('/prebid/pixel')\n }];\n }\n }\n};\n\nexport {spec};\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/mantisBidAdapter.js","import {ajax} from 'src/ajax';\nimport adapter from 'src/AnalyticsAdapter';\nimport adaptermanager from 'src/adaptermanager';\n\n/****\n * Mars Media Analytics\n * Contact: prebid@m-m-g.com‏\n * Developer: Chen Saadia\n */\n\nconst MARS_BIDDER_CODE = 'marsmedia';\nconst analyticsType = 'endpoint';\nconst MARS_VERSION = '1.0.1';\nconst MARS_ANALYTICS_URL = '//prebid_stats.mars.media/prebidjs/api/analytics.php';\nvar events = {};\n\nvar marsmediaAnalyticsAdapter = Object.assign(adapter(\n {\n MARS_ANALYTICS_URL,\n analyticsType\n }),\n{\n track({eventType, args}) {\n if (typeof args !== 'undefined' && args.bidderCode === MARS_BIDDER_CODE) {\n events[eventType] = args;\n }\n\n if (eventType === 'auctionEnd') {\n setTimeout(function() {\n ajax(\n MARS_ANALYTICS_URL,\n {\n success: function() {},\n error: function() {}\n },\n JSON.stringify({act: 'prebid_analytics', params: events, 'pbjs': pbjs.getBidResponses(), ver: MARS_VERSION}),\n {\n method: 'POST'\n }\n );\n }, 3000);\n }\n }\n}\n);\n\nadaptermanager.registerAnalyticsAdapter({\n adapter: marsmediaAnalyticsAdapter,\n code: 'marsmedia'\n});\n\nexport default marsmediaAnalyticsAdapter;\n\n\n\n// WEBPACK FOOTER //\n// ./modules/marsmediaAnalyticsAdapter.js","import { registerBidder } from 'src/adapters/bidderFactory';\nimport * as utils from 'src/utils';\nimport { config } from 'src/config';\n\nconst BIDDER_CODE = 'medianet';\nconst BID_URL = 'https://prebid.media.net/rtb/prebid';\n\npbjs.medianetGlobals = {};\n\nfunction siteDetails(site) {\n site = site || {};\n\n return {\n domain: site.domain || utils.getTopWindowLocation().host,\n page: site.page || utils.getTopWindowUrl(),\n ref: site.ref || utils.getTopWindowReferrer()\n }\n}\n\nfunction filterUrlsByType(urls, type) {\n return urls.filter(url => url.type === type);\n}\n\nfunction transformSizes(sizes) {\n if (utils.isArray(sizes) && sizes.length === 2 && !utils.isArray(sizes[0])) {\n return [getSize(sizes)];\n }\n\n return sizes.map(size => getSize(size))\n}\n\nfunction getSize(size) {\n return {\n w: parseInt(size[0], 10),\n h: parseInt(size[1], 10)\n }\n}\n\nfunction configuredParams(params) {\n return {\n customer_id: params.cid,\n prebid_version: pbjs.version\n }\n}\n\nfunction slotParams(bidRequest) {\n // check with Media.net Account manager for bid floor and crid parameters\n let params = {\n id: bidRequest.bidId,\n ext: {\n dfp_id: bidRequest.adUnitCode\n },\n banner: transformSizes(bidRequest.sizes),\n all: bidRequest.params\n };\n\n if (bidRequest.params.crid) {\n params.tagid = bidRequest.params.crid.toString();\n }\n\n let bidFloor = parseFloat(bidRequest.params.bidfloor);\n if (bidFloor) {\n params.bidfloor = bidFloor;\n }\n return params;\n}\n\nfunction generatePayload(bidRequests) {\n return {\n site: siteDetails(bidRequests[0].params.site),\n ext: configuredParams(bidRequests[0].params),\n id: bidRequests[0].auctionId,\n imp: bidRequests.map(request => slotParams(request)),\n tmax: config.getConfig('bidderTimeout')\n }\n}\n\nfunction isValidBid(bid) {\n return bid.no_bid === false && parseFloat(bid.cpm) > 0.0;\n}\n\nfunction fetchCookieSyncUrls(response) {\n if (!utils.isEmpty(response) && response[0].body &&\n response[0].body.ext && utils.isArray(response[0].body.ext.csUrl)) {\n return response[0].body.ext.csUrl;\n }\n\n return [];\n}\n\nexport const spec = {\n\n code: BIDDER_CODE,\n\n /**\n * Determines whether or not the given bid request is valid.\n *\n * @param {object} bid The bid to validate.\n * @return boolean True if this is a valid bid (if cid is present), and false otherwise.\n */\n isBidRequestValid: function(bid) {\n if (!bid.params) {\n utils.logError(`${BIDDER_CODE} : Missing bid parameters`);\n return false;\n }\n\n if (!bid.params.cid || !utils.isStr(bid.params.cid) || utils.isEmptyStr(bid.params.cid)) {\n utils.logError(`${BIDDER_CODE} : cid should be a string`);\n return false;\n }\n\n Object.assign(pbjs.medianetGlobals, !pbjs.medianetGlobals.cid && {cid: bid.params.cid});\n\n return true;\n },\n\n /**\n * Make a server request from the list of BidRequests.\n *\n * @param {BidRequest[]} bidRequests A non-empty list of bid requests which should be sent to the Server.\n * @return ServerRequest Info describing the request to the server.\n */\n buildRequests: function(bidRequests) {\n let payload = generatePayload(bidRequests);\n\n return {\n method: 'POST',\n url: BID_URL,\n data: JSON.stringify(payload)\n };\n },\n\n /**\n * Unpack the response from the server into a list of bids.\n *\n * @param {*} serverResponse A successful response from the server.\n * @return {Bid[]} An array of bids which were nested inside the server.\n */\n interpretResponse: function(serverResponse, request) {\n let validBids = [];\n\n if (!serverResponse || !serverResponse.body) {\n utils.logInfo(`${BIDDER_CODE} : response is empty`);\n return validBids;\n }\n\n let bids = serverResponse.body.bidList;\n if (!utils.isArray(bids) || bids.length === 0) {\n utils.logInfo(`${BIDDER_CODE} : no bids`);\n return validBids;\n }\n validBids = bids.filter(bid => isValidBid(bid));\n\n return validBids;\n },\n\n getUserSyncs: function(syncOptions, serverResponses) {\n let cookieSyncUrls = fetchCookieSyncUrls(serverResponses);\n\n if (syncOptions.iframeEnabled) {\n return filterUrlsByType(cookieSyncUrls, 'iframe');\n }\n\n if (syncOptions.pixelEnabled) {\n return filterUrlsByType(cookieSyncUrls, 'image');\n }\n }\n};\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/medianetBidAdapter.js","import {registerBidder} from 'src/adapters/bidderFactory';\n\nconst utils = require('src/utils.js');\nconst BIDDER_CODE = 'mobfox';\nconst BID_REQUEST_BASE_URL = 'https://my.mobfox.com/request.php';\nconst CPM_HEADER = 'X-Pricing-CPM';\n\nexport const spec = {\n code: BIDDER_CODE,\n aliases: ['mf'], // short code\n isBidRequestValid: function (bid) {\n return bid.params.s !== null && bid.params.s !== undefined;\n },\n buildRequests: function (validBidRequests) {\n if (validBidRequests.length > 1) {\n throw ('invalid number of valid bid requests, expected 1 element')\n }\n\n let bidParams = validBidRequests[0].params;\n let bid = validBidRequests[0];\n\n let params = {\n // -------------------- Mandatory Parameters ------------------\n rt: bidParams.rt || 'api-fetchip',\n r_type: bidParams.r_type || 'banner',\n r_resp: bidParams.r_resp || 'json', // string | vast20\n // i: bidParams.i || undefined , // string | 69.197.148.18\n s: bidParams.s, // string | 80187188f458cfde788d961b6882fd53\n u: bidParams.u || window.navigator.userAgent, // string\n\n // ------------------- Global Parameters ----------------------\n adspace_width: bidParams.adspace_width || bid.sizes[0][0], // integer | 320\n adspace_height: bidParams.adspace_height || bid.sizes[0][1], // integer | 48\n r_floor: bidParams.r_floor || undefined, // 0.8\n\n o_andadvid: bidParams.o_andadvid || undefined, // 'c6292267-56ad-4326-965d-deef6fcd5er9'\n longitude: bidParams.longitude || undefined, // 12.12\n latitude: bidParams.latitude || undefined, // 280.12\n demo_age: bidParams.demo_age || undefined, // 1978\n\n // ------------------- banner / interstitial ----------------------\n adspace_strict: bidParams.adspace_strict || undefined,\n\n // ------------------- interstitial / video ----------------------\n imp_instl: bidParams.imp_instl || undefined, // integer | 1\n\n // ------------------- mraid ----------------------\n c_mraid: bidParams.c_mraid || undefined, // integer | 1\n\n // ------------------- video ----------------------\n v_dur_min: bidParams.v_dur_min || undefined, // integer | 0\n v_dur_max: bidParams.v_dur_max || undefined, // integer | 999\n v_autoplay: bidParams.v_autoplay || undefined, // integer | 1\n v_startmute: bidParams.v_startmute || undefined, // integer | 0\n v_rewarded: bidParams.v_rewarded || undefined, // integer | 0\n v_api: bidParams.v_api || undefined, // string | vpaid20\n n_ver: bidParams.n_ver || undefined, //\n n_adunit: bidParams.n_adunit || undefined, //\n n_layout: bidParams.n_layout || undefined, //\n n_context: bidParams.n_context || undefined, //\n n_plcmttype: bidParams.n_plcmttype || undefined, //\n n_img_icon_req: bidParams.n_img_icon_req || undefined, // boolean0\n n_img_icon_size: bidParams.n_img_icon_size || undefined, // string80\n n_img_large_req: bidParams.n_img_large_req || undefined, // boolean0\n n_img_large_w: bidParams.n_img_large_w || undefined, // integer1200\n n_img_large_h: bidParams.n_img_large_h || undefined, // integer627\n n_title_req: bidParams.n_title_req || undefined, // boolean0\n n_title_len: bidParams.n_title_len || undefined, // string25\n n_desc_req: bidParams.n_desc_req || undefined, // boolean0\n n_desc_len: bidParams.n_desc_len || undefined, // string140\n n_rating_req: bidParams.n_rating_req || undefined\n };\n\n let payloadString = buildPayloadString(params);\n\n return {\n method: 'GET',\n url: BID_REQUEST_BASE_URL,\n data: payloadString,\n requestId: bid.bidId\n };\n },\n interpretResponse: function (serverResponse, bidRequest) {\n const bidResponses = [];\n let serverResponseBody = serverResponse.body;\n\n if (!serverResponseBody || serverResponseBody.error) {\n let errorMessage = `in response for ${BIDDER_CODE} adapter`;\n if (serverResponseBody && serverResponseBody.error) {\n errorMessage += `: ${serverResponseBody.error}`;\n }\n utils.logError(errorMessage);\n return bidResponses;\n }\n try {\n let serverResponseHeaders = serverResponse.headers;\n let bidRequestData = bidRequest.data.split('&');\n const bidResponse = {\n requestId: bidRequest.requestId,\n cpm: serverResponseHeaders.get(CPM_HEADER),\n width: bidRequestData[5].split('=')[1],\n height: bidRequestData[6].split('=')[1],\n creativeId: bidRequestData[3].split('=')[1],\n currency: 'USD',\n netRevenue: true,\n ttl: 360,\n referrer: serverResponseBody.request.clickurl,\n ad: serverResponseBody.request.htmlString\n };\n bidResponses.push(bidResponse);\n } catch (e) {\n throw 'could not build bid response: ' + e;\n }\n return bidResponses;\n }\n};\n\nfunction buildPayloadString(params) {\n for (let key in params) {\n if (params.hasOwnProperty(key)) {\n if (params[key] === undefined) {\n delete params[key];\n } else {\n params[key] = encodeURIComponent(params[key]);\n }\n }\n }\n\n return utils._map(Object.keys(params), key => `${key}=${params[key]}`)\n .join('&')\n}\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/mobfoxBidAdapter.js","import * as utils from 'src/utils';\nimport { registerBidder } from '../src/adapters/bidderFactory';\nimport { BANNER } from '../src/mediaTypes';\n\nexport const BIDDER_CODE = 'nanointeractive';\nexport const ENGINE_BASE_URL = 'https://www.audiencemanager.de/hb';\n\nexport const DATA_PARTNER_PIXEL_ID = 'pid';\nexport const NQ = 'nq';\nexport const NQ_NAME = 'name';\nexport const CATEGORY = 'category';\n\nexport const spec = {\n\n code: BIDDER_CODE,\n supportedMediaTypes: [BANNER],\n\n isBidRequestValid(bid) {\n const pid = bid.params[DATA_PARTNER_PIXEL_ID];\n return !!(pid);\n },\n buildRequests(bidRequests) {\n let payload = [];\n bidRequests.forEach(bid => payload.push(createSingleBidRequest(bid)));\n return {\n method: 'POST',\n url: ENGINE_BASE_URL,\n data: JSON.stringify(payload)\n };\n },\n interpretResponse(serverResponse) {\n const bids = [];\n serverResponse.body.forEach(serverBid => {\n if (isEngineResponseValid(serverBid)) {\n bids.push(createSingleBidResponse(serverBid));\n }\n });\n return bids;\n }\n};\n\nfunction createSingleBidRequest(bid) {\n return {\n [DATA_PARTNER_PIXEL_ID]: bid.params[DATA_PARTNER_PIXEL_ID],\n [NQ]: [createNqParam(bid), createCategoryParam(bid)],\n sizes: bid.sizes.map(value => value[0] + 'x' + value[1]),\n bidId: bid.bidId,\n cors: utils.getOrigin()\n };\n}\n\nfunction createSingleBidResponse(serverBid) {\n return {\n requestId: serverBid.id,\n cpm: serverBid.cpm,\n width: serverBid.width,\n height: serverBid.height,\n ad: serverBid.ad,\n ttl: serverBid.ttl,\n creativeId: serverBid.creativeId,\n netRevenue: serverBid.netRevenue || true,\n currency: serverBid.currency,\n };\n}\n\nfunction createNqParam(bid) {\n return bid.params[NQ_NAME] ? utils.getParameterByName(bid.params[NQ_NAME]) : bid.params[NQ] || null;\n}\n\nfunction createCategoryParam(bid) {\n return bid.params[CATEGORY] || null;\n}\n\nfunction isEngineResponseValid(response) {\n return !!response.cpm && !!response.ad;\n}\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/nanointeractiveBidAdapter.js","import * as utils from 'src/utils';\nimport {registerBidder} from 'src/adapters/bidderFactory';\nimport find from 'core-js/library/fn/array/find';\n\nconst ADMIXER_ENDPOINT = 'https://adn.admixer.co.kr:10443/prebid';\nconst DEFAULT_BID_TTL = 360;\nconst DEFAULT_CURRENCY = 'USD';\nconst DEFAULT_REVENUE = false;\n\nexport const spec = {\n code: 'nasmediaAdmixer',\n\n isBidRequestValid: function (bid) {\n return !!(bid && bid.params && bid.params.ax_key);\n },\n\n buildRequests: function (validBidRequests) {\n return validBidRequests.map(bid => {\n let adSize = getSize(bid.sizes);\n\n return {\n method: 'GET',\n url: ADMIXER_ENDPOINT,\n data: {\n ax_key: utils.getBidIdParameter('ax_key', bid.params),\n req_id: bid.bidId,\n width: adSize.width,\n height: adSize.height,\n referrer: utils.getTopWindowUrl(),\n os: getOsType()\n }\n }\n })\n },\n\n interpretResponse: function (serverResponse, bidRequest) {\n const serverBody = serverResponse.body;\n const bidResponses = [];\n\n if (serverBody && serverBody.error_code === 0 && serverBody.body && serverBody.body.length > 0) {\n let bidData = serverBody.body[0];\n\n const bidResponse = {\n ad: bidData.ad,\n requestId: serverBody.req_id,\n creativeId: bidData.ad_id,\n cpm: bidData.cpm,\n width: bidData.width,\n height: bidData.height,\n currency: bidData.currency ? bidData.currency : DEFAULT_CURRENCY,\n netRevenue: DEFAULT_REVENUE,\n ttl: DEFAULT_BID_TTL\n };\n\n bidResponses.push(bidResponse);\n }\n return bidResponses;\n }\n}\n\nfunction getOsType() {\n let ua = navigator.userAgent.toLowerCase();\n let os = ['android', 'ios', 'mac', 'linux', 'window'];\n let regexp_os = [/android/i, /iphone|ipad/i, /mac/i, /linux/i, /window/i];\n\n return find(os, (tos, idx) => {\n if (ua.match(regexp_os[idx])) {\n return os[idx];\n }\n }) || 'etc';\n}\n\nfunction getSize(sizes) {\n let parsedSizes = utils.parseSizesInput(sizes);\n let [width, height] = parsedSizes.length ? parsedSizes[0].split('x') : [];\n\n return {\n width: parseInt(width, 10),\n height: parseInt(height, 10)\n };\n}\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/nasmediaAdmixerBidAdapter.js","import * as utils from 'src/utils';\nimport { registerBidder } from 'src/adapters/bidderFactory';\nimport { config } from 'src/config';\n\nconst BIDDER_CODE = 'oneplanetonly';\nconst EDNPOINT = '//show.oneplanetonly.com/prebid';\n\nfunction createEndpoint(siteId) {\n return `${EDNPOINT}?siteId=${siteId}`;\n}\n\nfunction isBidRequestValid (bid) {\n return !!(bid.params.siteId && bid.params.adUnitId);\n}\n\nfunction buildRequests(bidReqs) {\n let firstBid = bidReqs[0] || {}\n let siteId = utils.getBidIdParameter('siteId', firstBid.params)\n let adUnits = bidReqs.map((bid) => {\n return {\n id: utils.getBidIdParameter('adUnitId', bid.params),\n bidId: bid.bidId,\n sizes: utils.parseSizesInput(bid.sizes),\n };\n });\n\n const bidRequest = {\n id: firstBid.auctionId,\n ver: 1,\n prebidVer: `1.7.0-pre`,\n transactionId: firstBid.transactionId,\n currency: config.getConfig('currency.adServerCurrency'),\n timeout: config.getConfig('bidderTimeout'),\n siteId,\n domain: utils.getTopWindowLocation().hostname,\n page: config.getConfig('pageUrl') || utils.getTopWindowUrl(),\n referrer: utils.getTopWindowReferrer(),\n adUnits,\n };\n\n return {\n method: 'POST',\n url: createEndpoint(siteId),\n data: bidRequest,\n options: {contentType: 'application/json', withCredentials: true}\n };\n}\n\nfunction interpretResponse(serverResponse, request) {\n if (!serverResponse.body.bids) {\n return [];\n }\n return serverResponse.body.bids.map((bid) => {\n return {\n requestId: bid.requestId,\n cpm: bid.cpm,\n width: bid.width,\n height: bid.height,\n creativeId: bid.creativeId,\n currency: bid.currency,\n netRevenue: true,\n ad: bid.ad,\n ttl: bid.ttl\n };\n });\n}\n\nexport const spec = {\n code: BIDDER_CODE,\n aliases: ['opo'], // short code\n isBidRequestValid,\n buildRequests,\n interpretResponse\n}\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/oneplanetonlyBidAdapter.js","import { config } from 'src/config';\nimport {registerBidder} from 'src/adapters/bidderFactory';\nimport * as utils from 'src/utils';\nimport {userSync} from 'src/userSync';\nimport { BANNER, VIDEO } from 'src/mediaTypes';\n\nconst SUPPORTED_AD_TYPES = [BANNER, VIDEO];\nconst BIDDER_CODE = 'openx';\nconst BIDDER_CONFIG = 'hb_pb';\nconst BIDDER_VERSION = '2.0.0';\n\nexport const spec = {\n code: BIDDER_CODE,\n supportedMediaTypes: SUPPORTED_AD_TYPES,\n isBidRequestValid: function(bid) {\n if (bid.mediaType === VIDEO) {\n if (typeof bid.params.video !== 'object' || !bid.params.video.url) {\n return false;\n }\n }\n return !!(bid.params.unit && bid.params.delDomain);\n },\n buildRequests: function(bids) {\n let isIfr = utils.inIframe();\n let currentURL = (window.parent !== window) ? document.referrer : window.location.href;\n if (bids.length === 0) {\n return;\n }\n\n let requests = [];\n let bannerRequests = [];\n let videoRequests = [];\n const {bannerBids, videoBids} = bids.reduce(function(acc, curBid) {\n // Fallback to banner ads if nothing specified\n if (!curBid.mediaTypes || utils.isEmpty(curBid.mediaTypes)) {\n if (curBid.mediaType && curBid.mediaType == VIDEO) {\n acc.videoBids.push(curBid);\n } else {\n acc.bannerBids.push(curBid);\n }\n } else if (curBid.mediaTypes.video) {\n acc.videoBids.push(curBid);\n } else if (curBid.mediaTypes.banner) {\n acc.bannerBids.push(curBid);\n }\n return acc;\n }, {bannerBids: [], videoBids: []});\n\n // build banner requests\n if (bannerBids.length !== 0) {\n let delDomain = bannerBids[0].params.delDomain;\n let configuredBc = bannerBids[0].params.bc;\n let bc = configuredBc || `${BIDDER_CONFIG}_${BIDDER_VERSION}`;\n bannerRequests = [ buildOXRequest(bannerBids, {\n ju: currentURL,\n jr: currentURL,\n ch: document.charSet || document.characterSet,\n res: `${screen.width}x${screen.height}x${screen.colorDepth}`,\n ifr: isIfr,\n tz: new Date().getTimezoneOffset(),\n tws: getViewportDimensions(isIfr),\n ef: 'bt%2Cdb',\n be: 1,\n bc: bc,\n nocache: new Date().getTime()\n },\n delDomain)];\n }\n // build video requests\n if (videoBids.length !== 0) {\n videoRequests = buildOXVideoRequest(videoBids);\n }\n\n requests = bannerRequests.concat(videoRequests);\n return requests;\n },\n interpretResponse: function({body: oxResponseObj}, bidRequest) {\n let bidResponses = [];\n let mediaType = BANNER;\n if (bidRequest && bidRequest.payload) {\n if (bidRequest.payload.bids) {\n mediaType = bidRequest.payload.bids[0].mediaType;\n } else if (bidRequest.payload.bid) {\n mediaType = bidRequest.payload.bid.mediaType;\n }\n }\n\n if (mediaType === VIDEO) {\n if (oxResponseObj && oxResponseObj.pixels) {\n userSync.registerSync('iframe', 'openx', oxResponseObj.pixels);\n }\n bidResponses = createVideoBidResponses(oxResponseObj, bidRequest.payload);\n return bidResponses;\n }\n\n let adUnits = oxResponseObj.ads.ad;\n if (oxResponseObj.ads && oxResponseObj.ads.pixels) {\n userSync.registerSync('iframe', BIDDER_CODE, oxResponseObj.ads.pixels);\n }\n if (!adUnits) {\n adUnits = [];\n }\n bidResponses = createBidResponses(adUnits, bidRequest.payload);\n return bidResponses;\n }\n};\n\nfunction createBidResponses(adUnits, {bids, startTime}) {\n let bidResponses = [];\n let shouldSendBoPixel = bids[0].params.sendBoPixel;\n if (shouldSendBoPixel === undefined) {\n // Not specified, default to turned on\n shouldSendBoPixel = true;\n }\n for (let i = 0; i < adUnits.length; i++) {\n let adUnit = adUnits[i];\n let bidResponse = {};\n if (adUnits.length == bids.length) {\n // request and response length match, directly assign the request id based on positioning\n bidResponse.requestId = bids[i].bidId;\n } else {\n for (let j = i; j < bids.length; j++) {\n let bid = bids[j];\n if (String(bid.params.unit) === String(adUnit.adunitid) && adUnitHasValidSizeFromBid(adUnit, bid) && !bid.matched) {\n // ad unit and size match, this is the correct bid response to bid\n bidResponse.requestId = bid.bidId;\n bid.matched = true;\n break;\n }\n }\n }\n\n if (adUnit.pub_rev) {\n bidResponse.cpm = Number(adUnit.pub_rev) / 1000;\n } else {\n // No fill, do not add the bidresponse\n continue;\n }\n let creative = adUnit.creative[0];\n if (creative) {\n bidResponse.width = creative.width;\n bidResponse.height = creative.height;\n }\n bidResponse.creativeId = creative.id;\n bidResponse.ad = adUnit.html;\n if (adUnit.deal_id) {\n bidResponse.dealId = adUnit.deal_id;\n }\n // default 5 mins\n bidResponse.ttl = 300;\n // true is net, false is gross\n bidResponse.netRevenue = true;\n bidResponse.currency = adUnit.currency;\n\n // additional fields to add\n if (adUnit.tbd) {\n bidResponse.tbd = adUnit.tbd;\n }\n bidResponse.ts = adUnit.ts;\n\n let bt = config.getConfig('bidderTimeout');\n if (window.PREBID_TIMEOUT) {\n bt = Math.min(window.PREBID_TIMEOUT, bt);\n }\n let beaconParams = {\n bd: +(new Date()) - startTime,\n br: '0', // may be 0, t, or p\n bt: bt,\n bs: window.location.hostname\n };\n\n beaconParams.br = beaconParams.bt < beaconParams.bd ? 't' : 'p';\n beaconParams.bp = adUnit.pub_rev;\n beaconParams.ts = adUnit.ts;\n let boUrl;\n if (shouldSendBoPixel) {\n boUrl = getBoUrl(adUnit.creative[0], beaconParams);\n }\n if (boUrl) {\n userSync.registerSync('image', BIDDER_CODE, boUrl);\n }\n bidResponses.push(bidResponse);\n }\n return bidResponses;\n}\n\nfunction getBoUrl(creative, params) {\n let recordPixel = creative.tracking.impression;\n let boBase = recordPixel.match(/([^?]+\\/)ri\\?/);\n\n if (boBase) {\n return `${boBase[1]}bo?${buildQueryStringFromParams(params)}`;\n }\n}\n\nfunction buildQueryStringFromParams(params) {\n for (let key in params) {\n if (params.hasOwnProperty(key)) {\n if (!params[key]) {\n delete params[key];\n }\n }\n }\n return utils._map(Object.keys(params), key => `${key}=${params[key]}`)\n .join('&');\n}\n\nfunction adUnitHasValidSizeFromBid(adUnit, bid) {\n let sizes = utils.parseSizesInput(bid.sizes);\n if (!sizes) {\n return false;\n }\n let found = false;\n let creative = adUnit.creative && adUnit.creative[0];\n let creative_size = String(creative.width) + 'x' + String(creative.height);\n\n if (utils.isArray(sizes)) {\n for (let i = 0; i < sizes.length; i++) {\n let size = sizes[i];\n if (String(size) === String(creative_size)) {\n found = true;\n break;\n }\n }\n }\n return found;\n}\n\nfunction getViewportDimensions(isIfr) {\n let width;\n let height;\n let tWin = window;\n let tDoc = document;\n let docEl = tDoc.documentElement;\n let body;\n\n if (isIfr) {\n try {\n tWin = window.top;\n tDoc = window.top.document;\n } catch (e) {\n return;\n }\n docEl = tDoc.documentElement;\n body = tDoc.body;\n\n width = tWin.innerWidth || docEl.clientWidth || body.clientWidth;\n height = tWin.innerHeight || docEl.clientHeight || body.clientHeight;\n } else {\n docEl = tDoc.documentElement;\n width = tWin.innerWidth || docEl.clientWidth;\n height = tWin.innerHeight || docEl.clientHeight;\n }\n\n return `${width}x${height}`;\n}\n\nfunction formatCustomParms(customKey, customParams) {\n let value = customParams[customKey];\n if (utils.isArray(value)) {\n // if value is an array, join them with commas first\n value = value.join(',');\n }\n // return customKey=customValue format, escaping + to . and / to _\n return (customKey.toLowerCase() + '=' + value.toLowerCase()).replace('+', '.').replace('/', '_')\n}\n\nfunction buildOXRequest(bids, oxParams, delDomain) {\n if (!utils.isArray(bids)) {\n return;\n }\n\n oxParams.auid = utils._map(bids, bid => bid.params.unit).join(',');\n oxParams.dddid = utils._map(bids, bid => bid.transactionId).join(',');\n oxParams.aus = utils._map(bids, bid => {\n return utils.parseSizesInput(bid.sizes).join(',');\n }).join('|');\n\n let customParamsForAllBids = [];\n let hasCustomParam = false;\n bids.forEach(function (bid) {\n if (bid.params.customParams) {\n let customParamsForBid = utils._map(Object.keys(bid.params.customParams), customKey => formatCustomParms(customKey, bid.params.customParams));\n let formattedCustomParams = window.btoa(customParamsForBid.join('&'));\n hasCustomParam = true;\n customParamsForAllBids.push(formattedCustomParams);\n } else {\n customParamsForAllBids.push('');\n }\n });\n if (hasCustomParam) {\n oxParams.tps = customParamsForAllBids.join(',');\n }\n\n let customFloorsForAllBids = [];\n let hasCustomFloor = false;\n bids.forEach(function (bid) {\n if (bid.params.customFloor) {\n customFloorsForAllBids.push(bid.params.customFloor * 1000);\n hasCustomFloor = true;\n } else {\n customFloorsForAllBids.push(0);\n }\n });\n if (hasCustomFloor) {\n oxParams.aumfs = customFloorsForAllBids.join(',');\n }\n\n let url = `//${delDomain}/w/1.0/arj`;\n return {\n method: 'GET',\n url: url,\n data: oxParams,\n payload: {'bids': bids, 'startTime': new Date()}\n };\n}\n\nfunction buildOXVideoRequest(bids) {\n return bids.map(function(bid) {\n let url = 'http://' + bid.params.delDomain + '/v/1.0/avjp';\n let oxVideoParams = generateVideoParameters(bid);\n return {\n method: 'GET',\n url: url,\n data: oxVideoParams,\n payload: {'bid': bid, 'startTime': new Date()}\n };\n });\n}\n\nfunction generateVideoParameters(bid) {\n let oxVideo = bid.params.video;\n let oxVideoParams = { auid: bid.params.unit };\n\n Object.keys(oxVideo).forEach(function(key) {\n if (key === 'openrtb') {\n oxVideoParams[key] = JSON.stringify(oxVideo[key]);\n } else {\n oxVideoParams[key] = oxVideo[key];\n }\n });\n oxVideoParams['be'] = 'true';\n return oxVideoParams;\n}\n\nfunction createVideoBidResponses(response, {bid, startTime}) {\n let bidResponses = [];\n\n if (response !== undefined && response.vastUrl !== '' && response.pub_rev !== '') {\n let bidResponse = {};\n bidResponse.requestId = bid.bidId;\n bidResponse.bidderCode = BIDDER_CODE;\n // default 5 mins\n bidResponse.ttl = 300;\n // true is net, false is gross\n bidResponse.netRevenue = true;\n bidResponse.currency = response.currency;\n bidResponse.cpm = Number(response.pub_rev) / 1000;\n bidResponse.width = response.width;\n bidResponse.height = response.height;\n bidResponse.creativeId = response.adid;\n bidResponse.vastUrl = response.vastUrl;\n bidResponse.mediaType = VIDEO;\n\n bidResponses.push(bidResponse);\n }\n\n return bidResponses;\n}\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/openxBidAdapter.js","import * as utils from 'src/utils';\nimport { registerBidder } from 'src/adapters/bidderFactory';\nexport const ENDPOINT = '//mg-bid.optimatic.com/adrequest/';\n\nexport const spec = {\n\n version: '1.0.4',\n\n code: 'optimatic',\n\n supportedMediaTypes: ['video'],\n\n isBidRequestValid: function(bid) {\n return !!(bid && bid.params && bid.params.placement && bid.params.bidfloor);\n },\n\n buildRequests: function(bids) {\n return bids.map(bid => {\n return {\n method: 'POST',\n url: ENDPOINT + bid.params.placement,\n data: getData(bid),\n options: {contentType: 'application/json'},\n bidRequest: bid\n }\n })\n },\n\n interpretResponse: function(response, { bidRequest }) {\n let bid;\n let size;\n let bidResponse;\n try {\n response = response.body;\n bid = response.seatbid[0].bid[0];\n } catch (e) {\n response = null;\n }\n if (!response || !bid || (!bid.adm && !bid.nurl) || !bid.price) {\n utils.logWarn(`No valid bids from ${spec.code} bidder`);\n return [];\n }\n size = getSize(bidRequest.sizes);\n bidResponse = {\n requestId: bidRequest.bidId,\n bidderCode: spec.code,\n cpm: bid.price,\n creativeId: bid.id,\n width: size.width,\n height: size.height,\n mediaType: 'video',\n currency: response.cur,\n ttl: 300,\n netRevenue: true\n };\n if (bid.nurl) {\n bidResponse.vastUrl = bid.nurl;\n } else if (bid.adm) {\n bidResponse.vastXml = bid.adm;\n }\n return bidResponse;\n }\n};\n\nfunction getSize(sizes) {\n let parsedSizes = utils.parseSizesInput(sizes);\n let [ width, height ] = parsedSizes.length ? parsedSizes[0].split('x') : [];\n return {\n width: parseInt(width, 10) || undefined,\n height: parseInt(height, 10) || undefined\n };\n}\n\nfunction getData (bid) {\n let size = getSize(bid.sizes);\n let loc = utils.getTopWindowLocation();\n let global = (window.top) ? window.top : window;\n return {\n id: utils.generateUUID(),\n imp: [{\n id: '1',\n bidfloor: bid.params.bidfloor,\n video: {\n mimes: ['video/mp4', 'video/ogg', 'video/webm', 'video/x-flv', 'application/javascript', 'application/x-shockwave-flash'],\n w: size.width,\n h: size.height\n }\n }],\n site: {\n id: '1',\n domain: loc.host,\n page: loc.href,\n ref: utils.getTopWindowReferrer(),\n publisher: {\n id: '1'\n }\n },\n device: {\n ua: global.navigator.userAgent,\n ip: '127.0.0.1',\n devicetype: 1\n }\n };\n}\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/optimaticBidAdapter.js","import {registerBidder} from 'src/adapters/bidderFactory';\nconst BIDDER_CODE = 'optimera';\nconst SCORES_BASE_URL = 'https://s3.amazonaws.com/elasticbeanstalk-us-east-1-397719490216/json/client/';\n\nexport const spec = {\n code: BIDDER_CODE,\n /**\n * Determines whether or not the given bid request is valid.\n *\n * @param {bidRequest} bid The bid params to validate.\n * @return boolean True if this is a valid bid, and false otherwise.\n */\n isBidRequestValid: function (bidRequest) {\n if (typeof bidRequest.params !== 'undefined' && typeof bidRequest.params.clientID !== 'undefined') {\n return true;\n } else {\n return false;\n }\n },\n /**\n * Make a server request from the list of BidRequests.\n *\n * We call the existing scores data file for ad slot placement scores.\n * These scores will be added to the dealId to be pushed to DFP.\n *\n * @param {validBidRequests[]} - an array of bids\n * @return ServerRequest Info describing the request to the server.\n */\n buildRequests: function (validBidRequests) {\n let optimeraHost = window.location.host;\n let optimeraPathName = window.location.pathname;\n let timestamp = Math.round(new Date().getTime() / 1000);\n if (typeof validBidRequests[0].params.clientID !== 'undefined') {\n let clientID = validBidRequests[0].params.clientID;\n let scoresURL = SCORES_BASE_URL + clientID + '/' + optimeraHost + optimeraPathName + '.js';\n return {\n method: 'GET',\n url: scoresURL,\n payload: validBidRequests,\n data: {'t': timestamp}\n };\n }\n },\n /**\n * Unpack the response from the server into a list of bids.\n *\n * Some required bid params are not needed for this so default\n * values are used.\n *\n * @param {*} serverResponse A successful response from the server.\n * @return {Bid[]} An array of bids which were nested inside the server.\n */\n interpretResponse: function (serverResponse, bidRequest) {\n let validBids = bidRequest.payload;\n let bidResponses = [];\n let dealId = '';\n if (typeof serverResponse.body !== 'undefined') {\n let scores = serverResponse.body;\n for (let i = 0; i < validBids.length; i++) {\n if (typeof validBids[i].params.clientID !== 'undefined') {\n if (validBids[i].adUnitCode in scores) {\n dealId = scores[validBids[i].adUnitCode];\n }\n let bidResponse = {\n requestId: validBids[i].bidId,\n ad: '
',\n cpm: 0.01,\n width: 0,\n height: 0,\n dealId: dealId,\n ttl: 300,\n creativeId: '1',\n netRevenue: '0',\n currency: 'USD'\n };\n bidResponses.push(bidResponse);\n }\n }\n }\n return bidResponses;\n }\n}\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/optimeraBidAdapter.js","import * as utils from 'src/utils';\nimport {registerBidder} from 'src/adapters/bidderFactory';\nimport {config} from 'src/config';\n\nconst BIDDER_CODE = 'orbitsoft';\nlet styleParamsMap = {\n 'title.family': 'f1', // headerFont\n 'title.size': 'fs1', // headerFontSize\n 'title.weight': 'w1', // headerWeight\n 'title.style': 's1', // headerStyle\n 'title.color': 'c3', // headerColor\n 'description.family': 'f2', // descriptionFont\n 'description.size': 'fs2', // descriptionFontSize\n 'description.weight': 'w2', // descriptionWeight\n 'description.style': 's2', // descriptionStyle\n 'description.color': 'c4', // descriptionColor\n 'url.family': 'f3', // urlFont\n 'url.size': 'fs3', // urlFontSize\n 'url.weight': 'w3', // urlWeight\n 'url.style': 's3', // urlStyle\n 'url.color': 'c5', // urlColor\n 'colors.background': 'c2', // borderColor\n 'colors.border': 'c1', // borderColor\n 'colors.link': 'c6', // lnkColor\n};\nexport const spec = {\n code: BIDDER_CODE,\n aliases: ['oas', '152media'], // short code and customer aliases\n isBidRequestValid: function (bid) {\n switch (true) {\n case !('params' in bid):\n utils.logError(bid.bidder + ': No required params');\n return false;\n case !(bid.params.placementId):\n utils.logError(bid.bidder + ': No required param placementId');\n return false;\n case !(bid.params.requestUrl):\n utils.logError(bid.bidder + ': No required param requestUrl');\n return false;\n }\n return true;\n },\n buildRequests: function (validBidRequests) {\n let bidRequest;\n let serverRequests = [];\n for (let i = 0; i < validBidRequests.length; i++) {\n bidRequest = validBidRequests[i];\n let bidRequestParams = bidRequest.params;\n let callbackId = utils.getUniqueIdentifierStr();\n let placementId = utils.getBidIdParameter('placementId', bidRequestParams);\n let requestUrl = utils.getBidIdParameter('requestUrl', bidRequestParams);\n let referrer = utils.getBidIdParameter('ref', bidRequestParams);\n let location = utils.getBidIdParameter('loc', bidRequestParams);\n // Append location & referrer\n if (location === '') {\n location = utils.getTopWindowUrl();\n }\n if (referrer === '') {\n referrer = utils.getTopWindowReferrer();\n }\n\n // Styles params\n let stylesParams = utils.getBidIdParameter('style', bidRequestParams);\n let stylesParamsArray = {};\n for (let currentValue in stylesParams) {\n if (stylesParams.hasOwnProperty(currentValue)) {\n let currentStyle = stylesParams[currentValue];\n for (let field in currentStyle) {\n if (currentStyle.hasOwnProperty(field)) {\n let styleField = styleParamsMap[currentValue + '.' + field];\n if (typeof styleField !== 'undefined') {\n stylesParamsArray[styleField] = currentStyle[field];\n }\n }\n }\n }\n }\n // Custom params\n let customParams = utils.getBidIdParameter('customParams', bidRequestParams);\n let customParamsArray = {};\n for (let customField in customParams) {\n if (customParams.hasOwnProperty(customField)) {\n customParamsArray['c.' + customField] = customParams[customField];\n }\n }\n\n // Sizes params (not supports by server, for future features)\n let sizesParams = bidRequest.sizes;\n let parsedSizes = utils.parseSizesInput(sizesParams);\n\n serverRequests.push({\n method: 'GET',\n url: requestUrl,\n data: Object.assign({\n 'scid': placementId,\n 'callback_uid': callbackId,\n 'loc': location,\n 'ref': referrer,\n 'size': parsedSizes\n }, stylesParamsArray, customParamsArray),\n options: {withCredentials: false},\n bidRequest: bidRequest\n });\n }\n return serverRequests;\n },\n interpretResponse: function (serverResponse, request) {\n let bidResponses = [];\n if (!serverResponse || serverResponse.error) {\n utils.logError(BIDDER_CODE + ': Server response error');\n return bidResponses;\n }\n\n const serverBody = serverResponse.body;\n if (!serverBody) {\n utils.logError(BIDDER_CODE + ': Empty bid response');\n return bidResponses;\n }\n\n const CPM = serverBody.cpm;\n const WIDTH = serverBody.width;\n const HEIGHT = serverBody.height;\n const CREATIVE = serverBody.content_url;\n const CALLBACK_UID = serverBody.callback_uid;\n const TIME_TO_LIVE = config.getConfig('_bidderTimeout');\n const REFERER = utils.getTopWindowUrl();\n let bidRequest = request.bidRequest;\n if (CPM > 0 && WIDTH > 0 && HEIGHT > 0) {\n let bidResponse = {\n requestId: bidRequest.bidId,\n cpm: CPM,\n width: WIDTH,\n height: HEIGHT,\n creativeId: CALLBACK_UID,\n ttl: TIME_TO_LIVE,\n referrer: REFERER,\n currency: 'USD',\n netRevenue: true,\n adUrl: CREATIVE\n };\n bidResponses.push(bidResponse);\n }\n\n return bidResponses;\n }\n};\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/orbitsoftBidAdapter.js","import { registerBidder } from 'src/adapters/bidderFactory';\nimport { BANNER } from 'src/mediaTypes';\nimport { getTopWindowUrl, logWarn } from 'src/utils';\n\nconst BIDDER_CODE = 'peak226';\nconst URL = '//a.ad216.com/header_bid';\n\nexport const spec = {\n code: BIDDER_CODE,\n\n supportedMediaTypes: [BANNER],\n\n isBidRequestValid: function (bid) {\n const { params } = bid;\n\n return !!params.uid;\n },\n\n buildRequests: function (validBidRequests) {\n const bidsMap = validBidRequests.reduce((res, bid) => {\n const { uid } = bid.params;\n\n res[uid] = res[uid] || [];\n res[uid].push(bid);\n\n return res;\n }, {});\n\n return {\n method: 'GET',\n url:\n URL +\n toQueryString({\n u: getTopWindowUrl(),\n auids: Object.keys(bidsMap).join(',')\n }),\n bidsMap\n };\n },\n\n interpretResponse: function (serverResponse, { bidsMap }) {\n const response = serverResponse.body;\n const bidResponses = [];\n\n if (!response) {\n logWarn(`No response from ${spec.code} bidder`);\n\n return bidResponses;\n }\n\n if (!response.seatbid || !response.seatbid.length) {\n logWarn(`No seatbid in response from ${spec.code} bidder`);\n\n return bidResponses;\n }\n\n response.seatbid.forEach((seatbid, i) => {\n if (!seatbid.bid || !seatbid.bid.length) {\n logWarn(`No bid in seatbid[${i}] response from ${spec.code} bidder`);\n return;\n }\n seatbid.bid.forEach(responseBid => {\n const requestBids = bidsMap[responseBid.auid];\n\n requestBids.forEach(requestBid => {\n bidResponses.push({\n requestId: requestBid.bidId,\n bidderCode: spec.code,\n width: responseBid.w,\n height: responseBid.h,\n mediaType: BANNER,\n creativeId: responseBid.auid,\n ad: responseBid.adm,\n cpm: responseBid.price,\n currency: 'USD',\n netRevenue: true,\n ttl: 360\n });\n });\n });\n });\n\n return bidResponses;\n }\n};\n\nfunction toQueryString(obj) {\n return Object.keys(obj).reduce(\n (str, key, i) =>\n typeof obj[key] === 'undefined' || obj[key] === ''\n ? str\n : `${str}${str ? '&' : '?'}${key}=${encodeURIComponent(obj[key])}`,\n ''\n );\n}\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/peak226BidAdapter.js","\r\nimport {logError, getTopWindowLocation, getTopWindowReferrer} from 'src/utils';\r\nimport { registerBidder } from 'src/adapters/bidderFactory';\r\n\r\nconst NATIVE_DEFAULTS = {\r\n TITLE_LEN: 100,\r\n DESCR_LEN: 200,\r\n SPONSORED_BY_LEN: 50,\r\n IMG_MIN: 150,\r\n ICON_MIN: 50,\r\n};\r\n\r\nexport const spec = {\r\n\r\n code: 'platformio',\r\n supportedMediaTypes: ['banner', 'native'],\r\n\r\n isBidRequestValid: bid => (\r\n !!(bid && bid.params && bid.params.pubId && bid.params.siteId)\r\n ),\r\n buildRequests: bidRequests => {\r\n const request = {\r\n id: bidRequests[0].bidderRequestId,\r\n at: 2,\r\n imp: bidRequests.map(slot => impression(slot)),\r\n site: site(bidRequests),\r\n device: device(),\r\n };\r\n return {\r\n method: 'POST',\r\n url: '//piohbdisp.hb.adx1.com/',\r\n data: JSON.stringify(request),\r\n };\r\n },\r\n interpretResponse: (response, request) => (\r\n bidResponseAvailable(request, response.body)\r\n ),\r\n};\r\n\r\nfunction bidResponseAvailable(bidRequest, bidResponse) {\r\n const idToImpMap = {};\r\n const idToBidMap = {};\r\n const ortbRequest = parse(bidRequest.data);\r\n ortbRequest.imp.forEach(imp => {\r\n idToImpMap[imp.id] = imp;\r\n });\r\n if (bidResponse) {\r\n bidResponse.seatbid.forEach(seatBid => seatBid.bid.forEach(bid => {\r\n idToBidMap[bid.impid] = bid;\r\n }));\r\n }\r\n const bids = [];\r\n Object.keys(idToImpMap).forEach(id => {\r\n if (idToBidMap[id]) {\r\n const bid = {};\r\n bid.requestId = id;\r\n bid.adId = id;\r\n bid.creativeId = id;\r\n bid.cpm = idToBidMap[id].price;\r\n bid.currency = bidResponse.cur;\r\n bid.ttl = 360;\r\n bid.netRevenue = true;\r\n if (idToImpMap[id]['native']) {\r\n bid['native'] = nativeResponse(idToImpMap[id], idToBidMap[id]);\r\n let nurl = idToBidMap[id].nurl;\r\n nurl = nurl.replace(/\\$(%7B|\\{)AUCTION_IMP_ID(%7D|\\})/gi, idToBidMap[id].impid);\r\n nurl = nurl.replace(/\\$(%7B|\\{)AUCTION_PRICE(%7D|\\})/gi, idToBidMap[id].price);\r\n nurl = nurl.replace(/\\$(%7B|\\{)AUCTION_CURRENCY(%7D|\\})/gi, bidResponse.cur);\r\n nurl = nurl.replace(/\\$(%7B|\\{)AUCTION_BID_ID(%7D|\\})/gi, bidResponse.bidid);\r\n bid['native']['impressionTrackers'] = [nurl];\r\n bid.mediaType = 'native';\r\n } else {\r\n bid.ad = idToBidMap[id].adm;\r\n bid.ad = bid.ad.replace(/\\$(%7B|\\{)AUCTION_IMP_ID(%7D|\\})/gi, idToBidMap[id].impid);\r\n bid.ad = bid.ad.replace(/\\$(%7B|\\{)AUCTION_AD_ID(%7D|\\})/gi, idToBidMap[id].adid);\r\n bid.ad = bid.ad.replace(/\\$(%7B|\\{)AUCTION_PRICE(%7D|\\})/gi, idToBidMap[id].price);\r\n bid.ad = bid.ad.replace(/\\$(%7B|\\{)AUCTION_CURRENCY(%7D|\\})/gi, bidResponse.cur);\r\n bid.ad = bid.ad.replace(/\\$(%7B|\\{)AUCTION_BID_ID(%7D|\\})/gi, bidResponse.bidid);\r\n bid.width = idToImpMap[id].banner.w;\r\n bid.height = idToImpMap[id].banner.h;\r\n }\r\n bids.push(bid);\r\n }\r\n });\r\n return bids;\r\n}\r\nfunction impression(slot) {\r\n return {\r\n id: slot.bidId,\r\n banner: banner(slot),\r\n 'native': nativeImpression(slot),\r\n bidfloor: slot.params.bidFloor || '0.000001',\r\n tagid: slot.params.placementId.toString(),\r\n };\r\n}\r\nfunction banner(slot) {\r\n if (!slot.nativeParams) {\r\n const size = slot.params.size.toUpperCase().split('X');\r\n const width = parseInt(size[0]);\r\n const height = parseInt(size[1]);\r\n return {\r\n w: width,\r\n h: height,\r\n };\r\n };\r\n}\r\n\r\nfunction nativeImpression(slot) {\r\n if (slot.nativeParams) {\r\n const assets = [];\r\n addAsset(assets, titleAsset(1, slot.nativeParams.title, NATIVE_DEFAULTS.TITLE_LEN));\r\n addAsset(assets, dataAsset(2, slot.nativeParams.body, 2, NATIVE_DEFAULTS.DESCR_LEN));\r\n addAsset(assets, dataAsset(3, slot.nativeParams.sponsoredBy, 1, NATIVE_DEFAULTS.SPONSORED_BY_LEN));\r\n addAsset(assets, imageAsset(4, slot.nativeParams.icon, 1, NATIVE_DEFAULTS.ICON_MIN, NATIVE_DEFAULTS.ICON_MIN));\r\n addAsset(assets, imageAsset(5, slot.nativeParams.image, 3, NATIVE_DEFAULTS.IMG_MIN, NATIVE_DEFAULTS.IMG_MIN));\r\n return {\r\n request: JSON.stringify({ assets }),\r\n ver: '1.1',\r\n };\r\n }\r\n return null;\r\n}\r\n\r\nfunction addAsset(assets, asset) {\r\n if (asset) {\r\n assets.push(asset);\r\n }\r\n}\r\n\r\nfunction titleAsset(id, params, defaultLen) {\r\n if (params) {\r\n return {\r\n id,\r\n required: params.required ? 1 : 0,\r\n title: {\r\n len: params.len || defaultLen,\r\n },\r\n };\r\n }\r\n return null;\r\n}\r\n\r\nfunction imageAsset(id, params, type, defaultMinWidth, defaultMinHeight) {\r\n return params ? {\r\n id,\r\n required: params.required ? 1 : 0,\r\n img: {\r\n type,\r\n wmin: params.wmin || defaultMinWidth,\r\n hmin: params.hmin || defaultMinHeight,\r\n }\r\n } : null;\r\n}\r\n\r\nfunction dataAsset(id, params, type, defaultLen) {\r\n return params ? {\r\n id,\r\n required: params.required ? 1 : 0,\r\n data: {\r\n type,\r\n len: params.len || defaultLen,\r\n }\r\n } : null;\r\n}\r\n\r\nfunction site(bidderRequest) {\r\n const pubId = bidderRequest && bidderRequest.length > 0 ? bidderRequest[0].params.pubId : '0';\r\n const siteId = bidderRequest && bidderRequest.length > 0 ? bidderRequest[0].params.siteId : '0';\r\n return {\r\n publisher: {\r\n id: pubId.toString(),\r\n domain: getTopWindowLocation().hostname,\r\n },\r\n id: siteId.toString(),\r\n ref: getTopWindowReferrer(),\r\n page: getTopWindowLocation().href,\r\n }\r\n}\r\n\r\nfunction device() {\r\n return {\r\n ua: navigator.userAgent,\r\n language: (navigator.language || navigator.browserLanguage || navigator.userLanguage || navigator.systemLanguage),\r\n w: (window.screen.width || window.innerWidth),\r\n h: (window.screen.height || window.innerHeigh),\r\n };\r\n}\r\nfunction parse(rawResponse) {\r\n try {\r\n if (rawResponse) {\r\n return JSON.parse(rawResponse);\r\n }\r\n } catch (ex) {\r\n logError('platformio.parse', 'ERROR', ex);\r\n }\r\n return null;\r\n}\r\n\r\nfunction nativeResponse(imp, bid) {\r\n if (imp['native']) {\r\n const nativeAd = parse(bid.adm);\r\n const keys = {};\r\n keys.image = {};\r\n keys.icon = {};\r\n if (nativeAd && nativeAd['native'] && nativeAd['native'].assets) {\r\n nativeAd['native'].assets.forEach(asset => {\r\n keys.title = asset.title ? asset.title.text : keys.title;\r\n keys.body = asset.data && asset.id === 2 ? asset.data.value : keys.body;\r\n keys.sponsoredBy = asset.data && asset.id === 3 ? asset.data.value : keys.sponsoredBy;\r\n keys.icon.url = asset.img && asset.id === 4 ? asset.img.url : keys.icon.url;\r\n keys.icon.width = asset.img && asset.id === 4 ? asset.img.w : keys.icon.width;\r\n keys.icon.height = asset.img && asset.id === 4 ? asset.img.h : keys.icon.height;\r\n keys.image.url = asset.img && asset.id === 5 ? asset.img.url : keys.image.url;\r\n keys.image.width = asset.img && asset.id === 5 ? asset.img.w : keys.image.width;\r\n keys.image.height = asset.img && asset.id === 5 ? asset.img.h : keys.image.height;\r\n });\r\n if (nativeAd['native'].link) {\r\n keys.clickUrl = encodeURIComponent(nativeAd['native'].link.url);\r\n }\r\n return keys;\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nregisterBidder(spec);\r\n\n\n\n// WEBPACK FOOTER //\n// ./modules/platformioBidAdapter.js","import * as utils from 'src/utils';\nimport { registerBidder } from 'src/adapters/bidderFactory';\n\nconst BIDDER_CODE = 'pollux';\nconst PLX_ENDPOINT_URL = '//adn.plxnt.com/prebid/v1';\nconst PLX_CURRENCY = 'EUR';\nconst PLX_TTL = 3600;\nconst PLX_NETREVENUE = true;\n\nexport const spec = {\n code: BIDDER_CODE,\n aliases: ['plx'],\n /**\n * Determines whether or not the given bid request is valid.\n *\n * @param {BidRequest} bid The bid params to validate.\n * @return boolean True if this is a valid bid, and false otherwise.\n */\n isBidRequestValid: function(bid) {\n if (!bid.hasOwnProperty('params') || !bid.params.hasOwnProperty('zone')) {\n utils.logError('required param \"zone\" is missing for == ' + BIDDER_CODE + ' ==');\n return false;\n }\n return true;\n },\n /**\n * Make a server request from the list of BidRequests.\n *\n * @param {validBidRequests[]} - an array of bids\n * @return ServerRequest Info describing the request to the server.\n */\n buildRequests: function (validBidRequests) {\n if (!Array.isArray(validBidRequests) || !validBidRequests.length) {\n return [];\n }\n const payload = [];\n let custom_url = null;\n for (let i = 0; i < validBidRequests.length; i++) {\n const bid = validBidRequests[i];\n const request = {\n bidId: bid.bidId,\n zones: bid.params.zone,\n sizes: bid.sizes\n };\n if (bid.bidderUrl && !custom_url) {\n custom_url = bid.bidderUrl;\n }\n payload.push(request);\n }\n const payloadString = JSON.stringify(payload);\n // build url parameters\n const domain = utils.getParameterByName('domain');\n const tracker2 = utils.getParameterByName('tracker2');\n const url_params = {};\n if (domain) {\n url_params.domain = domain;\n } else {\n url_params.domain = utils.getTopWindowUrl();\n }\n if (tracker2) {\n url_params.tracker2 = tracker2;\n }\n // build url\n let bidder_url = custom_url || PLX_ENDPOINT_URL;\n if (url_params) {\n bidder_url = bidder_url + '?' + utils.parseQueryStringParameters(url_params);\n }\n utils.logMessage('== ' + BIDDER_CODE + ' == request built: ' + bidder_url);\n return {\n method: 'POST',\n url: bidder_url,\n data: payloadString\n };\n },\n /**\n * Unpack the response from the server into a list of bids.\n *\n * @param {*} serverResponse A successful response from the server.\n * @return {Bid[]} An array of bids which were nested inside the server.\n */\n interpretResponse: function(serverResponse, bidRequest) {\n let bidResponses = [];\n if (!serverResponse || (typeof serverResponse === 'object' && !serverResponse.hasOwnProperty('body'))) {\n utils.logMessage('No prebid response from == ' + BIDDER_CODE + ' == for bid requests:');\n utils.logMessage(bidRequest);\n return bidResponses;\n }\n serverResponse = serverResponse.body;\n if (!Array.isArray(serverResponse) || !serverResponse.length) {\n utils.logMessage('No prebid response from == ' + BIDDER_CODE + ' == for bid requests:');\n utils.logMessage(bidRequest);\n return bidResponses;\n }\n // loop through serverResponses\n for (let b in serverResponse) {\n let bid = serverResponse[b];\n const bidResponse = {\n requestId: bid.bidId, // not request id, it's bid's id\n cpm: parseFloat(bid.cpm),\n width: parseInt(bid.width),\n height: parseInt(bid.height),\n ttl: PLX_TTL,\n creativeId: bid.creativeId,\n netRevenue: PLX_NETREVENUE,\n currency: PLX_CURRENCY\n };\n if (bid.ad_type === 'url') {\n bidResponse.adUrl = bid.ad;\n } else {\n bidResponse.ad = bid.ad;\n }\n if (bid.referrer) {\n bidResponse.referrer = bid.referrer;\n }\n bidResponses.push(bidResponse);\n }\n return bidResponses;\n }\n};\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/polluxBidAdapter.js","import Adapter from 'src/adapter';\nimport bidfactory from 'src/bidfactory';\nimport * as utils from 'src/utils';\nimport { ajax } from 'src/ajax';\nimport { STATUS, S2S } from 'src/constants';\nimport { cookieSet } from 'src/cookie.js';\nimport adaptermanager from 'src/adaptermanager';\nimport { config } from 'src/config';\nimport { VIDEO } from 'src/mediaTypes';\nimport { isValid } from 'src/adapters/bidderFactory';\nimport includes from 'core-js/library/fn/array/includes';\n\nconst getConfig = config.getConfig;\n\nconst TYPE = S2S.SRC;\nlet _synced = false;\nconst DEFAULT_S2S_TTL = 60;\nconst DEFAULT_S2S_CURRENCY = 'USD';\nconst DEFAULT_S2S_NETREVENUE = true;\n\nlet _s2sConfig;\n\nconst s2sDefaultConfig = {\n enabled: false,\n timeout: 1000,\n maxBids: 1,\n adapter: 'prebidServer'\n};\n\nconfig.setDefaults({\n 's2sConfig': s2sDefaultConfig\n});\n\n// accountId and bidders params are not included here, should be configured by end-user\nconst availVendorDefaults = {\n 'appnexus': {\n adapter: 'prebidServer',\n cookieSet: false,\n enabled: true,\n endpoint: '//prebid.adnxs.com/pbs/v1/auction',\n syncEndpoint: '//prebid.adnxs.com/pbs/v1/cookie_sync',\n timeout: 1000\n },\n 'rubicon': {\n adapter: 'prebidServer',\n cookieSet: false,\n enabled: true,\n endpoint: '//prebid-server.rubiconproject.com/auction',\n syncEndpoint: '//prebid-server.rubiconproject.com/cookie_sync',\n timeout: 500\n }\n};\n\n/**\n * Set config for server to server header bidding\n * @typedef {Object} options - required\n * @property {boolean} enabled enables S2S bidding\n * @property {string[]} bidders bidders to request S2S\n * @property {string} endpoint endpoint to contact\n * === optional params below ===\n * @property {number} [timeout] timeout for S2S bidders - should be lower than `pbjs.requestBids({timeout})`\n * @property {boolean} [cacheMarkup] whether to cache the adm result\n * @property {string} [adapter] adapter code to use for S2S\n * @property {string} [syncEndpoint] endpoint URL for syncing cookies\n * @property {string} [cookieSetUrl] url for cookie set library, if passed then cookieSet is enabled\n */\nfunction setS2sConfig(options) {\n if (options.defaultVendor) {\n let vendor = options.defaultVendor;\n let optionKeys = Object.keys(options);\n\n if (availVendorDefaults.hasOwnProperty(vendor)) {\n // vendor keys will be set if either: the key was not specified by user\n // or if the user did not set their own distinct value (ie using the system default) to override the vendor\n Object.keys(availVendorDefaults[vendor]).forEach(function(vendorKey) {\n if (s2sDefaultConfig[vendorKey] === options[vendorKey] || !includes(optionKeys, vendorKey)) {\n options[vendorKey] = availVendorDefaults[vendor][vendorKey];\n }\n });\n } else {\n utils.logError('Incorrect or unavailable prebid server default vendor option: ' + vendor);\n return false;\n }\n }\n\n let keys = Object.keys(options);\n\n if (['accountId', 'bidders', 'endpoint'].filter(key => {\n if (!includes(keys, key)) {\n utils.logError(key + ' missing in server to server config');\n return true;\n }\n return false;\n }).length > 0) {\n return;\n }\n\n _s2sConfig = options;\n if (options.syncEndpoint) {\n queueSync(options.bidders);\n }\n}\ngetConfig('s2sConfig', ({s2sConfig}) => setS2sConfig(s2sConfig));\n\n/**\n * @param {Array} bidderCodes list of bidders to request user syncs for.\n */\nfunction queueSync(bidderCodes) {\n if (_synced) {\n return;\n }\n _synced = true;\n const payload = JSON.stringify({\n uuid: utils.generateUUID(),\n bidders: bidderCodes\n });\n ajax(_s2sConfig.syncEndpoint, (response) => {\n try {\n response = JSON.parse(response);\n response.bidder_status.forEach(bidder => doBidderSync(bidder.usersync.type, bidder.usersync.url, bidder.bidder));\n } catch (e) {\n utils.logError(e);\n }\n },\n payload, {\n contentType: 'text/plain',\n withCredentials: true\n });\n}\n\n/**\n * Run a cookie sync for the given type, url, and bidder\n *\n * @param {string} type the type of sync, \"image\", \"redirect\", \"iframe\"\n * @param {string} url the url to sync\n * @param {string} bidder name of bidder doing sync for\n */\nfunction doBidderSync(type, url, bidder) {\n if (!url) {\n utils.logError(`No sync url for bidder \"${bidder}\": ${url}`);\n } else if (type === 'image' || type === 'redirect') {\n utils.logMessage(`Invoking image pixel user sync for bidder: \"${bidder}\"`);\n utils.triggerPixel(url);\n } else if (type == 'iframe') {\n utils.logMessage(`Invoking iframe user sync for bidder: \"${bidder}\"`);\n utils.insertUserSyncIframe(url);\n } else {\n utils.logError(`User sync type \"${type}\" not supported for bidder: \"${bidder}\"`);\n }\n}\n\n/**\n * Try to convert a value to a type.\n * If it can't be done, the value will be returned.\n *\n * @param {string} typeToConvert The target type. e.g. \"string\", \"number\", etc.\n * @param {*} value The value to be converted into typeToConvert.\n */\nfunction tryConvertType(typeToConvert, value) {\n if (typeToConvert === 'string') {\n return value && value.toString();\n } else if (typeToConvert === 'number') {\n return Number(value);\n } else {\n return value;\n }\n}\n\nconst tryConvertString = tryConvertType.bind(null, 'string');\nconst tryConvertNumber = tryConvertType.bind(null, 'number');\n\nconst paramTypes = {\n 'appnexus': {\n 'member': tryConvertString,\n 'invCode': tryConvertString,\n 'placementId': tryConvertNumber\n },\n 'rubicon': {\n 'accountId': tryConvertNumber,\n 'siteId': tryConvertNumber,\n 'zoneId': tryConvertNumber\n },\n 'indexExchange': {\n 'siteID': tryConvertNumber\n },\n 'audienceNetwork': {\n 'placementId': tryConvertString\n },\n 'pubmatic': {\n 'publisherId': tryConvertString,\n 'adSlot': tryConvertString\n },\n 'districtm': {\n 'member': tryConvertString,\n 'invCode': tryConvertString,\n 'placementId': tryConvertNumber\n },\n 'pulsepoint': {\n 'cf': tryConvertString,\n 'cp': tryConvertNumber,\n 'ct': tryConvertNumber\n },\n 'conversant': {\n 'site_id': tryConvertString,\n 'secure': tryConvertNumber,\n 'mobile': tryConvertNumber\n },\n};\n\n/*\n * Modify an adunit's bidder parameters to match the expected parameter types\n */\nfunction convertTypes(adUnits) {\n adUnits.forEach(adUnit => {\n adUnit.bids.forEach(bid => {\n const types = paramTypes[bid.bidder] || [];\n Object.keys(types).forEach(key => {\n if (bid.params[key]) {\n bid.params[key] = types[key](bid.params[key]);\n\n // don't send invalid values\n if (isNaN(bid.params[key])) {\n delete bid.params.key;\n }\n }\n });\n });\n });\n}\n\nfunction _getDigiTrustQueryParams() {\n function getDigiTrustId() {\n let digiTrustUser = window.DigiTrust && (config.getConfig('digiTrustId') || window.DigiTrust.getUser({member: 'T9QSFKPDN9'}));\n return (digiTrustUser && digiTrustUser.success && digiTrustUser.identity) || null;\n }\n let digiTrustId = getDigiTrustId();\n // Verify there is an ID and this user has not opted out\n if (!digiTrustId || (digiTrustId.privacy && digiTrustId.privacy.optout)) {\n return null;\n }\n return {\n id: digiTrustId.id,\n keyv: digiTrustId.keyv,\n pref: 0\n };\n}\n\nfunction _appendSiteAppDevice(request) {\n if (!request) return;\n\n // ORTB specifies app OR site\n if (typeof config.getConfig('app') === 'object') {\n request.app = config.getConfig('app');\n request.app.publisher = {id: _s2sConfig.accountId}\n } else {\n request.site = {\n publisher: { id: _s2sConfig.accountId },\n page: utils.getTopWindowUrl()\n }\n }\n if (typeof config.getConfig('device') === 'object') {\n request.device = config.getConfig('device');\n }\n}\n\n/*\n * Protocol spec for legacy endpoint\n * e.g., https:///v1/auction\n */\nconst LEGACY_PROTOCOL = {\n\n buildRequest(s2sBidRequest, adUnits) {\n // pbs expects an ad_unit.video attribute if the imp is video\n adUnits.forEach(adUnit => {\n const videoMediaType = utils.deepAccess(adUnit, 'mediaTypes.video');\n if (videoMediaType) {\n adUnit.video = Object.assign({}, videoMediaType);\n delete adUnit.mediaTypes;\n // default is assumed to be 'banner' so if there is a video type\n // we assume video only until PBS can support multi-format auction\n adUnit.media_types = [VIDEO];\n }\n });\n\n const request = {\n account_id: _s2sConfig.accountId,\n tid: s2sBidRequest.tid,\n max_bids: _s2sConfig.maxBids,\n timeout_millis: _s2sConfig.timeout,\n secure: _s2sConfig.secure,\n cache_markup: _s2sConfig.cacheMarkup,\n url: utils.getTopWindowUrl(),\n prebid_version: '1.7.0-pre',\n ad_units: adUnits,\n is_debug: !!getConfig('debug'),\n };\n\n _appendSiteAppDevice(request);\n\n let digiTrust = _getDigiTrustQueryParams();\n if (digiTrust) {\n request.digiTrust = digiTrust;\n }\n\n return request;\n },\n\n interpretResponse(result, bidRequests, requestedBidders) {\n const bids = [];\n\n if (result.status === 'OK' || result.status === 'no_cookie') {\n if (result.bidder_status) {\n result.bidder_status.forEach(bidder => {\n if (bidder.no_cookie) {\n doBidderSync(bidder.usersync.type, bidder.usersync.url, bidder.bidder);\n }\n });\n }\n\n // do client-side syncs if available\n requestedBidders.forEach(bidder => {\n let clientAdapter = adaptermanager.getBidAdapter(bidder);\n if (clientAdapter && clientAdapter.registerSyncs) {\n clientAdapter.registerSyncs([]);\n }\n });\n\n if (result.bids) {\n result.bids.forEach(bidObj => {\n const bidRequest = utils.getBidRequest(bidObj.bid_id, bidRequests);\n const cpm = bidObj.price;\n const status = cpm !== 0 ? STATUS.GOOD : STATUS.NO_BID;\n let bidObject = bidfactory.createBid(status, bidRequest);\n\n bidObject.source = TYPE;\n bidObject.creative_id = bidObj.creative_id;\n bidObject.bidderCode = bidObj.bidder;\n bidObject.cpm = cpm;\n if (bidObj.cache_id) {\n bidObject.cache_id = bidObj.cache_id;\n }\n if (bidObj.cache_url) {\n bidObject.cache_url = bidObj.cache_url;\n }\n // From ORTB see section 4.2.3: adm Optional means of conveying ad markup in case the bid wins; supersedes the win notice if markup is included in both.\n if (bidObj.media_type === VIDEO) {\n bidObject.mediaType = VIDEO;\n if (bidObj.adm) {\n bidObject.vastXml = bidObj.adm;\n }\n if (bidObj.nurl) {\n bidObject.vastUrl = bidObj.nurl;\n }\n // when video bid is already cached by Prebid Server, videoCacheKey and vastUrl should be provided properly\n if (bidObj.cache_id && bidObj.cache_url) {\n bidObject.videoCacheKey = bidObj.cache_id;\n bidObject.vastUrl = bidObj.cache_url;\n }\n } else {\n if (bidObj.adm && bidObj.nurl) {\n bidObject.ad = bidObj.adm;\n bidObject.ad += utils.createTrackPixelHtml(decodeURIComponent(bidObj.nurl));\n } else if (bidObj.adm) {\n bidObject.ad = bidObj.adm;\n } else if (bidObj.nurl) {\n bidObject.adUrl = bidObj.nurl;\n }\n }\n\n bidObject.width = bidObj.width;\n bidObject.height = bidObj.height;\n bidObject.adserverTargeting = bidObj.ad_server_targeting;\n if (bidObj.deal_id) {\n bidObject.dealId = bidObj.deal_id;\n }\n bidObject.requestId = bidObj.bid_id;\n bidObject.creativeId = bidObj.creative_id;\n\n // TODO: Remove when prebid-server returns ttl, currency and netRevenue\n bidObject.ttl = (bidObj.ttl) ? bidObj.ttl : DEFAULT_S2S_TTL;\n bidObject.currency = (bidObj.currency) ? bidObj.currency : DEFAULT_S2S_CURRENCY;\n bidObject.netRevenue = (bidObj.netRevenue) ? bidObj.netRevenue : DEFAULT_S2S_NETREVENUE;\n\n if (result.burl) { bidObject.burl = result.burl; }\n\n bids.push({ adUnit: bidObj.code, bid: bidObject });\n });\n }\n }\n\n return bids;\n }\n};\n\n/*\n * Protocol spec for OpenRTB endpoint\n * e.g., https:///v1/openrtb2/auction\n */\nconst OPEN_RTB_PROTOCOL = {\n\n bidMap: {},\n\n buildRequest(s2sBidRequest, adUnits) {\n let imps = [];\n\n // transform ad unit into array of OpenRTB impression objects\n adUnits.forEach(adUnit => {\n // OpenRTB response contains the adunit code and bidder name. These are\n // combined to create a unique key for each bid since an id isn't returned\n adUnit.bids.forEach(bid => {\n const key = `${adUnit.code}${bid.bidder}`;\n this.bidMap[key] = bid;\n });\n\n let banner;\n // default to banner if mediaTypes isn't defined\n if (utils.isEmpty(adUnit.mediaTypes)) {\n const sizeObjects = adUnit.sizes.map(size => ({ w: size.w, h: size.h }));\n banner = {format: sizeObjects};\n }\n\n const bannerParams = utils.deepAccess(adUnit, 'mediaTypes.banner');\n if (bannerParams && bannerParams.sizes) {\n const sizes = utils.parseSizesInput(bannerParams.sizes);\n\n // get banner sizes in form [{ w: , h: }, ...]\n const format = sizes.map(size => {\n const [ width, height ] = size.split('x');\n const w = parseInt(width, 10);\n const h = parseInt(height, 10);\n return { w, h };\n });\n\n banner = {format};\n }\n\n let video;\n const videoParams = utils.deepAccess(adUnit, 'mediaTypes.video');\n if (!utils.isEmpty(videoParams)) {\n video = videoParams;\n }\n\n // get bidder params in form { : {...params} }\n const ext = adUnit.bids.reduce((acc, bid) => {\n acc[bid.bidder] = bid.params;\n return acc;\n }, {});\n\n const imp = { id: adUnit.code, ext, secure: _s2sConfig.secure };\n\n if (banner) { imp.banner = banner; }\n if (video) { imp.video = video; }\n\n imps.push(imp);\n });\n\n const request = {\n id: s2sBidRequest.tid,\n source: {tid: s2sBidRequest.tid},\n tmax: _s2sConfig.timeout,\n imp: imps,\n test: getConfig('debug') ? 1 : 0,\n };\n\n _appendSiteAppDevice(request);\n\n const digiTrust = _getDigiTrustQueryParams();\n if (digiTrust) {\n request.user = { ext: { digitrust: digiTrust } };\n }\n\n return request;\n },\n\n interpretResponse(response, bidRequests, requestedBidders) {\n const bids = [];\n\n if (response.seatbid) {\n // a seatbid object contains a `bid` array and a `seat` string\n response.seatbid.forEach(seatbid => {\n (seatbid.bid || []).forEach(bid => {\n const bidRequest = utils.getBidRequest(\n this.bidMap[`${bid.impid}${seatbid.seat}`],\n bidRequests\n );\n\n const cpm = bid.price;\n const status = cpm !== 0 ? STATUS.GOOD : STATUS.NO_BID;\n let bidObject = bidfactory.createBid(status, bidRequest);\n\n bidObject.source = TYPE;\n bidObject.bidderCode = seatbid.seat;\n bidObject.cpm = cpm;\n\n if (utils.deepAccess(bid, 'ext.prebid.type') === VIDEO) {\n bidObject.mediaType = VIDEO;\n if (bid.adm) { bidObject.vastXml = bid.adm; }\n if (bid.nurl) { bidObject.vastUrl = bid.nurl; }\n } else { // banner\n if (bid.adm && bid.nurl) {\n bidObject.ad = bid.adm;\n bidObject.ad += utils.createTrackPixelHtml(decodeURIComponent(bid.nurl));\n } else if (bid.adm) {\n bidObject.ad = bid.adm;\n } else if (bid.nurl) {\n bidObject.adUrl = bid.nurl;\n }\n }\n\n bidObject.width = bid.w;\n bidObject.height = bid.h;\n if (bid.dealid) { bidObject.dealId = bid.dealid; }\n bidObject.requestId = bid.id;\n bidObject.creative_id = bid.crid;\n bidObject.creativeId = bid.crid;\n if (bid.burl) { bidObject.burl = bid.burl; }\n\n // TODO: Remove when prebid-server returns ttl, currency and netRevenue\n bidObject.ttl = (bid.ttl) ? bid.ttl : DEFAULT_S2S_TTL;\n bidObject.currency = (bid.currency) ? bid.currency : DEFAULT_S2S_CURRENCY;\n bidObject.netRevenue = (bid.netRevenue) ? bid.netRevenue : DEFAULT_S2S_NETREVENUE;\n\n bids.push({ adUnit: bid.impid, bid: bidObject });\n });\n });\n }\n\n return bids;\n }\n};\n\n/*\n * Returns the required protocol adapter to communicate with the configured\n * endpoint. The adapter is an object containing `buildRequest` and\n * `interpretResponse` functions.\n *\n * Usage:\n * // build JSON payload to send to server\n * const request = protocol().buildRequest(s2sBidRequest, adUnits);\n *\n * // turn server response into bid object array\n * const bids = protocol().interpretResponse(response, bidRequests, requestedBidders);\n */\nconst protocolAdapter = () => {\n const OPEN_RTB_PATH = 'openrtb2/auction';\n\n const endpoint = (_s2sConfig && _s2sConfig.endpoint) || '';\n const isOpenRtb = ~endpoint.indexOf(OPEN_RTB_PATH);\n\n return isOpenRtb ? OPEN_RTB_PROTOCOL : LEGACY_PROTOCOL;\n};\n\n/**\n * Bidder adapter for Prebid Server\n */\nexport function PrebidServer() {\n const baseAdapter = new Adapter('prebidServer');\n\n /* Prebid executes this function when the page asks to send out bid requests */\n baseAdapter.callBids = function(s2sBidRequest, bidRequests, addBidResponse, done, ajax) {\n const adUnits = utils.deepClone(s2sBidRequest.ad_units);\n\n convertTypes(adUnits);\n\n // at this point ad units should have a size array either directly or mapped so filter for that\n const adUnitsWithSizes = adUnits.filter(unit => unit.sizes && unit.sizes.length);\n\n // in case config.bidders contains invalid bidders, we only process those we sent requests for\n const requestedBidders = adUnitsWithSizes\n .map(adUnit => adUnit.bids.map(bid => bid.bidder).filter(utils.uniques))\n .reduce(utils.flatten)\n .filter(utils.uniques);\n\n const request = protocolAdapter().buildRequest(s2sBidRequest, adUnitsWithSizes);\n const requestJson = JSON.stringify(request);\n\n ajax(\n _s2sConfig.endpoint,\n response => handleResponse(response, requestedBidders, bidRequests, addBidResponse, done),\n requestJson,\n { contentType: 'text/plain', withCredentials: true }\n );\n };\n\n /* Notify Prebid of bid responses so bids can get in the auction */\n function handleResponse(response, requestedBidders, bidRequests, addBidResponse, done) {\n let result;\n\n try {\n result = JSON.parse(response);\n\n const bids = protocolAdapter().interpretResponse(\n result,\n bidRequests,\n requestedBidders\n );\n\n bids.forEach(({adUnit, bid}) => {\n if (isValid(adUnit, bid, bidRequests)) {\n addBidResponse(adUnit, bid);\n }\n });\n\n if (result.status === 'no_cookie' && _s2sConfig.cookieSet && typeof _s2sConfig.cookieSetUrl === 'string') {\n // cookie sync\n cookieSet(_s2sConfig.cookieSetUrl);\n }\n } catch (error) {\n utils.logError(error);\n }\n\n if (!result || (result.status && includes(result.status, 'Error'))) {\n utils.logError('error parsing response: ', result.status);\n }\n\n done();\n }\n\n return Object.assign(this, {\n callBids: baseAdapter.callBids,\n setBidderCode: baseAdapter.setBidderCode,\n type: TYPE\n });\n}\n\nadaptermanager.registerBidAdapter(new PrebidServer(), 'prebidServer');\n\n\n\n// WEBPACK FOOTER //\n// ./modules/prebidServerBidAdapter.js","import * as utils from './utils';\nimport adLoader from './adloader';\n\nconst cookie = exports;\n\ncookie.cookieSet = function(cookieSetUrl) {\n if (!utils.isSafariBrowser()) {\n return;\n }\n adLoader.loadScript(cookieSetUrl, null, true);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/cookie.js","/**\n * This modules adds Publisher Common ID support to prebid.js. It's a simple numeric id\n * stored in the page's domain. When the module is included, an id is generated if needed,\n * persisted as a cookie, and automatically appended to all the bidRequest as bid.crumbs.pubcid.\n */\nimport * as utils from 'src/utils'\nimport { config } from 'src/config';\n\nconst COOKIE_NAME = '_pubcid';\nconst DEFAULT_EXPIRES = 2628000; // 5-year worth of minutes\nconst PUB_COMMON = 'PublisherCommonId';\n\nvar pubcidEnabled = true;\nvar interval = DEFAULT_EXPIRES;\n\nexport function isPubcidEnabled() { return pubcidEnabled; }\nexport function getExpInterval() { return interval; }\n\n/**\n * Decorate ad units with pubcid. This hook function is called before the\n * real pbjs.requestBids is invoked, and can modify its parameter. The cookie is\n * not updated until this function is called.\n * @param {Object} config This is the same parameter as pbjs.requestBids, and config.adUnits will be updated.\n * @param {function} next The next function in the chain\n */\n\nexport function requestBidHook(config, next) {\n let adUnits = config.adUnits || pbjs.adUnits;\n let pubcid = null;\n\n // Pass control to the next function if not enabled\n if (!pubcidEnabled) {\n return next.apply(this, arguments);\n }\n\n if (typeof window[PUB_COMMON] === 'object') {\n // If the page includes its own pubcid object, then use that instead.\n pubcid = window[PUB_COMMON].getId();\n utils.logMessage(PUB_COMMON + ': pubcid = ' + pubcid);\n } else {\n // Otherwise get the existing cookie or create a new id\n pubcid = getCookie(COOKIE_NAME) || utils.generateUUID();\n\n // Update the cookie with the latest expiration date\n setCookie(COOKIE_NAME, pubcid, interval);\n utils.logMessage('pbjs: pubcid = ' + pubcid);\n }\n\n // Append pubcid to each bid object, which will be incorporated\n // into bid requests later.\n if (adUnits && pubcid) {\n adUnits.forEach((unit) => {\n unit.bids.forEach((bid) => {\n Object.assign(bid, {crumbs: {pubcid}});\n });\n });\n }\n return next.apply(this, arguments);\n}\n\n// Helper to set a cookie\nexport function setCookie(name, value, expires) {\n let expTime = new Date();\n expTime.setTime(expTime.getTime() + expires * 1000 * 60);\n window.document.cookie = name + '=' + encodeURIComponent(value) + ';path=/;expires=' +\n expTime.toGMTString();\n}\n\n// Helper to read a cookie\nexport function getCookie(name) {\n let m = window.document.cookie.match('(^|;)\\\\s*' + name + '\\\\s*=\\\\s*([^;]*)\\\\s*(;|$)');\n return m ? decodeURIComponent(m[2]) : null;\n}\n\n/**\n * Configuration function\n * @param {boolean} enable Enable or disable pubcid. By default the module is enabled.\n * @param {number} expInterval Expiration interval of the cookie in minutes.\n */\n\nexport function setConfig({ enable = true, expInterval = DEFAULT_EXPIRES } = {}) {\n pubcidEnabled = enable;\n interval = parseInt(expInterval, 10);\n if (isNaN(interval)) {\n interval = DEFAULT_EXPIRES;\n }\n}\n\n/**\n * Initialize module by 1) subscribe to configuration changes and 2) register hook\n */\nexport function initPubcid() {\n config.getConfig('pubcid', config => setConfig(config.pubcid));\n\n if (utils.cookiesAreEnabled()) {\n pbjs.requestBids.addHook(requestBidHook);\n }\n}\n\ninitPubcid();\n\n\n\n// WEBPACK FOOTER //\n// ./modules/pubCommonId.js","import * as utils from 'src/utils';\nimport { registerBidder } from 'src/adapters/bidderFactory';\nconst constants = require('src/constants.json');\n\nconst BIDDER_CODE = 'pubmatic';\nconst ENDPOINT = '//hbopenbid.pubmatic.com/translator?source=prebid-client';\nconst USYNCURL = '//ads.pubmatic.com/AdServer/js/showad.js#PIX&kdntuid=1&p=';\nconst CURRENCY = 'USD';\nconst AUCTION_TYPE = 1;\nconst UNDEFINED = undefined;\nconst CUSTOM_PARAMS = {\n 'kadpageurl': '', // Custom page url\n 'gender': '', // User gender\n 'yob': '', // User year of birth\n 'lat': '', // User location - Latitude\n 'lon': '', // User Location - Longitude\n 'wiid': '', // OpenWrap Wrapper Impression ID\n 'profId': '', // OpenWrap Legacy: Profile ID\n 'verId': '' // OpenWrap Legacy: version ID\n};\nconst NET_REVENUE = false;\n\nlet publisherId = 0;\n\nfunction _getDomainFromURL(url) {\n let anchor = document.createElement('a');\n anchor.href = url;\n return anchor.hostname;\n}\n\nfunction _parseSlotParam(paramName, paramValue) {\n if (!utils.isStr(paramValue)) {\n paramValue && utils.logWarn('PubMatic: Ignoring param key: ' + paramName + ', expects string-value, found ' + typeof paramValue);\n return UNDEFINED;\n }\n\n switch (paramName) {\n case 'pmzoneid':\n return paramValue.split(',').slice(0, 50).map(id => id.trim()).join();\n case 'kadfloor':\n return parseFloat(paramValue) || UNDEFINED;\n case 'lat':\n return parseFloat(paramValue) || UNDEFINED;\n case 'lon':\n return parseFloat(paramValue) || UNDEFINED;\n case 'yob':\n return parseInt(paramValue) || UNDEFINED;\n default:\n return paramValue;\n }\n}\n\nfunction _cleanSlot(slotName) {\n if (utils.isStr(slotName)) {\n return slotName.replace(/^\\s+/g, '').replace(/\\s+$/g, '');\n }\n return '';\n}\n\nfunction _parseAdSlot(bid) {\n bid.params.adUnit = '';\n bid.params.adUnitIndex = '0';\n bid.params.width = 0;\n bid.params.height = 0;\n\n bid.params.adSlot = _cleanSlot(bid.params.adSlot);\n\n var slot = bid.params.adSlot;\n var splits = slot.split(':');\n\n slot = splits[0];\n if (splits.length == 2) {\n bid.params.adUnitIndex = splits[1];\n }\n splits = slot.split('@');\n if (splits.length != 2) {\n utils.logWarn('AdSlot Error: adSlot not in required format');\n return;\n }\n bid.params.adUnit = splits[0];\n splits = splits[1].split('x');\n if (splits.length != 2) {\n utils.logWarn('AdSlot Error: adSlot not in required format');\n return;\n }\n bid.params.width = parseInt(splits[0]);\n bid.params.height = parseInt(splits[1]);\n}\n\nfunction _initConf() {\n var conf = {};\n conf.pageURL = utils.getTopWindowUrl();\n conf.refURL = utils.getTopWindowReferrer();\n return conf;\n}\n\nfunction _handleCustomParams(params, conf) {\n if (!conf.kadpageurl) {\n conf.kadpageurl = conf.pageURL;\n }\n\n var key, value, entry;\n for (key in CUSTOM_PARAMS) {\n if (CUSTOM_PARAMS.hasOwnProperty(key)) {\n value = params[key];\n if (value) {\n entry = CUSTOM_PARAMS[key];\n\n if (typeof entry === 'object') {\n // will be used in future when we want to process a custom param before using\n // 'keyname': {f: function() {}}\n value = entry.f(value, conf);\n }\n\n if (utils.isStr(value)) {\n conf[key] = value;\n } else {\n utils.logWarn('PubMatic: Ignoring param : ' + key + ' with value : ' + CUSTOM_PARAMS[key] + ', expects string-value, found ' + typeof value);\n }\n }\n }\n }\n return conf;\n}\n\nfunction _createOrtbTemplate(conf) {\n return {\n id: '' + new Date().getTime(),\n at: AUCTION_TYPE,\n cur: [CURRENCY],\n imp: [],\n site: {\n page: conf.pageURL,\n ref: conf.refURL,\n publisher: {}\n },\n device: {\n ua: navigator.userAgent,\n js: 1,\n dnt: (navigator.doNotTrack == 'yes' || navigator.doNotTrack == '1' || navigator.msDoNotTrack == '1') ? 1 : 0,\n h: screen.height,\n w: screen.width,\n language: navigator.language\n },\n user: {},\n ext: {}\n };\n}\n\nfunction _createImpressionObject(bid, conf) {\n return {\n id: bid.bidId,\n tagid: bid.params.adUnit,\n bidfloor: _parseSlotParam('kadfloor', bid.params.kadfloor),\n secure: window.location.protocol === 'https:' ? 1 : 0,\n banner: {\n pos: 0,\n w: bid.params.width,\n h: bid.params.height,\n topframe: utils.inIframe() ? 0 : 1,\n },\n ext: {\n pmZoneId: _parseSlotParam('pmzoneid', bid.params.pmzoneid)\n }\n };\n}\n\nexport const spec = {\n code: BIDDER_CODE,\n\n /**\n * Determines whether or not the given bid request is valid. Valid bid request must have placementId and hbid\n *\n * @param {BidRequest} bid The bid params to validate.\n * @return boolean True if this is a valid bid, and false otherwise.\n */\n isBidRequestValid: bid => {\n if (bid && bid.params) {\n if (!utils.isStr(bid.params.publisherId)) {\n utils.logWarn('PubMatic Error: publisherId is mandatory and cannot be numeric. Call to OpenBid will not be sent.');\n return false;\n }\n if (!utils.isStr(bid.params.adSlot)) {\n utils.logWarn('PubMatic: adSlotId is mandatory and cannot be numeric. Call to OpenBid will not be sent.');\n return false;\n }\n return true;\n }\n return false;\n },\n\n /**\n * Make a server request from the list of BidRequests.\n *\n * @param {validBidRequests[]} - an array of bids\n * @return ServerRequest Info describing the request to the server.\n */\n buildRequests: validBidRequests => {\n var conf = _initConf();\n var payload = _createOrtbTemplate(conf);\n validBidRequests.forEach(bid => {\n _parseAdSlot(bid);\n if (!(bid.params.adSlot && bid.params.adUnit && bid.params.adUnitIndex && bid.params.width && bid.params.height)) {\n utils.logWarn('PubMatic: Skipping the non-standard adslot:', bid.params.adSlot, bid);\n return;\n }\n conf.pubId = conf.pubId || bid.params.publisherId;\n conf = _handleCustomParams(bid.params, conf);\n conf.transactionId = bid.transactionId;\n payload.imp.push(_createImpressionObject(bid, conf));\n });\n\n if (payload.imp.length == 0) {\n return;\n }\n\n payload.site.publisher.id = conf.pubId.trim();\n publisherId = conf.pubId.trim();\n payload.ext.wrapper = {};\n payload.ext.wrapper.profile = conf.profId || UNDEFINED;\n payload.ext.wrapper.version = conf.verId || UNDEFINED;\n payload.ext.wrapper.wiid = conf.wiid || UNDEFINED;\n payload.ext.wrapper.wv = constants.REPO_AND_VERSION;\n payload.ext.wrapper.transactionId = conf.transactionId;\n payload.ext.wrapper.wp = 'pbjs';\n payload.user.gender = (conf.gender ? conf.gender.trim() : UNDEFINED);\n payload.user.geo = {};\n payload.user.geo.lat = _parseSlotParam('lat', conf.lat);\n payload.user.geo.lon = _parseSlotParam('lon', conf.lon);\n payload.user.yob = _parseSlotParam('yob', conf.yob);\n payload.device.geo = {};\n payload.device.geo.lat = _parseSlotParam('lat', conf.lat);\n payload.device.geo.lon = _parseSlotParam('lon', conf.lon);\n payload.site.page = conf.kadpageurl.trim() || payload.site.page.trim();\n payload.site.domain = _getDomainFromURL(payload.site.page);\n return {\n method: 'POST',\n url: ENDPOINT,\n data: JSON.stringify(payload)\n };\n },\n\n /**\n * Unpack the response from the server into a list of bids.\n *\n * @param {*} response A successful response from the server.\n * @return {Bid[]} An array of bids which were nested inside the server.\n */\n interpretResponse: (response, request) => {\n const bidResponses = [];\n try {\n if (response.body && response.body.seatbid && response.body.seatbid[0] && response.body.seatbid[0].bid) {\n response.body.seatbid[0].bid.forEach(bid => {\n let newBid = {\n requestId: bid.impid,\n cpm: (parseFloat(bid.price) || 0).toFixed(2),\n width: bid.w,\n height: bid.h,\n creativeId: bid.crid || bid.id,\n dealId: bid.dealid,\n currency: CURRENCY,\n netRevenue: NET_REVENUE,\n ttl: 300,\n referrer: utils.getTopWindowUrl(),\n ad: bid.adm\n };\n bidResponses.push(newBid);\n });\n }\n } catch (error) {\n utils.logError(error);\n }\n return bidResponses;\n },\n\n /**\n * Register User Sync.\n */\n getUserSyncs: syncOptions => {\n if (syncOptions.iframeEnabled) {\n return [{\n type: 'iframe',\n url: USYNCURL + publisherId\n }];\n } else {\n utils.logWarn('PubMatic: Please enable iframe based user sync.');\n }\n }\n};\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/pubmaticBidAdapter.js","import {ajax} from 'src/ajax';\nimport adapter from 'src/AnalyticsAdapter';\nimport adaptermanager from 'src/adaptermanager';\nimport CONSTANTS from 'src/constants.json';\nconst utils = require('src/utils');\n\n/****\n * PubWise.io Analytics\n * Contact: support@pubwise.io\n * Developer: Stephen Johnston\n *\n * For testing:\n *\n pbjs.enableAnalytics({\n provider: 'pubwise',\n options: {\n site: 'test-test-test-test',\n endpoint: 'https://api.pubwise.io/api/v4/event/add/',\n }\n });\n */\n\nconst analyticsType = 'endpoint';\nconst analyticsName = 'PubWise Analytics: ';\nlet defaultUrl = 'https://api.pubwise.io/api/v4/event/default/';\nlet pubwiseVersion = '3.0';\nlet pubwiseSchema = 'AVOCET';\nlet configOptions = {site: '', endpoint: 'https://api.pubwise.io/api/v4/event/default/', debug: ''};\nlet pwAnalyticsEnabled = false;\nlet utmKeys = {utm_source: '', utm_medium: '', utm_campaign: '', utm_term: '', utm_content: ''};\n\nfunction markEnabled() {\n utils.logInfo(`${analyticsName}Enabled`, configOptions);\n pwAnalyticsEnabled = true;\n}\n\nfunction enrichWithMetrics(dataBag) {\n try {\n dataBag['pw_version'] = pubwiseVersion;\n dataBag['pbjs_version'] = pbjs.version;\n dataBag['debug'] = configOptions.debug;\n } catch (e) {\n dataBag['error_metric'] = 1;\n }\n\n return dataBag;\n}\n\nfunction enrichWithUTM(dataBag) {\n let newUtm = false;\n try {\n for (let prop in utmKeys) {\n utmKeys[prop] = utils.getParameterByName(prop);\n if (utmKeys[prop] != '') {\n newUtm = true;\n dataBag[prop] = utmKeys[prop];\n }\n }\n\n if (newUtm === false) {\n for (let prop in utmKeys) {\n let itemValue = localStorage.getItem(`pw-${prop}`);\n if (itemValue.length !== 0) {\n dataBag[prop] = itemValue;\n }\n }\n } else {\n for (let prop in utmKeys) {\n localStorage.setItem(`pw-${prop}`, utmKeys[prop]);\n }\n }\n } catch (e) {\n utils.logInfo(`${analyticsName}Error`, e);\n dataBag['error_utm'] = 1;\n }\n return dataBag;\n}\n\nfunction sendEvent(eventType, data) {\n utils.logInfo(`${analyticsName}Event ${eventType} ${pwAnalyticsEnabled}`, data);\n\n // put the typical items in the data bag\n let dataBag = {\n eventType: eventType,\n args: data,\n target_site: configOptions.site,\n pubwiseSchema: pubwiseSchema,\n debug: configOptions.debug ? 1 : 0,\n };\n\n // for certain events, track additional info\n if (eventType == CONSTANTS.EVENTS.AUCTION_INIT) {\n dataBag = enrichWithMetrics(dataBag);\n dataBag = enrichWithUTM(dataBag);\n }\n\n ajax(configOptions.endpoint, (result) => utils.logInfo(`${analyticsName}Result`, result), JSON.stringify(dataBag));\n}\n\nlet pubwiseAnalytics = Object.assign(adapter(\n {\n defaultUrl,\n analyticsType\n }),\n{\n // Override AnalyticsAdapter functions by supplying custom methods\n track({eventType, args}) {\n sendEvent(eventType, args);\n }\n});\n\npubwiseAnalytics.adapterEnableAnalytics = pubwiseAnalytics.enableAnalytics;\n\npubwiseAnalytics.enableAnalytics = function (config) {\n if (config.options.debug === undefined) {\n config.options.debug = utils.debugTurnedOn();\n }\n configOptions = config.options;\n markEnabled();\n pubwiseAnalytics.adapterEnableAnalytics(config);\n};\n\nadaptermanager.registerAnalyticsAdapter({\n adapter: pubwiseAnalytics,\n code: 'pubwise'\n});\n\nexport default pubwiseAnalytics;\n\n\n\n// WEBPACK FOOTER //\n// ./modules/pubwiseAnalyticsAdapter.js","/**\n * pulsepoint.js - Analytics Adapter for PulsePoint\n */\n\nimport adapter from 'src/AnalyticsAdapter';\nimport adaptermanager from 'src/adaptermanager';\n\nvar pulsepointAdapter = adapter({\n global: 'PulsePointPrebidAnalytics',\n handler: 'on',\n analyticsType: 'bundle'\n});\n\nadaptermanager.registerAnalyticsAdapter({\n adapter: pulsepointAdapter,\n code: 'pulsepoint'\n});\n\nexport default pulsepointAdapter;\n\n\n\n// WEBPACK FOOTER //\n// ./modules/pulsepointAnalyticsAdapter.js","/* eslint dot-notation:0, quote-props:0 */\nimport {logError, getTopWindowLocation} from 'src/utils';\nimport { registerBidder } from 'src/adapters/bidderFactory';\n\nconst NATIVE_DEFAULTS = {\n TITLE_LEN: 100,\n DESCR_LEN: 200,\n SPONSORED_BY_LEN: 50,\n IMG_MIN: 150,\n ICON_MIN: 50,\n};\n\nconst DEFAULT_BID_TTL = 20;\nconst DEFAULT_CURRENCY = 'USD';\nconst DEFAULT_NET_REVENUE = true;\n\n/**\n * PulsePoint Bid Adapter.\n * Contact: ExchangeTeam@pulsepoint.com\n *\n * Aliases - pulseLite and pulsepointLite are supported for backwards compatibility.\n * Formats - Display/Native/Outstream formats supported.\n *\n */\nexport const spec = {\n\n code: 'pulsepoint',\n\n aliases: ['pulseLite', 'pulsepointLite'],\n\n supportedMediaTypes: ['banner', 'native'],\n\n isBidRequestValid: bid => (\n !!(bid && bid.params && bid.params.cp && bid.params.ct)\n ),\n\n buildRequests: bidRequests => {\n const request = {\n id: bidRequests[0].bidderRequestId,\n imp: bidRequests.map(slot => impression(slot)),\n site: site(bidRequests),\n app: app(bidRequests),\n device: device(),\n };\n return {\n method: 'POST',\n url: '//bid.contextweb.com/header/ortb',\n data: JSON.stringify(request),\n };\n },\n\n interpretResponse: (response, request) => (\n bidResponseAvailable(request, response)\n ),\n\n getUserSyncs: syncOptions => {\n if (syncOptions.iframeEnabled) {\n return [{\n type: 'iframe',\n url: '//bh.contextweb.com/visitormatch'\n }];\n } else if (syncOptions.pixelEnabled) {\n return [{\n type: 'image',\n url: '//bh.contextweb.com/visitormatch/prebid'\n }];\n }\n }\n\n};\n\n/**\n * Callback for bids, after the call to PulsePoint completes.\n */\nfunction bidResponseAvailable(bidRequest, bidResponse) {\n const idToImpMap = {};\n const idToBidMap = {};\n bidResponse = bidResponse.body\n // extract the request bids and the response bids, keyed by impr-id\n const ortbRequest = parse(bidRequest.data);\n ortbRequest.imp.forEach(imp => {\n idToImpMap[imp.id] = imp;\n });\n if (bidResponse) {\n bidResponse.seatbid.forEach(seatBid => seatBid.bid.forEach(bid => {\n idToBidMap[bid.impid] = bid;\n }));\n }\n const bids = [];\n Object.keys(idToImpMap).forEach(id => {\n if (idToBidMap[id]) {\n const bid = {\n requestId: id,\n cpm: idToBidMap[id].price,\n creative_id: id,\n creativeId: id,\n adId: id,\n ttl: DEFAULT_BID_TTL,\n netRevenue: DEFAULT_NET_REVENUE,\n currency: DEFAULT_CURRENCY\n };\n if (idToImpMap[id]['native']) {\n bid['native'] = nativeResponse(idToImpMap[id], idToBidMap[id]);\n bid.mediaType = 'native';\n } else {\n bid.ad = idToBidMap[id].adm;\n bid.width = idToImpMap[id].banner.w;\n bid.height = idToImpMap[id].banner.h;\n }\n applyExt(bid, idToBidMap[id])\n bids.push(bid);\n }\n });\n return bids;\n}\n\nfunction applyExt(bid, ortbBid) {\n if (ortbBid && ortbBid.ext) {\n bid.ttl = ortbBid.ext.ttl || bid.ttl;\n bid.currency = ortbBid.ext.currency || bid.currency;\n bid.netRevenue = ortbBid.ext.netRevenue != null ? ortbBid.ext.netRevenue : bid.netRevenue;\n }\n}\n\n/**\n * Produces an OpenRTBImpression from a slot config.\n */\nfunction impression(slot) {\n return {\n id: slot.bidId,\n banner: banner(slot),\n 'native': nativeImpression(slot),\n tagid: slot.params.ct.toString(),\n };\n}\n\n/**\n * Produces an OpenRTB Banner object for the slot given.\n */\nfunction banner(slot) {\n const size = adSize(slot);\n return slot.nativeParams ? null : {\n w: size[0],\n h: size[1],\n };\n}\n\n/**\n * Produces an OpenRTB Native object for the slot given.\n */\nfunction nativeImpression(slot) {\n if (slot.nativeParams) {\n const assets = [];\n addAsset(assets, titleAsset(assets.length + 1, slot.nativeParams.title, NATIVE_DEFAULTS.TITLE_LEN));\n addAsset(assets, dataAsset(assets.length + 1, slot.nativeParams.body, 2, NATIVE_DEFAULTS.DESCR_LEN));\n addAsset(assets, dataAsset(assets.length + 1, slot.nativeParams.sponsoredBy, 1, NATIVE_DEFAULTS.SPONSORED_BY_LEN));\n addAsset(assets, imageAsset(assets.length + 1, slot.nativeParams.icon, 1, NATIVE_DEFAULTS.ICON_MIN, NATIVE_DEFAULTS.ICON_MIN));\n addAsset(assets, imageAsset(assets.length + 1, slot.nativeParams.image, 3, NATIVE_DEFAULTS.IMG_MIN, NATIVE_DEFAULTS.IMG_MIN));\n return {\n request: JSON.stringify({ assets }),\n ver: '1.1',\n };\n }\n return null;\n}\n\n/**\n * Helper method to add an asset to the assets list.\n */\nfunction addAsset(assets, asset) {\n if (asset) {\n assets.push(asset);\n }\n}\n\n/**\n * Produces a Native Title asset for the configuration given.\n */\nfunction titleAsset(id, params, defaultLen) {\n if (params) {\n return {\n id,\n required: params.required ? 1 : 0,\n title: {\n len: params.len || defaultLen,\n },\n };\n }\n return null;\n}\n\n/**\n * Produces a Native Image asset for the configuration given.\n */\nfunction imageAsset(id, params, type, defaultMinWidth, defaultMinHeight) {\n return params ? {\n id,\n required: params.required ? 1 : 0,\n img: {\n type,\n wmin: params.wmin || defaultMinWidth,\n hmin: params.hmin || defaultMinHeight,\n }\n } : null;\n}\n\n/**\n * Produces a Native Data asset for the configuration given.\n */\nfunction dataAsset(id, params, type, defaultLen) {\n return params ? {\n id,\n required: params.required ? 1 : 0,\n data: {\n type,\n len: params.len || defaultLen,\n }\n } : null;\n}\n\n/**\n * Produces an OpenRTB site object.\n */\nfunction site(bidderRequest) {\n const pubId = bidderRequest && bidderRequest.length > 0 ? bidderRequest[0].params.cp : '0';\n const appParams = bidderRequest[0].params.app;\n if (!appParams) {\n return {\n publisher: {\n id: pubId.toString(),\n },\n ref: referrer(),\n page: getTopWindowLocation().href,\n }\n }\n return null;\n}\n\n/**\n * Produces an OpenRTB App object.\n */\nfunction app(bidderRequest) {\n const pubId = bidderRequest && bidderRequest.length > 0 ? bidderRequest[0].params.cp : '0';\n const appParams = bidderRequest[0].params.app;\n if (appParams) {\n return {\n publisher: {\n id: pubId.toString(),\n },\n bundle: appParams.bundle,\n storeurl: appParams.storeUrl,\n domain: appParams.domain,\n }\n }\n return null;\n}\n\n/**\n * Attempts to capture the referrer url.\n */\nfunction referrer() {\n try {\n return window.top.document.referrer;\n } catch (e) {\n return document.referrer;\n }\n}\n\n/**\n * Produces an OpenRTB Device object.\n */\nfunction device() {\n return {\n ua: navigator.userAgent,\n language: (navigator.language || navigator.browserLanguage || navigator.userLanguage || navigator.systemLanguage),\n };\n}\n\n/**\n * Safely parses the input given. Returns null on\n * parsing failure.\n */\nfunction parse(rawResponse) {\n try {\n if (rawResponse) {\n return JSON.parse(rawResponse);\n }\n } catch (ex) {\n logError('pulsepointLite.safeParse', 'ERROR', ex);\n }\n return null;\n}\n\n/**\n * Determines the AdSize for the slot.\n */\nfunction adSize(slot) {\n if (slot.params.cf) {\n const size = slot.params.cf.toUpperCase().split('X');\n const width = parseInt(slot.params.cw || size[0], 10);\n const height = parseInt(slot.params.ch || size[1], 10);\n return [width, height];\n }\n return [1, 1];\n}\n\n/**\n * Parses the native response from the Bid given.\n */\nfunction nativeResponse(imp, bid) {\n if (imp['native']) {\n const nativeAd = parse(bid.adm);\n const keys = {};\n if (nativeAd && nativeAd['native'] && nativeAd['native'].assets) {\n nativeAd['native'].assets.forEach(asset => {\n keys.title = asset.title ? asset.title.text : keys.title;\n keys.body = asset.data && asset.data.type === 2 ? asset.data.value : keys.body;\n keys.sponsoredBy = asset.data && asset.data.type === 1 ? asset.data.value : keys.sponsoredBy;\n keys.image = asset.img && asset.img.type === 3 ? asset.img.url : keys.image;\n keys.icon = asset.img && asset.img.type === 1 ? asset.img.url : keys.icon;\n });\n if (nativeAd['native'].link) {\n keys.clickUrl = encodeURIComponent(nativeAd['native'].link.url);\n }\n keys.impressionTrackers = nativeAd['native'].imptrackers;\n return keys;\n }\n }\n return null;\n}\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/pulsepointBidAdapter.js","import * as utils from 'src/utils';\nimport { registerBidder } from 'src/adapters/bidderFactory';\n\nconst BIDDER_CODE = 'quantcast';\nconst DEFAULT_BID_FLOOR = 0.0000000001;\n\nexport const QUANTCAST_CALLBACK_URL = 'global.qc.rtb.quantserve.com';\nexport const QUANTCAST_CALLBACK_URL_TEST = 's2s-canary.quantserve.com';\nexport const QUANTCAST_NET_REVENUE = true;\nexport const QUANTCAST_TEST_PUBLISHER = 'test-publisher';\nexport const QUANTCAST_TTL = 4;\n\n/**\n * The documentation for Prebid.js Adapter 1.0 can be found at link below,\n * http://prebid.org/dev-docs/bidder-adapter-1.html\n */\nexport const spec = {\n code: BIDDER_CODE,\n\n /**\n * Verify the `AdUnits.bids` response with `true` for valid request and `false`\n * for invalid request.\n *\n * @param {object} bid\n * @return boolean `true` is this is a valid bid, and `false` otherwise\n */\n isBidRequestValid(bid) {\n if (!bid) {\n return false;\n }\n\n if (bid.mediaType === 'video') {\n return false;\n }\n\n return true;\n },\n\n /**\n * Make a server request when the page asks Prebid.js for bids from a list of\n * `BidRequests`.\n *\n * @param {BidRequest[]} bidRequests A non-empty list of bid requests which should be send to Quantcast server\n * @return ServerRequest information describing the request to the server.\n */\n buildRequests(bidRequests) {\n const bids = bidRequests || [];\n\n const referrer = utils.getTopWindowUrl();\n const loc = utils.getTopWindowLocation();\n const domain = loc.hostname;\n\n let publisherTagURL;\n let publisherTagURLTest;\n\n // Switch the callback URL to Quantcast Canary Endpoint for testing purpose\n // `//` is not used because we have different port setting at our end\n switch (window.location.protocol) {\n case 'https:':\n publisherTagURL = `https://${QUANTCAST_CALLBACK_URL}:8443/qchb`;\n publisherTagURLTest = `https://${QUANTCAST_CALLBACK_URL_TEST}:8443/qchb`;\n break;\n default:\n publisherTagURL = `http://${QUANTCAST_CALLBACK_URL}:8080/qchb`;\n publisherTagURLTest = `http://${QUANTCAST_CALLBACK_URL_TEST}:8080/qchb`;\n }\n\n const bidRequestsList = bids.map(bid => {\n const bidSizes = [];\n\n bid.sizes.forEach(size => {\n bidSizes.push({\n width: size[0],\n height: size[1]\n });\n });\n\n // Request Data Format can be found at https://wiki.corp.qc/display/adinf/QCX\n const requestData = {\n publisherId: bid.params.publisherId,\n requestId: bid.bidId,\n imp: [\n {\n banner: {\n battr: bid.params.battr,\n sizes: bidSizes\n },\n placementCode: bid.placementCode,\n bidFloor: bid.params.bidFloor || DEFAULT_BID_FLOOR\n }\n ],\n site: {\n page: loc.href,\n referrer,\n domain\n },\n bidId: bid.bidId\n };\n\n const data = JSON.stringify(requestData);\n\n const url =\n bid.params.publisherId === QUANTCAST_TEST_PUBLISHER\n ? publisherTagURLTest\n : publisherTagURL;\n\n return {\n data,\n method: 'POST',\n url\n };\n });\n\n return bidRequestsList;\n },\n\n /**\n * Function get called when the browser has received the response from Quantcast server.\n * The function parse the response and create a `bidResponse` object containing one/more bids.\n * Returns an empty array if no valid bids\n *\n * Response Data Format can be found at https://wiki.corp.qc/display/adinf/QCX\n *\n * @param {*} serverResponse A successful response from Quantcast server.\n * @return {Bid[]} An array of bids which were nested inside the server.\n *\n */\n interpretResponse(serverResponse) {\n if (serverResponse === undefined) {\n utils.logError('Server Response is undefined');\n return [];\n }\n\n const response = serverResponse['body'];\n\n if (\n response === undefined ||\n !response.hasOwnProperty('bids') ||\n utils.isEmpty(response.bids)\n ) {\n utils.logError('Sub-optimal JSON received from Quantcast server');\n return [];\n }\n\n const bidResponsesList = response.bids.map(bid => {\n const { ad, cpm, width, height, creativeId, currency } = bid;\n\n return {\n requestId: response.requestId,\n cpm,\n width,\n height,\n ad,\n ttl: QUANTCAST_TTL,\n creativeId,\n netRevenue: QUANTCAST_NET_REVENUE,\n currency\n };\n });\n\n return bidResponsesList;\n }\n};\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/quantcastBidAdapter.js","import * as utils from 'src/utils';\nimport { BANNER, NATIVE } from 'src/mediaTypes';\nimport {registerBidder} from 'src/adapters/bidderFactory';\n\nconst BIDDER_CODE = 'quantum';\nconst ENDPOINT_URL = '//s.sspqns.com/hb';\nexport const spec = {\n code: BIDDER_CODE,\n aliases: ['quantx', 'qtx'], // short code\n supportedMediaTypes: [BANNER, NATIVE],\n\n /**\n * Determines whether or not the given bid request is valid.\n *\n * @param {BidRequest} bid The bid params to validate.\n * @return boolean True if this is a valid bid, and false otherwise.\n */\n\n isBidRequestValid: function (bid) {\n return !!(bid.params && bid.params.placementId);\n },\n /**\n * Make a server request from the list of BidRequests.\n *\n * @param {validBidRequests[]} - an array of bids\n * @return ServerRequest Info describing the request to the server.\n */\n buildRequests: function (bidRequests) {\n return bidRequests.map(bid => {\n const qtxRequest = {};\n let bidId = '';\n\n const params = bid.params;\n let placementId = params.placementId;\n\n let devEnpoint = false;\n if (params.useDev && params.useDev === '1') {\n devEnpoint = '//sdev.sspqns.com/hb';\n }\n let renderMode = 'native';\n for (let i = 0; i < bid.sizes.length; i++) {\n if (bid.sizes[i][0] > 1 && bid.sizes[i][1] > 1) {\n renderMode = 'banner';\n break;\n }\n }\n\n let mediaType = (bid.mediaType === 'native' || utils.deepAccess(bid, 'mediaTypes.native')) ? 'native' : 'banner';\n\n if (mediaType === 'native') {\n renderMode = 'native';\n }\n\n if (!bidId) {\n bidId = bid.bidId;\n }\n qtxRequest.auid = placementId;\n const url = devEnpoint || ENDPOINT_URL;\n\n return {\n method: 'GET',\n bidId: bidId,\n sizes: bid.sizes,\n mediaType: mediaType,\n renderMode: renderMode,\n url: url,\n 'data': qtxRequest\n };\n });\n },\n /**\n * Unpack the response from the server into a list of bids.\n *\n * @param {ServerResponse} serverResponse A successful response from the server.\n * @return {Bid[]} An array of bids which were nested inside the server.\n */\n interpretResponse: function (serverResponse, bidRequest) {\n const serverBody = serverResponse.body;\n const bidResponses = [];\n let responseCPM;\n let bid = {};\n let id = bidRequest.bidId;\n\n if (serverBody.price && serverBody.price !== 0) {\n responseCPM = parseFloat(serverBody.price);\n\n bid.creativeId = serverBody.creative_id || '0';\n bid.cpm = responseCPM;\n bid.requestId = bidRequest.bidId;\n bid.width = 1;\n bid.height = 1;\n bid.ttl = 200;\n bid.netRevenue = true;\n bid.currency = 'USD';\n\n if (serverBody.native) {\n bid.native = serverBody.native;\n }\n if (serverBody.cobj) {\n bid.cobj = serverBody.cobj;\n }\n\n bid.nurl = serverBody.nurl;\n bid.sync = serverBody.sync;\n if (bidRequest.renderMode && bidRequest.renderMode === 'banner') {\n bid.width = 300;\n bid.height = 225;\n if (serverBody.native) {\n const adAssetsUrl = '//cdn.elasticad.net/native/serve/js/quantx/quantumAd/';\n let assets = serverBody.native.assets;\n let link = serverBody.native.link;\n\n let trackers = [];\n if (serverBody.native.imptrackers) {\n trackers = serverBody.native.imptrackers;\n }\n\n let jstracker = '';\n if (serverBody.native.jstracker) {\n jstracker = serverBody.native.jstracker;\n }\n\n if (serverBody.nurl) {\n trackers.push(serverBody.nurl);\n }\n\n let ad = {};\n ad['trackers'] = trackers;\n ad['jstrackers'] = jstracker;\n\n for (let i = 0; i < assets.length; i++) {\n let asset = assets[i];\n switch (asset['id']) {\n case 1:\n ad['title'] = asset['title']['text'];\n break;\n case 2:\n ad['sponsor_logo'] = asset['img']['url'];\n break;\n case 3:\n ad['content'] = asset['data']['value'];\n break;\n case 4:\n ad['main_image'] = asset['img']['url'];\n break;\n case 6:\n ad['teaser_type'] = 'vast';\n ad['video_url'] = asset['video']['vasttag'];\n break;\n case 10:\n ad['sponsor_name'] = asset['data']['value'];\n break;\n case 2001:\n ad['expanded_content_type'] = 'embed';\n ad['expanded_summary'] = asset['data']['value'];\n break;\n case 2002:\n ad['expanded_content_type'] = 'vast';\n ad['expanded_summary'] = asset['data']['value'];\n break;\n case 2003:\n ad['sponsor_url'] = asset['data']['value'];\n break;\n case 2004: // prism\n ad['content_type'] = 'prism';\n break;\n case 2005: // internal_landing_page\n ad['content_type'] = 'internal_landing_page';\n ad['internal_content_link'] = asset['data']['value'];\n break;\n case 2006: // teaser as vast\n ad['teaser_type'] = 'vast';\n ad['video_url'] = asset['data']['value'];\n break;\n case 2007:\n ad['autoexpand_content_type'] = asset['data']['value'];\n break;\n case 2022: // content page\n ad['content_type'] = 'full_text';\n ad['full_text'] = asset['data']['value'];\n break;\n }\n }\n\n ad['action_url'] = link.url;\n\n if (!ad['sponsor_url']) {\n ad['sponsor_url'] = ad['action_url'];\n }\n\n ad['clicktrackers'] = [];\n if (link.clicktrackers) {\n ad['clicktrackers'] = link.clicktrackers;\n }\n\n ad['main_image'] = '//resize-ssp.elasticad.net/scalecrop-290x130/' + window.btoa(ad['main_image']) + '/external';\n\n bid.ad = '
' +\n '
' +\n '
' +\n ' ' +\n ' ' +\n '
' +\n '

' + ad['title'] + '

' +\n '

' + ad['content'] + ' 

' +\n ' ' +\n '
' +\n '' +\n '' +\n '' +\n '
';\n }\n } else {\n // native\n if (bidRequest.mediaType === 'native') {\n if (serverBody.native) {\n let assets = serverBody.native.assets;\n let link = serverBody.native.link;\n\n let trackers = [];\n if (serverBody.native.imptrackers) {\n trackers = serverBody.native.imptrackers;\n }\n\n if (serverBody.nurl) {\n trackers.push(serverBody.nurl);\n }\n\n let native = {};\n\n for (let i = 0; i < assets.length; i++) {\n let asset = assets[i];\n switch (asset['id']) {\n case 1:\n native.title = asset['title']['text'];\n break;\n case 2:\n native.icon = asset['img'];\n break;\n case 3:\n native.body = asset['data']['value'];\n break;\n case 4:\n native.image = asset['img'];\n break;\n case 10:\n native.sponsoredBy = asset['data']['value'];\n break;\n }\n }\n native.cta = 'read more';\n if (serverBody.language) {\n native.cta = 'read more';\n }\n\n native.clickUrl = link.url;\n native.impressionTrackers = trackers;\n if (link.clicktrackers) {\n native.clickTrackers = link.clicktrackers;\n }\n\n bid.qtx_native = utils.deepClone(serverBody.native);\n bid.native = native;\n }\n }\n }\n bidResponses.push(bid);\n }\n\n return bidResponses;\n },\n\n /**\n * Register the user sync pixels which should be dropped after the auction.\n *\n * @param {SyncOptions} syncOptions Which user syncs are allowed?\n * @param {ServerResponse[]} serverResponses List of server's responses.\n * @return {UserSync[]} The user syncs which should be dropped.\n */\n getUserSyncs: function (syncOptions, serverResponses) {\n const syncs = []\n if (syncOptions.iframeEnabled) {\n syncs.push({\n type: 'iframe',\n url: '//acdn.adnxs.com/ib/static/usersync/v3/async_usersync.html'\n });\n }\n if (syncOptions.pixelEnabled && serverResponses.length > 0) {\n syncs.push({\n type: 'image',\n url: serverResponses[0].body.sync[0]\n });\n }\n return syncs;\n }\n}\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/quantumBidAdapter.js","import {logError, getTopWindowLocation} from 'src/utils';\nimport { registerBidder } from 'src/adapters/bidderFactory';\n\nexport const ENDPOINT = '//app.readpeak.com/header/prebid';\n\nconst NATIVE_DEFAULTS = {\n TITLE_LEN: 70,\n DESCR_LEN: 120,\n SPONSORED_BY_LEN: 50,\n IMG_MIN: 150,\n ICON_MIN: 50,\n CTA_LEN: 50,\n};\n\nconst BIDDER_CODE = 'readpeak'\n\nexport const spec = {\n\n code: BIDDER_CODE,\n\n supportedMediaTypes: ['native'],\n\n isBidRequestValid: bid => (\n !!(bid && bid.params && bid.params.publisherId && bid.nativeParams)\n ),\n\n buildRequests: bidRequests => {\n const request = {\n id: bidRequests[0].bidderRequestId,\n imp: bidRequests.map(slot => impression(slot)).filter(imp => imp.native != null),\n site: site(bidRequests),\n app: app(bidRequests),\n device: device(),\n isPrebid: true,\n }\n\n return {\n method: 'POST',\n url: ENDPOINT,\n data: JSON.stringify(request),\n }\n },\n\n interpretResponse: (response, request) => (\n bidResponseAvailable(request, response)\n ),\n};\n\nfunction bidResponseAvailable(bidRequest, bidResponse) {\n const idToImpMap = {};\n const idToBidMap = {};\n if (!bidResponse['body']) {\n return []\n }\n bidResponse = bidResponse.body\n parse(bidRequest.data).imp.forEach(imp => {\n idToImpMap[imp.id] = imp;\n });\n if (bidResponse) {\n bidResponse.seatbid.forEach(seatBid => seatBid.bid.forEach(bid => {\n idToBidMap[bid.impid] = bid;\n }));\n }\n const bids = [];\n Object.keys(idToImpMap).forEach(id => {\n if (idToBidMap[id]) {\n const bid = {\n requestId: id,\n cpm: idToBidMap[id].price,\n creativeId: idToBidMap[id].crid,\n ttl: 300,\n netRevenue: true,\n mediaType: 'native',\n currency: bidResponse.cur,\n native: nativeResponse(idToImpMap[id], idToBidMap[id]),\n };\n bids.push(bid);\n }\n });\n return bids;\n}\n\nfunction impression(slot) {\n return {\n id: slot.bidId,\n native: nativeImpression(slot),\n bidfloor: slot.params.bidfloor || 0,\n bidfloorcur: slot.params.bidfloorcur || 'USD'\n };\n}\n\nfunction nativeImpression(slot) {\n if (slot.nativeParams) {\n const assets = [];\n addAsset(assets, titleAsset(1, slot.nativeParams.title, NATIVE_DEFAULTS.TITLE_LEN));\n addAsset(assets, imageAsset(2, slot.nativeParams.image, 3, NATIVE_DEFAULTS.IMG_MIN, NATIVE_DEFAULTS.IMG_MIN));\n addAsset(assets, dataAsset(3, slot.nativeParams.sponsoredBy, 1, NATIVE_DEFAULTS.SPONSORED_BY_LEN));\n addAsset(assets, dataAsset(4, slot.nativeParams.body, 2, NATIVE_DEFAULTS.DESCR_LEN));\n addAsset(assets, dataAsset(5, slot.nativeParams.cta, 12, NATIVE_DEFAULTS.CTA_LEN));\n return {\n request: JSON.stringify({ assets }),\n ver: '1.1',\n };\n }\n return null;\n}\n\nfunction addAsset(assets, asset) {\n if (asset) {\n assets.push(asset);\n }\n}\n\nfunction titleAsset(id, params, defaultLen) {\n if (params) {\n return {\n id,\n required: params.required ? 1 : 0,\n title: {\n len: params.len || defaultLen,\n },\n };\n }\n return null;\n}\n\nfunction imageAsset(id, params, type, defaultMinWidth, defaultMinHeight) {\n return params ? {\n id,\n required: params.required ? 1 : 0,\n img: {\n type,\n wmin: params.wmin || defaultMinWidth,\n hmin: params.hmin || defaultMinHeight,\n }\n } : null;\n}\n\nfunction dataAsset(id, params, type, defaultLen) {\n return params ? {\n id,\n required: params.required ? 1 : 0,\n data: {\n type,\n len: params.len || defaultLen,\n }\n } : null;\n}\n\nfunction site(bidderRequest) {\n const pubId = bidderRequest && bidderRequest.length > 0 ? bidderRequest[0].params.publisherId : '0';\n const appParams = bidderRequest[0].params.app;\n if (!appParams) {\n return {\n publisher: {\n id: pubId.toString(),\n },\n id: pubId.toString(),\n ref: referrer(),\n page: getTopWindowLocation().href,\n domain: getTopWindowLocation().hostname\n }\n }\n return null;\n}\n\nfunction app(bidderRequest) {\n const pubId = bidderRequest && bidderRequest.length > 0 ? bidderRequest[0].params.publisherId : '0';\n const appParams = bidderRequest[0].params.app;\n if (appParams) {\n return {\n publisher: {\n id: pubId.toString(),\n },\n bundle: appParams.bundle,\n storeurl: appParams.storeUrl,\n domain: appParams.domain,\n }\n }\n return null;\n}\n\nfunction referrer() {\n try {\n return window.top.document.referrer;\n } catch (e) {\n return document.referrer;\n }\n}\n\nfunction device() {\n return {\n ua: navigator.userAgent,\n language: (navigator.language || navigator.browserLanguage || navigator.userLanguage || navigator.systemLanguage),\n };\n}\n\nfunction parse(rawResponse) {\n try {\n if (rawResponse) {\n if (typeof rawResponse === 'object') {\n return rawResponse\n } else {\n return JSON.parse(rawResponse);\n }\n }\n } catch (ex) {\n logError('readpeakBidAdapter.safeParse', 'ERROR', ex);\n }\n return null;\n}\n\nfunction nativeResponse(imp, bid) {\n if (imp && imp['native']) {\n const nativeAd = parse(bid.adm);\n const keys = {};\n if (nativeAd && nativeAd.assets) {\n nativeAd.assets.forEach(asset => {\n keys.title = asset.title ? asset.title.text : keys.title;\n keys.body = asset.data && asset.id === 4 ? asset.data.value : keys.body;\n keys.sponsoredBy = asset.data && asset.id === 3 ? asset.data.value : keys.sponsoredBy;\n keys.image = asset.img && asset.id === 2 ? asset.img.url : keys.image;\n keys.cta = asset.data && asset.id === 5 ? asset.data.value : keys.cta;\n });\n if (nativeAd.link) {\n keys.clickUrl = encodeURIComponent(nativeAd.link.url);\n }\n keys.impressionTrackers = nativeAd.imptrackers;\n return keys;\n }\n }\n return null;\n}\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/readpeakBidAdapter.js","// RealVu Analytics Adapter\nimport adapter from 'src/AnalyticsAdapter';\nimport adaptermanager from 'src/adaptermanager';\nimport CONSTANTS from 'src/constants.json';\n\nconst utils = require('src/utils.js');\n\nlet realvuAnalyticsAdapter = adapter({\n global: 'realvuAnalytics',\n handler: 'on',\n analyticsType: 'bundle'\n});\nwindow.top1 = window;\ntry {\n let wnd = window;\n while ((window.top1 != top) && (typeof (wnd.document) != 'undefined')) {\n window.top1 = wnd;\n wnd = wnd.parent;\n }\n} catch (e) {\n /* continue regardless of error */\n}\nwindow.top1.realvu_aa_fifo = window.top1.realvu_aa_fifo || [];\nwindow.top1.realvu_aa = window.top1.realvu_aa || {\n ads: [],\n x1: 0,\n y1: 0,\n x2: 0,\n y2: 0,\n t0: new Date(),\n nn: 0,\n frm: false, // check first if we are inside other domain iframe\n msg: [],\n foc: !window.top1.document.hidden, // 1-in, 0-out of focus\n c: '', // owner id\n sr: '', //\n beacons: [], // array of beacons to collect while 'conf' is not responded\n init: function () {\n let z = this;\n let u = navigator.userAgent;\n z.device = u.match(/iPad|Tablet/gi) ? 'tablet' : u.match(/iPhone|iPod|Android|Opera Mini|IEMobile/gi) ? 'mobile' : 'desktop';\n if (typeof (z.len) == 'undefined') z.len = 0; // check, meybe too much, just make it len:0,\n z.ie = navigator.appVersion.match(/MSIE/);\n z.saf = (u.match(/Safari/) && !u.match(/Chrome/));\n z.ff = u.match(/Firefox/i);\n z.cr = (u.match(/Chrome/));\n z.ope = window.opera;\n z.fr = 0;\n if (window.top1 != top) {\n z.fr = 2;\n if (typeof window.top1.$sf != 'undefined') {\n z.fr = 1;\n }\n }\n z.add_evt(window.top1, 'focus', function () {\n window.top1.realvu_aa.foc = 1; /* window.top1.realvu_aa.log('focus',-1); */\n });\n // z.add_evt(window.top1, \"scroll\", function(){window.top1.realvu_aa.foc=1;window.top1.realvu_aa.log('scroll focus',-1);});\n z.add_evt(window.top1, 'blur', function () {\n window.top1.realvu_aa.foc = 0; /* window.top1.realvu_aa.log('blur',-1); */\n });\n // + http://www.w3.org/TR/page-visibility/\n z.add_evt(window.top1.document, 'blur', function () {\n window.top1.realvu_aa.foc = 0; /* window.top1.realvu_aa.log('blur',-1); */\n });\n z.add_evt(window.top1, 'visibilitychange', function () {\n window.top1.realvu_aa.foc = !window.top1.document.hidden;\n /* window.top1.realvu_aa.log('vis-ch '+window.top1.realvu_aa.foc,-1); */\n });\n // -\n z.doLog = (window.top1.location.search.match(/boost_log/) || document.referrer.match(/boost_log/)) ? 1 : 0;\n if (z.doLog) {\n window.setTimeout(z.scr(window.top1.location.protocol + '//ac.realvu.net/realvu_aa_viz.js'), 500);\n }\n },\n\n add_evt: function (elem, evtType, func) {\n if (elem.addEventListener) {\n elem.addEventListener(evtType, func, true);\n } else if (elem.attachEvent) {\n elem.attachEvent('on' + evtType, func);\n } else {\n elem['on' + evtType] = func;\n }\n },\n\n update: function () {\n let z = this;\n let de = window.top1.document.documentElement;\n z.x1 = window.top1.pageXOffset ? window.top1.pageXOffset : de.scrollLeft;\n z.y1 = window.top1.pageYOffset ? window.top1.pageYOffset : de.scrollTop;\n let w1 = window.top1.innerWidth ? window.top1.innerWidth : de.clientWidth;\n let h1 = window.top1.innerHeight ? window.top1.innerHeight : de.clientHeight;\n z.x2 = z.x1 + w1;\n z.y2 = z.y1 + h1;\n },\n brd: function (s, p) { // return a board Width, s-element, p={Top,Right,Bottom, Left}\n let u;\n if (window.getComputedStyle) u = window.getComputedStyle(s, null);\n else u = s.style;\n let a = u['border' + p + 'Width'];\n return parseInt(a.length > 2 ? a.slice(0, -2) : 0);\n },\n\n padd: function (s, p) { // return a board Width, s-element, p={Top,Right,Bottom, Left}\n let u;\n if (window.getComputedStyle) u = window.getComputedStyle(s, null);\n else u = s.style;\n let a = u['padding' + p];\n return parseInt(a.length > 2 ? a.slice(0, -2) : 0);\n },\n\n viz_area: function (x1, x2, y1, y2) { // coords of Ad\n if (this.fr == 1) {\n try {\n let iv = Math.round(100 * window.top1.$sf.ext.geom().self.iv);\n return iv;\n } catch (e) {\n /* continue regardless of error */\n }\n }\n let xv1 = Math.max(x1, this.x1);\n let yv1 = Math.max(y1, this.y1);\n let xv2 = Math.min(x2, this.x2);\n let yv2 = Math.min(y2, this.y2);\n let A = Math.round(100 * ((xv2 - xv1) * (yv2 - yv1)) / ((x2 - x1) * (y2 - y1)));\n return (A > 0) ? A : 0;\n },\n\n viz_dist: function (x1, x2, y1, y2) { // coords of Ad\n let d = Math.max(0, this.x1 - x2, x1 - this.x2) + Math.max(0, this.y1 - y2, y1 - this.y2);\n return d;\n },\n\n track: function (a, f, params) {\n let z = this;\n let s1 = z.tru(a, f) + params;\n if (f == 'conf') {\n z.scr(s1, a);\n z.log(' ' + f + '', a.num);\n } else {\n let bk = {\n s1: s1,\n a: a,\n f: f\n };\n z.beacons.push(bk);\n }\n },\n\n send_track: function () {\n let z = this;\n if (z.sr >= 'a') { // conf, send beacons\n let bk = z.beacons.shift();\n while (typeof bk != 'undefined') {\n bk.s1 = bk.s1.replace(/_sr=0*_/, '_sr=' + z.sr + '_');\n z.log(' ' + bk.a.riff + ' ' + bk.a.unit_id + /* \" \"+pin.mode+ */ ' ' + bk.a.w + 'x' + bk.a.h + '@' + bk.a.x + ',' + bk.a.y +\n ' ' + bk.f + '', bk.a.num);\n if (bk.a.rnd < Math.pow(10, 1 - (z.sr.charCodeAt(0) & 7))) {\n z.scr(bk.s1, bk.a);\n }\n bk = z.beacons.shift();\n }\n }\n },\n\n scr: function (s1, a) {\n let st = document.createElement('script');\n st.async = true;\n st.type = 'text/javascript';\n st.src = s1;\n if (a && a.dv0 != null) {\n a.dv0.appendChild(st);\n } else {\n let x = document.getElementsByTagName('script')[0];\n x.parentNode.insertBefore(st, x);\n }\n },\n\n tru: function (a, f) {\n let pin = a.pins[0];\n let s2 = '//ac.realvu.net/flip/3/c=' + pin.partner_id +\n '_f=' + f + '_r=' + a.riff +\n '_s=' + a.w + 'x' + a.h;\n if (a.p) s2 += '_p=' + a.p;\n s2 += '_ps=' + this.enc(a.unit_id) + // 08-Jun-15 - _p= is replaced with _ps= - p-number, ps-string\n '_dv=' + this.device +\n // + '_a=' + this.enc(a.a)\n '_d=' + pin.mode +\n '_sr=' + this.sr +\n '_h=' + this.enc(a.ru) + '?';\n return s2.replace(/%/g, '!');\n },\n\n enc: function (s1) {\n // return escape(s1).replace(/[0-9a-f]{5,}/gi,'RANDOM').replace(/\\*/g, \"%2A\").replace(/_/g, \"%5F\").replace(/\\+/g,\n return escape(s1).replace(/\\*/g, '%2A').replace(/_/g, '%5F').replace(/\\+/g,\n '%2B').replace(/\\./g, '%2E').replace(/\\x2F/g, '%2F');\n },\n\n findPosG: function (adi) {\n let t = this;\n let ad = adi;\n let xp = 0;\n let yp = 0;\n let dc = adi.ownerDocument;\n let wnd = dc.defaultView || dc.parentWindow;\n\n try {\n while (ad != null && typeof (ad) != 'undefined') {\n if (ad.getBoundingClientRect) { // Internet Explorer, Firefox 3+, Google Chrome, Opera 9.5+, Safari 4+\n let r = ad.getBoundingClientRect();\n xp += r.left; // +sL;\n yp += r.top; // +sT;\n if (wnd == window.top1) {\n xp += t.x1;\n yp += t.y1;\n }\n } else {\n if (ad.tagName == 'IFRAME') {\n xp += t.brd(ad, 'Left');\n yp += t.brd(ad, 'Top');\n }\n xp += ad.offsetLeft;\n yp += ad.offsetTop;\n\n let op = ad.offsetParent;\n let pn = ad.parentNode;\n let opf = ad;\n while (opf != null) {\n let cs = window.getComputedStyle(opf, null);\n if (cs.position == 'fixed') {\n if (cs.top) yp += parseInt(cs.top) + this.y1;\n }\n if (opf == op) break;\n opf = opf.parentNode;\n }\n while (op != null && typeof (op) != 'undefined') {\n xp += op.offsetLeft;\n yp += op.offsetTop;\n let ptn = op.tagName;\n if (t.cr || t.saf || (t.ff && ptn == 'TD')) {\n xp += t.brd(op, 'Left');\n yp += t.brd(op, 'Top');\n }\n if (ad.tagName != 'IFRAME' && op != document.body && op != document.documentElement) {\n xp -= op.scrollLeft;\n yp -= op.scrollTop;\n }\n if (!t.ie) {\n while (op != pn && pn != null) {\n xp -= pn.scrollLeft;\n yp -= pn.scrollTop;\n if (t.ff_o) {\n xp += t.brd(pn, 'Left');\n yp += t.brd(pn, 'Top');\n }\n pn = pn.parentNode;\n }\n }\n pn = pn.parentNode;\n op = op.offsetParent;\n }\n }\n if (this.fr) break; // inside different domain iframe or sf\n ad = wnd.frameElement; // in case Ad is allocated inside iframe here we go up\n wnd = wnd.parent;\n }\n } catch (e) {\n /* continue regardless of error */\n }\n let q = {\n 'x': Math.round(xp),\n 'y': Math.round(yp)\n };\n return q;\n },\n\n poll: function () {\n let fifo = window.top1.realvu_aa_fifo;\n while (fifo.length > 0) {\n (fifo.shift())();\n }\n let z = this;\n z.update();\n let now = new Date();\n if (typeof (z.ptm) == 'undefined') {\n z.ptm = now;\n }\n let dvz = now - z.ptm;\n z.ptm = now;\n for (let i = 0; i < z.len; i++) {\n let a = z.ads[i];\n let restored = false;\n if (a.div == null) { // ad unit is not found yet\n let adobj = document.getElementById(a.pins[0].unit_id);\n if (adobj == null) {\n restored = z.readPos(a);\n if (!restored) continue; // do nothing if not found\n } else {\n z.bind_obj(a, adobj);\n z.log('{m}\"' + a.unit_id + '\" is bound', a.num);\n }\n }\n if (!restored) {\n a.target = z.questA(a.div);\n let target = (a.target !== null) ? a.target : a.div;\n a.box.w = Math.max(target.offsetWidth, a.w);\n a.box.h = Math.max(target.offsetHeight, a.h);\n let q = z.findPosG(target);\n let pad = {};\n pad.t = z.padd(target, 'Top');\n pad.l = z.padd(target, 'Left');\n pad.r = z.padd(target, 'Right');\n pad.b = z.padd(target, 'Bottom');\n let ax = q.x + pad.l;\n let ay = q.y + pad.t;\n a.box.x = ax;\n a.box.y = ay;\n if (a.box.w > a.w && a.box.w > 1) {\n ax += (a.box.w - a.w - pad.l - pad.r) / 2;\n }\n if (a.box.h > a.h && a.box.h > 1) {\n ay += (a.box.h - a.h - pad.t - pad.b) / 2;\n }\n if ((ax > 0 && ay > 0) && (a.x != ax || a.y != ay)) {\n a.x = ax;\n a.y = ay;\n z.writePos(a);\n }\n }\n let vtr = ((a.box.w * a.box.h) < 242500) ? 49 : 29; // treashfold more then 49% and more then 29% for \"oversized\"\n if (a.pins[0].edge) {\n vtr = a.pins[0].edge - 1; // override default edge 50% (>49)\n }\n a.vz = z.viz_area(a.box.x, a.box.x + a.box.w, a.box.y, a.box.y + a.box.h);\n a.r = (z.fr > 1 ? 'frame' : (((a.vz > vtr) && z.foc) ? 'yes' : 'no')); // f-frame, y-yes in view,n-not in view\n if (a.y < 0) {\n a.r = 'out'; // if the unit intentionaly moved out, count it as out.\n }\n if (a.vz > vtr && z.foc) {\n a.vt += dvz; // real dt counter in milliseconds, because of poll() can be called irregularly\n a.vtu += dvz;\n }\n // now process every pin\n let plen = a.pins.length;\n for (let j = 0; j < plen; j++) {\n let pin = a.pins[j];\n if (pin.state <= 1) {\n let dist = z.viz_dist(a.x, a.x + a.w, a.y, a.y + a.h);\n let near = (pin.dist != null && dist <= pin.dist);\n // apply \"near\" rule for ad call only\n a.r = (z.fr > 1) ? 'frame' : (((a.vz > vtr) && z.foc) ? 'yes' : 'no');\n if (near && a.r == 'no') {\n a.r = 'yes';\n }\n if (a.riff === '') {\n a.riff = a.r;\n let vr_score = z.score(a, 'v:r');\n if (vr_score != null) {\n if (a.r == 'no' && vr_score > 75) {\n a.riff = 'yes';\n }\n }\n let vv0_score = z.score(a, 'v:v0');\n if (vv0_score != null) {\n if (a.r == 'yes' && vv0_score < (30 + 25 * Math.random())) {\n a.riff = 'no';\n }\n }\n }\n if ((pin.mode == 'kvp' || pin.mode == 'tx2') || (((a.vz > vtr) || near) && ((pin.mode == 'in-view' || pin.mode == 'video')))) {\n z.show(a, pin); // in-view or flip show immediately if initial realvu=yes, or delay is over\n }\n }\n if (pin.state == 2) {\n a.target = z.questA(a.div);\n if (a.target != null) {\n pin.state = 3;\n dvz = 0;\n a.vt = 0;\n // @if NODE_ENV='debug'\n let now = new Date();\n let msg = (now.getTime() - time0) / 1000 + ' RENDERED ' + a.unit_id;\n utils.logMessage(msg);\n // @endif\n let rpt = z.bids_rpt(a, true);\n z.track(a, 'rend', rpt);\n z.incrMem(a, 'r', 'v:r');\n }\n }\n if (pin.state > 2) {\n let tmin = (pin.mode == 'video') ? 2E3 : 1E3; // mrc min view time\n if (a.vz > vtr) {\n pin.vt += dvz; // real dt counter in milliseconds, because of poll() can be called irregularly\n if (pin.state == 3) {\n pin.state = 4;\n z.incrMem(a, 'r', 'v:v0');\n }\n if (pin.state == 4 && pin.vt >= tmin) {\n pin.state = 5;\n let rpt = z.bids_rpt(a, true);\n z.track(a, 'view', rpt);\n z.incrMem(a, 'v', 'v:r');\n z.incrMem(a, 'v', 'v:v0');\n }\n if (pin.state == 5 && pin.vt >= 5 * tmin) {\n pin.state = 6;\n let rpt = z.bids_rpt(a, true);\n z.track(a, 'view2', rpt);\n }\n } else if (pin.vt < tmin) {\n pin.vt = 0; // reset to track continuous 1 sec\n }\n }\n if (pin.state >= 2 && pin.mode === 'tx2' &&\n ((a.vtu > pin.rotate) || (pin.delay > 0 && a.vtu > pin.delay && a.riff === 'no' && a.ncall < 2)) && pin.tx2n > 0) {\n // flip or rotate\n pin.tx2n--;\n pin.state = 1;\n a.vtu = 0;\n a.target = null;\n }\n }\n }\n this.send_track();\n },\n\n questA: function (a) { // look for the visible object of ad_sizes size\n // returns the object or null\n if (a == null) return a;\n if (a.nodeType == Node.TEXT_NODE) {\n let dc = a.ownerDocument;\n let wnd = dc.defaultView || dc.parentWindow;\n let par = a.parentNode;\n if (wnd == wnd.top) {\n return par;\n } else {\n return par.offsetParent;\n }\n }\n let not_friendly = false;\n let ain = null;\n let tn = a.tagName;\n if (tn == 'HEAD' || tn == 'SCRIPT') return null;\n if (tn == 'IFRAME') {\n ain = this.doc(a);\n if (ain == null) {\n not_friendly = true;\n } else {\n a = ain;\n tn = a.tagName;\n }\n }\n if (not_friendly || tn == 'OBJECT' || tn == 'IMG' || tn == 'EMBED' || tn == 'SVG' || tn == 'CANVAS' ||\n (tn == 'DIV' && a.style.backgroundImage)) {\n let w1 = a.offsetWidth;\n let h1 = a.offsetHeight;\n if (w1 > 33 && h1 > 33 && a.style.display != 'none') return a;\n }\n if (a.hasChildNodes()) {\n let b = a.firstChild;\n while (b != null) {\n let c = this.questA(b);\n if (c != null) return c;\n b = b.nextSibling;\n }\n }\n return null;\n },\n\n doc: function(f) { // return document of f-iframe, keep here \"n\" as a parameter because of call from setTimeout()\n let d = null;\n try {\n if (f.contentDocument) d = f.contentDocument; // DOM\n else if (f.contentWindow) d = f.contentWindow.document; // IE\n } catch (e) {\n /* continue regardless of error */\n }\n return d;\n },\n\n bind_obj: function (a, adobj) {\n a.div = adobj;\n a.target = null; // initially null, found ad when served\n a.unit_id = adobj.id; // placement id or name\n a.w = adobj.offsetWidth || 1; // width, min 1\n a.h = adobj.offsetHeight || 1; // height, min 1\n },\n add: function (wnd1, p) { // p - realvu unit id\n let a = {\n num: this.len,\n x: 0,\n y: 0,\n box: {\n x: 0,\n y: 0,\n h: 1,\n w: 1\n }, // measured ad box\n p: p,\n state: 0, // 0-init, (1-loaded,2-rendered,3-viewed)\n delay: 0, // delay in msec to show ad after gets in view\n vt: 0, // total view time\n vtu: 0, // view time to update and mem\n a: '', // ad_placement id\n wnd: wnd1,\n div: null,\n pins: [],\n frm: null, // it will be frame when \"show\"\n riff: '', // r to report\n rnd: Math.random(),\n ncall: 0, // a callback number\n rq_bids: [], // rq bids of registered partners\n bids: [] // array of bids\n };\n a.ru = window.top1.location.hostname;\n window.top1.realvu_aa.ads[this.len++] = a;\n return a;\n },\n\n fmt: function (a, pin) {\n return {\n 'realvu': a.r,\n 'riff': a.riff,\n 'area': a.vz,\n 'ncall': a.ncall,\n 'n': a.num,\n 'id': a.unit_id,\n 'pin': pin\n };\n },\n\n show: function (a, pin) {\n pin.state = 2; // 2-published\n pin.vt = 0; // reset view time counter\n if (pin.size) {\n let asz = this.setSize(pin.size);\n if (asz != null) {\n a.w = asz.w;\n a.h = asz.h;\n }\n }\n if (typeof pin.callback != 'undefined') {\n pin.callback(this.fmt(a, pin));\n }\n a.ncall++;\n this.track(a, 'show', '');\n },\n\n check: function (p1) {\n let pin = {\n dist: 150,\n state: 0,\n tx2n: 7\n }; // if dist is set trigger ad when distance < pin.dist\n for (let attr in p1) {\n if (p1.hasOwnProperty(attr)) {\n if ((attr == 'ad_sizes') && (typeof (p1[attr]) == 'string')) {\n pin[attr] = p1[attr].split(',');\n } else if (attr == 'edge') {\n try {\n let ed = parseInt(p1[attr]);\n if (ed > 0 && ed < 251) pin[attr] = ed;\n } catch (e) {\n /* continue regardless of error */\n }\n } else {\n pin[attr] = p1[attr];\n }\n }\n }\n let a = null;\n let z = this;\n try {\n // not to track the same object more than one time\n for (let i = 0; i < z.len; i++) {\n // if (z.ads[i].div == adobj) { a = z.ads[i]; break; }\n if (z.ads[i].unit_id == pin.unit_id) {\n a = z.ads[i];\n break;\n }\n }\n pin.wnd = pin.wnd || window;\n if (a == null) {\n a = z.add(pin.wnd, pin.p);\n a.unit_id = pin.unit_id;\n let adobj = (pin.unit) ? pin.unit : document.getElementById(a.unit_id);\n if (adobj != null) {\n z.bind_obj(a, adobj);\n } else {\n z.log('{w}\"' + pin.unit_id + '\" not found', a.num);\n }\n if (pin.size) {\n let asz = z.setSize(pin.size);\n if (asz != null) {\n a.w = asz.w;\n a.h = asz.h;\n }\n }\n pin.delay = pin.delay || 0; // delay in msec\n if (typeof pin.mode == 'undefined') {\n if ((typeof pin.callback != 'undefined') || (typeof pin.content != 'undefined')) {\n pin.mode = (pin.delay > 0) ? 'tx2' : 'in-view';\n } else {\n pin.mode = 'kvp';\n }\n // delays are for views only\n }\n pin.vt = 0; // view time\n pin.state = 0;\n a.pins.push(pin);\n }\n if (this.sr === '') {\n z.track(a, 'conf', '');\n this.sr = '0';\n }\n this.poll();\n return a;\n } catch (e) {\n z.log(e.message, -1);\n return {\n r: 'err'\n };\n }\n },\n\n setSize: function (sa) {\n let sb = sa;\n try {\n if (typeof (sa) == 'string') sb = sa.split('x'); // pin.size is a string WWWxHHH or array\n else if (Array.isArray(sa)) {\n let mm = 4;\n while (--mm > 0 && Array.isArray(sa[0]) && Array.isArray(sa[0][0])) {\n sa = sa[0];\n }\n for (let m = 0; m < sa.length; m++) {\n if (Array.isArray(sa[m])) {\n sb = sa[m]; // if size is [][]\n let s = sb[0] + 'x' + sb[1];\n if (s == '300x250' || s == '728x90' || s == '320x50' || s == '970x90') {\n break; // use most popular sizes\n }\n } else if (sa.length > 1) {\n sb = sa;\n }\n }\n }\n let w1 = parseInt(sb[0]);\n let h1 = parseInt(sb[1]);\n return {\n w: w1,\n h: h1\n };\n } catch (e) {\n /* continue regardless of error */\n }\n return null;\n },\n // API functions\n addUnitById: function (partner_id, unit_id, callback, delay) {\n let p1 = partner_id;\n if (typeof (p1) == 'string') {\n p1 = {\n partner_id: partner_id,\n unit_id: unit_id,\n callback: callback,\n delay: delay\n };\n }\n let a = window.top1.realvu_aa.check(p1);\n return a.r;\n },\n\n checkBidIn: function(partnerId, args, b) { // process a bid from hb\n // b==true - add/update, b==false - update only\n if (args.cpm == 0) return; // collect only bids submitted\n const boost = window.top1.realvu_aa;\n let push_bid = false;\n let adi = null;\n if (!b) { // update only if already checked in by xyzBidAdapter\n for (let i = 0; i < boost.ads.length; i++) {\n adi = boost.ads[i];\n if (adi.unit_id == args.adUnitCode) {\n push_bid = true;\n break;\n }\n }\n } else {\n push_bid = true;\n adi = window.top1.realvu_aa.check({\n unit_id: args.adUnitCode,\n size: args.size,\n partner_id: partnerId\n });\n }\n if (push_bid) {\n let pb = {\n bidder: args.bidder,\n cpm: args.cpm,\n size: args.size,\n adId: args.adId,\n requestId: args.requestId,\n crid: '',\n ttr: args.timeToRespond,\n winner: 0\n };\n if (args.creative_id) {\n pb.crid = args.creative_id;\n }\n adi.bids.push(pb);\n }\n },\n\n checkBidWon: function(partnerId, args, b) {\n // b==true - add/update, b==false - update only\n const z = this;\n const unit_id = args.adUnitCode;\n for (let i = 0; i < z.ads.length; i++) {\n let adi = z.ads[i];\n if (adi.unit_id == unit_id) {\n for (let j = 0; j < adi.bids.length; j++) {\n let bj = adi.bids[j];\n if (bj.adId == args.adId) {\n bj.winner = 1;\n break;\n }\n }\n let rpt = z.bids_rpt(adi, false);\n z.track(adi, 'win', rpt);\n break;\n }\n }\n },\n\n bids_rpt: function(a, wo) { // a-unit, wo=true - WinnerOnly\n let rpt = '';\n for (let i = 0; i < a.bids.length; i++) {\n let g = a.bids[i];\n if (wo && !g.winner) continue;\n rpt += '&bdr=' + g.bidder + '&cpm=' + g.cpm + '&vi=' + a.riff +\n '&gw=' + g.winner + '&crt=' + g.crid + '&ttr=' + g.ttr;\n // append bid partner_id if any\n let pid = '';\n for (let j = 0; j < a.rq_bids.length; j++) {\n let rqb = a.rq_bids[j];\n if (rqb.adId == g.adId) {\n pid = rqb.partner_id;\n break;\n }\n }\n rpt += '&bc=' + pid;\n }\n return rpt;\n },\n\n getStatusById: function (unit_id) { // return status object\n for (let i = 0; i < this.ads.length; i++) {\n let adi = this.ads[i];\n if (adi.unit_id == unit_id) return this.fmt(adi);\n }\n return null;\n },\n\n log: function (m1, i) {\n if (this.doLog) {\n this.msg.push({\n dt: new Date() - this.t0,\n s: 'U' + (i + 1) + m1\n });\n }\n },\n\n keyPos: function (a) {\n if (a.pins[0].unit_id) {\n let level = 'L' + (window.top1.location.pathname.match(/\\//g) || []).length;\n return 'realvu.' + level + '.' + a.pins[0].unit_id.replace(/[0-9]{5,}/gi, 'RANDOM');\n }\n },\n\n writePos: function (a) {\n try {\n let v = a.x + ',' + a.y + ',' + a.w + ',' + a.h;\n localStorage.setItem(this.keyPos(a), v);\n } catch (ex) {\n /* continue regardless of error */\n }\n },\n\n readPos: function (a) {\n try {\n let s = localStorage.getItem(this.keyPos(a));\n if (s) {\n let v = s.split(',');\n a.x = parseInt(v[0], 10);\n a.y = parseInt(v[1], 10);\n a.w = parseInt(v[2], 10);\n a.h = parseInt(v[3], 10);\n a.box = {x: a.x, y: a.y, w: a.w, h: a.h};\n return true;\n }\n } catch (ex) {\n /* do nothing */\n }\n return false;\n },\n\n incrMem: function(a, evt, name) {\n try {\n let k1 = this.keyPos(a) + '.' + name;\n let vmem = localStorage.getItem(k1);\n if (vmem == null) vmem = '1:3';\n let vr = vmem.split(':');\n let nv = parseInt(vr[0], 10);\n let nr = parseInt(vr[1], 10);\n if (evt == 'r') {\n nr <<= 1;\n nr |= 1;\n nv <<= 1;\n }\n if (evt == 'v') {\n nv |= 1;\n }\n localStorage.setItem(k1, nv + ':' + nr);\n } catch (ex) {\n /* do nothing */\n }\n },\n\n score: function (a, name) {\n try {\n let vstr = localStorage.getItem(this.keyPos(a) + '.' + name);\n if (vstr != null) {\n let vr = vstr.split(':');\n let nv = parseInt(vr[0], 10);\n let nr = parseInt(vr[1], 10);\n let sv = 0;\n let sr = 0;\n for (nr &= 0x3FF; nr > 0; nr >>>= 1, nv >>>= 1) { // count 10 deliveries\n if (nr & 0x1) sr++;\n if (nv & 0x1) sv++;\n }\n return Math.round(sv * 100 / sr);\n }\n } catch (ex) {\n /* do nothing */\n }\n return null;\n }\n};\n\nif (typeof (window.top1.boost_poll) == 'undefined') {\n window.top1.realvu_aa.init();\n window.top1.boost_poll = setInterval(function () {\n window.top1 && window.top1.realvu_aa && window.top1.realvu_aa.poll();\n }, 20);\n}\n\nlet _options = {};\n\nrealvuAnalyticsAdapter.originEnableAnalytics = realvuAnalyticsAdapter.enableAnalytics;\n\nrealvuAnalyticsAdapter.enableAnalytics = function (config) {\n _options = config.options;\n if (typeof (_options.partnerId) == 'undefined' || _options.partnerId == '') {\n utils.logError('Missed realvu.com partnerId parameter', 101, 'Missed partnerId parameter');\n }\n realvuAnalyticsAdapter.originEnableAnalytics(config);\n return _options.partnerId;\n};\n\nconst time0 = (new Date()).getTime();\n\nrealvuAnalyticsAdapter.track = function ({eventType, args}) {\n // @if NODE_ENV='debug'\n let msg = '';\n let now = new Date();\n msg += (now.getTime() - time0) / 1000 + ' eventType=' + eventType;\n if (typeof (args) != 'undefined') {\n msg += ', args.bidder=' + args.bidder + ' args.adUnitCode=' + args.adUnitCode +\n ' args.adId=' + args.adId +\n ' args.cpm=' + args.cpm +\n ' creativei_id=' + args.creative_id;\n }\n // msg += '\\nargs=' + JSON.stringify(args) + '
';\n utils.logMessage(msg);\n // @endif\n\n const boost = window.top1.realvu_aa;\n let b = false; // false - update only, true - add if not checked in yet\n let partnerId = null;\n if (_options && _options.partnerId && args) {\n partnerId = _options.partnerId;\n let code = args.adUnitCode;\n b = _options.regAllUnits;\n if (!b && _options.unitIds) {\n for (let j = 0; j < _options.unitIds.length; j++) {\n if (code === _options.unitIds[j]) {\n b = true;\n break;\n }\n }\n }\n }\n if (eventType === CONSTANTS.EVENTS.BID_RESPONSE) {\n boost.checkBidIn(partnerId, args, b);\n } else if (eventType === CONSTANTS.EVENTS.BID_WON) {\n boost.checkBidWon(partnerId, args, b);\n }\n};\n\n// xyzBidAdapter calls checkin() to obtain \"yes/no\" viewability\nrealvuAnalyticsAdapter.checkIn = function (bid, partnerId) {\n // find (or add if not registered yet) the unit in boost\n if (typeof (partnerId) == 'undefined' || partnerId == '') {\n utils.logError('Missed realvu.com partnerId parameter', 102, 'Missed partnerId parameter');\n }\n let a = window.top1.realvu_aa.check({\n unit_id: bid.adUnitCode,\n size: bid.sizes,\n partner_id: partnerId\n });\n a.rq_bids.push({\n bidder: bid.bidder,\n adId: bid.bidId,\n partner_id: partnerId\n });\n return a.riff;\n};\n\nrealvuAnalyticsAdapter.isInView = function (adUnitCode) {\n let r = 'NA';\n let s = window.top1.realvu_aa.getStatusById(adUnitCode);\n if (s) {\n r = s.realvu;\n }\n return r;\n};\n\nadaptermanager.registerAnalyticsAdapter({\n adapter: realvuAnalyticsAdapter,\n code: 'realvuAnalytics'\n});\n\nmodule.exports = realvuAnalyticsAdapter;\n\n\n\n// WEBPACK FOOTER //\n// ./modules/realvuAnalyticsAdapter.js","'use strict';\n\nimport {registerBidder} from 'src/adapters/bidderFactory';\nimport { BANNER, VIDEO } from 'src/mediaTypes';\n\nfunction RhythmOneBidAdapter() {\n this.code = 'rhythmone';\n this.supportedMediaTypes = [VIDEO, BANNER];\n\n this.isBidRequestValid = function (bid) {\n return true;\n };\n\n this.getUserSyncs = function (syncOptions) {\n let slots = [];\n let placementIds = [];\n\n for (let k in slotsToBids) {\n slots.push(k);\n placementIds.push(getFirstParam('placementId', [slotsToBids[k]]));\n }\n\n let data = {\n doc_version: 1,\n doc_type: 'Prebid Audit',\n placement_id: placementIds.join(',').replace(/[,]+/g, ',').replace(/^,|,$/g, '')\n };\n let w = typeof (window) !== 'undefined' ? window : {document: {location: {href: ''}}};\n let ao = w.document.location.ancestorOrigins;\n let q = [];\n let u = '//hbevents.1rx.io/audit?';\n\n if (ao && ao.length > 0) {\n data.ancestor_origins = ao[ao.length - 1];\n }\n\n data.popped = w.opener !== null ? 1 : 0;\n data.framed = w.top === w ? 0 : 1;\n\n try {\n data.url = w.top.document.location.href.toString();\n } catch (ex) {\n data.url = w.document.location.href.toString();\n }\n\n try {\n data.prebid_version = '1.7.0-pre';\n data.prebid_timeout = config.getConfig('bidderTimeout');\n } catch (ex) { }\n\n data.response_ms = Date.now() - loadStart;\n data.placement_codes = slots.join(',');\n data.bidder_version = version;\n\n for (let k in data) {\n q.push(encodeURIComponent(k) + '=' + encodeURIComponent((typeof data[k] === 'object' ? JSON.stringify(data[k]) : data[k])));\n }\n\n q.sort();\n\n if (syncOptions.pixelEnabled) {\n return [{\n type: 'image',\n url: u + q.join('&')\n }];\n }\n };\n\n function getFirstParam(key, validBidRequests) {\n for (let i = 0; i < validBidRequests.length; i++) {\n if (validBidRequests[i].params && validBidRequests[i].params[key]) {\n return validBidRequests[i].params[key];\n }\n }\n }\n\n let slotsToBids = {};\n let that = this;\n let version = '1.0.0.0';\n let loadStart = Date.now();\n\n this.buildRequests = function (BRs) {\n let fallbackPlacementId = getFirstParam('placementId', BRs);\n if (fallbackPlacementId === undefined || BRs.length < 1) {\n return [];\n }\n\n loadStart = Date.now();\n slotsToBids = {};\n\n let query = [];\n let w = (typeof window !== 'undefined' ? window : {});\n\n function p(k, v, d) {\n if (v instanceof Array) { v = v.join((d || ',')); }\n if (typeof v !== 'undefined') { query.push(encodeURIComponent(k) + '=' + encodeURIComponent(v)); }\n }\n\n function attempt(valueFunction, defaultValue) {\n try {\n return valueFunction();\n } catch (ex) { }\n return defaultValue;\n }\n\n p('domain', attempt(function() {\n var d = w.document.location.ancestorOrigins;\n if (d && d.length > 0) {\n return d[d.length - 1];\n }\n return w.top.document.location.hostname; // try/catch is in the attempt function\n }, ''));\n p('url', attempt(function() {\n var l;\n // try/catch is in the attempt function\n try {\n l = w.top.document.location.href.toString();\n } catch (ex) {\n l = w.document.location.href.toString();\n }\n return l;\n }, ''));\n\n function getRMPUrl() {\n let url = getFirstParam('endpoint', BRs) || '//tag.1rx.io/rmp/{placementId}/0/{path}?z={zone}';\n let defaultZone = getFirstParam('zone', BRs) || '1r';\n let defaultPath = getFirstParam('path', BRs) || 'mvo';\n\n url = url.replace(/\\{placementId\\}/i, fallbackPlacementId);\n url = url.replace(/\\{zone\\}/i, defaultZone);\n url = url.replace(/\\{path\\}/i, defaultPath);\n\n p('title', attempt(function() { return w.top.document.title; }, '')); // try/catch is in the attempt function\n p('dsh', (w.screen ? w.screen.height : ''));\n p('dsw', (w.screen ? w.screen.width : ''));\n p('tz', (new Date()).getTimezoneOffset());\n p('dtype', ((/(ios|ipod|ipad|iphone|android)/i).test(w.navigator.userAgent) ? 1 : ((/(smart[-]?tv|hbbtv|appletv|googletv|hdmi|netcast\\.tv|viera|nettv|roku|\\bdtv\\b|sonydtv|inettvbrowser|\\btv\\b)/i).test(w.navigator.userAgent) ? 3 : 2)));\n p('flash', attempt(function() {\n let n = w.navigator;\n let p = n.plugins;\n let m = n.mimeTypes;\n let t = 'application/x-shockwave-flash';\n let x = w.ActiveXObject;\n\n if (p &&\n p['Shockwave Flash'] &&\n m &&\n m[t] &&\n m[t].enabledPlugin) {\n return 1;\n }\n\n if (x) {\n try {\n if ((new w.ActiveXObject('ShockwaveFlash.ShockwaveFlash'))) {\n return 1;\n }\n } catch (e) { }\n }\n\n return 0;\n }, 0));\n\n let heights = [];\n let widths = [];\n let floors = [];\n let mediaTypes = [];\n let i = 0;\n let configuredPlacements = [];\n let fat = /(^v|(\\.0)+$)/gi;\n\n p('hbv', w.pbjs.version.replace(fat, '') + ',' + version.replace(fat, ''));\n\n for (; i < BRs.length; i++) {\n let th = [];\n let tw = [];\n let params = BRs[i].params || {};\n\n slotsToBids[BRs[i].adUnitCode || BRs[i].placementCode] = BRs[i];\n\n if (BRs[i].sizes.length > 0 && typeof BRs[i].sizes[0] === 'number') {\n BRs[i].sizes = [BRs[i].sizes];\n }\n\n for (let j = 0; j < BRs[i].sizes.length; j++) {\n tw.push(BRs[i].sizes[j][0]);\n th.push(BRs[i].sizes[j][1]);\n }\n configuredPlacements.push(BRs[i].adUnitCode || BRs[i].placementCode);\n heights.push(th.join('|'));\n widths.push(tw.join('|'));\n mediaTypes.push((BRs[i].mediaTypes && BRs[i].mediaTypes.video ? 'v' : 'd'));\n floors.push(params.floor || 0);\n }\n\n p('imp', configuredPlacements);\n p('w', widths);\n p('h', heights);\n p('floor', floors);\n p('t', mediaTypes);\n\n url += '&' + query.join('&') + '&';\n\n return url;\n }\n\n return [{\n method: 'GET',\n url: getRMPUrl()\n }];\n };\n\n this.interpretResponse = function (serverResponse) {\n let responses = serverResponse.body || [];\n let bids = [];\n let i = 0;\n\n if (responses.seatbid) {\n let temp = [];\n for (i = 0; i < responses.seatbid.length; i++) {\n for (let j = 0; j < responses.seatbid[i].bid.length; j++) {\n temp.push(responses.seatbid[i].bid[j]);\n }\n }\n responses = temp;\n }\n\n for (i = 0; i < responses.length; i++) {\n let bid = responses[i];\n let bidRequest = slotsToBids[bid.impid];\n let bidResponse = {\n requestId: bidRequest.bidId,\n bidderCode: that.code,\n cpm: parseFloat(bid.price),\n width: bid.w,\n height: bid.h,\n creativeId: bid.crid,\n currency: 'USD',\n netRevenue: true,\n ttl: 1000\n };\n\n if (bidRequest.mediaTypes && bidRequest.mediaTypes.video) {\n bidResponse.vastUrl = bid.nurl;\n bidResponse.mediaType = 'video';\n bidResponse.ttl = 10000;\n } else {\n bidResponse.ad = bid.adm;\n }\n bids.push(bidResponse);\n }\n\n return bids;\n };\n}\n\nexport const spec = new RhythmOneBidAdapter();\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/rhythmoneBidAdapter.js","import * as utils from 'src/utils';\nimport { Renderer } from 'src/Renderer';\nimport { BANNER, VIDEO } from 'src/mediaTypes';\nimport { registerBidder } from 'src/adapters/bidderFactory';\n\nconst BIDDER_CODE = 'rockyou';\n\nconst BASE_REQUEST_PATH = 'https://tas.rockyou.net/servlet/rotator/';\nconst IFRAME_SYNC_URL = 'https://prebid.tas-sync.rockyou.net/usersync2/prebid';\nconst VAST_PLAYER_LOCATION = 'https://rya-static.rockyou.com/rya/js/PreBidPlayer.js';\nexport const ROTATION_ZONE = 'prod';\n\nlet isBidRequestValid = (bid) => {\n return !!bid.params && !!bid.params.placementId;\n};\n\n/**\n* The RockYou Ad Serving system currently only accepts one placementId\n* per Ad request. For this reason, the first placementId indicated\n* will be chosen as the predominant placementId for this request.\n*/\nlet determineOptimalPlacementId = (bidRequest) => {\n return bidRequest.params.placementId;\n}\n\nlet determineOptimalRequestId = (bidRequest) => {\n return bidRequest.bidId;\n}\n\nlet buildSiteComponent = (bidRequest) => {\n let topLocation = utils.getTopWindowLocation();\n\n let site = {\n domain: topLocation.hostname,\n page: topLocation.href,\n ref: topLocation.origin\n };\n\n return site;\n}\n\nlet buildDeviceComponent = (bidRequest) => {\n let device = {\n js: 1,\n language: ('language' in navigator) ? navigator.language : null\n };\n\n return device;\n};\n\nlet extractValidSize = (bidRequest) => {\n let width = null;\n let height = null;\n\n let requestedSizes = [];\n let mediaTypes = bidRequest.mediaTypes;\n if (mediaTypes && ((mediaTypes.banner && mediaTypes.banner.sizes) || (mediaTypes.video && mediaTypes.video.playerSize))) {\n if (mediaTypes.banner) {\n requestedSizes = mediaTypes.banner.sizes;\n } else {\n requestedSizes = [mediaTypes.video.playerSize];\n }\n } else if (!utils.isEmpty(bidRequest.sizes)) {\n requestedSizes = bidRequest.sizes\n }\n\n // Ensure the size array is normalized\n let conformingSize = utils.parseSizesInput(requestedSizes);\n\n if (!utils.isEmpty(conformingSize) && conformingSize[0] != null) {\n // Currently only the first size is utilized\n let splitSizes = conformingSize[0].split('x');\n\n width = parseInt(splitSizes[0]);\n height = parseInt(splitSizes[1]);\n }\n\n return {\n w: width,\n h: height\n };\n};\n\nlet generateVideoComponent = (bidRequest) => {\n let impSize = extractValidSize(bidRequest);\n\n return {\n w: impSize.w,\n h: impSize.h\n }\n}\n\nlet generateBannerComponent = (bidRequest) => {\n let impSize = extractValidSize(bidRequest);\n\n return {\n w: impSize.w,\n h: impSize.h\n }\n}\n\nlet generateImpBody = (bidRequest) => {\n let mediaTypes = bidRequest.mediaTypes;\n\n let banner = null;\n let video = null;\n\n // Assume banner if the mediatype is not included\n if (mediaTypes && mediaTypes.video) {\n video = generateVideoComponent(bidRequest);\n } else {\n banner = generateBannerComponent(bidRequest);\n }\n\n return {\n id: bidRequest.index,\n banner: banner,\n video: video\n };\n}\n\nlet generatePayload = (bidRequest) => {\n // Generate the expected OpenRTB payload\n\n let payload = {\n id: determineOptimalRequestId(bidRequest),\n site: buildSiteComponent(bidRequest),\n device: buildDeviceComponent(bidRequest),\n imp: [generateImpBody(bidRequest)]\n };\n\n return JSON.stringify(payload);\n};\n\nlet overridableProperties = (request) => {\n let rendererLocation = VAST_PLAYER_LOCATION;\n let baseRequestPath = BASE_REQUEST_PATH;\n let rotationZone = ROTATION_ZONE;\n\n if (!utils.isEmpty(request.rendererOverride)) {\n rendererLocation = request.rendererOverride;\n }\n\n if (request.params) {\n if (!utils.isEmpty(request.params.baseRequestPath)) {\n baseRequestPath = request.params.baseRequestPath;\n }\n\n if (!utils.isEmpty(request.params.rotationZone)) {\n rotationZone = request.params.rotationZone;\n }\n }\n\n return {\n rendererLocation,\n baseRequestPath,\n rotationZone\n }\n}\n\nlet buildRequests = (validBidRequests, requestRoot) => {\n const requestType = 'POST';\n\n let requestUrl = null;\n let requestPayload = null;\n let mediaTypes = null;\n let adUnitCode = null;\n let rendererOverride = null;\n\n let results = [];\n // Due to the nature of how URLs are generated, there must\n // be at least one bid request present for this to function\n // correctly\n if (!utils.isEmpty(validBidRequests)) {\n results = validBidRequests.map(\n bidRequest => {\n let serverLocations = overridableProperties(bidRequest);\n\n // requestUrl is the full endpoint w/ relevant adspot paramters\n let placementId = determineOptimalPlacementId(bidRequest);\n requestUrl = `${serverLocations.baseRequestPath}${placementId}/0/vo?z=${serverLocations.rotationZone}`;\n\n // requestPayload is the POST body JSON for the OpenRtb request\n requestPayload = generatePayload(bidRequest);\n\n mediaTypes = bidRequest.mediaTypes;\n adUnitCode = bidRequest.adUnitCode;\n rendererOverride = bidRequest.rendererOverride;\n\n return {\n method: requestType,\n type: requestType,\n url: requestUrl,\n data: requestPayload,\n mediaTypes,\n requestId: requestRoot.bidderRequestId,\n bidId: bidRequest.bidId,\n adUnitCode,\n rendererOverride\n };\n }\n );\n }\n\n return results;\n};\n\nlet outstreamRender = (bid) => {\n // push to render queue because player may not be loaded yet\n bid.renderer.push(() => {\n let adUnitCode = bid.renderer.config.adUnitCode;\n\n try {\n RockYouVastPlayer.render(adUnitCode, bid, playerCallbacks(bid.renderer));\n } catch (pbe) {\n utils.logError(pbe);\n }\n });\n}\n\nlet rockYouEventTranslation = (rockYouEvent) => {\n let translated;\n switch (rockYouEvent) {\n case 'LOAD':\n translated = 'loaded';\n break;\n case 'IMPRESSION':\n translated = 'impression';\n break;\n case 'COMPLETE':\n case 'ERROR':\n translated = 'ended'\n break;\n }\n\n return translated;\n}\n\nlet playerCallbacks = (renderer) => (id, eventName) => {\n eventName = rockYouEventTranslation(eventName);\n\n if (eventName) {\n renderer.handleVideoEvent({ id, eventName });\n }\n};\n\nlet generateRenderer = (bid, adUnitCode, rendererLocation) => {\n let renderer = Renderer.install({\n url: rendererLocation,\n config: {\n adText: `RockYou Outstream Video Ad`,\n adUnitCode: adUnitCode\n },\n id: bid.id\n });\n\n bid.renderer = renderer;\n\n try {\n renderer.setRender(outstreamRender);\n } catch (err) {\n utils.logWarn('Prebid Error calling setRender on renderer', err);\n }\n\n renderer.setEventHandlers({\n impression: () => utils.logMessage('RockYou outstream video impression event'),\n loaded: () => utils.logMessage('RockYou outstream video loaded event'),\n ended: () => {\n utils.logMessage('RockYou outstream renderer video event');\n document.querySelector(`#${adUnitCode}`).style.display = 'none';\n }\n });\n\n return renderer;\n};\n\nlet interpretResponse = (serverResponse, request) => {\n let responses = [];\n\n if (serverResponse.body) {\n let responseBody = serverResponse.body;\n\n if (responseBody != null) {\n let seatBids = responseBody.seatbid;\n\n if (!(utils.isEmpty(seatBids) ||\n utils.isEmpty(seatBids[0].bid))) {\n let bid = seatBids[0].bid[0];\n\n // handle any values that may end up undefined\n let nullify = (value) => typeof value === 'undefined' ? null : value;\n\n let ttl = null;\n if (bid.ext) {\n ttl = nullify(bid.ext.ttl);\n }\n\n let bidWidth = nullify(bid.w);\n let bidHeight = nullify(bid.h);\n\n let bannerCreative = null;\n let videoXml = null;\n let mediaType = null;\n let renderer = null;\n\n if (request.mediaTypes && request.mediaTypes.video) {\n videoXml = bid.adm;\n mediaType = VIDEO;\n\n let serversideLocations = overridableProperties(request);\n\n renderer = generateRenderer(bid, request.adUnitCode, serversideLocations.rendererLocation);\n } else {\n bannerCreative = bid.adm;\n }\n\n let response = {\n requestId: request.bidId,\n cpm: bid.price,\n width: bidWidth,\n height: bidHeight,\n ad: bannerCreative,\n ttl: ttl,\n creativeId: bid.adid,\n netRevenue: true,\n currency: responseBody.cur,\n vastUrl: null,\n vastXml: videoXml,\n dealId: null,\n mediaType: mediaType,\n renderer: renderer\n };\n\n responses.push(response);\n }\n }\n }\n\n return responses;\n};\n\nlet getUserSyncs = (syncOptions, serverResponses) => {\n const syncs = []\n\n if (syncOptions.iframeEnabled) {\n syncs.push({\n type: 'iframe',\n url: IFRAME_SYNC_URL\n });\n }\n\n return syncs;\n}\n\nexport const spec = {\n code: BIDDER_CODE,\n aliases: ['ry'],\n isBidRequestValid: isBidRequestValid,\n buildRequests: buildRequests,\n interpretResponse: interpretResponse,\n getUserSyncs: getUserSyncs,\n supportedMediaTypes: [BANNER, VIDEO]\n};\n\nexport const internals = {\n playerCallbacks,\n generateRenderer\n}\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/rockyouBidAdapter.js","import adapter from 'src/AnalyticsAdapter';\nimport CONSTANTS from 'src/constants.json';\nimport adaptermanager from 'src/adaptermanager';\nimport includes from 'core-js/library/fn/array/includes';\n\nconst utils = require('src/utils');\n\nconst url = '//pa.rxthdr.com/analytic';\nconst analyticsType = 'endpoint';\n\nlet auctionInitConst = CONSTANTS.EVENTS.AUCTION_INIT;\nlet auctionEndConst = CONSTANTS.EVENTS.AUCTION_END;\nlet bidWonConst = CONSTANTS.EVENTS.BID_WON;\nlet bidRequestConst = CONSTANTS.EVENTS.BID_REQUESTED;\nlet bidAdjustmentConst = CONSTANTS.EVENTS.BID_ADJUSTMENT;\nlet bidResponseConst = CONSTANTS.EVENTS.BID_RESPONSE;\n\nlet initOptions = { publisherIds: [], utmTagData: [], adUnits: [] };\nlet bidWon = {options: {}, events: []};\nlet eventStack = {options: {}, events: []};\n\nlet auctionStatus = 'not_started';\n\nlet localStoragePrefix = 'roxot_analytics_';\nlet utmTags = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content'];\nlet utmTimeoutKey = 'utm_timeout';\nlet utmTimeout = 60 * 60 * 1000;\nlet sessionTimeout = 60 * 60 * 1000;\nlet sessionIdStorageKey = 'session_id';\nlet sessionTimeoutKey = 'session_timeout';\n\nfunction getParameterByName(param) {\n let vars = {};\n window.location.href.replace(location.hash, '').replace(\n /[?&]+([^=&]+)=?([^&]*)?/gi,\n function(m, key, value) {\n vars[key] = value !== undefined ? value : '';\n }\n );\n\n return vars[param] ? vars[param] : '';\n}\n\nfunction buildSessionIdLocalStorageKey() {\n return localStoragePrefix.concat(sessionIdStorageKey);\n}\n\nfunction buildSessionIdTimeoutLocalStorageKey() {\n return localStoragePrefix.concat(sessionTimeoutKey);\n}\n\nfunction updateSessionId() {\n if (isSessionIdTimeoutExpired()) {\n let newSessionId = utils.generateUUID();\n localStorage.setItem(buildSessionIdLocalStorageKey(), newSessionId);\n }\n initOptions.sessionId = getSessionId();\n updateSessionIdTimeout();\n}\n\nfunction updateSessionIdTimeout() {\n localStorage.setItem(buildSessionIdTimeoutLocalStorageKey(), Date.now());\n}\n\nfunction isSessionIdTimeoutExpired() {\n let cpmSessionTimestamp = localStorage.getItem(buildSessionIdTimeoutLocalStorageKey());\n return Date.now() - cpmSessionTimestamp > sessionTimeout;\n}\n\nfunction getSessionId() {\n return localStorage.getItem(buildSessionIdLocalStorageKey()) ? localStorage.getItem(buildSessionIdLocalStorageKey()) : '';\n}\n\nfunction updateUtmTimeout() {\n localStorage.setItem(buildUtmLocalStorageTimeoutKey(), Date.now());\n}\n\nfunction isUtmTimeoutExpired() {\n let utmTimestamp = localStorage.getItem(buildUtmLocalStorageTimeoutKey());\n return (Date.now() - utmTimestamp) > utmTimeout;\n}\n\nfunction buildUtmLocalStorageTimeoutKey() {\n return localStoragePrefix.concat(utmTimeoutKey);\n}\n\nfunction buildUtmLocalStorageKey(utmMarkKey) {\n return localStoragePrefix.concat(utmMarkKey);\n}\n\nfunction checkOptions() {\n if (typeof initOptions.publisherIds === 'undefined') {\n return false;\n }\n\n return initOptions.publisherIds.length > 0;\n}\n\nfunction checkAdUnitConfig() {\n if (typeof initOptions.adUnits === 'undefined') {\n return false;\n }\n\n return initOptions.adUnits.length > 0;\n}\n\nfunction buildBidWon(eventType, args) {\n bidWon.options = initOptions;\n if (checkAdUnitConfig()) {\n if (includes(initOptions.adUnits, args.adUnitCode)) {\n bidWon.events = [{ args: args, eventType: eventType }];\n }\n } else {\n bidWon.events = [{ args: args, eventType: eventType }];\n }\n}\n\nfunction buildEventStack() {\n eventStack.options = initOptions;\n}\n\nfunction filterBidsByAdUnit(bids) {\n var filteredBids = [];\n bids.forEach(function (bid) {\n if (includes(initOptions.adUnits, bid.placementCode)) {\n filteredBids.push(bid);\n }\n });\n return filteredBids;\n}\n\nfunction isValidEvent(eventType, adUnitCode) {\n if (checkAdUnitConfig()) {\n let validationEvents = [bidAdjustmentConst, bidResponseConst, bidWonConst];\n if (!includes(initOptions.adUnits, adUnitCode) && includes(validationEvents, eventType)) {\n return false;\n }\n }\n return true;\n}\n\nfunction isValidEventStack() {\n if (eventStack.events.length > 0) {\n return eventStack.events.some(function(event) {\n return bidRequestConst === event.eventType || bidWonConst === event.eventType;\n });\n }\n return false;\n}\n\nfunction isValidBidWon() {\n return bidWon.events.length > 0;\n}\n\nfunction flushEventStack() {\n eventStack.events = [];\n}\n\nfunction flushBidWon() {\n bidWon.events = [];\n}\n\nlet roxotAdapter = Object.assign(adapter({url, analyticsType}),\n {\n track({eventType, args}) {\n if (!checkOptions()) {\n return;\n }\n\n let info = Object.assign({}, args);\n\n if (info && info.ad) {\n info.ad = '';\n }\n\n if (eventType === auctionInitConst) {\n auctionStatus = 'started';\n flushEventStack();\n }\n\n if (eventType === bidWonConst && auctionStatus === 'not_started') {\n updateSessionId();\n buildBidWon(eventType, info);\n if (isValidBidWon()) {\n send(eventType, bidWon, 'bidWon');\n }\n flushBidWon();\n return;\n }\n\n if (eventType === auctionEndConst) {\n updateSessionId();\n buildEventStack(eventType);\n if (isValidEventStack()) {\n send(eventType, eventStack, 'eventStack');\n }\n flushEventStack();\n auctionStatus = 'not_started';\n } else {\n pushEvent(eventType, info);\n }\n },\n\n });\n\nroxotAdapter.originEnableAnalytics = roxotAdapter.enableAnalytics;\n\nroxotAdapter.enableAnalytics = function (config) {\n initOptions = config.options;\n initOptions.utmTagData = this.buildUtmTagData();\n utils.logInfo('Roxot Analytics enabled with config', initOptions);\n roxotAdapter.originEnableAnalytics(config);\n};\n\nroxotAdapter.buildUtmTagData = function () {\n let utmTagData = {};\n let utmTagsDetected = false;\n utmTags.forEach(function(utmTagKey) {\n let utmTagValue = getParameterByName(utmTagKey);\n if (utmTagValue !== '') {\n utmTagsDetected = true;\n }\n utmTagData[utmTagKey] = utmTagValue;\n });\n utmTags.forEach(function(utmTagKey) {\n if (utmTagsDetected) {\n localStorage.setItem(buildUtmLocalStorageKey(utmTagKey), utmTagData[utmTagKey]);\n updateUtmTimeout();\n } else {\n if (!isUtmTimeoutExpired()) {\n utmTagData[utmTagKey] = localStorage.getItem(buildUtmLocalStorageKey(utmTagKey)) ? localStorage.getItem(buildUtmLocalStorageKey(utmTagKey)) : '';\n updateUtmTimeout();\n }\n }\n });\n return utmTagData;\n};\n\nfunction send(eventType, data, sendDataType) {\n let fullUrl = url + '?publisherIds[]=' + initOptions.publisherIds.join('&publisherIds[]=') + '&host=' + window.location.hostname;\n let xhr = new XMLHttpRequest();\n xhr.open('POST', fullUrl, true);\n xhr.setRequestHeader('Content-Type', 'text/plain');\n xhr.withCredentials = true;\n xhr.onreadystatechange = function(result) {\n if (this.readyState != 4) return;\n\n utils.logInfo('Event ' + eventType + ' sent ' + sendDataType + ' to roxot prebid analytic with result' + result);\n }\n xhr.send(JSON.stringify(data));\n};\n\nfunction pushEvent(eventType, args) {\n if (eventType === bidRequestConst) {\n if (checkAdUnitConfig()) {\n args.bids = filterBidsByAdUnit(args.bids);\n }\n if (args.bids.length > 0) {\n eventStack.events.push({ eventType: eventType, args: args });\n }\n } else {\n if (isValidEvent(eventType, args.adUnitCode)) {\n eventStack.events.push({ eventType: eventType, args: args });\n }\n }\n}\n\nadaptermanager.registerAnalyticsAdapter({\n adapter: roxotAdapter,\n code: 'roxot'\n});\n\nexport default roxotAdapter;\n\n\n\n// WEBPACK FOOTER //\n// ./modules/roxotAnalyticsAdapter.js","import * as utils from 'src/utils';\r\nimport {registerBidder} from 'src/adapters/bidderFactory';\r\n\r\nconst BIDDER_CODE = 'rtbdemand';\r\nconst BIDDER_SERVER = 'bidding.rtbdemand.com';\r\nexport const spec = {\r\n code: BIDDER_CODE,\r\n isBidRequestValid: function(bid) {\r\n return !!(bid && bid.params && bid.params.zoneid);\r\n },\r\n buildRequests: function(validBidRequests, bidderRequest) {\n return validBidRequests.map(bidRequest => {\n var server = bidRequest.params.server || BIDDER_SERVER;\n var parse = getSize(bidderRequest.bids[0].sizes);\n const payload = {\n from: 'hb',\n v: '1.0',\n request_id: bidRequest.bidderRequestId,\n imp_id: bidRequest.bidId,\n aff: bidRequest.params.zoneid,\n bid_floor: parseFloat(bidRequest.params.floor) > 0 ? bidRequest.params.floor : 0,\n charset: document.charSet || document.characterSet,\n site_domain: document.location.hostname,\n site_page: window.location.href,\n subid: 'hb',\n flashver: getFlashVersion(),\n tmax: bidderRequest.timeout,\n hb: '1',\n name: document.location.hostname,\n width: parse.width,\n height: parse.height,\n device_width: screen.width,\n device_height: screen.height,\n dnt: (navigator.doNotTrack == 'yes' || navigator.doNotTrack == '1' || navigator.msDoNotTrack == '1') ? 1 : 0,\n secure: isSecure(),\n make: navigator.vendor ? navigator.vendor : '',\n };\n if (document.referrer) {\n payload.referrer = document.referrer;\r\n }\r\n\n return {\n method: 'GET',\n url: '//' + server + '/hb',\n data: payload\n };\n });\n },\n interpretResponse: function(serverResponse) {\r\n serverResponse = serverResponse.body;\r\n const bidResponses = [];\n if (serverResponse && serverResponse.seatbid) {\n serverResponse.seatbid.forEach(seatBid => seatBid.bid.forEach(bid => {\n const bidResponse = {\n requestId: bid.impid,\r\n creativeId: bid.impid,\n cpm: bid.price,\n width: bid.w,\n height: bid.h,\n ad: bid.adm,\n netRevenue: true,\n currency: 'USD',\n ttl: 360,\r\n };\n\n bidResponses.push(bidResponse);\n }));\n }\n return bidResponses;\r\n },\n getUserSyncs: function getUserSyncs(syncOptions) {\n if (syncOptions.iframeEnabled) {\n return [{\r\n type: 'iframe',\r\n url: '//' + BIDDER_SERVER + '/delivery/matches.php?type=iframe',\r\n }];\n }\n }\r\n}\r\n\r\nfunction getFlashVersion() {\n var plugins, plugin, result;\n\n if (navigator.plugins && navigator.plugins.length > 0) {\n plugins = navigator.plugins;\n for (var i = 0; i < plugins.length && !result; i++) {\n plugin = plugins[i];\n if (plugin.name.indexOf('Shockwave Flash') > -1) {\n result = plugin.description.split('Shockwave Flash ')[1];\n }\n }\n }\n return result || '';\n}\r\n\n/* Get parsed size from request size */\nfunction getSize(requestSizes) {\n const parsed = {};\n const size = utils.parseSizesInput(requestSizes)[0];\n\n if (typeof size !== 'string') {\n return parsed;\n }\n\n const parsedSize = size.toUpperCase().split('X');\n const width = parseInt(parsedSize[0], 10);\n if (width) {\n parsed.width = width;\n }\n\n const height = parseInt(parsedSize[1], 10);\n if (height) {\n parsed.height = height;\n }\n\n return parsed;\n}\n\nfunction isSecure() {\n return document.location.protocol === 'https:';\n}\n\nregisterBidder(spec);\r\n\n\n\n// WEBPACK FOOTER //\n// ./modules/rtbdemandBidAdapter.js","import * as utils from 'src/utils';\nimport { BANNER } from 'src/mediaTypes';\nimport { registerBidder } from 'src/adapters/bidderFactory';\nimport includes from 'core-js/library/fn/array/includes';\n\nconst BIDDER_CODE = 'rtbhouse';\nconst REGIONS = ['prebid-eu', 'prebid-us', 'prebid-asia'];\nconst ENDPOINT_URL = 'creativecdn.com/bidder/prebid/bids';\nconst DEFAULT_CURRENCY_ARR = ['USD']; // NOTE - USD is the only supported currency right now; Hardcoded for bids\n\n/**\n * Helpers\n */\n\nfunction buildEndpointUrl(region) {\n return 'https://' + region + '.' + ENDPOINT_URL;\n}\n\n/**\n * Produces an OpenRTBImpression from a slot config.\n */\nfunction mapImpression(slot) {\n return {\n id: slot.bidId,\n banner: mapBanner(slot),\n tagid: slot.adUnitCode.toString(),\n };\n}\n\n/**\n * Produces an OpenRTB Banner object for the slot given.\n */\nfunction mapBanner(slot) {\n return {\n w: slot.sizes[0][0],\n h: slot.sizes[0][1],\n format: mapSizes(slot.sizes)\n };\n}\n\n/**\n * Produce openRTB banner.format object\n */\nfunction mapSizes(slot_sizes) {\n const format = [];\n slot_sizes.forEach(elem => {\n format.push({\n w: elem[0],\n h: elem[1]\n });\n });\n return format;\n}\n\n/**\n * Produces an OpenRTB site object.\n */\nfunction mapSite(validRequest) {\n const pubId = validRequest && validRequest.length > 0 ? validRequest[0].params.publisherId : 'unknown';\n return {\n publisher: {\n id: pubId.toString(),\n },\n page: utils.getTopWindowUrl(),\n name: utils.getOrigin()\n }\n}\n\nexport const spec = {\n code: BIDDER_CODE,\n supportedMediaTypes: [BANNER],\n\n isBidRequestValid: function (bid) {\n return !!(includes(REGIONS, bid.params.region) && bid.params.publisherId);\n },\n\n buildRequests: function (validBidRequests) {\n const request = {\n id: validBidRequests[0].auctionId,\n imp: validBidRequests.map(slot => mapImpression(slot)),\n site: mapSite(validBidRequests),\n cur: DEFAULT_CURRENCY_ARR,\n test: validBidRequests[0].params.test || 0\n };\n return {\n method: 'POST',\n url: buildEndpointUrl(validBidRequests[0].params.region),\n data: JSON.stringify(request)\n };\n },\n interpretResponse: function (serverResponse, originalRequest) {\n serverResponse = serverResponse.body;\n const bids = [];\n\n if (utils.isArray(serverResponse)) {\n serverResponse.forEach(serverBid => {\n if (serverBid.price !== 0) {\n const bid = {\n requestId: serverBid.impid,\n mediaType: BANNER,\n cpm: serverBid.price,\n creativeId: serverBid.adid,\n ad: serverBid.adm,\n width: serverBid.w,\n height: serverBid.h,\n ttl: 55,\n netRevenue: true,\n currency: 'USD'\n };\n bids.push(bid);\n }\n });\n }\n return bids;\n }\n};\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/rtbhouseBidAdapter.js","import * as utils from 'src/utils';\nimport { registerBidder } from 'src/adapters/bidderFactory';\nimport { config } from 'src/config';\nimport { BANNER, VIDEO } from 'src/mediaTypes';\n\nconst INTEGRATION = 'pbjs_lite_v1.7.0-pre';\n\nfunction isSecure() {\n return location.protocol === 'https:';\n}\n\n// use protocol relative urls for http or https\nconst FASTLANE_ENDPOINT = '//fastlane.rubiconproject.com/a/api/fastlane.json';\nconst VIDEO_ENDPOINT = '//fastlane-adv.rubiconproject.com/v1/auction/video';\nconst SYNC_ENDPOINT = 'https://tap-secure.rubiconproject.com/partner/scripts/rubicon/emily.html?rtb_ext=1';\n\nconst TIMEOUT_BUFFER = 500;\n\nvar sizeMap = {\n 1: '468x60',\n 2: '728x90',\n 5: '120x90',\n 8: '120x600',\n 9: '160x600',\n 10: '300x600',\n 13: '200x200',\n 14: '250x250',\n 15: '300x250',\n 16: '336x280',\n 19: '300x100',\n 31: '980x120',\n 32: '250x360',\n 33: '180x500',\n 35: '980x150',\n 37: '468x400',\n 38: '930x180',\n 43: '320x50',\n 44: '300x50',\n 48: '300x300',\n 54: '300x1050',\n 55: '970x90',\n 57: '970x250',\n 58: '1000x90',\n 59: '320x80',\n 60: '320x150',\n 61: '1000x1000',\n 65: '640x480',\n 67: '320x480',\n 68: '1800x1000',\n 72: '320x320',\n 73: '320x160',\n 78: '980x240',\n 79: '980x300',\n 80: '980x400',\n 83: '480x300',\n 94: '970x310',\n 96: '970x210',\n 101: '480x320',\n 102: '768x1024',\n 103: '480x280',\n 108: '320x240',\n 113: '1000x300',\n 117: '320x100',\n 125: '800x250',\n 126: '200x600',\n 144: '980x600',\n 195: '600x300',\n 199: '640x200',\n 213: '1030x590',\n 214: '980x360',\n};\nutils._each(sizeMap, (item, key) => sizeMap[item] = key);\n\nexport const spec = {\n code: 'rubicon',\n aliases: ['rubiconLite'],\n supportedMediaTypes: [BANNER, VIDEO],\n /**\n * @param {object} bid\n * @return boolean\n */\n isBidRequestValid: function(bid) {\n if (typeof bid.params !== 'object') {\n return false;\n }\n let params = bid.params;\n\n if (!/^\\d+$/.test(params.accountId)) {\n return false;\n }\n\n let parsedSizes = parseSizes(bid);\n if (parsedSizes.length < 1) {\n return false;\n }\n\n if (spec.hasVideoMediaType(bid)) {\n // support instream only\n if ((utils.deepAccess(bid, `mediaTypes.${VIDEO}`) && utils.deepAccess(bid, `mediaTypes.${VIDEO}.context`) !== 'instream') || typeof params.video !== 'object' || !params.video.size_id) {\n return false;\n }\n }\n return true;\n },\n /**\n * @param {BidRequest[]} bidRequests\n * @param bidderRequest\n * @return ServerRequest[]\n */\n buildRequests: function(bidRequests, bidderRequest) {\n return bidRequests.map(bidRequest => {\n bidRequest.startTime = new Date().getTime();\n\n let page_url = config.getConfig('pageUrl');\n if (bidRequest.params.referrer) {\n page_url = bidRequest.params.referrer;\n } else if (!page_url) {\n page_url = utils.getTopWindowUrl();\n }\n\n page_url = bidRequest.params.secure ? page_url.replace(/^http:/i, 'https:') : page_url;\n\n if (spec.hasVideoMediaType(bidRequest)) {\n let params = bidRequest.params;\n let size = parseSizes(bidRequest);\n\n let data = {\n page_url,\n resolution: _getScreenResolution(),\n account_id: params.accountId,\n integration: INTEGRATION,\n 'x_source.tid': bidRequest.transactionId,\n timeout: bidderRequest.timeout - (Date.now() - bidderRequest.auctionStart + TIMEOUT_BUFFER),\n stash_creatives: true,\n ae_pass_through_parameters: params.video.aeParams,\n slots: []\n };\n\n // Define the slot object\n let slotData = {\n site_id: params.siteId,\n zone_id: params.zoneId,\n position: parsePosition(params.position),\n floor: parseFloat(params.floor) > 0.01 ? params.floor : 0.01,\n element_id: bidRequest.adUnitCode,\n name: bidRequest.adUnitCode,\n language: params.video.language,\n width: size[0],\n height: size[1],\n size_id: params.video.size_id\n };\n\n if (params.inventory && typeof params.inventory === 'object') {\n slotData.inventory = params.inventory;\n }\n\n if (params.keywords && Array.isArray(params.keywords)) {\n slotData.keywords = params.keywords;\n }\n\n if (params.visitor && typeof params.visitor === 'object') {\n slotData.visitor = params.visitor;\n }\n\n data.slots.push(slotData);\n\n return {\n method: 'POST',\n url: VIDEO_ENDPOINT,\n data,\n bidRequest\n }\n }\n\n // non-video request builder\n let {\n accountId,\n siteId,\n zoneId,\n position,\n floor,\n keywords,\n visitor,\n inventory,\n userId\n } = bidRequest.params;\n\n // defaults\n floor = (floor = parseFloat(floor)) > 0.01 ? floor : 0.01;\n position = position || 'btf';\n\n // use rubicon sizes if provided, otherwise adUnit.sizes\n let parsedSizes = parseSizes(bidRequest);\n\n // using array to honor ordering. if order isn't important (it shouldn't be), an object would probably be preferable\n let data = [\n 'account_id', accountId,\n 'site_id', siteId,\n 'zone_id', zoneId,\n 'size_id', parsedSizes[0],\n 'alt_size_ids', parsedSizes.slice(1).join(',') || undefined,\n 'p_pos', position,\n 'rp_floor', floor,\n 'rp_secure', isSecure() ? '1' : '0',\n 'tk_flint', INTEGRATION,\n 'x_source.tid', bidRequest.transactionId,\n 'p_screen_res', _getScreenResolution(),\n 'kw', keywords,\n 'tk_user_key', userId\n ];\n\n if (visitor !== null && typeof visitor === 'object') {\n utils._each(visitor, (item, key) => data.push(`tg_v.${key}`, item));\n }\n\n if (inventory !== null && typeof inventory === 'object') {\n utils._each(inventory, (item, key) => data.push(`tg_i.${key}`, item));\n }\n\n data.push(\n 'rand', Math.random(),\n 'rf', page_url\n );\n\n data = data.concat(_getDigiTrustQueryParams());\n\n data = data.reduce(\n (memo, curr, index) =>\n index % 2 === 0 && data[index + 1] !== undefined\n ? memo + curr + '=' + encodeURIComponent(data[index + 1]) + '&' : memo,\n ''\n ).slice(0, -1); // remove trailing &\n\n return {\n method: 'GET',\n url: FASTLANE_ENDPOINT,\n data,\n bidRequest\n };\n });\n },\n /**\n * Test if bid has mediaType or mediaTypes set for video.\n * note: 'mediaType' has been deprecated, however support will remain for a transitional period\n * @param {BidRequest} bidRequest\n * @returns {boolean}\n */\n hasVideoMediaType: function(bidRequest) {\n return bidRequest.mediaType === VIDEO || typeof utils.deepAccess(bidRequest, `mediaTypes.${VIDEO}`) !== 'undefined';\n },\n /**\n * @param {*} responseObj\n * @param {BidRequest} bidRequest\n * @return {Bid[]} An array of bids which\n */\n interpretResponse: function(responseObj, {bidRequest}) {\n responseObj = responseObj.body\n let ads = responseObj.ads;\n\n // check overall response\n if (typeof responseObj !== 'object' || responseObj.status !== 'ok') {\n return [];\n }\n\n // video ads array is wrapped in an object\n if (typeof bidRequest === 'object' && spec.hasVideoMediaType(bidRequest) && typeof ads === 'object') {\n ads = ads[bidRequest.adUnitCode];\n }\n\n // check the ad response\n if (!Array.isArray(ads) || ads.length < 1) {\n return [];\n }\n\n // if there are multiple ads, sort by CPM\n ads = ads.sort(_adCpmSort);\n\n return ads.reduce((bids, ad) => {\n if (ad.status !== 'ok') {\n return [];\n }\n\n let bid = {\n requestId: bidRequest.bidId,\n currency: 'USD',\n creativeId: ad.creative_id,\n cpm: ad.cpm || 0,\n dealId: ad.deal,\n ttl: 300, // 5 minutes\n netRevenue: config.getConfig('rubicon.netRevenue') || false,\n rubicon: {\n advertiserId: ad.advertiser,\n networkId: ad.network\n }\n };\n\n if (ad.creative_type) {\n bid.mediaType = ad.creative_type;\n }\n\n if (ad.creative_type === VIDEO) {\n bid.width = bidRequest.params.video.playerWidth;\n bid.height = bidRequest.params.video.playerHeight;\n bid.vastUrl = ad.creative_depot_url;\n bid.impression_id = ad.impression_id;\n bid.videoCacheKey = ad.impression_id;\n } else {\n bid.ad = _renderCreative(ad.script, ad.impression_id);\n [bid.width, bid.height] = sizeMap[ad.size_id].split('x').map(num => Number(num));\n }\n\n // add server-side targeting\n bid.rubiconTargeting = (Array.isArray(ad.targeting) ? ad.targeting : [])\n .reduce((memo, item) => {\n memo[item.key] = item.values[0];\n return memo;\n }, {'rpfl_elemid': bidRequest.adUnitCode});\n\n bids.push(bid);\n\n return bids;\n }, []);\n },\n getUserSyncs: function(syncOptions) {\n if (!hasSynced && syncOptions.iframeEnabled) {\n hasSynced = true;\n return {\n type: 'iframe',\n url: SYNC_ENDPOINT\n };\n }\n }\n};\n\nfunction _adCpmSort(adA, adB) {\n return (adB.cpm || 0.0) - (adA.cpm || 0.0);\n}\n\nfunction _getScreenResolution() {\n return [window.screen.width, window.screen.height].join('x');\n}\n\nfunction _getDigiTrustQueryParams() {\n function getDigiTrustId() {\n let digiTrustUser = window.DigiTrust && (config.getConfig('digiTrustId') || window.DigiTrust.getUser({member: 'T9QSFKPDN9'}));\n return (digiTrustUser && digiTrustUser.success && digiTrustUser.identity) || null;\n }\n let digiTrustId = getDigiTrustId();\n // Verify there is an ID and this user has not opted out\n if (!digiTrustId || (digiTrustId.privacy && digiTrustId.privacy.optout)) {\n return [];\n }\n return [\n 'dt.id', digiTrustId.id,\n 'dt.keyv', digiTrustId.keyv,\n 'dt.pref', 0\n ];\n}\n\nfunction _renderCreative(script, impId) {\n return `\n\n\n\n
\n\n
\n\n`;\n}\n\nfunction parseSizes(bid) {\n let params = bid.params;\n if (spec.hasVideoMediaType(bid)) {\n let size = [];\n if (typeof params.video === 'object' && params.video.playerWidth && params.video.playerHeight) {\n size = [\n params.video.playerWidth,\n params.video.playerHeight\n ];\n } else if (Array.isArray(bid.sizes) && bid.sizes.length > 0 && Array.isArray(bid.sizes[0]) && bid.sizes[0].length > 1) {\n size = bid.sizes[0];\n }\n return size;\n }\n\n let sizes = Array.isArray(params.sizes) ? params.sizes : mapSizes(bid.sizes)\n\n return masSizeOrdering(sizes);\n}\n\nfunction mapSizes(sizes) {\n return utils.parseSizesInput(sizes)\n // map sizes while excluding non-matches\n .reduce((result, size) => {\n let mappedSize = parseInt(sizeMap[size], 10);\n if (mappedSize) {\n result.push(mappedSize);\n }\n return result;\n }, []);\n}\n\nfunction parsePosition(position) {\n if (position === 'atf' || position === 'btf') {\n return position;\n }\n return 'unknown';\n}\n\nexport function masSizeOrdering(sizes) {\n const MAS_SIZE_PRIORITY = [15, 2, 9];\n\n return sizes.sort((first, second) => {\n // sort by MAS_SIZE_PRIORITY priority order\n const firstPriority = MAS_SIZE_PRIORITY.indexOf(first);\n const secondPriority = MAS_SIZE_PRIORITY.indexOf(second);\n\n if (firstPriority > -1 || secondPriority > -1) {\n if (firstPriority === -1) {\n return 1;\n }\n if (secondPriority === -1) {\n return -1;\n }\n return firstPriority - secondPriority;\n }\n\n // and finally ascending order\n return first - second;\n });\n}\n\nvar hasSynced = false;\nexport function resetUserSync() {\n hasSynced = false;\n}\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/rubiconBidAdapter.js","import * as utils from 'src/utils';\nimport {BANNER} from 'src/mediaTypes';\nimport {registerBidder} from 'src/adapters/bidderFactory';\nimport {config} from 'src/config';\n\nconst BIDDER_CODE = 'rxrtb';\nconst DEFAULT_HOST = 'bid.rxrtb.bid';\nconst AUCTION_TYPE = 2;\nconst RESPONSE_TTL = 900;\n\nexport const spec = {\n code: BIDDER_CODE,\n supportedMediaTypes: [BANNER],\n isBidRequestValid: function (bidRequest) {\n return 'params' in bidRequest && bidRequest.params.source !== undefined && bidRequest.params.id !== undefined && utils.isInteger(bidRequest.params.id) && bidRequest.params.token !== undefined;\n },\n buildRequests: function (validBidRequests) {\n var requests = [];\n for (let i = 0; i < validBidRequests.length; i++) {\n let prebidReq = makePrebidRequest(validBidRequests[i]);\n if (prebidReq) {\n requests.push(prebidReq);\n }\n }\n\n return requests;\n },\n interpretResponse: function (serverResponse, bidRequest) {\n let rtbResp = serverResponse.body;\n if ((!rtbResp) || (!rtbResp.seatbid)) {\n return [];\n }\n let bidResponses = [];\n for (let i = 0; i < rtbResp.seatbid.length; i++) {\n let seatbid = rtbResp.seatbid[i];\n for (let j = 0; j < seatbid.bid.length; j++) {\n let bid = seatbid.bid[j];\n let bidResponse = {\n requestId: bid.impid,\n cpm: bid.price,\n width: bid.w,\n height: bid.h,\n mediaType: BANNER,\n creativeId: bid.crid,\n currency: rtbResp.cur || 'USD',\n netRevenue: true,\n ttl: bid.exp || RESPONSE_TTL,\n ad: bid.adm\n };\n bidResponses.push(bidResponse);\n }\n }\n return bidResponses;\n },\n getUserSyncs: function (syncOptions, serverResponses) {\n return [];\n }\n}\n\nregisterBidder(spec);\n\nfunction getDomain(url) {\n var a = document.createElement('a');\n a.href = url;\n\n return a.host;\n}\n\nfunction makePrebidRequest(req) {\n let host = req.params.host || DEFAULT_HOST;\n let url = '//' + host + '/dsp?id=' + req.params.id + '&token=' + req.params.token;\n let reqData = makeRtbRequest(req);\n return {\n method: 'POST',\n url: url,\n data: JSON.stringify(reqData)\n };\n}\n\nfunction makeRtbRequest(req) {\n let imp = [];\n imp.push(makeImp(req));\n return {\n 'id': req.auctionId,\n 'imp': imp,\n 'site': makeSite(req),\n 'device': makeDevice(),\n 'hb': 1,\n 'at': req.params.at || AUCTION_TYPE,\n 'cur': ['USD'],\n 'badv': req.params.badv || '',\n 'bcat': req.params.bcat || '',\n };\n}\n\nfunction makeImp(req) {\n let imp = {\n 'id': req.bidId,\n 'tagid': req.adUnitCode,\n 'banner': makeBanner(req)\n };\n\n if (req.params.bidfloor && isFinite(req.params.bidfloor)) {\n imp.bidfloor = req.params.bidfloor\n }\n\n return imp;\n}\n\nfunction makeBanner(req) {\n let format = [];\n let banner = {};\n for (let i = 0; i < req.sizes.length; i++) {\n format.push({\n w: req.sizes[i][0],\n h: req.sizes[i][1]\n });\n }\n banner.format = format;\n if (req.params.pos && utils.isInteger(req.params.pos)) {\n banner.pos = req.params.pos;\n }\n return banner;\n}\n\nfunction makeSite(req) {\n return {\n 'id': req.params.source,\n 'domain': getDomain(config.getConfig('publisherDomain')),\n 'page': utils.getTopWindowUrl(),\n 'ref': utils.getTopWindowReferrer()\n };\n}\n\nfunction makeDevice() {\n return {\n 'ua': window.navigator.userAgent || '',\n 'ip': 1\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./modules/rxrtbBidAdapter.js","import { config } from 'src/config';\nimport { setS2STestingModule } from 'src/adaptermanager';\n\nexport const SERVER = 'server';\nexport const CLIENT = 'client';\n\nvar testing = false; // whether testing is turned on\nvar bidSource = {}; // store bidder sources determined from s2sConfing bidderControl\n\n// load s2sConfig\nconfig.getConfig('s2sConfig', config => {\n testing = config.s2sConfig && config.s2sConfig.testing;\n calculateBidSources(config.s2sConfig);\n});\n\nexport function getSourceBidderMap(adUnits = []) {\n var sourceBidders = {[SERVER]: {}, [CLIENT]: {}};\n\n // bail if testing is not turned on\n if (!testing) {\n return {[SERVER]: [], [CLIENT]: []};\n }\n\n adUnits.forEach((adUnit) => {\n // if any adUnit bidders specify a bidSource, include them\n (adUnit.bids || []).forEach((bid) => {\n // calculate the source once and store on bid object\n bid.calcSource = bid.calcSource || getSource(bid.bidSource);\n // if no bidSource at bid level, default to bidSource from bidder\n bid.finalSource = bid.calcSource || bidSource[bid.bidder] || CLIENT; // default to client\n // add bidder to sourceBidders data structure\n sourceBidders[bid.finalSource][bid.bidder] = true;\n });\n });\n\n // make sure all bidders in bidSource are in sourceBidders\n Object.keys(bidSource).forEach((bidder) => {\n sourceBidders[bidSource[bidder]][bidder] = true;\n });\n\n // return map of source => array of bidders\n return {\n [SERVER]: Object.keys(sourceBidders[SERVER]),\n [CLIENT]: Object.keys(sourceBidders[CLIENT])\n };\n}\n\n/**\n * @function calculateBidSources determines the source for each s2s bidder based on bidderControl weightings. these can be overridden at the adUnit level\n * @param s2sConfig server-to-server configuration\n */\nfunction calculateBidSources(s2sConfig = {}) {\n // bail if testing is not turned on\n if (!testing) {\n return;\n }\n bidSource = {}; // reset bid sources\n // calculate bid source (server/client) for each s2s bidder\n var bidderControl = s2sConfig.bidderControl || {};\n (s2sConfig.bidders || []).forEach((bidder) => {\n bidSource[bidder] = getSource(bidderControl[bidder] && bidderControl[bidder].bidSource) || SERVER; // default to server\n });\n}\n\n/**\n * @function getSource() gets a random source based on the given sourceWeights (export just for testing)\n * @param sourceWeights mapping of relative weights of potential sources. for example {server: 1, client: 3} should do a server request 25% of the time and a client request 75% of the time.\n * @param bidSources list of possible bid sources: \"server\", \"client\". In theory could get the sources from the sourceWeights keys, but this is publisher config defined, so bidSources let's us constrain that.\n * @return the chosen source (\"server\" or \"client\"), or undefined if none chosen\n */\nexport function getSource(sourceWeights = {}, bidSources = [SERVER, CLIENT]) {\n var srcIncWeight = {}; // store incremental weights of each source\n var totWeight = 0;\n bidSources.forEach((source) => {\n totWeight += (sourceWeights[source] || 0);\n srcIncWeight[source] = totWeight;\n });\n if (!totWeight) return; // bail if no source weights\n // choose a source randomly based on weights\n var rndWeight = Math.random() * totWeight;\n for (var i = 0; i < bidSources.length; i++) {\n let source = bidSources[i];\n // choose the first source with an incremental weight > random weight\n if (rndWeight < srcIncWeight[source]) return source;\n }\n}\n\n// inject the s2sTesting module into the adaptermanager rather than importing it\n// importing it causes the packager to include it even when it's not explicitly included in the build\nsetS2STestingModule(exports);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/s2sTesting.js","import * as utils from 'src/utils';\r\nimport {registerBidder} from 'src/adapters/bidderFactory';\r\nexport const spec = {\r\n code: 'sekindoUM',\r\n supportedMediaTypes: ['banner', 'video'],\r\n /**\r\n * Determines whether or not the given bid request is valid.\r\n *\r\n * @param {BidRequest} bid The bid params to validate.\r\n * @return boolean True if this is a valid bid, and false otherwise.\r\n */\r\n isBidRequestValid: function(bid) {\r\n if (bid.mediaType == 'video' || (typeof bid.mediaTypes == 'object' && typeof bid.mediaTypes.video == 'object')) {\r\n if (typeof bid.params.video != 'object' || typeof bid.params.video.playerWidth == 'undefined' || typeof bid.params.video.playerHeight == 'undefined') {\r\n return false;\r\n }\r\n }\r\n return !!(bid.params.spaceId);\r\n },\r\n /**\r\n * Make a server request from the list of BidRequests.\r\n *\r\n * @param {validBidRequests[]} - an array of bids\r\n * @return ServerRequest Info describing the request to the server.\r\n */\r\n buildRequests: function(validBidRequests, bidderRequest) {\r\n var pubUrl = null;\r\n if (parent !== window) {\r\n pubUrl = document.referrer;\r\n } else {\r\n pubUrl = window.location.href;\r\n }\r\n\r\n return validBidRequests.map(bidRequest => {\r\n var subId = utils.getBidIdParameter('subId', bidRequest.params);\r\n var spaceId = utils.getBidIdParameter('spaceId', bidRequest.params);\r\n var bidfloor = utils.getBidIdParameter('bidfloor', bidRequest.params);\r\n var protocol = (document.location.protocol === 'https:' ? 's' : '');\r\n var queryString = '';\r\n\r\n queryString = utils.tryAppendQueryString(queryString, 's', spaceId);\r\n queryString = utils.tryAppendQueryString(queryString, 'subId', subId);\r\n queryString = utils.tryAppendQueryString(queryString, 'pubUrl', pubUrl);\r\n queryString = utils.tryAppendQueryString(queryString, 'hbTId', bidRequest.transactionId);\r\n queryString = utils.tryAppendQueryString(queryString, 'hbBidId', bidRequest.bidId);\r\n queryString = utils.tryAppendQueryString(queryString, 'hbver', '4');\r\n queryString = utils.tryAppendQueryString(queryString, 'hbcb', '1');/// legasy\r\n queryString = utils.tryAppendQueryString(queryString, 'dcpmflr', bidfloor);\r\n queryString = utils.tryAppendQueryString(queryString, 'protocol', protocol);\r\n queryString = utils.tryAppendQueryString(queryString, 'x', bidRequest.params.width);\r\n queryString = utils.tryAppendQueryString(queryString, 'y', bidRequest.params.height);\r\n if (bidRequest.mediaType === 'video' || (typeof bidRequest.mediaTypes == 'object' && typeof bidRequest.mediaTypes.video == 'object')) {\r\n queryString = utils.tryAppendQueryString(queryString, 'x', bidRequest.params.playerWidth);\r\n queryString = utils.tryAppendQueryString(queryString, 'y', bidRequest.params.playerHeight);\r\n if (typeof vid_vastType != 'undefined') {\r\n queryString = utils.tryAppendQueryString(queryString, 'vid_vastType', bidRequest.params.vid_vastType);\r\n }\r\n if (typeof bidRequest.mediaTypes == 'object' && typeof bidRequest.mediaTypes.video == 'object' && typeof bidRequest.mediaTypes.video.context == 'string') {\r\n queryString = utils.tryAppendQueryString(queryString, 'vid_context', bidRequest.mediaTypes.video.context);\r\n }\r\n }\r\n\r\n var endpointUrl = 'http' + protocol + '://hb.sekindo.com/live/liveView.php';\r\n\r\n return {\r\n method: 'GET',\r\n url: endpointUrl,\r\n data: queryString,\r\n };\r\n });\r\n },\r\n /**\r\n * Unpack the response from the server into a list of bids.\r\n *\r\n * @param {*} serverResponse A successful response from the server.\r\n * @return {Bid[]} An array of bids which were nested inside the server.\r\n */\r\n interpretResponse: function(serverResponse, bidRequest) {\r\n if (typeof serverResponse !== 'object') {\r\n return [];\r\n }\r\n\r\n let bidResponses = [];\r\n var bidResponse = {\r\n requestId: serverResponse.body.id,\r\n bidderCode: spec.code,\r\n cpm: serverResponse.body.cpm,\r\n width: serverResponse.body.width,\r\n height: serverResponse.body.height,\r\n creativeId: serverResponse.body.creativeId,\r\n currency: serverResponse.body.currency,\r\n netRevenue: serverResponse.body.netRevenue,\r\n ttl: serverResponse.body.ttl\r\n };\r\n if (bidRequest.mediaType == 'video') {\r\n if (typeof serverResponse.body.vastUrl != 'undefined') {\r\n bidResponse.vastUrl = serverResponse.body.vastUrl;\r\n } else {\r\n bidResponse.vastXml = serverResponse.body.vastXml;\r\n }\r\n } else {\r\n bidResponse.ad = serverResponse.body.ad;\r\n }\r\n\r\n bidResponses.push(bidResponse);\r\n return bidResponses;\r\n }\r\n}\r\nregisterBidder(spec);\r\n\n\n\n// WEBPACK FOOTER //\n// ./modules/sekindoUMBidAdapter.js","import * as utils from 'src/utils';\nimport { registerBidder } from 'src/adapters/bidderFactory';\n\nconst BIDDER_CODE = 'serverbid';\n\nconst CONFIG = {\n 'serverbid': {\n 'BASE_URI': 'https://e.serverbid.com/api/v2'\n },\n 'connectad': {\n 'BASE_URI': 'https://i.connectad.io/api/v2'\n },\n 'onefiftytwo': {\n 'BASE_URI': 'https://e.serverbid.com/api/v2'\n },\n 'insticator': {\n 'BASE_URI': 'https://e.serverbid.com/api/v2'\n },\n 'adsparc': {\n 'BASE_URI': 'https://e.serverbid.com/api/v2'\n },\n 'automatad': {\n 'BASE_URI': 'https://e.serverbid.com/api/v2'\n }\n};\n\nlet siteId = 0;\nlet bidder = 'serverbid';\n\nexport const spec = {\n code: BIDDER_CODE,\n aliases: ['connectad', 'onefiftytwo', 'insticator', 'adsparc', 'automatad'],\n\n /**\n * Determines whether or not the given bid request is valid.\n *\n * @param {BidRequest} bid The bid params to validate.\n * @return boolean True if this is a valid bid, and false otherwise.\n */\n isBidRequestValid: function(bid) {\n return !!(bid.params.networkId && bid.params.siteId);\n },\n\n /**\n * Make a server request from the list of BidRequests.\n *\n * @param {validBidRequests[]} - an array of bids\n * @return ServerRequest Info describing the request to the server.\n */\n\n buildRequests: function(validBidRequests) {\n // Do we need to group by bidder? i.e. to make multiple requests for\n // different endpoints.\n\n let ret = {\n method: 'POST',\n url: '',\n data: '',\n bidRequest: []\n };\n\n if (validBidRequests.length < 1) {\n return ret;\n }\n\n let ENDPOINT_URL;\n\n // These variables are used in creating the user sync URL.\n siteId = validBidRequests[0].params.siteId;\n bidder = validBidRequests[0].params.bidder;\n\n const data = Object.assign({\n placements: [],\n time: Date.now(),\n user: {},\n url: utils.getTopWindowUrl(),\n referrer: document.referrer,\n enableBotFiltering: true,\n includePricingData: true,\n parallel: true\n }, validBidRequests[0].params);\n\n validBidRequests.map(bid => {\n let config = CONFIG[bid.bidder];\n ENDPOINT_URL = config.BASE_URI;\n\n const placement = Object.assign({\n divName: bid.bidId,\n adTypes: bid.adTypes || getSize(bid.sizes)\n }, bid.params);\n\n if (placement.networkId && placement.siteId) {\n data.placements.push(placement);\n }\n });\n\n ret.data = JSON.stringify(data);\n ret.bidRequest = validBidRequests;\n ret.url = ENDPOINT_URL;\n\n return ret;\n },\n\n /**\n * Unpack the response from the server into a list of bids.\n *\n * @param {*} serverResponse A successful response from the server.\n * @return {Bid[]} An array of bids which were nested inside the server.\n */\n interpretResponse: function(serverResponse, bidRequest) {\n let bid;\n let bids;\n let bidId;\n let bidObj;\n let bidResponses = [];\n\n bids = bidRequest.bidRequest;\n\n serverResponse = (serverResponse || {}).body;\n for (let i = 0; i < bids.length; i++) {\n bid = {};\n bidObj = bids[i];\n bidId = bidObj.bidId;\n\n if (serverResponse) {\n const decision = serverResponse.decisions && serverResponse.decisions[bidId];\n const price = decision && decision.pricing && decision.pricing.clearPrice;\n\n if (decision && price) {\n bid.requestId = bidId;\n bid.cpm = price;\n bid.width = decision.width;\n bid.height = decision.height;\n bid.ad = retrieveAd(decision);\n bid.currency = 'USD';\n bid.creativeId = decision.adId;\n bid.ttl = 360;\n bid.netRevenue = true;\n bid.referrer = utils.getTopWindowUrl();\n\n bidResponses.push(bid);\n }\n }\n }\n\n return bidResponses;\n },\n\n getUserSyncs: function(syncOptions) {\n if (syncOptions.iframeEnabled) {\n if (bidder === 'connectad') {\n return [{\n type: 'iframe',\n url: '//cdn.connectad.io/connectmyusers.php'\n }];\n } else {\n return [{\n type: 'iframe',\n url: '//s.zkcdn.net/ss/' + siteId + '.html'\n }];\n }\n } else {\n utils.logWarn(bidder + ': Please enable iframe based user syncing.');\n }\n }\n};\n\nconst sizeMap = [\n null,\n '120x90',\n '120x90',\n '468x60',\n '728x90',\n '300x250',\n '160x600',\n '120x600',\n '300x100',\n '180x150',\n '336x280',\n '240x400',\n '234x60',\n '88x31',\n '120x60',\n '120x240',\n '125x125',\n '220x250',\n '250x250',\n '250x90',\n '0x0',\n '200x90',\n '300x50',\n '320x50',\n '320x480',\n '185x185',\n '620x45',\n '300x125',\n '800x250'\n];\n\nsizeMap[77] = '970x90';\nsizeMap[123] = '970x250';\nsizeMap[43] = '300x600';\nsizeMap[286] = '970x66';\nsizeMap[3230] = '970x280';\nsizeMap[429] = '486x60';\nsizeMap[374] = '700x500';\nsizeMap[934] = '300x1050';\nsizeMap[1578] = '320x100';\nsizeMap[331] = '320x250';\nsizeMap[3301] = '320x267';\nsizeMap[2730] = '728x250';\n\nfunction getSize(sizes) {\n const result = [];\n sizes.forEach(function(size) {\n const index = sizeMap.indexOf(size[0] + 'x' + size[1]);\n if (index >= 0) {\n result.push(index);\n }\n });\n return result;\n}\n\nfunction retrieveAd(decision) {\n return decision.contents && decision.contents[0] && decision.contents[0].body + utils.createTrackPixelHtml(decision.impressionUrl);\n}\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/serverbidBidAdapter.js","import Adapter from 'src/adapter';\nimport bidfactory from 'src/bidfactory';\nimport * as utils from 'src/utils';\nimport adaptermanager from 'src/adaptermanager';\nimport { STATUS, S2S } from 'src/constants';\nimport { config } from 'src/config';\n\nconst TYPE = S2S.SRC;\nconst getConfig = config.getConfig;\nconst REQUIRED_S2S_CONFIG_KEYS = ['siteId', 'networkId', 'bidders'];\n\nlet _s2sConfig;\n\nconst bidder = 'serverbidServer';\n\nvar ServerBidServerAdapter;\nServerBidServerAdapter = function ServerBidServerAdapter() {\n const baseAdapter = new Adapter('serverbidServer');\n\n const BASE_URI = 'https://e.serverbid.com/api/v2';\n\n const sizeMap = [\n null,\n '120x90',\n '120x90',\n '468x60',\n '728x90',\n '300x250',\n '160x600',\n '120x600',\n '300x100',\n '180x150',\n '336x280',\n '240x400',\n '234x60',\n '88x31',\n '120x60',\n '120x240',\n '125x125',\n '220x250',\n '250x250',\n '250x90',\n '0x0',\n '200x90',\n '300x50',\n '320x50',\n '320x480',\n '185x185',\n '620x45',\n '300x125',\n '800x250'\n ];\n\n sizeMap[77] = '970x90';\n sizeMap[123] = '970x250';\n sizeMap[43] = '300x600';\n\n function setS2sConfig(options) {\n if (options.adapter != bidder) return;\n\n let contains = (xs, x) => xs.indexOf(x) > -1;\n let userConfig = Object.keys(options);\n\n REQUIRED_S2S_CONFIG_KEYS.forEach(key => {\n if (!contains(userConfig, key)) {\n utils.logError(key + ' missing in server to server config');\n return void 0; // void 0 to beat the linter\n }\n })\n\n _s2sConfig = options;\n }\n getConfig('s2sConfig', ({s2sConfig}) => setS2sConfig(s2sConfig));\n\n function getLocalConfig() {\n return (_s2sConfig || {});\n }\n\n function _convertFields(bid) {\n let safeBid = bid || {};\n let converted = {};\n let name = safeBid.bidder;\n converted[name] = safeBid.params;\n return converted;\n }\n\n baseAdapter.callBids = function(s2sBidRequest, bidRequests, addBidResponse, done, ajax) {\n let params = s2sBidRequest;\n let shouldDoWorkFn = function(bidRequest) {\n return bidRequest &&\n bidRequest.ad_units &&\n utils.isArray(bidRequest.ad_units) &&\n bidRequest.ad_units.length;\n }\n if (shouldDoWorkFn(params)) {\n _callBids(s2sBidRequest, bidRequests, addBidResponse, done, ajax);\n }\n };\n\n function _callBids(s2sBidRequest, bidRequests, addBidResponse, done, ajax) {\n let bidRequest = s2sBidRequest;\n\n const data = {\n placements: [],\n time: Date.now(),\n user: {},\n url: utils.getTopWindowUrl(),\n referrer: document.referrer,\n enableBotFiltering: true,\n includePricingData: true,\n parallel: true\n };\n const allBids = [];\n\n for (let i = 0; i < bidRequest.ad_units.length; i++) {\n let adunit = bidRequest.ad_units[i];\n let siteId = _s2sConfig.siteId;\n let networkId = getLocalConfig().networkId;\n let sizes = adunit.sizes;\n\n var bids = adunit.bids || [];\n // one placement for each of the bids\n for (let i = 0; i < bids.length; i++) {\n const bid = bids[i];\n bid.code = adunit.code;\n allBids.push(bid);\n\n const placement = Object.assign({}, {\n divName: bid.bid_id,\n networkId: networkId,\n siteId: siteId,\n adTypes: bid.adTypes || getSize(sizes),\n bidders: _convertFields(bid),\n skipSelection: true\n });\n\n if (placement.networkId && placement.siteId) {\n data.placements.push(placement);\n }\n }\n }\n if (data.placements.length) {\n ajax(BASE_URI, _responseCallback(addBidResponse, allBids, done), JSON.stringify(data), { method: 'POST', withCredentials: true, contentType: 'application/json' });\n }\n }\n\n function _responseCallback(addBidResponse, bids, done) {\n return function (resp) {\n let bid;\n let bidId;\n let result;\n let bidObj;\n let bidCode;\n let placementCode;\n let skipSelectionRequestsReturnArray = function (decision) {\n return (decision || []).length ? decision[0] : {};\n };\n\n try {\n result = JSON.parse(resp);\n } catch (error) {\n utils.logError(error);\n }\n\n for (let i = 0; i < bids.length; i++) {\n bidObj = bids[i];\n bidId = bidObj.bid_id;\n bidObj.bidId = bidObj.bid_id;\n bidCode = bidObj.bidder;\n placementCode = bidObj.code;\n let noBid = function(bidObj) {\n bid = bidfactory.createBid(STATUS.NO_BID, bidObj);\n bid.bidderCode = bidCode;\n return bid;\n };\n\n if (result) {\n const decision = result.decisions && skipSelectionRequestsReturnArray(result.decisions[bidId]);\n const price = decision && decision.pricing && decision.pricing.clearPrice;\n\n if (decision && price) {\n bid = bidfactory.createBid(STATUS.GOOD, bidObj);\n bid = Object.assign(bid, {bidderCode: bidCode,\n cpm: price,\n width: decision.width,\n height: decision.height,\n ad: retrieveAd(decision)})\n } else {\n bid = noBid(bidObj);\n }\n } else {\n bid = noBid(bidObj);\n }\n addBidResponse(placementCode, bid);\n }\n done()\n }\n };\n\n function retrieveAd(decision) {\n return decision.contents && decision.contents[0] && decision.contents[0].body + utils.createTrackPixelHtml(decision.impressionUrl);\n }\n\n function getSize(sizes) {\n let width = 'w';\n let height = 'h';\n const result = [];\n sizes.forEach(function(size) {\n const index = sizeMap.indexOf(size[width] + 'x' + size[height]);\n if (index >= 0) {\n result.push(index);\n }\n });\n return result;\n }\n\n // Export the `callBids` function, so that Prebid.js can execute\n // this function when the page asks to send out bid requests.\n return Object.assign(this, {\n queueSync: baseAdapter.queueSync,\n callBids: baseAdapter.callBids,\n setBidderCode: baseAdapter.setBidderCode,\n type: TYPE\n });\n};\n\nServerBidServerAdapter.createNew = function() {\n return new ServerBidServerAdapter();\n};\n\nadaptermanager.registerBidAdapter(new ServerBidServerAdapter(), bidder);\n\nmodule.exports = ServerBidServerAdapter;\n\n\n\n// WEBPACK FOOTER //\n// ./modules/serverbidServerBidAdapter.js","import adapter from 'src/AnalyticsAdapter';\nimport adaptermanager from 'src/adaptermanager';\nconst utils = require('src/utils');\n\nconst emptyUrl = '';\nconst analyticsType = 'endpoint';\nconst STR_BIDDER_CODE = 'sharethrough';\nconst STR_VERSION = '0.1.0';\n\nvar sharethroughAdapter = Object.assign(adapter(\n {\n emptyUrl,\n analyticsType\n }\n),\n{\n STR_BEACON_HOST: document.location.protocol + '//b.sharethrough.com/butler?',\n placementCodeSet: {},\n\n track({ eventType, args }) {\n if (eventType === 'bidRequested' && args.bidderCode === 'sharethrough') {\n var bids = args.bids;\n var keys = Object.keys(bids);\n for (var i = 0; i < keys.length; i++) {\n this.placementCodeSet[bids[keys[i]].placementCode] = args.bids[keys[i]];\n }\n }\n\n if (eventType === 'bidWon') {\n this.bidWon(args);\n }\n },\n\n bidWon(args) {\n const curBidderCode = args.bidderCode;\n\n if (curBidderCode !== STR_BIDDER_CODE && (args.adUnitCode in this.placementCodeSet)) {\n let strBid = this.placementCodeSet[args.adUnitCode];\n this.fireLoseBeacon(curBidderCode, args.cpm, strBid.adserverRequestId, 'headerBidLose');\n }\n },\n\n fireLoseBeacon(winningBidderCode, winningCPM, arid, type) {\n let loseBeaconUrl = this.STR_BEACON_HOST;\n loseBeaconUrl = utils.tryAppendQueryString(loseBeaconUrl, 'winnerBidderCode', winningBidderCode);\n loseBeaconUrl = utils.tryAppendQueryString(loseBeaconUrl, 'winnerCpm', winningCPM);\n loseBeaconUrl = utils.tryAppendQueryString(loseBeaconUrl, 'arid', arid);\n loseBeaconUrl = utils.tryAppendQueryString(loseBeaconUrl, 'type', type);\n loseBeaconUrl = this.appendEnvFields(loseBeaconUrl);\n\n this.fireBeacon(loseBeaconUrl);\n },\n appendEnvFields(url) {\n url = utils.tryAppendQueryString(url, 'hbVersion', '1.7.0-pre');\n url = utils.tryAppendQueryString(url, 'strVersion', STR_VERSION);\n url = utils.tryAppendQueryString(url, 'hbSource', 'prebid');\n\n return url;\n },\n fireBeacon(theUrl) {\n const img = new Image();\n img.src = theUrl;\n }\n});\n\nadaptermanager.registerAnalyticsAdapter({\n adapter: sharethroughAdapter,\n code: 'sharethrough'\n});\n\nexport default sharethroughAdapter;\n\n\n\n// WEBPACK FOOTER //\n// ./modules/sharethroughAnalyticsAdapter.js","import { registerBidder } from 'src/adapters/bidderFactory';\n\nconst BIDDER_CODE = 'sharethrough';\nconst VERSION = '2.0.0';\nconst STR_ENDPOINT = document.location.protocol + '//btlr.sharethrough.com/header-bid/v1';\n\nexport const sharethroughAdapterSpec = {\n code: BIDDER_CODE,\n isBidRequestValid: bid => !!bid.params.pkey && bid.bidder === BIDDER_CODE,\n buildRequests: (bidRequests) => {\n return bidRequests.map(bid => {\n return {\n method: 'GET',\n url: STR_ENDPOINT,\n data: {\n bidId: bid.bidId,\n placement_key: bid.params.pkey,\n hbVersion: '1.7.0-pre',\n strVersion: VERSION,\n hbSource: 'prebid'\n }\n };\n })\n },\n interpretResponse: ({ body }, req) => {\n if (!Object.keys(body).length) return [];\n\n const creative = body.creatives[0];\n\n return [{\n requestId: req.data.bidId,\n width: 0,\n height: 0,\n cpm: creative.cpm,\n creativeId: creative.creative.creative_key,\n deal_id: creative.creative.deal_id,\n currency: 'USD',\n netRevenue: true,\n ttl: 360,\n ad: generateAd(body, req)\n }];\n }\n}\n\nfunction generateAd(body, req) {\n const strRespId = `str_response_${req.data.bidId}`;\n\n return `\n
\n
\n \n \n `;\n}\n\n// See https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#The_Unicode_Problem\nfunction b64EncodeUnicode(str) {\n return btoa(\n encodeURIComponent(str).replace(/%([0-9A-F]{2})/g,\n function toSolidBytes(match, p1) {\n return String.fromCharCode('0x' + p1);\n }));\n}\n\nregisterBidder(sharethroughAdapterSpec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/sharethroughBidAdapter.js","import * as utils from 'src/utils';\nimport {\n config\n} from 'src/config';\nimport {\n registerBidder\n} from 'src/adapters/bidderFactory';\nconst BIDDER_CODE = 'smartadserver';\nexport const spec = {\n code: BIDDER_CODE,\n aliases: ['smart'], // short code\n /**\n * Determines whether or not the given bid request is valid.\n *\n * @param {BidRequest} bid The bid params to validate.\n * @return boolean True if this is a valid bid, and false otherwise.\n */\n isBidRequestValid: function (bid) {\n return !!(bid.params && bid.params.siteId && bid.params.pageId && bid.params.formatId && bid.params.domain);\n },\n /**\n * Make a server request from the list of BidRequests.\n *\n * @param {validBidRequests[]} - an array of bids\n * @return ServerRequest Info describing the request to the server.\n */\n buildRequests: function (validBidRequests) {\n // use bidderRequest.bids[] to get bidder-dependent request info\n\n // if your bidder supports multiple currencies, use config.getConfig(currency)\n // to find which one the ad server needs\n\n // pull requested transaction ID from bidderRequest.bids[].transactionId\n return validBidRequests.map(bid => {\n var payload = {\n siteid: bid.params.siteId,\n pageid: bid.params.pageId,\n formatid: bid.params.formatId,\n currencyCode: config.getConfig('currency.adServerCurrency'),\n bidfloor: bid.params.bidfloor || 0.0,\n targeting: bid.params.target && bid.params.target != '' ? bid.params.target : undefined,\n tagId: bid.adUnitCode,\n sizes: bid.sizes.map(size => ({\n w: size[0],\n h: size[1]\n })),\n pageDomain: utils.getTopWindowUrl(),\n transactionId: bid.transactionId,\n timeout: config.getConfig('bidderTimeout'),\n bidId: bid.bidId\n };\n var payloadString = JSON.stringify(payload);\n return {\n method: 'POST',\n url: bid.params.domain + '/prebid/v1',\n data: payloadString,\n };\n });\n },\n /**\n * Unpack the response from the server into a list of bids.\n *\n * @param {*} serverResponse A successful response from the server.\n * @return {Bid[]} An array of bids which were nested inside the server.\n */\n interpretResponse: function (serverResponse, bidRequest) {\n const bidResponses = [];\n var response = serverResponse.body;\n try {\n if (response) {\n const bidResponse = {\n requestId: JSON.parse(bidRequest.data).bidId,\n cpm: response.cpm,\n width: response.width,\n height: response.height,\n creativeId: response.creativeId,\n dealId: response.dealId,\n currency: response.currency,\n netRevenue: response.isNetCpm,\n ttl: response.ttl,\n referrer: utils.getTopWindowUrl(),\n adUrl: response.adUrl,\n ad: response.ad\n };\n bidResponses.push(bidResponse);\n }\n } catch (error) {\n console.log('Error while parsing smart server response');\n }\n return bidResponses;\n }\n}\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/smartadserverBidAdapter.js","import {registerBidder} from 'src/adapters/bidderFactory';\nimport { BANNER, NATIVE, VIDEO } from 'src/mediaTypes';\nimport * as utils from 'src/utils';\n\nconst BIDDER_CODE = 'smartyads';\nconst URL = '//ssp-nj.webtradehub.com/?c=o&m=multi';\nconst URL_SYNC = '//ssp-nj.webtradehub.com/?c=o&m=cookie';\n\nfunction isBidResponseValid(bid) {\n if (!bid.requestId || !bid.cpm || !bid.creativeId ||\n !bid.ttl || !bid.currency) {\n return false;\n }\n switch (bid['mediaType']) {\n case BANNER:\n return Boolean(bid.width && bid.height && bid.ad);\n case VIDEO:\n return Boolean(bid.vastUrl);\n case NATIVE:\n return Boolean(bid.title && bid.image && bid.impressionTrackers);\n default:\n return false;\n }\n}\n\nexport const spec = {\n code: BIDDER_CODE,\n supportedMediaTypes: [BANNER, VIDEO, NATIVE],\n\n isBidRequestValid: (bid) => {\n return Boolean(bid.bidId && bid.params && !isNaN(bid.params.placementId));\n },\n\n buildRequests: (validBidRequests = []) => {\n let winTop = window;\n try {\n window.top.location.toString();\n winTop = window.top;\n } catch (e) {\n utils.logMessage(e);\n }\n let location = utils.getTopWindowLocation();\n let placements = [];\n let request = {\n 'deviceWidth': winTop.screen.width,\n 'deviceHeight': winTop.screen.height,\n 'language': (navigator && navigator.language) ? navigator.language : '',\n 'secure': location.protocol === 'https:' ? 1 : 0,\n 'host': location.host,\n 'page': location.pathname,\n 'placements': placements\n };\n const len = validBidRequests.length;\n for (let i = 0; i < len; i++) {\n let bid = validBidRequests[i];\n placements.push({\n placementId: bid.params.placementId,\n bidId: bid.bidId,\n traffic: bid.params.traffic || BANNER\n });\n }\n return {\n method: 'POST',\n url: URL,\n data: request\n };\n },\n\n interpretResponse: (serverResponse) => {\n let response = [];\n serverResponse = serverResponse.body;\n for (let i = 0; i < serverResponse.length; i++) {\n let resItem = serverResponse[i];\n if (isBidResponseValid(resItem)) {\n delete resItem.mediaType;\n response.push(resItem);\n }\n }\n return response;\n },\n\n getUserSyncs: (syncOptions, serverResponses) => {\n return [{\n type: 'image',\n url: URL_SYNC\n }];\n }\n\n};\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/smartyadsBidAdapter.js","import {getTopWindowReferrer, getTopWindowLocation} from 'src/utils';\nimport { registerBidder } from 'src/adapters/bidderFactory';\n\nexport const spec = {\n\n code: 'somoaudience',\n\n aliases: ['somo'],\n\n isBidRequestValid: bid => (\n !!(bid && bid.params && bid.params.placementId)\n ),\n\n buildRequests: function(bidRequests) {\n return bidRequests.map(bidRequest => {\n return {\n method: 'POST',\n url: '//publisher-east.mobileadtrading.com/rtb/bid?s=' + bidRequest.params.placementId.toString(),\n data: openRtbRequest(bidRequest),\n bidRequest: bidRequest\n };\n });\n },\n\n interpretResponse(response, request) {\n return bidResponseAvailable(request, response);\n }\n};\n\nfunction bidResponseAvailable(bidRequest, bidResponse) {\n let bidResponses = [];\n let bidId = 1;\n if (typeof bidRequest != 'undefined' && typeof bidRequest.bidRequest != 'undefined' && typeof bidRequest.bidRequest.bidId != 'undefined') {\n bidId = bidRequest.bidRequest.bidId;\n }\n if (bidResponse.body) {\n let bidData = bidResponse.body.seatbid[0].bid[0];\n const bid = {\n requestId: bidId,\n cpm: bidData.price,\n width: bidData.w,\n height: bidData.h,\n ad: bidData.adm,\n ttl: 360,\n creativeId: bidData.crid,\n adId: bidId,\n netRevenue: false,\n currency: 'USD',\n };\n bidResponses.push(bid);\n }\n return bidResponses;\n}\n\nfunction openRtbRequest(bidRequest) {\n return {\n id: bidRequest.bidderRequestId,\n imp: [openRtbImpression(bidRequest)],\n at: 1,\n tmax: 400,\n site: openRtbSite(bidRequest),\n app: openRtbApp(bidRequest),\n device: openRtbDevice()\n };\n}\n\nfunction openRtbImpression(bidRequest) {\n return {\n id: bidRequest.bidId,\n banner: {}\n };\n}\n\nfunction isApp(bidRequest) {\n if (bidRequest.params.app) {\n return true;\n } else {\n return false;\n }\n}\n\nfunction openRtbSite(bidRequest) {\n if (!isApp(bidRequest)) {\n const pageUrl = getTopWindowLocation().href;\n const domain = getTopWindowLocation().hostname;\n return {\n ref: getTopWindowReferrer(),\n page: pageUrl,\n domain: domain\n }\n } else {\n return null;\n }\n}\n\nfunction openRtbApp(bidRequest) {\n if (isApp(bidRequest)) {\n const appParams = bidRequest.params.app;\n return {\n bundle: appParams.bundle ? appParams.bundle : null,\n storeurl: appParams.storeUrl ? appParams.storeUrl : null,\n domain: appParams.domain ? appParams.domain : null,\n name: appParams.name ? appParams.name : null,\n }\n } else {\n return null;\n }\n}\n\nfunction openRtbDevice() {\n return {\n ua: navigator.userAgent,\n language: (navigator.language || navigator.browserLanguage || navigator.userLanguage || navigator.systemLanguage),\n };\n}\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/somoaudienceBidAdapter.js","import { registerBidder } from 'src/adapters/bidderFactory';\nimport { getTopWindowLocation, parseSizesInput } from 'src/utils';\nimport * as utils from '../src/utils';\n\nconst BIDDER_CODE = 'sonobi';\nconst STR_ENDPOINT = 'https://apex.go.sonobi.com/trinity.json';\nconst PAGEVIEW_ID = utils.generateUUID();\n\nexport const spec = {\n code: BIDDER_CODE,\n\n /**\n * Determines whether or not the given bid request is valid.\n *\n * @param {BidRequest} bid - The bid params to validate.\n * @return {boolean} True if this is a valid bid, and false otherwise.\n */\n isBidRequestValid: bid => !!(bid.params && (bid.params.ad_unit || bid.params.placement_id) && (bid.params.sizes || bid.sizes)),\n\n /**\n * Make a server request from the list of BidRequests.\n *\n * @param {BidRequest[]} validBidRequests - an array of bids\n * @return {object} ServerRequest - Info describing the request to the server.\n */\n buildRequests: (validBidRequests) => {\n const bids = validBidRequests.map(bid => {\n let slotIdentifier = _validateSlot(bid)\n if (/^[\\/]?[\\d]+[[\\/].+[\\/]?]?$/.test(slotIdentifier)) {\n slotIdentifier = slotIdentifier.charAt(0) === '/' ? slotIdentifier : '/' + slotIdentifier\n return {\n [`${slotIdentifier}|${bid.bidId}`]: `${_validateSize(bid)}${_validateFloor(bid)}`\n }\n } else if (/^[0-9a-fA-F]{20}$/.test(slotIdentifier) && slotIdentifier.length === 20) {\n return {\n [bid.bidId]: `${slotIdentifier}|${_validateSize(bid)}${_validateFloor(bid)}`\n }\n } else {\n utils.logError(`The ad unit code or Sonobi Placement id for slot ${bid.bidId} is invalid`);\n }\n });\n\n let data = {}\n bids.forEach((bid) => { Object.assign(data, bid); });\n\n const payload = {\n 'key_maker': JSON.stringify(data),\n 'ref': getTopWindowLocation().host,\n 's': utils.generateUUID(),\n 'pv': PAGEVIEW_ID,\n };\n\n if (validBidRequests[0].params.hfa) {\n payload.hfa = validBidRequests[0].params.hfa;\n }\n\n return {\n method: 'GET',\n url: STR_ENDPOINT,\n withCredentials: true,\n data: payload\n };\n },\n /**\n * Unpack the response from the server into a list of bids.\n *\n * @param {*} serverResponse A successful response from the server.\n * @return {Bid[]} An array of bids which were nested inside the server.\n */\n interpretResponse: (serverResponse) => {\n const bidResponse = serverResponse.body;\n const bidsReturned = [];\n\n if (Object.keys(bidResponse.slots).length === 0) {\n return bidsReturned;\n }\n\n Object.keys(bidResponse.slots).forEach(slot => {\n const bid = bidResponse.slots[slot];\n\n if (bid.sbi_aid && bid.sbi_mouse && bid.sbi_size) {\n const bids = {\n requestId: slot.split('|').slice(-1)[0],\n cpm: Number(bid.sbi_mouse),\n width: Number(bid.sbi_size.split('x')[0]) || 1,\n height: Number(bid.sbi_size.split('x')[1]) || 1,\n ad: _creative(bidResponse.sbi_dc, bid.sbi_aid),\n ttl: 500,\n creativeId: bid.sbi_aid,\n netRevenue: true,\n currency: 'USD',\n };\n\n if (bid.sbi_dozer) {\n bids.dealId = bid.sbi_dozer;\n }\n\n bidsReturned.push(bids);\n }\n });\n return bidsReturned;\n },\n /**\n * Register User Sync.\n */\n getUserSyncs: (syncOptions, serverResponses) => {\n const syncs = [];\n if (syncOptions.pixelEnabled && serverResponses[0].body.sbi_px) {\n serverResponses[0].body.sbi_px.forEach(pixel => {\n syncs.push({\n type: pixel.type,\n url: pixel.url\n });\n });\n }\n return syncs;\n }\n}\n\nfunction _validateSize (bid) {\n if (bid.params.sizes) {\n return parseSizesInput(bid.params.sizes).join(',');\n }\n return parseSizesInput(bid.sizes).join(',');\n}\n\nfunction _validateSlot (bid) {\n if (bid.params.ad_unit) {\n return bid.params.ad_unit;\n }\n return bid.params.placement_id;\n}\n\nfunction _validateFloor (bid) {\n if (bid.params.floor) {\n return `|f=${bid.params.floor}`;\n }\n return '';\n}\n\nfunction _creative (sbi_dc, sbi_aid) {\n const src = 'https://' + sbi_dc + 'apex.go.sonobi.com/sbi.js?aid=' + sbi_aid + '&as=null';\n return '';\n}\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/sonobiBidAdapter.js","import * as utils from 'src/utils';\nimport { registerBidder } from 'src/adapters/bidderFactory';\nimport { BANNER } from 'src/mediaTypes';\nimport { REPO_AND_VERSION } from 'src/constants';\n\nexport const spec = {\n code: 'sovrn',\n supportedMediaTypes: [BANNER],\n\n /**\n * Check if the bid is a valid zone ID in either number or string form\n * @param {object} bid the Sovrn bid to validate\n * @return boolean for whether or not a bid is valid\n */\n isBidRequestValid: function(bid) {\n return !!(bid.params.tagid && !isNaN(parseFloat(bid.params.tagid)) && isFinite(bid.params.tagid));\n },\n\n /**\n * Format the bid request object for our endpoint\n * @param {BidRequest[]} bidRequests Array of Sovrn bidders\n * @return object of parameters for Prebid AJAX request\n */\n buildRequests: function(bidReqs) {\n let sovrnImps = [];\n let iv;\n utils._each(bidReqs, function (bid) {\n iv = iv || utils.getBidIdParameter('iv', bid.params);\n sovrnImps.push({\n id: bid.bidId,\n banner: { w: 1, h: 1 },\n tagid: utils.getBidIdParameter('tagid', bid.params),\n bidfloor: utils.getBidIdParameter('bidfloor', bid.params)\n });\n });\n const sovrnBidReq = {\n id: utils.getUniqueIdentifierStr(),\n imp: sovrnImps,\n site: {\n domain: window.location.host,\n page: window.location.host + window.location.pathname + location.search + location.hash\n }\n };\n if (iv) sovrnBidReq.iv = iv;\n\n return {\n method: 'POST',\n url: `//ap.lijit.com/rtb/bid?src=${REPO_AND_VERSION}`,\n data: JSON.stringify(sovrnBidReq),\n options: {contentType: 'text/plain'}\n };\n },\n\n /**\n * Format Sovrn responses as Prebid bid responses\n * @param {id, seatbid} sovrnResponse A successful response from Sovrn.\n * @return {Bid[]} An array of formatted bids.\n */\n interpretResponse: function({ body: {id, seatbid} }) {\n let sovrnBidResponses = [];\n if (id &&\n seatbid &&\n seatbid.length > 0 &&\n seatbid[0].bid &&\n seatbid[0].bid.length > 0) {\n seatbid[0].bid.map(sovrnBid => {\n sovrnBidResponses.push({\n requestId: sovrnBid.impid,\n cpm: parseFloat(sovrnBid.price),\n width: parseInt(sovrnBid.w),\n height: parseInt(sovrnBid.h),\n creativeId: sovrnBid.id,\n dealId: sovrnBid.dealid || null,\n currency: 'USD',\n netRevenue: true,\n mediaType: BANNER,\n ad: decodeURIComponent(`${sovrnBid.adm}`),\n ttl: 60000\n });\n });\n }\n return sovrnBidResponses;\n }\n};\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/sovrnBidAdapter.js","import * as utils from 'src/utils';\nimport {registerBidder} from 'src/adapters/bidderFactory';\n\nconst BID_REQUEST_BASE_URL = 'https://in-appadvertising.com/api/bidRequest';\nconst USER_SYNC_URL = 'https://in-appadvertising.com/api/userSync.html';\nconst BIDDER_CODE = 'trion';\nconst BASE_KEY = '_trion_';\n\nexport const spec = {\n code: BIDDER_CODE,\n isBidRequestValid: function (bid) {\n return !!(bid && bid.params && bid.params.pubId && bid.params.sectionId);\n },\n buildRequests: function (validBidRequests) {\n var bidRequests = [];\n\n for (var i = 0; i < validBidRequests.length; i++) {\n var bid = validBidRequests[i];\n\n var trionUrlParams = buildTrionUrlParams(bid);\n\n bidRequests.push({\n method: 'GET',\n url: BID_REQUEST_BASE_URL,\n bidRequest: bid,\n data: trionUrlParams\n });\n }\n return bidRequests;\n },\n\n interpretResponse: function (trionResponseObj, request) {\n var bid = {};\n var bidResponses = [];\n var bidRequest = request.bidRequest;\n var responseBody = trionResponseObj ? trionResponseObj.body : {};\n\n if (responseBody && responseBody.bidId && bidRequest) {\n var result = responseBody.result;\n\n if (result && result.cpm && result.placeBid && result.ad) {\n var cpm = parseInt(result.cpm, 10) / 100;\n\n bid.requestId = bidRequest.bidId;\n bid.cpm = cpm;\n bid.ad = result.ad;\n bid.width = result.width;\n bid.height = result.height;\n bid.ttl = result.ttl;\n bid.creativeId = result.creativeId;\n bid.currency = result.currency;\n bid.netRevenue = result.netRevenue;\n bidResponses.push(bid);\n }\n }\n\n return bidResponses;\n },\n getUserSyncs: function getUserSyncs(syncOptions) {\n if (syncOptions.iframeEnabled) {\n handlePostMessage();\n return [{\n type: 'iframe',\n url: getSyncUrl()\n }];\n }\n }\n\n};\nregisterBidder(spec);\n\nfunction getSyncUrl() {\n var unParsedPubAndSection = getStorageData(BASE_KEY + 'lps') || ':';\n var pubSectionArray = unParsedPubAndSection.split(':') || [];\n var pubId = pubSectionArray[0] || -1;\n var sectionId = pubSectionArray[1] || -1;\n var url = utils.getTopWindowUrl();\n return USER_SYNC_URL + `?p=${pubId}&s=${sectionId}&u=${url}`;\n}\n\nfunction buildTrionUrlParams(bid) {\n var pubId = utils.getBidIdParameter('pubId', bid.params);\n var sectionId = utils.getBidIdParameter('sectionId', bid.params);\n var re = utils.getBidIdParameter('re', bid.params);\n var url = utils.getTopWindowUrl();\n var sizes = utils.parseSizesInput(bid.sizes).join(',');\n\n var int_t = window.TR_INT_T && window.TR_INT_T != -1 ? window.TR_INT_T : null;\n if (!int_t) {\n int_t = getStorageData(BASE_KEY + 'int_t');\n }\n if (int_t) {\n setStorageData(BASE_KEY + 'int_t', int_t)\n }\n setStorageData(BASE_KEY + 'lps', pubId + ':' + sectionId);\n var trionUrl = '';\n\n trionUrl = utils.tryAppendQueryString(trionUrl, 'bidId', bid.bidId);\n trionUrl = utils.tryAppendQueryString(trionUrl, 'pubId', pubId);\n trionUrl = utils.tryAppendQueryString(trionUrl, 'sectionId', sectionId);\n trionUrl = utils.tryAppendQueryString(trionUrl, 're', re);\n if (url) {\n trionUrl += 'url=' + url + '&';\n }\n if (sizes) {\n trionUrl += 'sizes=' + sizes + '&';\n }\n if (int_t) {\n trionUrl = utils.tryAppendQueryString(trionUrl, 'int_t', encodeURIComponent(int_t));\n }\n\n // remove the trailing \"&\"\n if (trionUrl.lastIndexOf('&') === trionUrl.length - 1) {\n trionUrl = trionUrl.substring(0, trionUrl.length - 1);\n }\n return trionUrl;\n}\n\nfunction handlePostMessage() {\n try {\n if (window.addEventListener) {\n window.addEventListener('message', acceptPostMessage);\n }\n } catch (e) {\n }\n}\n\nexport function getStorageData(key) {\n var item = null;\n try {\n if (window.localStorage) {\n item = window.localStorage.getItem(key);\n }\n } catch (e) {\n }\n return item;\n}\n\nexport function setStorageData(key, item) {\n try {\n if (window.localStorage) {\n window.localStorage.setItem(key, item);\n }\n } catch (e) {\n }\n}\n\nexport function acceptPostMessage(e) {\n var message = e.data || '';\n if (message.indexOf(BASE_KEY + 'userId') !== 0) {\n return;\n }\n var int_t = message.split(BASE_KEY + 'userId=')[1];\n if (int_t) {\n setStorageData(BASE_KEY + 'int_t', int_t);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./modules/trionBidAdapter.js","import * as utils from 'src/utils';\nimport {registerBidder} from 'src/adapters/bidderFactory';\nconst BIDDER_CODE = 'trustx';\nconst ENDPOINT_URL = '//sofia.trustx.org/hb';\nconst TIME_TO_LIVE = 360;\nconst ADAPTER_SYNC_URL = '//sofia.trustx.org/push_sync';\nconst LOG_ERROR_MESS = {\n noAuid: 'Bid from response has no auid parameter - ',\n noAdm: 'Bid from response has no adm parameter - ',\n noBid: 'Array of bid objects is empty',\n noPlacementCode: 'Can\\'t find in requested bids the bid with auid - ',\n emptyUids: 'Uids should be not empty',\n emptySeatbid: 'Seatbid array from response has empty item',\n emptyResponse: 'Response is empty',\n hasEmptySeatbidArray: 'Response has empty seatbid array',\n hasNoArrayOfBids: 'Seatbid from response has no array of bid objects - '\n};\nexport const spec = {\n code: BIDDER_CODE,\n /**\n * Determines whether or not the given bid request is valid.\n *\n * @param {BidRequest} bid The bid params to validate.\n * @return boolean True if this is a valid bid, and false otherwise.\n */\n isBidRequestValid: function(bid) {\n return !!bid.params.uid;\n },\n /**\n * Make a server request from the list of BidRequests.\n *\n * @param {BidRequest[]} validBidRequests - an array of bids\n * @return ServerRequest Info describing the request to the server.\n */\n buildRequests: function(validBidRequests) {\n const auids = [];\n const bidsMap = {};\n const bids = validBidRequests || [];\n let priceType = 'net';\n let reqId;\n\n bids.forEach(bid => {\n if (bid.params.priceType === 'gross') {\n priceType = 'gross';\n }\n reqId = bid.bidderRequestId;\n if (!bidsMap[bid.params.uid]) {\n bidsMap[bid.params.uid] = [bid];\n auids.push(bid.params.uid);\n } else {\n bidsMap[bid.params.uid].push(bid);\n }\n });\n\n const payload = {\n u: utils.getTopWindowUrl(),\n pt: priceType,\n auids: auids.join(','),\n r: reqId\n };\n\n return {\n method: 'GET',\n url: ENDPOINT_URL,\n data: payload,\n bidsMap: bidsMap,\n };\n },\n /**\n * Unpack the response from the server into a list of bids.\n *\n * @param {*} serverResponse A successful response from the server.\n * @param {*} bidRequest\n * @return {Bid[]} An array of bids which were nested inside the server.\n */\n interpretResponse: function(serverResponse, bidRequest) {\n serverResponse = serverResponse && serverResponse.body\n const bidResponses = [];\n const bidsMap = bidRequest.bidsMap;\n const priceType = bidRequest.data.pt;\n\n let errorMessage;\n\n if (!serverResponse) errorMessage = LOG_ERROR_MESS.emptyResponse;\n else if (serverResponse.seatbid && !serverResponse.seatbid.length) {\n errorMessage = LOG_ERROR_MESS.hasEmptySeatbidArray;\n }\n\n if (!errorMessage && serverResponse.seatbid) {\n serverResponse.seatbid.forEach(respItem => {\n _addBidResponse(_getBidFromResponse(respItem), bidsMap, priceType, bidResponses);\n });\n }\n if (errorMessage) utils.logError(errorMessage);\n return bidResponses;\n },\n getUserSyncs: function(syncOptions) {\n if (syncOptions.pixelEnabled) {\n return [{\n type: 'image',\n url: ADAPTER_SYNC_URL\n }];\n }\n }\n}\n\nfunction _getBidFromResponse(respItem) {\n if (!respItem) {\n utils.logError(LOG_ERROR_MESS.emptySeatbid);\n } else if (!respItem.bid) {\n utils.logError(LOG_ERROR_MESS.hasNoArrayOfBids + JSON.stringify(respItem));\n } else if (!respItem.bid[0]) {\n utils.logError(LOG_ERROR_MESS.noBid);\n }\n return respItem && respItem.bid && respItem.bid[0];\n}\n\nfunction _addBidResponse(serverBid, bidsMap, priceType, bidResponses) {\n if (!serverBid) return;\n let errorMessage;\n if (!serverBid.auid) errorMessage = LOG_ERROR_MESS.noAuid + JSON.stringify(serverBid);\n if (!serverBid.adm) errorMessage = LOG_ERROR_MESS.noAdm + JSON.stringify(serverBid);\n else {\n const awaitingBids = bidsMap[serverBid.auid];\n if (awaitingBids) {\n awaitingBids.forEach(bid => {\n const bidResponse = {\n requestId: bid.bidId, // bid.bidderRequestId,\n bidderCode: spec.code,\n cpm: serverBid.price,\n width: serverBid.w,\n height: serverBid.h,\n creativeId: serverBid.auid, // bid.bidId,\n currency: 'USD',\n netRevenue: priceType !== 'gross',\n ttl: TIME_TO_LIVE,\n ad: serverBid.adm,\n dealId: serverBid.dealid\n };\n bidResponses.push(bidResponse);\n });\n } else {\n errorMessage = LOG_ERROR_MESS.noPlacementCode + serverBid.auid;\n }\n }\n if (errorMessage) {\n utils.logError(errorMessage);\n }\n}\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/trustxBidAdapter.js","import * as utils from 'src/utils';\nimport {registerBidder} from 'src/adapters/bidderFactory';\nimport { BANNER } from 'src/mediaTypes';\n\nconst VER = 'ADGENT_PREBID-2018011501';\nconst BID_REQUEST_BASE_URL = '//hb.aralego.com/header';\nconst UCFUNNEL_BIDDER_CODE = 'ucfunnel';\n\nexport const spec = {\n code: UCFUNNEL_BIDDER_CODE,\n supportedMediaTypes: [BANNER],\n /**\n * Check if the bid is a valid zone ID in either number or string form\n * @param {object} bid the ucfunnel bid to validate\n * @return boolean for whether or not a bid is valid\n */\n isBidRequestValid: function(bid) {\n return !!(bid && bid.params && bid.params.adid && typeof bid.params.adid === 'string');\n },\n\n /**\n * Format the bid request object for our endpoint\n * @param {BidRequest[]} bidRequests Array of ucfunnel bidders\n * @return object of parameters for Prebid AJAX request\n */\n buildRequests: function(validBidRequests) {\n var bidRequests = [];\n for (var i = 0; i < validBidRequests.length; i++) {\n var bid = validBidRequests[i];\n\n var ucfunnelUrlParams = buildUrlParams(bid);\n\n bidRequests.push({\n method: 'GET',\n url: BID_REQUEST_BASE_URL,\n bidRequest: bid,\n data: ucfunnelUrlParams\n });\n }\n return bidRequests;\n },\n\n /**\n * Format ucfunnel responses as Prebid bid responses\n * @param {ucfunnelResponseObj} ucfunnelResponse A successful response from ucfunnel.\n * @return {Bid[]} An array of formatted bids.\n */\n interpretResponse: function (ucfunnelResponseObj, request) {\n var bidResponses = [];\n var bidRequest = request.bidRequest;\n var responseBody = ucfunnelResponseObj ? ucfunnelResponseObj.body : {};\n\n bidResponses.push({\n requestId: bidRequest.bidId,\n cpm: responseBody.cpm || 0,\n width: responseBody.width,\n height: responseBody.height,\n creativeId: responseBody.ad_id,\n dealId: responseBody.deal || null,\n currency: 'USD',\n netRevenue: true,\n ttl: 1000,\n mediaType: BANNER,\n ad: responseBody.adm\n });\n\n return bidResponses;\n }\n};\nregisterBidder(spec);\n\nfunction buildUrlParams(bid) {\n const host = utils.getTopWindowLocation().host;\n const page = utils.getTopWindowLocation().pathname;\n const refer = document.referrer;\n const language = navigator.language;\n const dnt = (navigator.doNotTrack == 'yes' || navigator.doNotTrack == '1' || navigator.msDoNotTrack == '1') ? 1 : 0;\n\n let queryString = [\n 'ifr', '0',\n 'bl', language,\n 'je', '1',\n 'dnt', dnt,\n 'host', host,\n 'u', page,\n 'ru', refer,\n 'adid', utils.getBidIdParameter('adid', bid.params),\n 'ver', VER\n ];\n\n return queryString.reduce(\n (memo, curr, index) =>\n index % 2 === 0 && queryString[index + 1] !== undefined ? memo + curr + '=' + encodeURIComponent(queryString[index + 1]) + '&' : memo, ''\n ).slice(0, -1);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./modules/ucfunnelBidAdapter.js","import * as utils from 'src/utils';\nimport { config } from 'src/config';\nimport { registerBidder } from 'src/adapters/bidderFactory';\nconst BIDDER_CODE = 'underdogmedia';\nconst UDM_ADAPTER_VERSION = '1.0';\n\nexport const spec = {\n code: BIDDER_CODE,\n bidParams: [],\n\n isBidRequestValid: function (bid) {\n return !!((bid.params && bid.params.siteId) && (bid.sizes && bid.sizes.length > 0));\n },\n\n buildRequests: function (validBidRequests) {\n var sizes = [];\n var siteId = 0;\n\n validBidRequests.forEach(bidParam => {\n sizes = utils.flatten(sizes, utils.parseSizesInput(bidParam.sizes));\n siteId = bidParam.params.siteId;\n });\n\n return {\n method: 'GET',\n url: `${window.location.protocol}//udmserve.net/udm/img.fetch`,\n data: `tid=1;dt=10;sid=${siteId};sizes=${sizes.join(',')}`,\n bidParams: validBidRequests\n };\n },\n\n interpretResponse: function (serverResponse, bidRequest) {\n const bidResponses = [];\n bidRequest.bidParams.forEach(bidParam => {\n serverResponse.body.mids.forEach(mid => {\n if (mid.useCount > 0) {\n return;\n }\n\n if (!mid.useCount) {\n mid.useCount = 0;\n }\n\n var size_not_found = true;\n utils.parseSizesInput(bidParam.sizes).forEach(size => {\n if (size === mid.width + 'x' + mid.height) {\n size_not_found = false;\n }\n });\n\n if (size_not_found) {\n return;\n }\n\n const bidResponse = {\n requestId: bidParam.bidId,\n bidderCode: spec.code,\n cpm: parseFloat(mid.cpm),\n width: mid.width,\n height: mid.height,\n ad: mid.ad_code_html,\n creativeId: mid.mid,\n currency: 'USD',\n netRevenue: false,\n ttl: config.getConfig('_bidderTimeout'),\n };\n\n if (bidResponse.cpm <= 0) {\n return;\n }\n if (bidResponse.ad.length <= 0) {\n return;\n }\n\n mid.useCount++;\n\n bidResponse.ad += makeNotification(bidResponse, mid, bidParam);\n\n bidResponses.push(bidResponse);\n });\n });\n\n return bidResponses;\n },\n};\n\nfunction makeNotification (bid, mid, bidParam) {\n var url = mid.notification_url;\n\n url += UDM_ADAPTER_VERSION;\n url += ';cb=' + Math.random();\n url += ';qqq=' + (1 / bid.cpm);\n url += ';hbt=' + config.getConfig('_bidderTimeout');\n url += ';style=adapter';\n url += ';vis=' + encodeURIComponent(document.visibilityState);\n\n url += ';traffic_info=' + encodeURIComponent(JSON.stringify(getUrlVars()));\n if (bidParam.params.subId) {\n url += ';subid=' + encodeURIComponent(bidParam.params.subId);\n }\n return '';\n}\n\nfunction getUrlVars() {\n var vars = {};\n var hash;\n var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');\n for (var i = 0; i < hashes.length; i++) {\n hash = hashes[i].split('=');\n if (hash[0].match(/^utm_/)) {\n vars[hash[0]] = hash[1].substr(0, 150);\n }\n }\n return vars;\n}\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/underdogmediaBidAdapter.js","/**\n * Adapter to send bids to Undertone\n */\n\nimport * as utils from 'src/utils';\nimport { registerBidder } from 'src/adapters/bidderFactory';\n\nconst BIDDER_CODE = 'undertone';\nconst URL = '//hb.undertone.com/hb';\n\nexport const spec = {\n code: BIDDER_CODE,\n isBidRequestValid: function(bid) {\n if (bid && bid.params && bid.params.publisherId && bid.params.placementId) {\n bid.params.publisherId = parseInt(bid.params.publisherId);\n return true;\n }\n },\n buildRequests: function(validBidRequests) {\n const payload = {\n 'x-ut-hb-params': []\n };\n const location = utils.getTopWindowLocation();\n let domain = /[-\\w]+\\.(?:[-\\w]+\\.xn--[-\\w]+|[-\\w]{3,}|[-\\w]+\\.[-\\w]{2})$/i.exec(location.host);\n if (domain == null || domain.length == 0) {\n domain = null;\n } else {\n domain = domain[0];\n }\n\n const pubid = validBidRequests[0].params.publisherId;\n const REQ_URL = `${URL}?pid=${pubid}&domain=${domain}`;\n\n validBidRequests.map(bidReq => {\n const bid = {\n bidRequestId: bidReq.bidId,\n hbadaptor: 'prebid',\n url: location.href,\n domain: domain,\n placementId: bidReq.params.placementId,\n publisherId: bidReq.params.publisherId,\n sizes: bidReq.sizes,\n params: bidReq.params\n };\n payload['x-ut-hb-params'].push(bid);\n });\n return {\n method: 'POST',\n url: REQ_URL,\n withCredentials: true,\n data: JSON.stringify(payload)\n };\n },\n interpretResponse: function(serverResponse, request) {\n const bids = [];\n const body = serverResponse.body;\n\n if (body && Array.isArray(body) && body.length > 0) {\n body.forEach((bidRes) => {\n if (bidRes.ad && bidRes.cpm > 0) {\n const bid = {\n requestId: bidRes.bidRequestId,\n cpm: bidRes.cpm,\n width: bidRes.width,\n height: bidRes.height,\n creativeId: bidRes.adId,\n currency: bidRes.currency,\n netRevenue: bidRes.netRevenue,\n ttl: bidRes.ttl,\n ad: bidRes.ad\n };\n bids.push(bid);\n }\n });\n }\n return bids;\n }\n};\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/undertoneBidAdapter.js","import * as utils from 'src/utils';\nimport {registerBidder} from 'src/adapters/bidderFactory';\nimport {VIDEO, BANNER} from 'src/mediaTypes';\nimport {Renderer} from 'src/Renderer';\nimport findIndex from 'core-js/library/fn/array/find-index';\n\nconst URL = '//hb2.vertamedia.com/auction/';\nconst OUTSTREAM_SRC = '//player.vertamedia.com/outstream-unit/2.01/outstream.min.js';\nconst BIDDER_CODE = 'vertamedia';\nconst OUTSTREAM = 'outstream';\nconst DISPLAY = 'display';\n\nexport const spec = {\n code: BIDDER_CODE,\n supportedMediaTypes: [VIDEO, BANNER],\n isBidRequestValid: function (bid) {\n return bid && bid.params && bid.params.aid;\n },\n\n /**\n * Make a server request from the list of BidRequests\n * @param bidRequests\n * @param bidderRequest\n */\n buildRequests: function (bidRequests, bidderRequest) {\n return {\n data: bidToTag(bidRequests),\n bidderRequest,\n method: 'GET',\n url: URL\n };\n },\n\n /**\n * Unpack the response from the server into a list of bids\n * @param serverResponse\n * @param bidderRequest\n * @return {Bid[]} An array of bids which were nested inside the server\n */\n interpretResponse: function (serverResponse, {bidderRequest}) {\n serverResponse = serverResponse.body;\n let bids = [];\n\n if (!utils.isArray(serverResponse)) {\n return parseRTBResponse(serverResponse, bidderRequest);\n }\n\n serverResponse.forEach(serverBidResponse => {\n bids = utils.flatten(bids, parseRTBResponse(serverBidResponse, bidderRequest));\n });\n\n return bids;\n }\n};\n\nfunction parseRTBResponse(serverResponse, bidderRequest) {\n const isInvalidValidResp = !serverResponse || !serverResponse.bids || !serverResponse.bids.length;\n\n let bids = [];\n\n if (isInvalidValidResp) {\n let extMessage = serverResponse && serverResponse.ext && serverResponse.ext.message ? `: ${serverResponse.ext.message}` : '';\n let errorMessage = `in response for ${bidderRequest.bidderCode} adapter ${extMessage}`;\n\n utils.logError(errorMessage);\n\n return bids;\n }\n\n serverResponse.bids.forEach(serverBid => {\n const requestId = findIndex(bidderRequest.bids, (bidRequest) => {\n return bidRequest.bidId === serverBid.requestId;\n });\n\n if (serverBid.cpm !== 0 && requestId !== -1) {\n const bid = createBid(serverBid, getMediaType(bidderRequest.bids[requestId]));\n\n bids.push(bid);\n }\n });\n\n return bids;\n}\n\nfunction bidToTag(bidRequests) {\n let tag = {\n domain: utils.getTopWindowLocation().hostname\n };\n\n for (let i = 0, length = bidRequests.length; i < length; i++) {\n Object.assign(tag, prepareRTBRequestParams(i, bidRequests[i]));\n }\n\n return tag;\n}\n\n/**\n * Parse mediaType\n * @param _index {number}\n * @param bid {object}\n * @returns {object}\n */\nfunction prepareRTBRequestParams(_index, bid) {\n const mediaType = utils.deepAccess(bid, 'mediaTypes.video') ? VIDEO : DISPLAY;\n const index = !_index ? '' : `${_index + 1}`;\n\n return {\n ['callbackId' + index]: bid.bidId,\n ['aid' + index]: bid.params.aid,\n ['ad_type' + index]: mediaType,\n ['sizes' + index]: utils.parseSizesInput(bid.sizes).join()\n };\n}\n\n/**\n * Prepare all parameters for request\n * @param bidderRequest {object}\n * @returns {object}\n */\nfunction getMediaType(bidderRequest) {\n const videoMediaType = utils.deepAccess(bidderRequest, 'mediaTypes.video');\n const context = utils.deepAccess(bidderRequest, 'mediaTypes.video.context');\n\n return !videoMediaType ? DISPLAY : context === OUTSTREAM ? OUTSTREAM : VIDEO;\n}\n\n/**\n * Configure new bid by response\n * @param bidResponse {object}\n * @param mediaType {Object}\n * @returns {object}\n */\nfunction createBid(bidResponse, mediaType) {\n let bid = {\n requestId: bidResponse.requestId,\n creativeId: bidResponse.cmpId,\n height: bidResponse.height,\n currency: bidResponse.cur,\n width: bidResponse.width,\n cpm: bidResponse.cpm,\n netRevenue: true,\n mediaType,\n ttl: 3600\n };\n\n if (mediaType === DISPLAY) {\n return Object.assign(bid, {\n ad: bidResponse.ad\n });\n }\n\n Object.assign(bid, {\n vastUrl: bidResponse.vastUrl\n });\n\n if (mediaType === OUTSTREAM) {\n Object.assign(bid, {\n mediaType: 'video',\n adResponse: bidResponse,\n renderer: newRenderer(bidResponse.requestId)\n });\n }\n\n return bid;\n}\n\n/**\n * Create Vertamedia renderer\n * @param requestId\n * @returns {*}\n */\nfunction newRenderer(requestId) {\n const renderer = Renderer.install({\n id: requestId,\n url: OUTSTREAM_SRC,\n loaded: false\n });\n\n renderer.setRender(outstreamRender);\n\n return renderer;\n}\n\n/**\n * Initialise Vertamedia outstream\n * @param bid\n */\nfunction outstreamRender(bid) {\n bid.renderer.push(() => {\n window.VOutstreamAPI.initOutstreams([{\n width: bid.width,\n height: bid.height,\n vastUrl: bid.vastUrl,\n elId: bid.adUnitCode\n }]);\n });\n}\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/vertamediaBidAdapter.js","import * as utils from 'src/utils';\nimport { registerBidder } from 'src/adapters/bidderFactory';\nconst BIDDER_CODE = 'vertoz';\nconst BASE_URI = '//hb.vrtzads.com/vzhbidder/bid?';\n\nexport const spec = {\n code: BIDDER_CODE,\n /**\n * Determines whether or not the given bid request is valid.\n *\n * @param {BidRequest} bid The bid params to validate.\n * @return boolean True if this is a valid bid, and false otherwise.\n */\n isBidRequestValid: function(bid) {\n return !!(bid.params.placementId);\n },\n /**\n * Make a server request from the list of BidRequests.\n *\n * @param {validBidRequests[]} - an array of bids\n * @return ServerRequest Info describing the request to the server.\n */\n buildRequests: function(bidRequestsArr) {\n var bidRequests = bidRequestsArr || [];\n return bidRequests.map(bid => {\n let slotBidId = utils.getValue(bid, 'bidId');\n let cb = Math.round(new Date().getTime() / 1000);\n let vzEndPoint = BASE_URI;\n let reqParams = bid.params || {};\n let placementId = utils.getValue(reqParams, 'placementId');\n let cpm = utils.getValue(reqParams, 'cpmFloor');\n\n if (utils.isEmptyStr(placementId)) {\n utils.logError('missing params:', BIDDER_CODE, 'Enter valid vzPlacementId');\n return;\n }\n\n let reqSrc = utils.getTopWindowLocation().href;\n var vzReq = {\n _vzPlacementId: placementId,\n _rqsrc: reqSrc,\n _cb: cb,\n _slotBidId: slotBidId,\n _cpm: cpm,\n _cbn: 'pbjs'\n };\n\n let queryParamValue = encodeURIComponent(JSON.stringify(vzReq));\n\n return {\n method: 'POST',\n data: {q: queryParamValue},\n url: vzEndPoint\n };\n })\n },\n /**\n * Unpack the response from the server into a list of bids.\n *\n * @param {ServerResponse} serverResponse A successful response from the server.\n * @return {Bid[]} An array of bids which were nested inside the server.\n */\n interpretResponse: function(serverResponse) {\n var bidRespObj = serverResponse.body;\n const bidResponses = [];\n\n if (bidRespObj.cpm) {\n const bidResponse = {\n requestId: bidRespObj.slotBidId,\n cpm: Number(bidRespObj.cpm),\n width: Number(bidRespObj.adWidth),\n height: Number(bidRespObj.adHeight),\n netRevenue: true,\n mediaType: 'banner',\n currency: 'USD',\n dealId: null,\n creativeId: null,\n ttl: 300,\n ad: bidRespObj.ad + utils.createTrackPixelHtml(decodeURIComponent(bidRespObj.nurl))\n };\n bidResponses.push(bidResponse);\n }\n return bidResponses;\n }\n}\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/vertozBidAdapter.js","import * as utils from 'src/utils';\nimport { registerBidder } from 'src/adapters/bidderFactory';\nimport { BANNER } from 'src/mediaTypes';\n\nconst BIDDER_CODE = 'vi';\nconst SUPPORTED_MEDIA_TYPES = [BANNER];\n\nfunction isBidRequestValid(bid) {\n return !!(bid.params.pubId);\n}\n\nfunction buildRequests(bidReqs) {\n let imps = [];\n utils._each(bidReqs, function (bid) {\n imps.push({\n id: bid.bidId,\n sizes: utils.parseSizesInput(bid.sizes).map(size => size.split('x')),\n bidFloor: parseFloat(bid.params.bidFloor) > 0 ? bid.params.bidFloor : 0\n });\n });\n\n const bidRequest = {\n id: bidReqs[0].requestId,\n imps: imps,\n publisherId: utils.getBidIdParameter('pubId', bidReqs[0].params),\n siteId: utils.getBidIdParameter('siteId', bidReqs[0].params),\n cat: utils.getBidIdParameter('cat', bidReqs[0].params),\n language: utils.getBidIdParameter('lang', bidReqs[0].params),\n domain: utils.getTopWindowLocation().hostname,\n page: utils.getTopWindowUrl(),\n referrer: utils.getTopWindowReferrer()\n };\n return {\n method: 'POST',\n url: `//pb.vi-serve.com/prebid/bid`,\n data: JSON.stringify(bidRequest),\n options: {contentType: 'application/json', withCredentials: false}\n };\n}\n\nfunction interpretResponse(bids) {\n let responses = [];\n utils._each(bids.body, function(bid) {\n responses.push({\n requestId: bid.id,\n cpm: parseFloat(bid.price),\n width: parseInt(bid.width, 10),\n height: parseInt(bid.height, 10),\n creativeId: bid.creativeId,\n dealId: bid.dealId || null,\n currency: 'USD',\n netRevenue: true,\n mediaType: BANNER,\n ad: decodeURIComponent(`${bid.ad}`),\n ttl: 60000\n });\n });\n return responses;\n}\n\nexport const spec = {\n code: BIDDER_CODE,\n supportedMediaTypes: SUPPORTED_MEDIA_TYPES,\n isBidRequestValid,\n buildRequests,\n interpretResponse\n}\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/viBidAdapter.js","import * as utils from 'src/utils';\nimport {registerBidder} from 'src/adapters/bidderFactory';\nimport {BANNER} from 'src/mediaTypes';\nexport const URL = '//prebid.nininin.com';\nconst BIDDER_CODE = 'vidazoo';\nconst CURRENCY = 'USD';\nconst TTL_SECONDS = 60 * 5;\nconst INTERNAL_SYNC_TYPE = {\n IFRAME: 'iframe',\n IMAGE: 'img'\n};\nconst EXTERNAL_SYNC_TYPE = {\n IFRAME: 'iframe',\n IMAGE: 'image'\n};\n\nfunction isBidRequestValid(bid) {\n const params = bid.params || {};\n return !!(params.cId && params.pId);\n}\n\nfunction buildRequest(bid, topWindowUrl, size) {\n const {params, bidId} = bid;\n const {bidFloor, cId, pId} = params;\n // Prebid's util function returns AppNexus style sizes (i.e. 300x250)\n const [width, height] = size.split('x');\n\n return {\n method: 'GET',\n url: `${URL}/prebid/${cId}`,\n data: {\n url: topWindowUrl,\n cb: Date.now(),\n bidFloor: bidFloor,\n bidId: bidId,\n publisherId: pId,\n width,\n height\n }\n }\n}\n\nfunction buildRequests(validBidRequests) {\n const topWindowUrl = utils.getTopWindowUrl();\n const requests = [];\n validBidRequests.forEach(validBidRequest => {\n const sizes = utils.parseSizesInput(validBidRequest.sizes);\n sizes.forEach(size => {\n const request = buildRequest(validBidRequest, topWindowUrl, size);\n requests.push(request);\n });\n });\n return requests;\n}\n\nfunction interpretResponse(serverResponse, request) {\n if (!serverResponse || !serverResponse.body) {\n return [];\n }\n const {creativeId, ad, price, exp} = serverResponse.body;\n if (!ad || !price) {\n return [];\n }\n const {bidId, width, height} = request.data;\n try {\n return [{\n requestId: bidId,\n cpm: price,\n width: width,\n height: height,\n creativeId: creativeId,\n currency: CURRENCY,\n netRevenue: true,\n ttl: exp || TTL_SECONDS,\n ad: ad\n }];\n } catch (e) {\n return [];\n }\n}\n\nfunction getUserSyncs(syncOptions, responses) {\n const {iframeEnabled, pixelEnabled} = syncOptions;\n\n if (iframeEnabled) {\n return [{\n type: 'iframe',\n url: '//static.nininin.com/basev/sync/user_sync.html'\n }];\n }\n\n if (pixelEnabled) {\n const lookup = {};\n const syncs = [];\n responses.forEach(response => {\n const {body} = response;\n const cookies = body ? body.cookies || [] : [];\n cookies.forEach(cookie => {\n switch (cookie.type) {\n case INTERNAL_SYNC_TYPE.IFRAME:\n break;\n case INTERNAL_SYNC_TYPE.IMAGE:\n if (pixelEnabled && !lookup[cookie.src]) {\n syncs.push({\n type: EXTERNAL_SYNC_TYPE.IMAGE,\n url: cookie.src\n });\n }\n break;\n }\n });\n });\n return syncs;\n }\n\n return [];\n}\n\nexport const spec = {\n code: BIDDER_CODE,\n supportedMediaTypes: [BANNER],\n isBidRequestValid,\n buildRequests,\n interpretResponse,\n getUserSyncs\n};\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/vidazooBidAdapter.js","// Vuble Adapter\n\nimport * as utils from 'src/utils';\nimport {registerBidder} from 'src/adapters/bidderFactory';\n\nconst BIDDER_CODE = 'vuble';\n\nconst ENVS = ['com', 'net'];\nconst CURRENCIES = {\n com: 'EUR',\n net: 'USD'\n};\nconst TTL = 60;\n\nexport const spec = {\n code: BIDDER_CODE,\n supportedMediaTypes: ['video'],\n\n /**\n * Determines whether or not the given bid request is valid.\n *\n * @param {BidRequest} bid The bid params to validate.\n * @return boolean True if this is a valid bid, and false otherwise.\n */\n isBidRequestValid: function (bid) {\n if (utils.isEmpty(bid.sizes) || utils.parseSizesInput(bid.sizes).length == 0) {\n return false;\n }\n\n if (!utils.deepAccess(bid, 'mediaTypes.video.context')) {\n return false;\n }\n\n if (!utils.contains(ENVS, bid.params.env)) {\n return false;\n }\n\n return !!(bid.params.env && bid.params.pubId && bid.params.zoneId);\n },\n\n /**\n * Make a server request from the list of BidRequests.\n *\n * @param {validBidRequests[]} - an array of bids\n * @return ServerRequest Info describing the request to the server.\n */\n buildRequests: function (validBidRequests) {\n return validBidRequests.map(bid => {\n // We take the first size\n let size = utils.parseSizesInput(bid.sizes)[0].split('x');\n\n // Get the page's url\n let referrer = utils.getTopWindowUrl();\n if (bid.params.referrer) {\n referrer = bid.params.referrer;\n }\n\n // Get Video Context\n let context = utils.deepAccess(bid, 'mediaTypes.video.context');\n\n let url = '//player.mediabong.' + bid.params.env + '/prebid/request';\n let data = {\n width: size[0],\n height: size[1],\n pub_id: bid.params.pubId,\n zone_id: bid.params.zoneId,\n context: context,\n floor_price: bid.params.floorPrice ? bid.params.floorPrice : 0,\n url: referrer,\n env: bid.params.env,\n bid_id: bid.bidId\n };\n\n return {\n method: 'POST',\n url: url,\n data: data\n };\n });\n },\n\n /**\n * Unpack the response from the server into a list of bids.\n *\n * @param {ServerResponse} serverResponse A successful response from the server.\n * @return {Bid[]} An array of bids which were nested inside the server.\n */\n interpretResponse: function (serverResponse, bid) {\n const responseBody = serverResponse.body;\n\n if (typeof responseBody !== 'object' || responseBody.status !== 'ok') {\n return [];\n }\n\n let responses = [];\n let reponse = {\n requestId: bid.data.bid_id,\n cpm: responseBody.cpm,\n width: bid.data.width,\n height: bid.data.height,\n ttl: TTL,\n creativeId: responseBody.creativeId,\n netRevenue: true,\n currency: CURRENCIES[bid.data.env],\n vastUrl: responseBody.url,\n mediaType: 'video'\n };\n responses.push(reponse);\n\n return responses;\n },\n\n /**\n * Register the user sync pixels which should be dropped after the auction.\n *\n * @param {SyncOptions} syncOptions Which user syncs are allowed?\n * @param {ServerResponse[]} serverResponses List of server's responses.\n * @return {UserSync[]} The user syncs which should be dropped.\n */\n getUserSyncs: function (syncOptions, serverResponses) {\n if (syncOptions.iframeEnabled) {\n if (serverResponses.length > 0) {\n let responseBody = serverResponses[0].body;\n if (typeof responseBody !== 'object' || responseBody.iframeSync) {\n return [{\n type: 'iframe',\n url: responseBody.iframeSync\n }];\n }\n }\n }\n return [];\n }\n};\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/vubleBidAdapter.js","import * as utils from 'src/utils';\nimport { registerBidder } from 'src/adapters/bidderFactory';\nimport { BANNER } from 'src/mediaTypes';\n\nconst BIDDER_CODE = 'xendiz';\nconst PREBID_ENDPOINT = 'prebid.xendiz.com';\nconst SYNC_ENDPOINT = 'https://advsync.com/xendiz/ssp/?pixel=1';\n\nconst buildURI = () => {\n return `//${PREBID_ENDPOINT}/request`;\n}\n\nconst getDevice = () => {\n const lang = navigator.language || '';\n const width = window.screen.width;\n const height = window.screen.height;\n\n return [lang, width, height];\n};\n\nconst buildItem = (req) => {\n return [\n req.bidId,\n req.params,\n req.adUnitCode,\n req.sizes.map(s => `${s[0]}x${s[1]}`)\n ]\n}\n\nexport const spec = {\n code: BIDDER_CODE,\n supportedMediaTypes: [BANNER],\n\n /**\n * Determines whether or not the given bid request is valid.\n *\n * @param {object} bid The bid to validate.\n * @return boolean True if this is a valid bid, and false otherwise.\n */\n isBidRequestValid: function(bid) {\n return !!bid.params.pid;\n },\n\n /**\n * Make a server request from the list of BidRequests.\n *\n * @param {BidRequest[]} bidRequests A non-empty list of bid requests which should be sent to the Server.\n * @return ServerRequest Info describing the request to the server.\n */\n buildRequests: function(bidRequests) {\n const payload = {\n id: bidRequests[0].auctionId,\n items: bidRequests.map(buildItem),\n device: getDevice(),\n page: utils.getTopWindowUrl(),\n dt: +new Date()\n };\n const payloadString = JSON.stringify(payload);\n\n return {\n method: 'POST',\n url: buildURI(),\n data: payloadString\n };\n },\n\n /**\n * Unpack the response from the server into a list of bids.\n *\n * @param {*} serverResponse A successful response from the server.\n * @return {Bid[]} An array of bids which were nested inside the server.\n */\n interpretResponse: function(serverResponse) {\n const bids = serverResponse.body.bids.map(bid => {\n return {\n requestId: bid.id,\n cpm: bid.price,\n width: bid.w,\n height: bid.h,\n creativeId: bid.crid,\n netRevenue: bid.netRevenue !== undefined ? bid.netRevenue : true,\n dealId: bid.dealid,\n currency: bid.cur || 'USD',\n ttl: bid.exp || 900,\n ad: bid.adm,\n }\n });\n\n return bids;\n },\n\n getUserSyncs: function(syncOptions) {\n if (syncOptions.pixelEnabled) {\n return [{\n type: 'image',\n url: SYNC_ENDPOINT\n }];\n }\n }\n}\n\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/xendizBidAdapter.js","import * as utils from 'src/utils';\nimport { formatQS as buildQueryString } from '../src/url';\nimport { registerBidder } from 'src/adapters/bidderFactory';\n\n/**\n * @module {BidderSpec} YieldbotBidAdapter\n * @description Adapter for requesting bids from Yieldbot\n * @see BidderSpec\n * @author [elljoh]{@link https://github.com/elljoh}\n * @private\n */\nexport const YieldbotAdapter = {\n _adapterLoaded: Date.now(),\n _navigationStart: 0,\n _version: 'pbjs-yb-0.0.1',\n _bidRequestCount: 0,\n _pageviewDepth: 0,\n _lastPageviewId: '',\n _sessionBlocked: false,\n _isInitialized: false,\n _sessionTimeout: 180000,\n _userTimeout: 2592000000,\n _cookieLabels: ['n', 'u', 'si', 'pvd', 'lpv', 'lpvi', 'c'],\n\n initialize: function() {\n if (!this._isInitialized) {\n this._pageviewDepth = this.pageviewDepth;\n this._sessionBlocked = this.sessionBlocked;\n this._isInitialized = true;\n }\n },\n\n /**\n * Adapter version\n * pbjs-yb-x.x.x\n * @returns {string} The adapter version string\n * @memberof module:YieldbotBidAdapter\n */\n get version() {\n return this._version;\n },\n\n /**\n * Is the user session blocked by the Yieldbot adserver.
\n * The Yieldbot adserver may return \"block_session\": true in a bid response.\n * A session may be blocked for efficiency (i.e. Yieldbot has decided no to bid for the session),\n * security and/or fraud detection.\n * @returns {boolean}\n * @readonly\n * @memberof module:YieldbotBidAdapter\n * @private\n */\n get sessionBlocked() {\n const cookieName = '__ybotn';\n const cookieValue = this.getCookie(cookieName);\n const sessionBlocked = cookieValue ? parseInt(cookieValue, 10) || 0 : 0;\n if (sessionBlocked) {\n this.setCookie(cookieName, 1, this._sessionTimeout, '/');\n }\n this._sessionBlocked = !!sessionBlocked;\n return this._sessionBlocked;\n },\n\n set sessionBlocked(blockSession) {\n const cookieName = '__ybotn';\n const sessionBlocked = blockSession ? 1 : 0;\n this.setCookie(cookieName, sessionBlocked, this._sessionTimeout, '/');\n },\n\n get userId() {\n const cookieName = '__ybotu';\n let cookieValue = this.getCookie(cookieName);\n if (!cookieValue) {\n cookieValue = this.newId();\n this.setCookie(cookieName, cookieValue, this._userTimeout, '/');\n }\n return cookieValue;\n },\n\n get sessionId() {\n const cookieName = '__ybotsi';\n let cookieValue = this.getCookie(cookieName);\n if (!cookieValue) {\n cookieValue = this.newId();\n this.setCookie(cookieName, cookieValue, this._sessionTimeout, '/');\n }\n return cookieValue;\n },\n\n get pageviewDepth() {\n const cookieName = '__ybotpvd';\n let cookieValue = parseInt(this.getCookie(cookieName), 10) || 0;\n cookieValue++;\n this.setCookie(cookieName, cookieValue, this._sessionTimeout, '/');\n return cookieValue;\n },\n\n get lastPageviewId() {\n const cookieName = '__ybotlpvi';\n let cookieValue = this.getCookie(cookieName);\n return cookieValue || '';\n },\n\n set lastPageviewId(id) {\n const cookieName = '__ybotlpvi';\n this.setCookie(cookieName, id, this._sessionTimeout, '/');\n },\n\n get lastPageviewTime() {\n const cookieName = '__ybotlpv';\n let cookieValue = this.getCookie(cookieName);\n return cookieValue ? parseInt(cookieValue, 10) : 0;\n },\n\n set lastPageviewTime(ts) {\n const cookieName = '__ybotlpv';\n this.setCookie(cookieName, ts, this._sessionTimeout, '/');\n },\n\n /**\n * Get/set the request base url used to form bid, ad markup and impression requests.\n * @param {string} [prefix] the bidder request base url\n * @returns {string} the request base Url string\n * @memberof module:YieldbotBidAdapter\n */\n urlPrefix: function(prefix) {\n const cookieName = '__ybotc';\n const pIdx = prefix ? prefix.indexOf(':') : -1;\n const url = pIdx !== -1 ? document.location.protocol + prefix.substr(pIdx + 1) : null;\n let cookieValue = url || this.getCookie(cookieName);\n if (!cookieValue) {\n cookieValue = '//i.yldbt.com/m/';\n }\n this.setCookie(cookieName, cookieValue, this._sessionTimeout, '/');\n return cookieValue;\n },\n\n /**\n * Bidder identifier code.\n * @type {string}\n * @constant\n * @memberof module:YieldbotBidAdapter\n */\n get code() { return 'yieldbot'; },\n\n /**\n * A list of aliases which should also resolve to this bidder.\n * @type {string[]}\n * @constant\n * @memberof module:YieldbotBidAdapter\n */\n get aliases() { return []; },\n\n /**\n * @property {MediaType[]} [supportedMediaTypes]: A list of Media Types which the adapter supports.\n * @constant\n * @memberof module:YieldbotBidAdapter\n */\n get supportedMediaTypes() { return ['banner']; },\n\n /**\n * Determines whether or not the given bid request is valid.\n *\n * @param {BidRequest} bid The bid params to validate.\n * @returns {boolean} True if this is a valid bid, and false otherwise.\n * @memberof module:YieldbotBidAdapter\n */\n isBidRequestValid: function(bid) {\n let invalidSizeArray = false;\n if (utils.isArray(bid.sizes)) {\n const arr = bid.sizes.reduce((acc, cur) => acc.concat(cur), []).filter((item) => {\n return !utils.isNumber(item);\n });\n invalidSizeArray = arr.length !== 0;\n }\n const ret = bid &&\n bid.params &&\n utils.isStr(bid.params.psn) &&\n utils.isStr(bid.params.slot) &&\n !invalidSizeArray &&\n !!bid.params.psn &&\n !!bid.params.slot;\n return ret;\n },\n\n /**\n * Make a server request from the list of BidRequests.\n *\n * @param {BidRequest[]} bidRequests A non-empty list of bid requests which should be sent to the Server.\n * @return ServerRequest Info describing the request to the server.\n * @memberof module:YieldbotBidAdapter\n */\n buildRequests: function(bidRequests) {\n const requests = [];\n if (!this._optOut && !this.sessionBlocked) {\n const searchParams = this.initBidRequestParams();\n this._bidRequestCount++;\n\n const pageviewIdToMap = searchParams['pvi'];\n\n const yieldbotSlotParams = this.getSlotRequestParams(pageviewIdToMap, bidRequests);\n\n searchParams['sn'] = yieldbotSlotParams['sn'] || '';\n searchParams['ssz'] = yieldbotSlotParams['ssz'] || '';\n\n const bidUrl = this.urlPrefix() + yieldbotSlotParams.psn + '/v1/init';\n\n searchParams['cts_ini'] = Date.now();\n requests.push({\n method: 'GET',\n url: bidUrl,\n data: searchParams,\n yieldbotSlotParams: yieldbotSlotParams,\n options: {\n withCredentials: true,\n customHeaders: {\n Accept: 'application/json'\n }\n }\n });\n }\n return requests;\n },\n\n /**\n * Register the user sync pixels which should be dropped after the auction.\n *\n * @param {SyncOptions} syncOptions Which user syncs are allowed?\n * @param {ServerResponse[]} serverResponses List of server's responses.\n * @return {UserSync[]} The user syncs which should be dropped.\n * @memberof module:YieldbotBidAdapter\n */\n getUserSyncs: function(syncOptions, serverResponses) {\n const userSyncs = [];\n if (syncOptions.pixelEnabled &&\n serverResponses.length > 0 &&\n serverResponses[0].body &&\n serverResponses[0].body.user_syncs &&\n utils.isArray(serverResponses[0].body.user_syncs)) {\n const responseUserSyncs = serverResponses[0].body.user_syncs;\n responseUserSyncs.forEach((pixel) => {\n userSyncs.push({\n type: 'image',\n url: pixel\n });\n });\n }\n return userSyncs;\n },\n\n /**\n * @typeDef {YieldbotBid} YieldbotBid\n * @type {object}\n * @property {string} slot Yieldbot config param slot\n * @property {string} cpm Yieldbot bid quantity/label\n * @property {string} size Slot dimensions of the form <width>x<height>\n * @memberof module:YieldbotBidAdapter\n */\n /**\n * Unpack the response from the server into a list of bids.\n *\n * @param {ServerResponse} serverResponse A successful response from the server.\n * @param {BidRequest} bidRequest Request object submitted which produced the response.\n * @return {Bid[]} An array of bids which were nested inside the server.\n * @memberof module:YieldbotBidAdapter\n */\n interpretResponse: function(serverResponse, bidRequest) {\n const bidResponses = [];\n const responseBody = serverResponse && serverResponse.body ? serverResponse.body : {};\n this._optOut = responseBody.optout || false;\n if (this._optOut) {\n this.clearAllCookies();\n }\n if (!this._optOut && !this._sessionBlocked) {\n const slotBids = responseBody.slots && responseBody.slots.length > 0 ? responseBody.slots : [];\n slotBids.forEach((bid) => {\n if (bid.slot && bid.size && bid.cpm) {\n const sizeParts = bid.size ? bid.size.split('x') : [1, 1];\n const width = sizeParts[0] || 1;\n const height = sizeParts[1] || 1;\n const cpm = parseInt(bid.cpm, 10) / 100.0 || 0;\n\n const yieldbotSlotParams = bidRequest.yieldbotSlotParams || null;\n const ybBidId = bidRequest.data['pvi'];\n const paramKey = `${ybBidId}:${bid.slot}:${bid.size || ''}`;\n const bidIdMap = yieldbotSlotParams && yieldbotSlotParams.bidIdMap ? yieldbotSlotParams.bidIdMap : {};\n const requestId = bidIdMap[paramKey] || '';\n\n const urlPrefix = this.urlPrefix(responseBody.url_prefix);\n const tagObject = this.buildAdCreativeTag(urlPrefix, bid, bidRequest);\n const bidResponse = {\n requestId: requestId,\n cpm: cpm,\n width: width,\n height: height,\n creativeId: tagObject.creativeId,\n currency: 'USD',\n netRevenue: true,\n ttl: this._sessionTimeout / 1000, // [s]\n ad: tagObject.ad\n };\n bidResponses.push(bidResponse);\n }\n });\n }\n return bidResponses;\n },\n\n /**\n * Initializes search parameters common to both ad request and impression Urls.\n * @param {string} adRequestId Yieldbot ad request identifier\n * @param {BidRequest} bidRequest The request that is the source of the impression\n * @returns {object} Search parameter key/value pairs\n * @memberof module:YieldbotBidAdapter\n */\n initAdRequestParams: function(adRequestId, bidRequest) {\n let commonSearchParams = {};\n commonSearchParams['v'] = this._version;\n commonSearchParams['vi'] = bidRequest.data.vi || this._version + '-vi';\n commonSearchParams['si'] = bidRequest.data.si || this._version + '-si';\n commonSearchParams['pvi'] = bidRequest.data.pvi || this._version + '-pvi';\n commonSearchParams['ri'] = adRequestId;\n return commonSearchParams;\n },\n\n buildAdUrl: function(urlPrefix, publisherNumber, commonSearchParams, bid) {\n const searchParams = Object.assign({}, commonSearchParams);\n searchParams['cts_res'] = Date.now();\n searchParams['slot'] = bid.slot + ':' + bid.size;\n searchParams['ioa'] = this.intersectionObserverAvailable(window);\n\n const queryString = buildQueryString(searchParams) || '';\n const adUrl = urlPrefix +\n publisherNumber +\n '/ad/creative.js?' +\n queryString;\n return adUrl;\n },\n\n buildImpressionUrl: function(urlPrefix, publisherNumber, commonSearchParams) {\n const searchParams = Object.assign({}, commonSearchParams);\n const queryString = buildQueryString(searchParams) || '';\n const impressionUrl = urlPrefix +\n publisherNumber +\n '/ad/impression.gif?' +\n queryString;\n return impressionUrl;\n },\n\n /**\n * Object with Yieldbot ad markup representation and unique creative identifier.\n * @typeDef {TagObject} TagObject\n * @type {object}\n * @property {string} creativeId bidder specific creative identifier for tracking at the source\n * @property {string} ad ad creative markup\n * @memberof module:YieldbotBidAdapter\n */\n /**\n * Builds the ad creative markup.\n * @param {string} urlPrefix base url for Yieldbot requests\n * @param {module:YieldbotBidAdapter.YieldbotBid} bid Bidder slot bid object\n * @returns {module:YieldbotBidAdapter.TagObject}\n * @memberof module:YieldbotBidAdapter\n */\n buildAdCreativeTag: function(urlPrefix, bid, bidRequest) {\n const ybotAdRequestId = this.newId();\n const commonSearchParams = this.initAdRequestParams(ybotAdRequestId, bidRequest);\n const publisherNumber = bidRequest && bidRequest.yieldbotSlotParams ? bidRequest.yieldbotSlotParams.psn || '' : '';\n const adUrl = this.buildAdUrl(urlPrefix, publisherNumber, commonSearchParams, bid);\n const impressionUrl = this.buildImpressionUrl(urlPrefix, publisherNumber, commonSearchParams);\n\n const htmlMarkup = `
`;\n return { ad: htmlMarkup, creativeId: ybotAdRequestId };\n },\n\n intersectionObserverAvailable: function (win) {\n /* Ref:\n * https://github.com/w3c/IntersectionObserver/blob/gh-pages/polyfill/intersection-observer.js#L23-L25\n */\n return win &&\n win.IntersectionObserver &&\n win.IntersectionObserverEntry &&\n win.IntersectionObserverEntry.prototype &&\n 'intersectionRatio' in win.IntersectionObserverEntry.prototype;\n },\n\n /**\n * @typeDef {BidParams} BidParams\n * @property {string} psn Yieldbot publisher customer number\n * @property {object} searchParams bid request Url search parameters\n * @property {object} searchParams.sn slot names\n * @property {object} searchParams.szz slot sizes\n * @memberof module:YieldbotBidAdapter\n * @private\n */\n /**\n * Builds the common Yieldbot bid request Url query parameters.
\n * Slot bid related parameters are handled separately. The so-called common parameters\n * here are request identifiers, page properties and user-agent attributes.\n * @returns {object} query parameter key/value items\n * @memberof module:YieldbotBidAdapter\n */\n initBidRequestParams: function() {\n const params = {};\n\n params['cts_js'] = this._adapterLoaded;\n params['cts_ns'] = this._navigationStart;\n params['v'] = this._version;\n\n const userId = this.userId;\n const sessionId = this.sessionId;\n const pageviewId = this.newId();\n const currentBidTime = Date.now();\n const lastBidTime = this.lastPageviewTime;\n const lastBidId = this.lastPageviewId;\n this.lastPageviewTime = currentBidTime;\n this.lastPageviewId = pageviewId;\n params['vi'] = userId;\n params['si'] = sessionId;\n params['pvd'] = this._pageviewDepth;\n params['pvi'] = pageviewId;\n params['lpv'] = lastBidTime;\n params['lpvi'] = lastBidId;\n params['bt'] = this._bidRequestCount === 0 ? 'init' : 'refresh';\n\n params['ua'] = navigator.userAgent;\n params['np'] = navigator.platform;\n params['la'] =\n navigator.browserLanguage ? navigator.browserLanguage : navigator.language;\n params['to'] =\n (new Date()).getTimezoneOffset() / 60;\n params['sd'] =\n window.screen.width + 'x' + window.screen.height;\n\n params['lo'] = utils.getTopWindowUrl();\n params['r'] = utils.getTopWindowReferrer();\n\n params['e'] = '';\n\n return params;\n },\n\n /**\n * Bid mapping key to the Prebid internal bidRequestId
\n * Format {pageview id}:{slot name}:{width}x{height}\n * @typeDef {BidRequestKey} BidRequestKey\n * @type {string}\n * @example \"jbgxsxqxyxvqm2oud7:leaderboard:728x90\"\n * @memberof module:YieldbotBidAdapter\n */\n\n /**\n * Internal Yieldbot adapter bid and ad markup request state\n *
\n * When interpreting a server response, the associated requestId is lookeded up\n * in this map when creating a {@link Bid} response object.\n * @typeDef {BidRequestMapping} BidRequestMapping\n * @type {object}\n * @property {Object.} {*} Yieldbot bid to requestId mapping item\n * @memberof module:YieldbotBidAdapter\n * @example\n * {\n * \"jbgxsxqxyxvqm2oud7:leaderboard:728x90\": \"2b7e31676ce17\",\n * \"jbgxsxqxyxvqm2oud7:medrec:300x250\": \"2b7e31676cd89\",\n * \"jcrvvd6eoileb8w8ko:medrec:300x250\": \"2b7e316788ca7\"\n * }\n * @memberof module:YieldbotBidAdapter\n */\n\n /**\n * Rationalized set of Yieldbot bids for adUnits and mapping to respective Prebid.js bidId.\n * @typeDef {BidSlots} BidSlots\n * @property {string} psn Yieldbot publisher site identifier taken from bidder params\n * @property {string} sn slot names\n * @property {string} szz slot sizes\n * @property {module:YieldbotBidAdapter.BidRequestMapping} bidIdMap Yieldbot bid to Prebid bidId mapping\n * @memberof module:YieldbotBidAdapter\n */\n\n /**\n * Gets unique slot name and sizes for query parameters object\n * @param {string} pageviewId The Yieldbot bid request identifier\n * @param {BidRequest[]} bidRequests A non-empty list of bid requests which should be sent to the Server\n * @returns {module:YieldbotBidAdapter.BidSlots} Yieldbot specific bid parameters and bid identifier mapping\n * @memberof module:YieldbotBidAdapter\n */\n getSlotRequestParams: function(pageviewId, bidRequests) {\n const params = {};\n const bidIdMap = {};\n bidRequests = bidRequests || [];\n pageviewId = pageviewId || '';\n try {\n const slotBids = {};\n bidRequests.forEach((bid) => {\n params.psn = params.psn || bid.params.psn || '';\n utils.parseSizesInput(bid.sizes).forEach(sz => {\n const slotName = bid.params.slot;\n if (sz && (!slotBids[slotName] || !slotBids[slotName].some(existingSize => existingSize === sz))) {\n slotBids[slotName] = slotBids[slotName] || [];\n slotBids[slotName].push(sz);\n const paramKey = pageviewId + ':' + slotName + ':' + sz;\n bidIdMap[paramKey] = bid.bidId;\n }\n });\n });\n\n const nm = [];\n const sz = [];\n for (let idx in slotBids) {\n const slotName = idx;\n const slotSizes = slotBids[idx];\n nm.push(slotName);\n sz.push(slotSizes.join('.'));\n }\n params['sn'] = nm.join('|');\n params['ssz'] = sz.join('|');\n\n params.bidIdMap = bidIdMap;\n } catch (err) {}\n return params;\n },\n\n getCookie: function(name) {\n const cookies = document.cookie.split(';');\n let value = null;\n for (let idx = 0; idx < cookies.length; idx++) {\n const item = cookies[idx].split('=');\n const itemName = item[0].replace(/^\\s+|\\s+$/g, '');\n if (itemName == name) {\n value = item.length > 1 ? decodeURIComponent(item[1].replace(/^\\s+|\\s+$/g, '')) : null;\n break;\n }\n }\n return value;\n },\n\n setCookie: function(name, value, expireMillis, path, domain, secure) {\n const dataValue = encodeURIComponent(value);\n const cookieStr = name + '=' + dataValue +\n (expireMillis ? ';expires=' + new Date(Date.now() + expireMillis).toGMTString() : '') +\n (path ? ';path=' + path : '') +\n (domain ? ';domain=' + domain : '') +\n (secure ? ';secure' : '');\n\n document.cookie = cookieStr;\n },\n\n deleteCookie: function(name, path, domain, secure) {\n return this.setCookie(name, '', -1, path, domain, secure);\n },\n\n /**\n * Clear all first-party cookies.\n */\n clearAllCookies: function() {\n const labels = this._cookieLabels;\n for (let idx = 0; idx < labels.length; idx++) {\n const label = '__ybot' + labels[idx];\n this.deleteCookie(label);\n }\n },\n\n /**\n * Generate a new Yieldbot format id
\n * Base 36 and lowercase: <[ms] since epoch><[base36]{10}>\n * @example \"jbgxsyrlx9fxnr1hbl\"\n * @private\n */\n newId: function() {\n return (+new Date()).toString(36) + 'xxxxxxxxxx'\n .replace(/[x]/g, function() {\n return (0 | Math.random() * 36).toString(36);\n });\n },\n\n /**\n * Create a delegate function with 'this' context of the YieldbotAdapter object.\n * @param {object} instance Object for 'this' context in function apply\n * @param {function} fn Function to execute in instance context\n * @returns {function} the provided function bound to the instance context\n * @memberof module:YieldbotBidAdapter\n */\n createDelegate: function(instance, fn) {\n var outerArgs = Array.prototype.slice.call(arguments, 2);\n return function() {\n return fn.apply(instance, outerArgs.length > 0 ? Array.prototype.slice.call(arguments, 0).concat(outerArgs) : arguments);\n };\n }\n};\n\nYieldbotAdapter.initialize();\n\nexport const spec = {\n code: YieldbotAdapter.code,\n aliases: YieldbotAdapter.aliases,\n supportedMediaTypes: YieldbotAdapter.supportedMediaTypes,\n isBidRequestValid: YieldbotAdapter.createDelegate(YieldbotAdapter, YieldbotAdapter.isBidRequestValid),\n buildRequests: YieldbotAdapter.createDelegate(YieldbotAdapter, YieldbotAdapter.buildRequests),\n interpretResponse: YieldbotAdapter.createDelegate(YieldbotAdapter, YieldbotAdapter.interpretResponse),\n getUserSyncs: YieldbotAdapter.createDelegate(YieldbotAdapter, YieldbotAdapter.getUserSyncs)\n};\n\nYieldbotAdapter._navigationStart = Date.now();\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/yieldbotBidAdapter.js","import * as utils from 'src/utils'\nimport { registerBidder } from 'src/adapters/bidderFactory'\nimport find from 'core-js/library/fn/array/find'\nimport { VIDEO, BANNER } from 'src/mediaTypes'\n\nconst ENDPOINT = 'https://ad.yieldlab.net'\nconst BIDDER_CODE = 'yieldlab'\nconst BID_RESPONSE_TTL_SEC = 300\nconst CURRENCY_CODE = 'EUR'\n\nexport const spec = {\n code: BIDDER_CODE,\n supportedMediaTypes: [VIDEO, BANNER],\n\n isBidRequestValid: function (bid) {\n if (bid && bid.params && bid.params.adslotId && bid.params.adSize) {\n return true\n }\n return false\n },\n\n /**\n * This method should build correct URL\n * @param validBidRequests\n * @returns {{method: string, url: string}}\n */\n buildRequests: function (validBidRequests) {\n const adslotIds = []\n const timestamp = Date.now()\n\n utils._each(validBidRequests, function (bid) {\n adslotIds.push(bid.params.adslotId)\n })\n\n const adslots = adslotIds.join(',')\n\n return {\n method: 'GET',\n url: `${ENDPOINT}/yp/${adslots}?ts=${timestamp}&json=true`,\n validBidRequests: validBidRequests\n }\n },\n\n /**\n * Map ad values and pricing and stuff\n * @param serverResponse\n * @param originalBidRequest\n */\n interpretResponse: function (serverResponse, originalBidRequest) {\n const bidResponses = []\n const timestamp = Date.now()\n\n originalBidRequest.validBidRequests.forEach(function (bidRequest) {\n if (!serverResponse.body) {\n return\n }\n\n let matchedBid = find(serverResponse.body, function (bidResponse) {\n return bidRequest.params.adslotId == bidResponse.id\n })\n\n if (matchedBid) {\n const sizes = parseSize(bidRequest.params.adSize)\n const bidResponse = {\n requestId: bidRequest.bidId,\n cpm: matchedBid.price / 100,\n width: sizes[0],\n height: sizes[1],\n creativeId: '' + matchedBid.id,\n dealId: matchedBid.pid,\n currency: CURRENCY_CODE,\n netRevenue: false,\n ttl: BID_RESPONSE_TTL_SEC,\n referrer: '',\n ad: ``\n }\n if (isVideo(bidRequest)) {\n bidResponse.mediaType = VIDEO\n bidResponse.vastUrl = `${ENDPOINT}/d/${matchedBid.id}/${bidRequest.params.supplyId}/${sizes[0]}x${sizes[1]}?ts=${timestamp}`\n }\n\n bidResponses.push(bidResponse)\n }\n })\n return bidResponses\n }\n};\n\n/**\n * Is this a video format?\n * @param {String} format\n * @returns {Boolean}\n */\nfunction isVideo (format) {\n return utils.deepAccess(format, 'mediaTypes.video')\n}\n\n/**\n * Expands a 'WxH' string as a 2-element [W, H] array\n * @param {String} size\n * @returns {Array}\n */\nfunction parseSize (size) {\n return size.split('x').map(Number)\n}\n\nregisterBidder(spec)\n\n\n\n// WEBPACK FOOTER //\n// ./modules/yieldlabBidAdapter.js","import * as utils from 'src/utils';\nimport { registerBidder } from 'src/adapters/bidderFactory';\n\nconst BIDDER_CODE = 'yieldmo';\nconst CURRENCY = 'USD';\nconst TIME_TO_LIVE = 300;\nconst NET_REVENUE = true;\nconst SYNC_ENDPOINT = 'https://static.yieldmo.com/blank.min.html?orig=';\nconst SERVER_ENDPOINT = 'https://ads.yieldmo.com/exchange/prebid';\nconst localWindow = getTopWindow();\n\nexport const spec = {\n code: BIDDER_CODE,\n supportedMediaTypes: ['banner'],\n /**\n * Determines whether or not the given bid request is valid.\n * @param {object} bid, bid to validate\n * @return boolean, true if valid, otherwise false\n */\n isBidRequestValid: function(bid) {\n return !!(bid && bid.adUnitCode && bid.bidId);\n },\n /**\n * Make a server request from the list of BidRequests.\n *\n * @param {BidRequest[]} bidRequests A non-empty list of bid requests which should be sent to the Server.\n * @return ServerRequest Info describing the request to the server.\n */\n buildRequests: function(bidRequests) {\n let serverRequest = {\n p: [],\n page_url: utils.getTopWindowUrl(),\n bust: new Date().getTime().toString(),\n pr: utils.getTopWindowReferrer(),\n scrd: localWindow.devicePixelRatio || 0,\n dnt: getDNT(),\n e: getEnvironment(),\n description: getPageDescription(),\n title: localWindow.document.title || '',\n w: localWindow.innerWidth,\n h: localWindow.innerHeight\n };\n bidRequests.forEach((request) => {\n serverRequest.p.push(addPlacement(request));\n });\n serverRequest.p = '[' + serverRequest.p.toString() + ']';\n return {\n method: 'GET',\n url: SERVER_ENDPOINT,\n data: serverRequest\n }\n },\n /**\n * Makes Yieldmo Ad Server response compatible to Prebid specs\n * @param serverResponse successful response from Ad Server\n * @param bidderRequest original bidRequest\n * @return {Bid[]} an array of bids\n */\n interpretResponse: function(serverResponse) {\n let bids = [];\n let data = serverResponse.body;\n if (data.length > 0) {\n data.forEach((response) => {\n if (response.cpm && response.cpm > 0) {\n bids.push(createNewBid(response));\n }\n });\n }\n return bids;\n },\n getUserSync: function(syncOptions) {\n if (trackingEnabled(syncOptions)) {\n return [{\n type: 'iframe',\n url: SYNC_ENDPOINT + utils.getOrigin()\n }];\n } else {\n return [];\n }\n }\n}\nregisterBidder(spec);\n\n/***************************************\n * Helper Functions\n ***************************************/\n\n/**\n * Adds placement information to array\n * @param request bid request\n */\nfunction addPlacement(request) {\n const placementInfo = {\n placement_id: request.adUnitCode,\n callback_id: request.bidId,\n sizes: request.sizes\n }\n if (request.params && request.params.placementId) {\n placementInfo.ym_placement_id = request.params.placementId\n }\n return JSON.stringify(placementInfo);\n}\n\n/**\n * creates a new bid with response information\n * @param response server response\n */\nfunction createNewBid(response) {\n return {\n requestId: response['callback_id'],\n cpm: response.cpm,\n width: response.width,\n height: response.height,\n creativeId: response.creativeId,\n currency: CURRENCY,\n netRevenue: NET_REVENUE,\n ttl: TIME_TO_LIVE,\n ad: response.ad\n };\n}\n\n/**\n * Detects if tracking is allowed\n * @returns false if dnt or if not iframe/pixel enabled\n */\nfunction trackingEnabled(options) {\n return (isIOS() && !getDNT() && options.iframeEnabled);\n}\n\n/**\n * Detects whether we're in iOS\n * @returns true if in iOS\n */\nfunction isIOS() {\n return /iPhone|iPad|iPod/i.test(window.navigator.userAgent);\n}\n\n/**\n * Detects whether dnt is true\n * @returns true if user enabled dnt\n */\nfunction getDNT() {\n return window.doNotTrack === '1' || window.navigator.doNotTrack === '1' || false;\n}\n\n/**\n * get page description\n */\nfunction getPageDescription() {\n if (document.querySelector('meta[name=\"description\"]')) {\n return document.querySelector('meta[name=\"description\"]').getAttribute('content'); // Value of the description metadata from the publisher's page.\n } else {\n return '';\n }\n}\n\nfunction getTopWindow() {\n try {\n return window.top;\n } catch (e) {\n return window;\n }\n}\n\n/***************************************\n * Detect Environment Helper Functions\n ***************************************/\n\n/**\n * Represents a method for loading Yieldmo ads. Environments affect\n * which formats can be loaded into the page\n * Environments:\n * CodeOnPage: 0, // div directly on publisher's page\n * Amp: 1, // google Accelerate Mobile Pages ampproject.org\n * Mraid = 2, // native loaded through the MRAID spec, without Yieldmo's SDK https://www.iab.net/media/file/IAB_MRAID_v2_FINAL.pdf\n * Dfp: 4, // google doubleclick for publishers https://www.doubleclickbygoogle.com/\n * DfpInAmp: 5, // AMP page containing a DFP iframe\n * SafeFrame: 10,\n * DfpSafeFrame: 11,Sandboxed: 16, // An iframe that can't get to the top window.\n * SuperSandboxed: 89, // An iframe without allow-same-origin\n * Unknown: 90, // A default sandboxed implementation delivered by EnvironmentDispatch when all positive environment checks fail\n */\n\n/**\n * Detects what environment we're in\n * @returns Environment kind\n */\nfunction getEnvironment() {\n if (isSuperSandboxedIframe()) {\n return 89;\n } else if (isDfpInAmp()) {\n return 5;\n } else if (isDfp()) {\n return 4;\n } else if (isAmp()) {\n return 1;\n } else if (isDFPSafeFrame()) {\n return 11;\n } else if (isSafeFrame()) {\n return 10;\n } else if (isMraid()) {\n return 2;\n } else if (isCodeOnPage()) {\n return 0;\n } else if (isSandboxedIframe()) {\n return 16;\n } else {\n return 90;\n }\n}\n\n/**\n * @returns true if we are running on the top window at dispatch time\n */\nfunction isCodeOnPage() {\n return window === window.parent;\n}\n\n/**\n * @returns true if the environment is both DFP and AMP\n */\nfunction isDfpInAmp() {\n return isDfp() && isAmp();\n}\n\n/**\n * @returns true if the window is in an iframe whose id and parent element id match DFP\n */\nfunction isDfp() {\n try {\n const frameElement = window.frameElement;\n const parentElement = window.frameElement.parentNode;\n if (frameElement && parentElement) {\n return frameElement.id.indexOf('google_ads_iframe') > -1 && parentElement.id.indexOf('google_ads_iframe') > -1;\n }\n return false;\n } catch (e) {\n return false;\n }\n}\n\n/**\n* @returns true if there is an AMP context object\n*/\nfunction isAmp() {\n try {\n const ampContext = window.context || window.parent.context;\n if (ampContext && ampContext.pageViewId) {\n return ampContext;\n }\n return false;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * @returns true if the environment is a SafeFrame.\n */\nfunction isSafeFrame() {\n return window.$sf && window.$sf.ext;\n}\n\n/**\n * @returns true if the environment is a dfp safe frame.\n */\nfunction isDFPSafeFrame() {\n if (window.location && window.location.href) {\n const href = window.location.href;\n return isSafeFrame() && href.indexOf('google') !== -1 && href.indexOf('safeframe') !== -1;\n }\n return false;\n}\n\n/**\n * Return true if we are in an iframe and can't access the top window.\n */\nfunction isSandboxedIframe() {\n return window.top !== window && !window.frameElement;\n}\n\n/**\n * Return true if we cannot document.write to a child iframe (this implies no allow-same-origin)\n */\nfunction isSuperSandboxedIframe() {\n const sacrificialIframe = window.document.createElement('iframe');\n try {\n sacrificialIframe.setAttribute('style', 'display:none');\n window.document.body.appendChild(sacrificialIframe);\n sacrificialIframe.contentWindow._testVar = true;\n window.document.body.removeChild(sacrificialIframe);\n return false;\n } catch (e) {\n window.document.body.removeChild(sacrificialIframe);\n return true;\n }\n}\n\n/**\n * @returns true if the window has the attribute identifying MRAID\n */\nfunction isMraid() {\n return !!(window.mraid);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./modules/yieldmoBidAdapter.js","import * as utils from 'src/utils';\nimport {config} from 'src/config';\nimport {registerBidder} from 'src/adapters/bidderFactory';\n\nconst BIDDER_CODE = 'yieldone';\nconst ENDPOINT_URL = '//y.one.impact-ad.jp/h_bid';\n\nexport const spec = {\n code: BIDDER_CODE,\n aliases: ['y1'],\n isBidRequestValid: function(bid) {\n return !!(bid.params.placementId);\n },\n buildRequests: function(validBidRequests) {\n return validBidRequests.map(bidRequest => {\n const params = bidRequest.params;\n const sizes = utils.parseSizesInput(bidRequest.sizes)[0];\n const width = sizes.split('x')[0];\n const height = sizes.split('x')[1];\n const placementId = params.placementId;\n const cb = Math.floor(Math.random() * 99999999999);\n const referrer = encodeURIComponent(utils.getTopWindowUrl());\n const bidId = bidRequest.bidId;\n const payload = {\n v: 'hb1',\n p: placementId,\n w: width,\n h: height,\n cb: cb,\n r: referrer,\n uid: bidId,\n t: 'i'\n };\n return {\n method: 'GET',\n url: ENDPOINT_URL,\n data: payload,\n }\n });\n },\n interpretResponse: function(serverResponse, bidRequest) {\n const bidResponses = [];\n const response = serverResponse.body;\n const crid = response.crid || 0;\n const width = response.width || 0;\n const height = response.height || 0;\n const cpm = response.cpm * 1000 || 0;\n if (width !== 0 && height !== 0 && cpm !== 0 && crid !== 0) {\n const dealId = response.dealid || '';\n const currency = response.currency || 'JPY';\n const netRevenue = (response.netRevenue === undefined) ? true : response.netRevenue;\n const referrer = utils.getTopWindowUrl();\n const bidResponse = {\n requestId: bidRequest.data.uid,\n cpm: cpm,\n width: response.width,\n height: response.height,\n creativeId: crid,\n dealId: dealId,\n currency: currency,\n netRevenue: netRevenue,\n ttl: config.getConfig('_bidderTimeout'),\n referrer: referrer,\n ad: response.adTag\n };\n bidResponses.push(bidResponse);\n }\n return bidResponses;\n }\n}\nregisterBidder(spec);\n\n\n\n// WEBPACK FOOTER //\n// ./modules/yieldoneBidAdapter.js"]}