├── static ├── bidder-info │ ├── admaticde.yaml │ ├── magnite.yaml │ ├── ttd.yaml │ ├── 1accord.yaml │ ├── easybid.yaml │ ├── prismassp.yaml │ ├── rxnetwork.yaml │ ├── showheroes-bs.yaml │ ├── showheroesBs.yaml │ ├── equativ.yaml │ ├── filmzie.yaml │ ├── tgm.yaml │ ├── 152media.yaml │ ├── yobee.yaml │ ├── pixad.yaml │ ├── monetixads.yaml │ ├── adt.yaml │ ├── netaddiction.yaml │ ├── finative.yaml │ ├── performist.yaml │ ├── xtrmqb.yaml │ ├── velonium.yaml │ ├── adsyield.yaml │ ├── adtg_org.yaml │ ├── appstock.yaml │ ├── streamlyn.yaml │ ├── addigi.yaml │ ├── adinify.yaml │ ├── embimedia.yaml │ ├── felixads.yaml │ ├── greedygame.yaml │ ├── jambojar.yaml │ ├── mediayo.yaml │ ├── pinkLion.yaml │ ├── vimayx.yaml │ ├── artechnology.yaml │ ├── iionads.yaml │ ├── intenze.yaml │ ├── streamvision.yaml │ ├── orangeclickmedia.yaml │ ├── adform.yaml │ ├── gravite.yaml │ ├── tredio.yaml │ ├── unicorn.yaml │ ├── jdpmedia.yaml │ ├── markapp.yaml │ ├── synacormedia.yaml │ ├── adrino.yaml │ ├── flipp.yaml │ ├── bidmachine.yaml │ ├── teads.yaml │ ├── yeahmobi.yaml │ ├── zmaticoo.yaml │ ├── automatad.yaml │ ├── infytv.yaml │ ├── pangle.yaml │ ├── akcelo.yaml │ ├── adgeneration.yaml │ ├── adtrgtme.yaml │ ├── cointraffic.yaml │ ├── mobkoi.yaml │ ├── madsense.yaml │ ├── silvermob.yaml │ ├── bidstack.yaml │ ├── coinzilla.yaml │ ├── freewheel-ssp.yaml │ ├── yahooAdvertising.yaml │ ├── oms.yaml │ ├── definemedia.yaml │ ├── teqblaze.yaml │ ├── interactiveoffers.yaml │ ├── madvertise.yaml │ ├── nativery.yaml │ ├── boldwin_rapid.yaml │ ├── mobfoxpb.yaml │ ├── vungle.yaml │ ├── silverpush.yaml │ ├── trustx.yaml │ ├── yahoossp.yaml │ ├── kidoz.yaml │ ├── suntContent.yaml │ ├── aceex.yaml │ ├── adoppler.yaml │ ├── appush.yaml │ ├── huaweiads.yaml │ ├── revcontent.yaml │ ├── sovrnXsp.yaml │ ├── loyal.yaml │ ├── mediasquare.yaml │ ├── smartx.yaml │ ├── edge226.yaml │ ├── gothamads.yaml │ ├── readpeak.yaml │ ├── adhese.yaml │ ├── adview.yaml │ ├── motorik.yaml │ ├── kobler.yaml │ ├── showheroes.yaml │ ├── pubnative.yaml │ ├── roulax.yaml │ ├── screencore.yaml │ ├── tradplus.yaml │ ├── mediafuse.yaml │ ├── videoheroes.yaml │ ├── adnuntius.yaml │ ├── bidscube.yaml │ ├── brave.yaml │ ├── startio.yaml │ ├── decenterads.yaml │ ├── janet.yaml │ ├── pgam.yaml │ ├── rocketlab.yaml │ ├── copper6.yaml │ ├── epom.yaml │ ├── indicue.yaml │ ├── algorix.yaml │ ├── displayio.yaml │ ├── bcmint.yaml │ ├── bidgency.yaml │ ├── resetdigital.yaml │ ├── audienceNetwork.yaml │ ├── goldbach.yaml │ ├── kuantyx.yaml │ ├── adquery.yaml │ ├── loopme.yaml │ ├── trafficgate.yaml │ ├── viewdeos.yaml │ ├── adpone.yaml │ ├── bluesea.yaml │ ├── concert.yaml │ ├── connektai.yaml │ ├── kayzen.yaml │ ├── limelightDigital.yaml │ ├── zentotem.yaml │ ├── eplanning.yaml │ ├── epsilon.yaml │ ├── mabidder.yaml │ ├── quantumdex.yaml │ ├── nexx360.yaml │ ├── relevantdigital.yaml │ ├── valueimpression.yaml │ ├── beintoo.yaml │ ├── omnidex.yaml │ ├── robustApps.yaml │ ├── mgid.yaml │ ├── adelement.yaml │ ├── progx.yaml │ ├── gamma.yaml │ ├── jixie.yaml │ ├── seedingAlliance.yaml │ ├── tagoras.yaml │ ├── logicad.yaml │ ├── lunamedia.yaml │ ├── telaria.yaml │ ├── escalax.yaml │ ├── flatads.yaml │ ├── avocet.yaml │ ├── advangelists.yaml │ ├── aja.yaml │ ├── ccx.yaml │ ├── dxkulture.yaml │ └── impactify.yaml ├── bidder-params │ ├── epom.json │ ├── nativo.json │ ├── zentotem.json │ ├── startio.json │ ├── revcontent.json │ ├── mobkoi.json │ ├── aja.json │ ├── bidmyadz.json │ ├── adsinteractive.json │ ├── adpone.json │ ├── adtrgtme.json │ ├── stroeerCore.json │ ├── marsmedia.json │ ├── brave.json │ ├── krushmedia.json │ ├── logicad.json │ ├── mabidder.json │ ├── aceex.json │ ├── interactiveoffers.json │ ├── zeta_global_ssp.json │ ├── bigoad.json │ ├── e_volution.json │ ├── freewheelssp.json │ ├── showheroes.json │ ├── minutemedia.json │ ├── videoheroes.json │ ├── aso.json │ ├── axonix.json │ ├── bidtheatre.json │ ├── ccx.json │ ├── deepintent.json │ ├── inmobi.json │ ├── tpmn.json │ ├── vidazoo.json │ ├── adtonos.json │ ├── adkernel.json │ ├── logan.json │ ├── melozen.json │ ├── adelement.json │ ├── adman.json │ ├── blis.json │ ├── coinzilla.json │ ├── globalsun.json │ ├── lockerdome.json │ ├── adkernelAdn.json │ ├── datablocks.json │ ├── teads.json │ ├── madsense.json │ ├── smrtconnect.json │ ├── vidoomy.json │ └── yieldmo.json └── index.html ├── hooks └── hookexecution │ └── test │ ├── empty-stage-outcomes │ ├── empty.json │ ├── empty-stage-outcomes-v2.json │ └── empty-stage-outcomes-v1.json │ └── complete-stage-outcomes │ └── expected-empty-response.json ├── modules ├── prebid │ └── rulesengine │ │ └── config │ │ └── sample-schemas │ │ └── malformed.json ├── fiftyonedegrees │ └── devicedetection │ │ ├── context.go │ │ ├── module_no_cgo_test.go │ │ └── no-cgo.go └── moduledeps │ └── deps.go ├── adapters ├── adprime │ └── adprimetest │ │ └── params │ │ └── race │ │ ├── banner.json │ │ ├── native.json │ │ └── video.json ├── mgid │ └── README.md ├── taboola │ └── utils.go ├── ix │ └── ixtest │ │ └── supplemental │ │ └── no-imp.json ├── teads │ └── teadstest │ │ └── supplemental │ │ └── no-impression.json ├── akcelo │ └── akcelotest │ │ └── supplemental │ │ └── no-valid-imp.json ├── inmobi │ └── inmobitest │ │ └── supplemental │ │ └── no-imp-error.json ├── gamma │ └── gammatest │ │ └── supplemental │ │ ├── bad-request-no-imps.json │ │ └── invalid-imp.json ├── gamoshi │ └── gamoshitest │ │ └── supplemental │ │ ├── bad-request-no-imps.json │ │ └── invalid-imp.json ├── grid │ └── gridtest │ │ └── supplemental │ │ └── no_imp_request.json ├── lockerdome │ └── lockerdometest │ │ └── supplemental │ │ └── empty_imps.json ├── smartadserver │ └── smartadservertest │ │ └── supplemental │ │ └── request-no-imp.json ├── smartrtb │ └── smartrtbtest │ │ └── supplemental │ │ └── empty-imps.json ├── nobid │ └── nobidtest │ │ └── supplemental │ │ └── missing-imps.json ├── logicad │ └── logicadtest │ │ └── supplemental │ │ └── checkImp.json ├── smaato │ └── smaatotest │ │ └── supplemental │ │ └── no-imp-request.json ├── kidoz │ └── kidoztest │ │ └── supplemental │ │ ├── missing-banner-format.json │ │ ├── empty-banner-format .json │ │ ├── missing-ext.json │ │ └── missing-bidder.json ├── kayzen │ └── kayzentest │ │ └── supplemental │ │ └── requires-imp-object.json ├── lunamedia │ └── lunamediatest │ │ └── supplemental │ │ └── checkImp.json ├── marsmedia │ └── marsmediatest │ │ └── supplemental │ │ └── invalid-imp.json ├── krushmedia │ └── krushmediatest │ │ └── supplemental │ │ └── requires-imp-object.json ├── telaria │ └── telariatest │ │ └── supplemental │ │ └── requires-imp-object.json ├── beachfront │ └── beachfronttest │ │ └── supplemental │ │ └── no-imps.json ├── screencore │ └── screencoretest │ │ └── supplemental │ │ └── empty-imp-array.json ├── blis │ └── blistest │ │ └── supplemental │ │ ├── invalid-imp-ext.json │ │ └── invalid-imp-ext-bidder.json ├── adkernelAdn │ └── adkerneladntest │ │ └── supplemental │ │ └── no-imps.json ├── adquery │ └── adquerytest │ │ └── exemplary │ │ └── empty.json ├── impactify │ └── impactifytest │ │ └── supplemental │ │ └── invalid_imp.json ├── madvertise │ └── madvertisetest │ │ └── supplemental │ │ └── required-ext.json ├── yieldlab │ └── const.go ├── admixer │ └── admixertest │ │ └── supplemental │ │ └── zero-bid-request-error.json ├── tappx │ └── tappxtest │ │ └── supplemental │ │ └── no-imps.json ├── between │ └── betweentest │ │ └── supplemental │ │ └── zero-bid-request-error.json └── yahooAds │ └── yahooAdstest │ └── supplemental │ └── required-nobidder-info.json ├── stored_requests ├── backends │ └── file_fetcher │ │ └── test │ │ ├── stored_requests │ │ ├── 2.json │ │ └── 1.json │ │ ├── stored_responses │ │ ├── escaped.json │ │ └── bar.json │ │ ├── stored_imps │ │ └── some-imp.json │ │ ├── category-mapping │ │ └── test │ │ │ └── test_broken.json │ │ └── accounts │ │ └── valid.json └── data │ └── by_id │ ├── stored_imps │ └── .gitignore │ └── stored_requests │ └── .gitignore ├── openrtb_ext ├── imp_epom.go ├── imp_aso.go ├── preferredmediatype.go ├── imp_adrino.go ├── imp_aja.go ├── imp_inmobi.go ├── imp_kobler.go ├── imp_logicad.go ├── imp_aceex.go ├── imp_bigoad.go ├── imp_mabidder.go ├── imp_melozen.go ├── imp_sonobi.go ├── imp_vidoomy.go ├── imp_adgeneration.go ├── imp_axonix.go ├── imp_blis.go ├── imp_bmtm.go ├── imp_ccx.go ├── imp_deepintent.go ├── imp_seedtag.go ├── imp_zeta_global_ssp.go ├── imp_adelement.go ├── imp_adtonos.go ├── imp_brave.go ├── imp_gothamads.go ├── imp_logan.go ├── imp_madsense.go ├── imp_mobkoi.go ├── imp_nativery.go ├── imp_showheroes.go ├── imp_smrtconnect.go ├── imp_teads.go ├── imp_adpone.go ├── imp_adsinteractive.go ├── imp_bidscube.go ├── imp_bidstack.go ├── imp_bwx.go ├── imp_globalsun.go ├── imp_iqx.go ├── imp_stroeercore.go ├── imp_aax.go ├── imp_beyondmedia.go ├── imp_bidtheatre.go ├── imp_cointraffic.go ├── imp_decenterads.go ├── imp_videoheroes.go ├── imp_xeworks.go ├── imp_lmkiviads.go ├── imp_resetdigital.go ├── imp_bematterfull.go ├── imp_driftpixel.go ├── imp_interactiveoffers.go ├── imp_medianet.go ├── imp_bluesea.go ├── imp_boldwin_rapid.go ├── imp_intertech.go ├── imp_sa_lunamedia.go ├── imp_unruly.go ├── imp_adoppler.go ├── imp_adverxo.go ├── imp_bliink.go ├── imp_mediasquare.go ├── imp_trustedstack.go ├── imp_acuityads.go ├── imp_adman.go ├── imp_admatic.go ├── imp_afront.go ├── imp_escalax.go ├── imp_lemmadigital.go ├── imp_qt.go ├── imp_adquery.go ├── imp_beintoo.go ├── imp_between.go ├── imp_clydo.go ├── imp_emtv.go ├── imp_flatads.go ├── imp_loyal.go ├── imp_mgidX.go ├── imp_motorik.go ├── imp_nobid.go ├── imp_oraki.go ├── imp_smoot.go ├── imp_tpmn.go ├── imp_adview.go ├── imp_appush.go ├── imp_boldwin.go ├── imp_colossus.go ├── imp_compass.go ├── imp_cpmstar.go ├── imp_definemedia.go ├── imp_edge226.go ├── imp_frvradn.go ├── imp_infytv.go ├── imp_iqzone.go ├── imp_kidoz.go ├── imp_kiviads.go ├── imp_pgamssp.go ├── imp_pubrise.go ├── imp_undertone.go ├── imp_copper6ssp.go ├── imp_facebook.go ├── imp_krushmedia.go ├── imp_ogury.go ├── imp_playdigo.go ├── imp_pubnative.go ├── imp_screencore.go ├── imp_sspbc.go ├── imp_teqblaze.go ├── imp_trafficgate.go ├── imp_axis.go ├── imp_lunamedia.go ├── imp_ads_interactive.go ├── imp_advangelists.go ├── imp_cadent_aperture_mx.go ├── imp_visiblemeasures.go ├── imp_ownadx.go ├── imp_roulax.go ├── imp_pwbid.go ├── imp_bidmachine.go ├── imp_kargo.go ├── imp_rediads.go ├── imp_connatix.go ├── imp_exco.go ├── imp_adkernel.go ├── imp_adtrgtme.go ├── imp_kueezrtb.go ├── imp_sharethrough.go ├── imp_vidazoo.go ├── imp_apacdex.go ├── imp_minutemedia.go ├── imp_seedingAlliance.go ├── imp_vox.go ├── imp_yieldmo.go ├── imp_adocean.go ├── imp_datablocks.go ├── imp_displayio.go ├── imp_madvertise.go ├── imp_onetag.go ├── imp_operaads.go ├── imp_yieldone.go ├── imp_adkernelAdn.go ├── imp_amx.go ├── imp_limelightDigital.go ├── imp_mobilefuse.go ├── imp_pangle.go ├── imp_smilewanted.go ├── imp_freewheelssp.go ├── imp_imds.go ├── imp_kayzen.go ├── imp_smarthub.go ├── imp_vungle.go ├── imp_yahooAds.go ├── imp_yahoossp.go ├── imp_oms.go ├── imp_silvermob.go ├── imp_adot.go ├── imp_blasto.go ├── imp_metax.go ├── imp_vrtcal.go ├── imp_yeahmobi.go ├── imp_zmaticoo.go ├── source.go ├── imp_aidem.go ├── imp_dianomi.go ├── imp_ix.go ├── imp_lockerdome.go ├── imp_marsmedia.go ├── imp_readpeak.go ├── imp_tradplus.go ├── imp_ucfunnel.go ├── imp_adprime.go ├── imp_jixie.go ├── imp_triplelift.go ├── imp_yahooAdvertising.go ├── imp_admixer.go ├── imp_contxtful.go ├── imp_dxkulture.go ├── imp_gamma.go ├── imp_relevantdigital.go ├── imp_zeroclickfraud.go ├── imp_fwssp.go ├── imp_smartrtb.go ├── imp_sovrnXsp.go ├── imp_akcelo.go ├── imp_eplanning.go ├── imp_gamoshi.go ├── imp_avocet.go ├── imp_impactify.go ├── imp_nexx360.go ├── imp_telaria.go ├── imp_alkimi.go ├── imp_insticator.go ├── imp_optidigital.go ├── imp_rise.go ├── imp_smartyads.go ├── imp_thetradedesk.go ├── imp_adhese.go ├── imp_loopme.go ├── imp_sovrn.go ├── imp_videobyte.go ├── imp_grid.go ├── imp_nextmillennium.go ├── imp_orbidder.go ├── imp_openweb.go ├── imp_richaudience.go ├── imp_silverpush.go ├── imp_33across.go ├── imp_connectad.go ├── imp_criteo.go ├── imp_missena.go ├── imp_smartx.go ├── imp_concert.go ├── imp_adagio.go ├── imp_theadx.go ├── imp_adf.go ├── imp_rtbhouse.go ├── imp_sparteo.go ├── imp_algorix.go ├── imp_yieldlab.go ├── app.go ├── imp_unicorn.go ├── imp_pulsepoint.go ├── imp_yandex.go ├── imp_invibes.go ├── imp_mediago.go ├── imp_tappx.go ├── imp_aduptech.go ├── imp_adtarget.go ├── imp_bidmatic.go ├── imp_mgid.go ├── imp_adtelligent.go └── doc.go ├── util ├── httputil │ ├── pixel.png │ └── pixel.go ├── sliceutil │ └── containstring.go ├── timeutil │ └── time.go ├── mathutil │ └── mathutil.go ├── task │ └── func_runner.go ├── uuidutil │ └── uuidutil.go ├── randomutil │ └── randomutil.go └── jsonutil │ └── intstring.go ├── docs └── developers │ └── images │ └── img_grafana.png ├── privacy ├── rule.go ├── policies.go └── gdpr │ └── validate.go ├── .github └── release-drafter.yml ├── firstpartydata └── tests │ └── extractbidderconfigfpd │ ├── bidder-config-not-specified.json │ ├── bidder-config-null.json │ ├── bidder-config-empty.json │ ├── bidder-list-specified-only.json │ └── bidder-config-config-null.json ├── endpoints ├── openrtb2 │ └── sample-requests │ │ └── invalid-whole │ │ ├── null.json │ │ ├── empty-object.json │ │ ├── malformed-bid-request.json │ │ ├── only-request-id.json │ │ ├── imp-empty-array.json │ │ ├── tmax-negative.json │ │ └── imp-empty-object.json └── httprouterhandler.go ├── macros └── replacer.go ├── config └── adapter.go ├── analytics └── clients │ └── http.go ├── errortypes └── scope.go ├── .semgrep └── README.md ├── logger └── interface.go ├── usersync └── shuffler.go └── ortb └── request_validator_pmp.go /static/bidder-info/admaticde.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: "admatic" -------------------------------------------------------------------------------- /static/bidder-info/magnite.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: "rubicon" -------------------------------------------------------------------------------- /static/bidder-info/ttd.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: thetradedesk 2 | -------------------------------------------------------------------------------- /hooks/hookexecution/test/empty-stage-outcomes/empty.json: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/bidder-info/1accord.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: "nexx360" 2 | -------------------------------------------------------------------------------- /static/bidder-info/easybid.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: "nexx360" 2 | -------------------------------------------------------------------------------- /static/bidder-info/prismassp.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: "nexx360" 2 | -------------------------------------------------------------------------------- /static/bidder-info/rxnetwork.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: adkernel 2 | -------------------------------------------------------------------------------- /static/bidder-info/showheroes-bs.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: "showheroes" -------------------------------------------------------------------------------- /static/bidder-info/showheroesBs.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: "showheroes" -------------------------------------------------------------------------------- /static/bidder-info/equativ.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: "smartadserver" 2 | -------------------------------------------------------------------------------- /static/bidder-info/filmzie.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: "limelightDigital" 2 | -------------------------------------------------------------------------------- /static/bidder-info/tgm.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: "limelightDigital" 2 | -------------------------------------------------------------------------------- /hooks/hookexecution/test/empty-stage-outcomes/empty-stage-outcomes-v2.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /modules/prebid/rulesengine/config/sample-schemas/malformed.json: -------------------------------------------------------------------------------- 1 | malformed 2 | -------------------------------------------------------------------------------- /static/bidder-info/152media.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: adkernel 2 | gvlVendorID: 1111 3 | -------------------------------------------------------------------------------- /adapters/adprime/adprimetest/params/race/banner.json: -------------------------------------------------------------------------------- 1 | { 2 | "TagID": "test" 3 | } -------------------------------------------------------------------------------- /adapters/adprime/adprimetest/params/race/native.json: -------------------------------------------------------------------------------- 1 | { 2 | "TagID": "test" 3 | } -------------------------------------------------------------------------------- /adapters/adprime/adprimetest/params/race/video.json: -------------------------------------------------------------------------------- 1 | { 2 | "TagID": "test" 3 | } -------------------------------------------------------------------------------- /stored_requests/backends/file_fetcher/test/stored_requests/2.json: -------------------------------------------------------------------------------- 1 | "esca\"ped" 2 | -------------------------------------------------------------------------------- /openrtb_ext/imp_epom.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtEpom struct { 4 | } 5 | -------------------------------------------------------------------------------- /stored_requests/backends/file_fetcher/test/stored_responses/escaped.json: -------------------------------------------------------------------------------- 1 | "esca\"ped" 2 | -------------------------------------------------------------------------------- /static/bidder-info/yobee.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: "admatic" 2 | maintainer: 3 | email: "adops@yobee.it" -------------------------------------------------------------------------------- /static/bidder-info/pixad.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: "admatic" 2 | maintainer: 3 | email: "prebid@pixad.com.tr" -------------------------------------------------------------------------------- /stored_requests/backends/file_fetcher/test/stored_imps/some-imp.json: -------------------------------------------------------------------------------- 1 | { 2 | "imp": true 3 | } 4 | -------------------------------------------------------------------------------- /stored_requests/backends/file_fetcher/test/stored_requests/1.json: -------------------------------------------------------------------------------- 1 | { 2 | "test": "foo" 3 | } 4 | -------------------------------------------------------------------------------- /static/bidder-info/monetixads.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: "admatic" 2 | maintainer: 3 | email: "team@monetixads.com" -------------------------------------------------------------------------------- /util/httputil/pixel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/prebid/prebid-server/HEAD/util/httputil/pixel.png -------------------------------------------------------------------------------- /stored_requests/backends/file_fetcher/test/category-mapping/test/test_broken.json: -------------------------------------------------------------------------------- 1 | { 2 | broken json 3 | } -------------------------------------------------------------------------------- /stored_requests/backends/file_fetcher/test/stored_responses/bar.json: -------------------------------------------------------------------------------- 1 | { 2 | "test": "bar" 3 | } 4 | -------------------------------------------------------------------------------- /openrtb_ext/imp_aso.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpAso struct { 4 | Zone int `json:"zone"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/preferredmediatype.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type PreferredMediaType map[BidderName]BidType 4 | -------------------------------------------------------------------------------- /openrtb_ext/imp_adrino.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpAdrino struct { 4 | Hash string `json:"hash"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_aja.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpAJA struct { 4 | AdSpotID string `json:"asi"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_inmobi.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpInMobi struct { 4 | Plc string `json:"plc"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_kobler.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpKobler struct { 4 | Test bool `json:"test"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_logicad.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpLogicad struct { 4 | Tid string `json:"tid"` 5 | } 6 | -------------------------------------------------------------------------------- /static/bidder-info/adt.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: "admatic" 2 | maintainer: 3 | email: "publisher@adtarget.com.tr" 4 | gvlVendorID: 779 -------------------------------------------------------------------------------- /static/bidder-info/netaddiction.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: "admatic" 2 | maintainer: 3 | email: "publishers-support@netaddiction.it" -------------------------------------------------------------------------------- /stored_requests/backends/file_fetcher/test/accounts/valid.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "valid", 3 | "disabled": false 4 | } 5 | -------------------------------------------------------------------------------- /openrtb_ext/imp_aceex.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtAceex struct { 4 | AccountID string `json:"accountid"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_bigoad.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpBigoAd struct { 4 | SspId string `json:"sspid"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_mabidder.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtMabidder struct { 4 | Ppid string `json:"ppid"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_melozen.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtMeloZen struct { 4 | PubId string `json:"pubId"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_sonobi.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpSonobi struct { 4 | TagID string `json:"tagid"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_vidoomy.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtVidoomy struct { 4 | ZoneID string `json:"zoneId"` 5 | } 6 | -------------------------------------------------------------------------------- /docs/developers/images/img_grafana.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/prebid/prebid-server/HEAD/docs/developers/images/img_grafana.png -------------------------------------------------------------------------------- /hooks/hookexecution/test/complete-stage-outcomes/expected-empty-response.json: -------------------------------------------------------------------------------- 1 | { 2 | "prebid": { 3 | "foo": "bar" 4 | } 5 | } -------------------------------------------------------------------------------- /openrtb_ext/imp_adgeneration.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpAdgeneration struct { 4 | Id string `json:"id"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_axonix.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpAxonix struct { 4 | SupplyId string `json:"supplyId"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_blis.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtBlis struct { 4 | SupplyPartnerID string `json:"spid"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_bmtm.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtBmtm struct { 4 | PlacementID int `json:"placement_id"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_ccx.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpCcx struct { 4 | PlacementID string `json:"placementId"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_deepintent.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpDeepintent struct { 4 | TagID string `json:"tagId"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_seedtag.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtSeedtag struct { 4 | AdUnitID string `json:"adUnitId"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_zeta_global_ssp.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtZetaGlobalSsp struct { 4 | Sid int `json:"sid"` 5 | } 6 | -------------------------------------------------------------------------------- /static/bidder-info/finative.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://b.finative.cloud/cds/rtb/bid?ssp={{.AccountID}}" 2 | aliasOf: "seedingAlliance" -------------------------------------------------------------------------------- /stored_requests/data/by_id/stored_imps/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory, except for this file 2 | * 3 | !.gitignore -------------------------------------------------------------------------------- /adapters/mgid/README.md: -------------------------------------------------------------------------------- 1 | Please contact if you would like to build and deploy Prebid server and use it with Mgid. 2 | -------------------------------------------------------------------------------- /adapters/taboola/utils.go: -------------------------------------------------------------------------------- 1 | package taboola 2 | 3 | type RequestExt struct { 4 | PageType string `json:"pageType,omitempty"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_adelement.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtAdelement struct { 4 | SupplyId string `json:"supply_id"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_adtonos.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtAdTonos struct { 4 | SupplierID string `json:"supplierId"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_brave.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpBrave struct { 4 | PlacementID string `json:"placementId"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_gothamads.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtGothamAds struct { 4 | AccountID string `json:"accountId"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_logan.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtLogan struct { 4 | PlacementID string `json:"placementId"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_madsense.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpMadSense struct { 4 | CompanyId string `json:"company_id"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_mobkoi.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtMobkoi struct { 4 | PlacementID string `json:"placementId"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_nativery.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtNativery struct { 4 | WidgetId string `json:"widgetId"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_showheroes.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpShowheroes struct { 4 | UnitID string `json:"unitId"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_smrtconnect.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtSmrtconnect struct { 4 | SupplyId string `json:"supply_id"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_teads.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpTeads struct { 4 | PlacementID string `json:"placementId"` 5 | } 6 | -------------------------------------------------------------------------------- /static/bidder-info/performist.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://ads-pbs.performserv.com/openrtb/{{.PublisherID}}" 2 | aliasOf: "limelightDigital" 3 | -------------------------------------------------------------------------------- /stored_requests/data/by_id/stored_requests/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory, except for this file 2 | * 3 | !.gitignore -------------------------------------------------------------------------------- /openrtb_ext/imp_adpone.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtAdpone struct { 4 | PlacementId string `json:"placementId,omitempty"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_adsinteractive.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtAdsinteractive struct { 4 | AdUnit string `json:"adUnit"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_bidscube.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpBidsCube struct { 4 | PlacementID string `json:"placementId"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_bidstack.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtBidstack struct { 4 | PublisherID string `json:"publisherId"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_bwx.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtBWX struct { 4 | Env string `json:"env"` 5 | Pid string `json:"pid"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_globalsun.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtGlobalsun struct { 4 | PlacementID string `json:"placementId"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_iqx.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtIQX struct { 4 | Env string `json:"env"` 5 | Pid string `json:"pid"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_stroeercore.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpStroeerCore struct { 4 | Sid string `json:"sid,omitempty"` 5 | } 6 | -------------------------------------------------------------------------------- /static/bidder-info/xtrmqb.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://ads-pbs.ortb.tech/openrtb/{{.PublisherID}}?host={{.Host}}" 2 | aliasOf: "limelightDigital" 3 | -------------------------------------------------------------------------------- /openrtb_ext/imp_aax.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpAax struct { 4 | Cid string `json:"cid"` 5 | Crid string `json:"crid"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_beyondmedia.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtBeyondMedia struct { 4 | PlacementID string `json:"placementId"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_bidtheatre.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtBidtheatre struct { 4 | PublisherID string `json:"publisherId"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_cointraffic.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpCointraffic struct { 4 | PlacementId string `json:"placementId"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_decenterads.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpDecenterAds struct { 4 | PlacementID string `json:"placementId"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_videoheroes.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpVideoHeroes struct { 4 | PlacementID string `json:"placementId"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_xeworks.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtXeworks struct { 4 | Env string `json:"env"` 5 | Pid string `json:"pid"` 6 | } 7 | -------------------------------------------------------------------------------- /privacy/rule.go: -------------------------------------------------------------------------------- 1 | package privacy 2 | 3 | type Rule interface { 4 | Evaluate(target Component, request ActivityRequest) ActivityResult 5 | } 6 | -------------------------------------------------------------------------------- /static/bidder-info/velonium.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://ads-pbs.adxvel.com/openrtb/{{.PublisherID}}?host={{.Host}}" 2 | aliasOf: "limelightDigital" 3 | -------------------------------------------------------------------------------- /adapters/ix/ixtest/supplemental/no-imp.json: -------------------------------------------------------------------------------- 1 | { 2 | "mockBidRequest": { 3 | "id": "test-request-id", 4 | "imp": [] 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_lmkiviads.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtLmKiviads struct { 4 | Env string `json:"env"` 5 | Pid string `json:"pid"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_resetdigital.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtResetDigital struct { 4 | PlacementID string `json:"placement_id"` 5 | } 6 | -------------------------------------------------------------------------------- /static/bidder-info/adsyield.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://ads-pbs.open-adsyield.com/openrtb/{{.PublisherID}}?host={{.Host}}" 2 | aliasOf: "limelightDigital" 3 | -------------------------------------------------------------------------------- /static/bidder-info/adtg_org.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://ads-pbs.rtb.adtarget.org/openrtb/{{.PublisherID}}?host={{.Host}}" 2 | aliasOf: "limelightDigital" 3 | -------------------------------------------------------------------------------- /static/bidder-info/appstock.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://ads-pbs.pre.vr-tb.com/openrtb/{{.PublisherID}}?host={{.Host}}" 2 | aliasOf: "limelightDigital" 3 | -------------------------------------------------------------------------------- /static/bidder-info/streamlyn.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://rtba.bidsxchange.com/openrtb/{{.PublisherID}}?host={{.Host}}" 2 | aliasOf: "limelightDigital" 3 | -------------------------------------------------------------------------------- /openrtb_ext/imp_bematterfull.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtBematterfull struct { 4 | Env string `json:"env"` 5 | Pid string `json:"pid"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_driftpixel.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtDriftPixel struct { 4 | Env string `json:"env"` 5 | Pid string `json:"pid"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_interactiveoffers.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpInteractiveoffers struct { 4 | PartnerId string `json:"partnerId"` 5 | } 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_medianet.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpMedianet struct { 4 | Cid string `json:"cid"` 5 | Crid string `json:"crid"` 6 | } 7 | -------------------------------------------------------------------------------- /static/bidder-info/addigi.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://addigi-prebid.attekmi.com/pbserver/?seat={{.AccountID}}&token={{.SourceId}}" 2 | aliasOf: "smarthub" 3 | -------------------------------------------------------------------------------- /static/bidder-info/adinify.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://adinify-prebid.attekmi.com/pbserver/?seat={{.AccountID}}&token={{.SourceId}}" 2 | aliasOf: "smarthub" 3 | -------------------------------------------------------------------------------- /static/bidder-info/embimedia.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://ads-pbs.bidder-embi.media/openrtb/{{.PublisherID}}?host={{.Host}}" 2 | aliasOf: "limelightDigital" 3 | -------------------------------------------------------------------------------- /static/bidder-info/felixads.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://felixads-prebid.attekmi.com/pbserver/?seat={{.AccountID}}&token={{.SourceId}}" 2 | aliasOf: "smarthub" 3 | -------------------------------------------------------------------------------- /static/bidder-info/greedygame.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://ads-pbs.rtb-greedygame.com/openrtb/{{.PublisherID}}?host={{.Host}}" 2 | aliasOf: "limelightDigital" 3 | -------------------------------------------------------------------------------- /static/bidder-info/jambojar.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://jambojar-prebid.attekmi.com/pbserver/?seat={{.AccountID}}&token={{.SourceId}}" 2 | aliasOf: "smarthub" 3 | -------------------------------------------------------------------------------- /static/bidder-info/mediayo.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: 'teqblaze' 2 | endpoint: "https://balancer.mediayo.ai/pserver" 3 | maintainer: 4 | email: "admin@mediayo.co" 5 | -------------------------------------------------------------------------------- /static/bidder-info/pinkLion.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: "teqblaze" 2 | endpoint: "https://us-east-ep.pinklion.io/pserver" 3 | maintainer: 4 | email: "prebid@pinklion.io" -------------------------------------------------------------------------------- /static/bidder-info/vimayx.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://vimayx-prebid.attekmi.com/pbserver/?seat={{.AccountID}}&token={{.SourceId}}" 2 | aliasOf: "smarthub" 3 | -------------------------------------------------------------------------------- /openrtb_ext/imp_bluesea.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpBluesea struct { 4 | PubId string `json:"pubid"` 5 | Token string `json:"token"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_boldwin_rapid.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtBoldwinRapid struct { 4 | Pid string `json:"pid"` 5 | Tid string `json:"tid"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_intertech.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpIntertech struct { 4 | PageID int `json:"page_id"` 5 | ImpID int `json:"imp_id"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_sa_lunamedia.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpSaLunamedia struct { 4 | Key string `json:"key"` 5 | Type string `json:"type"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_unruly.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpUnruly struct { 4 | SiteIDOld int `json:"siteid"` 5 | SiteID int `json:"siteId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_adoppler.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpAdoppler struct { 4 | Client string `json:"client"` 5 | AdUnit string `json:"adunit"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_adverxo.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtAdverxo struct { 4 | AdUnitId int `json:"adUnitId"` 5 | Auth string `json:"auth"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_bliink.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtBliink struct { 4 | TagID string `json:"tagId"` 5 | ImageUrl string `json:"imageUrl"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_mediasquare.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtMediasquare struct { 4 | Owner string `json:"owner"` 5 | Code string `json:"code"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_trustedstack.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpTrustedstack struct { 4 | Cid string `json:"cid"` 5 | Crid string `json:"crid"` 6 | } 7 | -------------------------------------------------------------------------------- /static/bidder-info/artechnology.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://artechnology-prebid.attekmi.com/pbserver/?seat={{.AccountID}}&token={{.SourceId}}" 2 | aliasOf: "smarthub" 3 | -------------------------------------------------------------------------------- /static/bidder-info/iionads.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://ads-pbs.iionads.com/openrtb/{{.PublisherID}}?host={{.Host}}" 2 | aliasOf: "limelightDigital" 3 | gvlVendorID: 1358 4 | -------------------------------------------------------------------------------- /static/bidder-info/intenze.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: "gothamads" 2 | endpoint: "http://lb-east.intenze.co/?pass={{.AccountID}}" 3 | maintainer: 4 | email: "connect@intenze.co" -------------------------------------------------------------------------------- /static/bidder-info/streamvision.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://ads-pbs.adops.streamvisionmedia.com/openrtb/{{.PublisherID}}?host={{.Host}}" 2 | aliasOf: "limelightDigital" 3 | -------------------------------------------------------------------------------- /.github/release-drafter.yml: -------------------------------------------------------------------------------- 1 | change-template: '* $TITLE (#$NUMBER)' 2 | template: | 3 | ## Changes 4 | 5 | $CHANGES 6 | 7 | ## Contributors 8 | 9 | $CONTRIBUTORS -------------------------------------------------------------------------------- /openrtb_ext/imp_acuityads.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtAcuityAds struct { 4 | Host string `json:"host"` 5 | AccountID string `json:"accountid"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_adman.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpAdman defines adman specifiec param 4 | type ExtImpAdman struct { 5 | TagID string `json:"TagID"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_admatic.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtAdmatic struct { 4 | Host string `json:"host"` 5 | NetworkId int `json:"networkId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_afront.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtAfront struct { 4 | AccountID string `json:"accountId"` 5 | SourceId string `json:"sourceId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_escalax.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtEscalax struct { 4 | AccountID string `json:"accountId"` 5 | SourceID string `json:"sourceId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_lemmadigital.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtLemmaDigital struct { 4 | PublisherId int `json:"pid"` 5 | AdId int `json:"aid"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_qt.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtQT struct { 4 | PlacementID string `json:"placementId"` 5 | EndpointID string `json:"endpointId"` 6 | } 7 | -------------------------------------------------------------------------------- /static/bidder-info/orangeclickmedia.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://ads-pbs.scotty.orangeclickmedia.com/openrtb/{{.PublisherID}}?host={{.Host}}" 2 | aliasOf: "limelightDigital" 3 | -------------------------------------------------------------------------------- /openrtb_ext/imp_adquery.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtAdQuery struct { 4 | PlacementID string `json:"placementId"` 5 | Type string `json:"type"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_beintoo.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpBeintoo struct { 4 | TagID string `json:"tagid"` 5 | BidFloor string `json:"bidfloor,omitempty"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_between.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpBetween struct { 4 | Host string `json:"host"` 5 | PublisherID string `json:"publisher_id"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_clydo.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtClydo struct { 4 | PartnerId string `json:"partnerId"` 5 | Region string `json:"region,omitempty"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_emtv.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtEmtv struct { 4 | PlacementID string `json:"placementId"` 5 | EndpointID string `json:"endpointId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_flatads.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtFlatads struct { 4 | Token string `json:"token"` 5 | PublisherId string `json:"publisherId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_loyal.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtLoyal struct { 4 | PlacementID string `json:"placementId"` 5 | EndpointID string `json:"endpointId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_mgidX.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtMgidX struct { 4 | PlacementID string `json:"placementId"` 5 | EndpointID string `json:"endpointId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_motorik.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtMotorik struct { 4 | AccountID string `json:"accountId"` 5 | PlacementID string `json:"placementId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_nobid.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpNoBid struct { 4 | SiteID string `json:"siteId"` 5 | PlacementID string `json:"placementId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_oraki.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtOraki struct { 4 | PlacementID string `json:"placementId"` 5 | EndpointID string `json:"endpointId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_smoot.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtSmoot struct { 4 | PlacementID string `json:"placementId"` 5 | EndpointID string `json:"endpointId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_tpmn.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpTpmn defines TPMN specifiec param 4 | type ExtImpTpmn struct { 5 | InventoryId int `json:"inventoryId"` 6 | } 7 | -------------------------------------------------------------------------------- /privacy/policies.go: -------------------------------------------------------------------------------- 1 | package privacy 2 | 3 | // Policies contains privacy signals and consent for non-OpenRTB activities. 4 | type Policies struct { 5 | GPPSID []int8 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_adview.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpAdView struct { 4 | MasterTagID string `json:"placementId"` 5 | AccountID string `json:"accountId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_appush.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtAppush struct { 4 | PlacementID string `json:"placementId"` 5 | EndpointID string `json:"endpointId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_boldwin.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtBoldwin struct { 4 | PlacementID string `json:"placementId"` 5 | EndpointID string `json:"endpointId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_colossus.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpColossus defines colossus specifiec param 4 | type ExtImpColossus struct { 5 | TagID string `json:"TagID"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_compass.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtCompass struct { 4 | PlacementID string `json:"placementId"` 5 | EndpointID string `json:"endpointId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_cpmstar.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpCpmstar struct { 4 | PoolId int `json:"placementId"` 5 | SubPoolId int `json:"subpoolId,omitempty"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_definemedia.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtDefinemedia struct { 4 | MandantID int64 `json:"mandantId"` 5 | AdslotID int64 `json:"adslotId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_edge226.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtEdge226 struct { 4 | PlacementID string `json:"placementId"` 5 | EndpointID string `json:"endpointId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_frvradn.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtFRVRAdn struct { 4 | PublisherID string `json:"publisher_id"` 5 | AdUnitID string `json:"ad_unit_id"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_infytv.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtInfytv struct { 4 | PlacementID string `json:"placementId"` 5 | PublisherID string `json:"publisherId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_iqzone.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtIQZone struct { 4 | PlacementID string `json:"placementId"` 5 | EndpointID string `json:"endpointId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_kidoz.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpKidoz struct { 4 | AccessToken string `json:"access_token"` 5 | PublisherID string `json:"publisher_id"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_kiviads.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtKiviads struct { 4 | PlacementID string `json:"placementId"` 5 | EndpointID string `json:"endpointId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_pgamssp.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtPgamSsp struct { 4 | PlacementID string `json:"placementId"` 5 | EndpointID string `json:"endpointId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_pubrise.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtPubrise struct { 4 | PlacementID string `json:"placementId"` 5 | EndpointID string `json:"endpointId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_undertone.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpUndertone struct { 4 | PublisherID int `json:"publisherId"` 5 | PlacementID int `json:"placementId"` 6 | } 7 | -------------------------------------------------------------------------------- /static/bidder-info/adform.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: adf 2 | userSync: 3 | redirect: 4 | url: "https://c1.adform.net/cookie?redirect_url={{.RedirectURL}}" 5 | userMacro: "$UID" 6 | -------------------------------------------------------------------------------- /openrtb_ext/imp_copper6ssp.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtCopper6ssp struct { 4 | PlacementID string `json:"placementId"` 5 | EndpointID string `json:"endpointId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_facebook.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpFacebook struct { 4 | PlacementId string `json:"placementId"` 5 | PublisherId string `json:"publisherId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_krushmedia.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtKrushmedia defines imp[0].ext object structure 4 | type ExtKrushmedia struct { 5 | AccountID string `json:"key"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_ogury.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtOgury struct { 4 | AdUnitID string `json:"adUnitId,omitempty"` 5 | AssetKey string `json:"assetKey,omitempty"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_playdigo.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtPlaydigo struct { 4 | PlacementID string `json:"placementId"` 5 | EndpointID string `json:"endpointId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_pubnative.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpPubnative struct { 4 | ZoneID int `json:"zone_id"` 5 | AppAuthToken string `json:"app_auth_token"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_screencore.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtScreencore struct { 4 | AccountID string `json:"accountId"` 5 | PlacementID string `json:"placementId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_sspbc.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpSspbc struct { 4 | SiteId string `json:"siteId"` 5 | Id string `json:"id"` 6 | IsTest int `json:"test"` 7 | } 8 | -------------------------------------------------------------------------------- /openrtb_ext/imp_teqblaze.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtTeqBlaze struct { 4 | PlacementID string `json:"placementId"` 5 | EndpointID string `json:"endpointId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_trafficgate.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpTrafficGate struct { 4 | PlacementID string `json:"placementId"` 5 | Host string `json:"host"` 6 | } 7 | -------------------------------------------------------------------------------- /static/bidder-info/gravite.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: 'teqblaze' 2 | endpoint: "https://node1-rtb.gravite.net/pserver" 3 | gvlVendorID: 377 4 | maintainer: 5 | email: "support@gravite.net" 6 | 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_axis.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtAxis struct { 4 | Integration string `json:"integration,omitempty"` 5 | Token string `json:"token,omitempty"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_lunamedia.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpLunaMedia struct { 4 | PublisherID string `json:"pubid"` 5 | Placement string `json:"placement,omitempty"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_ads_interactive.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtAdsInteractive struct { 4 | PlacementID string `json:"placementId"` 5 | EndpointID string `json:"endpointId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_advangelists.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpAdvangelists struct { 4 | PublisherID string `json:"pubid"` 5 | Placement string `json:"placement,omitempty"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_cadent_aperture_mx.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpCadentApertureMX struct { 4 | TagID string `json:"tagid"` 5 | BidFloor string `json:"bidfloor,omitempty"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_visiblemeasures.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtVisibleMeasures struct { 4 | PlacementID string `json:"placementId"` 5 | EndpointID string `json:"endpointId"` 6 | } 7 | -------------------------------------------------------------------------------- /static/bidder-info/tredio.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://tredio-prebid.attekmi.com/pbserver/?seat={{.AccountID}}&token={{.SourceId}}" 2 | aliasOf: "smarthub" 3 | userSync: 4 | supports: 5 | - redirect -------------------------------------------------------------------------------- /static/bidder-info/unicorn.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://ds.uncn.jp/pb/0/bid.json" 2 | maintainer: 3 | email: prebid@unicorn.inc 4 | capabilities: 5 | app: 6 | mediaTypes: 7 | - banner 8 | -------------------------------------------------------------------------------- /openrtb_ext/imp_ownadx.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpOwnAdx struct { 4 | SspId string `json:"sspId"` 5 | SeatId string `json:"seatId"` 6 | TokenId string `json:"tokenId"` 7 | } 8 | -------------------------------------------------------------------------------- /openrtb_ext/imp_roulax.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpRoulax struct { 4 | Pid string `json:"Pid,omitempty"` 5 | PublisherPath string `json:"publisherPath,omitempty"` 6 | } 7 | -------------------------------------------------------------------------------- /static/bidder-info/jdpmedia.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://jdpmedia-prebid.attekmi.com/pbserver/?seat={{.AccountID}}&token={{.SourceId}}" 2 | aliasOf: "smarthub" 3 | userSync: 4 | supports: 5 | - redirect -------------------------------------------------------------------------------- /static/bidder-info/markapp.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://markapp-prebid.attekmi.com/pbserver/?seat={{.AccountID}}&token={{.SourceId}}" 2 | aliasOf: "smarthub" 3 | userSync: 4 | supports: 5 | - redirect -------------------------------------------------------------------------------- /openrtb_ext/imp_pwbid.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpPwbid struct { 4 | SiteId string `json:"siteId"` 5 | BidFloor float32 `json:"bidFloor"` 6 | IsTest bool `json:"isTest"` 7 | } 8 | -------------------------------------------------------------------------------- /openrtb_ext/imp_bidmachine.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpBidmachine struct { 4 | Host string `json:"host"` 5 | Path string `json:"path"` 6 | SellerID string `json:"seller_id"` 7 | } 8 | -------------------------------------------------------------------------------- /openrtb_ext/imp_kargo.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtKargo struct { 4 | PlacementId string `json:"placementId"` 5 | AdSlotID string `json:"adSlotID"` // Deprecated - Use `placementId` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_rediads.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpRediads struct { 4 | AccountID string `json:"account_id"` 5 | Slot string `json:"slot"` 6 | Endpoint string `json:"endpoint"` 7 | } 8 | -------------------------------------------------------------------------------- /static/bidder-info/synacormedia.yaml: -------------------------------------------------------------------------------- 1 | # DEPRECATED: Use imds bidder instead 2 | aliasOf: imds 3 | endpoint: "https://pbs.technoratimedia.com/openrtb/bids/{{.AccountID}}?src={{.SourceId}}&adapter=synacormedia" 4 | -------------------------------------------------------------------------------- /openrtb_ext/imp_connatix.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpConnatix struct { 4 | PlacementId string `json:"placementId"` 5 | ViewabilityPercentage float64 `json:"viewabilityPercentage"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_exco.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtExco struct { 4 | TagId string `json:"tagId"` 5 | AccountId string `json:"accountId"` 6 | PublisherId string `json:"publisherId"` 7 | } 8 | -------------------------------------------------------------------------------- /hooks/hookexecution/test/empty-stage-outcomes/empty-stage-outcomes-v1.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "entity": "http-request", 4 | "stage": "entrypoint", 5 | "execution_time_millis": 0, 6 | "groups": [] 7 | } 8 | ] -------------------------------------------------------------------------------- /openrtb_ext/imp_adkernel.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpAdkernel defines the contract for bidrequest.imp[i].ext.prebid.bidder.adkernel 4 | type ExtImpAdkernel struct { 5 | ZoneId int `json:"zoneId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_adtrgtme.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpAdtrgtme defines the contract for bidrequest.imp[i].ext.prebid.bidder.adtrgtme 4 | type ExtImpAdtrgtme struct { 5 | SiteID uint64 `json:"site_id"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_kueezrtb.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ImpExtKueez defines the contract for bidrequest.imp[i].ext.prebid.bidder.kueezrtb 4 | type ImpExtKueez struct { 5 | ConnectionId string `json:"cId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_sharethrough.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpSharethrough struct { 4 | Pkey string `json:"pkey"` 5 | BAdv []string `json:"badv,omitempty"` 6 | BCat []string `json:"bcat,omitempty"` 7 | } 8 | -------------------------------------------------------------------------------- /openrtb_ext/imp_vidazoo.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ImpExtVidazoo defines the contract for bidrequest.imp[i].ext.prebid.bidder.vidazoo 4 | type ImpExtVidazoo struct { 5 | ConnectionId string `json:"cId"` 6 | } 7 | -------------------------------------------------------------------------------- /firstpartydata/tests/extractbidderconfigfpd/bidder-config-not-specified.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Bidder config not specified", 3 | "inputRequestData": {}, 4 | "outputRequestData": {}, 5 | "bidderConfigFPD": {} 6 | } -------------------------------------------------------------------------------- /openrtb_ext/imp_apacdex.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpApacdex struct { 4 | PlacementID string `json:"placementId"` 5 | SiteID string `json:"siteId"` 6 | FloorPrice float64 `json:"floorPrice"` 7 | } 8 | -------------------------------------------------------------------------------- /openrtb_ext/imp_minutemedia.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ImpExtMinuteMedia defines the contract for bidrequest.imp[i].ext.prebid.bidder.minutemedia 4 | type ImpExtMinuteMedia struct { 5 | Org string `json:"org"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_seedingAlliance.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtSeedingAlliance struct { 4 | AdUnitID string `json:"adUnitId"` 5 | SeatID string `json:"seatId"` 6 | AccountID string `json:"accountId"` 7 | } 8 | -------------------------------------------------------------------------------- /openrtb_ext/imp_vox.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtVox struct { 4 | PlacementID string `json:"placementId"` 5 | ImageUrl string `json:"imageUrl"` 6 | DisplaySizes []string `json:"displaySizes"` 7 | } 8 | -------------------------------------------------------------------------------- /openrtb_ext/imp_yieldmo.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpYieldmo defines the contract for bidrequest.imp[i].ext.prebid.bidder.yieldmo 4 | type ExtImpYieldmo struct { 5 | PlacementId string `json:"placementId"` 6 | } 7 | -------------------------------------------------------------------------------- /static/bidder-info/adrino.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://prd-prebid-bidder.adrino.io/openrtb/bid" 2 | maintainer: 3 | email: dev@adrino.pl 4 | gvlVendorID: 1072 5 | capabilities: 6 | site: 7 | mediaTypes: 8 | - native 9 | -------------------------------------------------------------------------------- /openrtb_ext/imp_adocean.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpAdOcean struct { 4 | EmitterPrefix string `json:"emitterPrefix"` 5 | MasterID string `json:"masterId"` 6 | SlaveID string `json:"slaveId"` 7 | } 8 | -------------------------------------------------------------------------------- /openrtb_ext/imp_datablocks.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpDatablocks defines the contract for bidrequest.imp[i].ext.prebid.bidder.datablocks 4 | type ExtImpDatablocks struct { 5 | SourceId int `json:"sourceId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_displayio.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpDisplayio struct { 4 | PublisherId string `json:"publisherId"` 5 | InventoryId string `json:"inventoryId"` 6 | PlacementId string `json:"placementId"` 7 | } 8 | -------------------------------------------------------------------------------- /openrtb_ext/imp_madvertise.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpMadvertise defines the contract for bidrequest.imp[i].ext.prebid.bidder.madvertise 4 | type ExtImpMadvertise struct { 5 | ZoneID string `json:"zoneId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_onetag.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | import ( 4 | "encoding/json" 5 | ) 6 | 7 | type ExtImpOnetag struct { 8 | PubId string `json:"pubId"` 9 | Ext json.RawMessage `json:"ext"` 10 | } 11 | -------------------------------------------------------------------------------- /openrtb_ext/imp_operaads.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtOperaads struct { 4 | PlacementID string `json:"placementId"` 5 | EndpointID string `json:"endpointId"` 6 | PublisherID string `json:"publisherId"` 7 | } 8 | -------------------------------------------------------------------------------- /openrtb_ext/imp_yieldone.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpYieldone defines the contract for bidrequest.imp[i].ext.prebid.bidder.yieldone 4 | type ExtImpYieldone struct { 5 | PlacementId string `json:"placementId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_adkernelAdn.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpAdkernelAdn defines the contract for bidrequest.imp[i].ext.prebid.bidder.adkernelAdn 4 | type ExtImpAdkernelAdn struct { 5 | PublisherID int `json:"pubId"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_amx.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpAMX is the imp.ext format for the AMX bidder 4 | type ExtImpAMX struct { 5 | TagID string `json:"tagId,omitempty"` 6 | AdUnitID string `json:"adUnitId,omitempty"` 7 | } 8 | -------------------------------------------------------------------------------- /openrtb_ext/imp_limelightDigital.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | import "encoding/json" 4 | 5 | type ImpExtLimelightDigital struct { 6 | Host string `json:"host"` 7 | PublisherID json.Number `json:"publisherId"` 8 | } 9 | -------------------------------------------------------------------------------- /openrtb_ext/imp_mobilefuse.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpMobileFuse defines the contract for bidrequest.imp[i].ext.prebid.bidder.mobilefuse 4 | type ExtImpMobileFuse struct { 5 | PlacementId int `json:"placement_id"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_pangle.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtPangle struct { 4 | Token string `json:"token"` 5 | AppID string `json:"appid,omitempty"` 6 | PlacementID string `json:"placementid,omitempty"` 7 | } 8 | -------------------------------------------------------------------------------- /openrtb_ext/imp_smilewanted.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpSmilewanted defines the contract for bidrequest.imp[i].ext.prebid.bidder.smilewanted 4 | type ExtImpSmilewanted struct { 5 | ZoneId string `json:"zoneId"` 6 | } 7 | -------------------------------------------------------------------------------- /static/bidder-info/flipp.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://cdn-gateflipp.flippback.com/flyer-locator-service/prebid_campaigns" 2 | maintainer: 3 | email: prebid@flipp.com 4 | capabilities: 5 | site: 6 | mediaTypes: 7 | - banner 8 | -------------------------------------------------------------------------------- /openrtb_ext/imp_freewheelssp.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | import ( 4 | "github.com/prebid/prebid-server/v3/util/jsonutil" 5 | ) 6 | 7 | type ImpExtFreewheelSSP struct { 8 | ZoneId jsonutil.StringInt `json:"zoneId"` 9 | } 10 | -------------------------------------------------------------------------------- /openrtb_ext/imp_imds.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpImds defines the contract for bidrequest.imp[i].ext.prebid.bidder.imds 4 | type ExtImpImds struct { 5 | SeatId string `json:"seatId"` 6 | TagId string `json:"tagId"` 7 | } 8 | -------------------------------------------------------------------------------- /openrtb_ext/imp_kayzen.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtKayzen defines the contract for bidrequest.imp[i].ext.prebid.bidder.kayzen 4 | type ExtKayzen struct { 5 | Zone string `json:"zone"` 6 | Exchange string `json:"exchange"` 7 | } 8 | -------------------------------------------------------------------------------- /openrtb_ext/imp_smarthub.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtSmartHub struct { 4 | PartnerName string `json:"partnerName,omitempty"` 5 | Seat string `json:"seat,omitempty"` 6 | Token string `json:"token,omitempty"` 7 | } 8 | -------------------------------------------------------------------------------- /openrtb_ext/imp_vungle.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtVungle struct { 4 | BidToken string `json:"bid_token"` 5 | PubAppStoreID string `json:"app_store_id"` 6 | PlacementRefID string `json:"placement_reference_id"` 7 | } 8 | -------------------------------------------------------------------------------- /openrtb_ext/imp_yahooAds.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpYahooAds defines the contract for bidrequest.imp[i].ext.prebid.bidder.yahooAds 4 | type ExtImpYahooAds struct { 5 | Dcn string `json:"dcn"` 6 | Pos string `json:"pos"` 7 | } 8 | -------------------------------------------------------------------------------- /openrtb_ext/imp_yahoossp.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpYahooSSP defines the contract for bidrequest.imp[i].ext.prebid.bidder.yahoossp 4 | type ExtImpYahooSSP struct { 5 | Dcn string `json:"dcn"` 6 | Pos string `json:"pos"` 7 | } 8 | -------------------------------------------------------------------------------- /static/bidder-info/bidmachine.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://{{.Host}}.bidmachine.io" 2 | maintainer: 3 | email: hi@bidmachine.io 4 | gvlVendorID: 736 5 | capabilities: 6 | app: 7 | mediaTypes: 8 | - banner 9 | - video 10 | -------------------------------------------------------------------------------- /static/bidder-info/teads.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://psrv.teads.tv/prebid-server/bid-request" 2 | maintainer: 3 | email: "innov-ssp@teads.tv" 4 | gvlVendorID: 132 5 | capabilities: 6 | app: 7 | mediaTypes: 8 | - banner 9 | - video -------------------------------------------------------------------------------- /static/bidder-info/yeahmobi.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://{{.Host}}/prebid/bid" 2 | maintainer: 3 | email: "developer@yeahmobi.com" 4 | capabilities: 5 | app: 6 | mediaTypes: 7 | - banner 8 | - video 9 | - native 10 | -------------------------------------------------------------------------------- /static/bidder-info/zmaticoo.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://rtbbid.zmaticoo.com/prebid/bid" 2 | maintainer: 3 | email: "adam.li@eclicktech.com.cn" 4 | capabilities: 5 | app: 6 | mediaTypes: 7 | - banner 8 | - video 9 | - native -------------------------------------------------------------------------------- /openrtb_ext/imp_oms.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpOms defines the contract for bidrequest.imp[i].ext.prebid.bidder.oms 4 | type ExtImpOms struct { 5 | Pid string `json:"pid"` 6 | PublisherID int `json:"publisherId"` 7 | } 8 | -------------------------------------------------------------------------------- /openrtb_ext/imp_silvermob.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtSilverMob defines the contract for bidrequest.imp[i].ext.prebid.bidder.silvermob 4 | type ExtSilverMob struct { 5 | ZoneID string `json:"zoneid"` 6 | Host string `json:"host"` 7 | } 8 | -------------------------------------------------------------------------------- /static/bidder-info/automatad.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://s2s.atmtd.com" 2 | maintainer: 3 | email: "tech@automatad.com" 4 | capabilities: 5 | app: 6 | mediaTypes: 7 | - banner 8 | site: 9 | mediaTypes: 10 | - banner 11 | -------------------------------------------------------------------------------- /static/bidder-info/infytv.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://nxs.infy.tv/pbs/openrtb" 2 | maintainer: 3 | email: "tech+hb@infy.tv" 4 | capabilities: 5 | app: 6 | mediaTypes: 7 | - video 8 | site: 9 | mediaTypes: 10 | - video 11 | -------------------------------------------------------------------------------- /static/bidder-info/pangle.yaml: -------------------------------------------------------------------------------- 1 | disabled: true 2 | maintainer: 3 | email: pangle_dsp@bytedance.com 4 | modifyingVastXmlAllowed: true 5 | capabilities: 6 | app: 7 | mediaTypes: 8 | - banner 9 | - video 10 | - native 11 | -------------------------------------------------------------------------------- /openrtb_ext/imp_adot.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpAdot struct { 4 | Parallax bool `json:"parallax,omitempty"` 5 | PlacementId string `json:"placementId,omitempty"` 6 | PublisherPath string `json:"publisherPath,omitempty"` 7 | } 8 | -------------------------------------------------------------------------------- /openrtb_ext/imp_blasto.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtBlasto struct { 4 | AccountID string `json:"accountId"` 5 | SourceID string `json:"sourceId"` 6 | Host string `json:"host"` 7 | PlacementID string `json:"placementId"` 8 | } 9 | -------------------------------------------------------------------------------- /openrtb_ext/imp_metax.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpMetaX defines the contract for bidrequest.imp[i].ext.prebid.bidder.metax 4 | type ExtImpMetaX struct { 5 | PublisherID int `json:"publisherId"` 6 | Adunit int `json:"adunit"` 7 | } 8 | -------------------------------------------------------------------------------- /openrtb_ext/imp_vrtcal.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpVrtcal defines the contract for bidrequest.imp[i].ext.prebid.bidder.vrtcal 4 | type ExtImpVrtcal struct { 5 | Just_an_unused_vrtcal_param string `json:"Just_an_unused_vrtcal_param"` 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_yeahmobi.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpYeahmobi defines the contract for bidrequest.imp[i].ext.prebid.bidder.yeahmobi 4 | type ExtImpYeahmobi struct { 5 | PubId string `json:"pubId"` 6 | ZoneId string `json:"zoneId"` 7 | } 8 | -------------------------------------------------------------------------------- /openrtb_ext/imp_zmaticoo.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpZmaticoo defines the contract for bidrequest.imp[i].ext.prebid.bidder.zmaticoo 4 | type ExtImpZmaticoo struct { 5 | PubId string `json:"pubId"` 6 | ZoneId string `json:"zoneId"` 7 | } 8 | -------------------------------------------------------------------------------- /openrtb_ext/source.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | import "github.com/prebid/openrtb/v20/openrtb2" 4 | 5 | // ExtSource defines the contract for bidrequest.source.ext 6 | type ExtSource struct { 7 | SChain *openrtb2.SupplyChain `json:"schain"` 8 | } 9 | -------------------------------------------------------------------------------- /static/bidder-info/akcelo.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://s2s.sportslocalmedia.com/openrtb2/auction" 2 | maintainer: 3 | email: "tech@akcelo.io" 4 | capabilities: 5 | site: 6 | mediaTypes: 7 | - banner 8 | - video 9 | - native 10 | -------------------------------------------------------------------------------- /openrtb_ext/imp_aidem.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpAidem struct { 4 | PlacementId string `json:"placementId"` 5 | SiteId string `json:"siteId"` 6 | PublisherId string `json:"publisherId"` 7 | RateLimit string `json:"rateLimit"` 8 | } 9 | -------------------------------------------------------------------------------- /openrtb_ext/imp_dianomi.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | import ( 4 | "encoding/json" 5 | ) 6 | 7 | type ExtImpDianomi struct { 8 | SmartadId json.Number `json:"smartadId,omitempty"` 9 | PriceType string `json:"priceType,omitempty"` 10 | } 11 | -------------------------------------------------------------------------------- /openrtb_ext/imp_ix.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpIx defines the contract for bidrequest.imp[i].ext.prebid.bidder.ix 4 | type ExtImpIx struct { 5 | SiteId string `json:"siteId"` 6 | Size []int `json:"size"` 7 | Sid string `json:"sid"` 8 | } 9 | -------------------------------------------------------------------------------- /openrtb_ext/imp_lockerdome.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpLockerDome defines the contract for bidrequest.imp[i].ext.prebid.bidder.lockerdome 4 | type ExtImpLockerDome struct { 5 | // LockerDome params 6 | AdUnitId string `json:"adUnitId"` 7 | } 8 | -------------------------------------------------------------------------------- /openrtb_ext/imp_marsmedia.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | import "encoding/json" 4 | 5 | // ExtImpMarsmedia defines the contract for bidrequest.imp[i].ext.prebid.bidder.marsmedia 6 | type ExtImpMarsmedia struct { 7 | ZoneID json.Number `json:"zoneId"` 8 | } 9 | -------------------------------------------------------------------------------- /static/bidder-info/adgeneration.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://d.socdm.com/adsv/v1" 2 | maintainer: 3 | email: "ssp-ope@supership.jp" 4 | capabilities: 5 | app: 6 | mediaTypes: 7 | - banner 8 | site: 9 | mediaTypes: 10 | - banner 11 | -------------------------------------------------------------------------------- /static/bidder-info/adtrgtme.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://z.cdn.adtarget.market/ssp" 2 | maintainer: 3 | email: "info@adtarget.me" 4 | capabilities: 5 | app: 6 | mediaTypes: 7 | - banner 8 | site: 9 | mediaTypes: 10 | - banner 11 | -------------------------------------------------------------------------------- /endpoints/openrtb2/sample-requests/invalid-whole/null.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Bid request is null", 3 | "mockBidRequest": null, 4 | "expectedReturnCode": 400, 5 | "expectedErrorMessage": "Invalid request: request missing required field: \"id\"\n" 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_readpeak.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtReadpeak struct { 4 | PublisherId string `json:"publisherId"` 5 | SiteId string `json:"siteId"` 6 | Bidfloor float64 `json:"bidfloor"` 7 | TagId string `json:"tagId"` 8 | } 9 | -------------------------------------------------------------------------------- /openrtb_ext/imp_tradplus.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpTradPlus defines the contract for bidrequest.imp[i].ext.prebid.bidder.tradplus 4 | type ExtImpTradPlus struct { 5 | AccountID string `json:"accountId"` 6 | ZoneID string `json:"zoneId"` 7 | } 8 | -------------------------------------------------------------------------------- /openrtb_ext/imp_ucfunnel.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpUcfunnel defines the contract for bidrequest.imp[i].ext.prebid.bidder.ucfunnel 4 | type ExtImpUcfunnel struct { 5 | AdUnitId string `json:"adunitid"` 6 | PartnerId string `json:"partnerid"` 7 | } 8 | -------------------------------------------------------------------------------- /endpoints/httprouterhandler.go: -------------------------------------------------------------------------------- 1 | package endpoints 2 | 3 | import ( 4 | "net/http" 5 | 6 | "github.com/julienschmidt/httprouter" 7 | ) 8 | 9 | type HTTPRouterHandler interface { 10 | Handle(http.ResponseWriter, *http.Request, httprouter.Params) 11 | } 12 | -------------------------------------------------------------------------------- /openrtb_ext/imp_adprime.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpAdprime defines adprime specifiec param 4 | type ExtImpAdprime struct { 5 | TagID string `json:"TagID"` 6 | Keywords []string `json:"keywords"` 7 | Audiences []string `json:"audiences"` 8 | } 9 | -------------------------------------------------------------------------------- /static/bidder-info/cointraffic.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://apps.adsgravity.io/pbs/v1/request" 2 | maintainer: 3 | email: tech@cointraffic.io 4 | capabilities: 5 | app: 6 | mediaTypes: 7 | - banner 8 | site: 9 | mediaTypes: 10 | - banner 11 | -------------------------------------------------------------------------------- /static/bidder-info/mobkoi.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://pbs.mobkoi.com/bid/prebidserver" 2 | maintainer: 3 | email: platformteam@mobkoi.com 4 | gvlVendorID: 898 5 | openrtb: 6 | version: 2.6 7 | capabilities: 8 | site: 9 | mediaTypes: 10 | - banner 11 | -------------------------------------------------------------------------------- /openrtb_ext/imp_jixie.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpJixie struct { 4 | Unit string `json:"unit"` 5 | AccountId string `json:"accountid,omitempty"` 6 | JxProp1 string `json:"jxprop1,omitempty"` 7 | JxProp2 string `json:"jxprop2,omitempty"` 8 | } 9 | -------------------------------------------------------------------------------- /openrtb_ext/imp_triplelift.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpTriplelift defines the contract for bidrequest.imp[i].ext.prebid.bidder.triplelift 4 | type ExtImpTriplelift struct { 5 | InvCode string `json:"inventoryCode"` 6 | Floor *float64 `json:"floor"` 7 | } 8 | -------------------------------------------------------------------------------- /openrtb_ext/imp_yahooAdvertising.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpYahooAdvertising defines the contract for bidrequest.imp[i].ext.prebid.bidder.yahooAdvertising 4 | type ExtImpYahooAdvertising struct { 5 | Dcn string `json:"dcn"` 6 | Pos string `json:"pos"` 7 | } 8 | -------------------------------------------------------------------------------- /static/bidder-params/epom.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "Epom Adapter Params", 4 | "description": "A schema which validates params accepted by the Epom adapter", 5 | "type": "object", 6 | 7 | "properties": {} 8 | } 9 | -------------------------------------------------------------------------------- /endpoints/openrtb2/sample-requests/invalid-whole/empty-object.json: -------------------------------------------------------------------------------- 1 | { 2 | "message": "Empty bid request, expect error", 3 | "mockBidRequest": {}, 4 | "expectedReturnCode": 400, 5 | "expectedErrorMessage": "Invalid request: request missing required field: \"id\"\n" 6 | } 7 | -------------------------------------------------------------------------------- /openrtb_ext/imp_admixer.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpAdmixer struct { 4 | ZoneId string `json:"zone"` 5 | CustomBidFloor float64 `json:"customFloor"` 6 | CustomParams map[string]interface{} `json:"customParams"` 7 | } 8 | -------------------------------------------------------------------------------- /openrtb_ext/imp_contxtful.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpContxtful defines the contract for bidrequest.imp[i].ext.prebid.bidder.contxtful 4 | type ExtImpContxtful struct { 5 | PlacementId string `json:"placementId"` 6 | CustomerId string `json:"customerId"` 7 | } 8 | -------------------------------------------------------------------------------- /openrtb_ext/imp_dxkulture.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpDXKulture defines the contract for bidrequest.imp[i].ext.prebid.bidder.dxkulture 4 | type ExtImpDXKulture struct { 5 | PublisherId string `json:"publisherId"` 6 | PlacementId string `json:"placementId"` 7 | } 8 | -------------------------------------------------------------------------------- /openrtb_ext/imp_gamma.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpGamma defines the contract for bidrequest.imp[i].ext.prebid.bidder.gamma 4 | type ExtImpGamma struct { 5 | PartnerID string `json:"id"` 6 | ZoneID string `json:"zid"` 7 | WebID string `json:"wid"` 8 | } 9 | -------------------------------------------------------------------------------- /openrtb_ext/imp_relevantdigital.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtRelevantDigital struct { 4 | AccountId string `json:"accountId"` 5 | PlacementId string `json:"placementId"` 6 | Host string `json:"pbsHost"` 7 | PbsBufferMs int `json:"pbsBufferMs"` 8 | } 9 | -------------------------------------------------------------------------------- /openrtb_ext/imp_zeroclickfraud.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpZeroClickFraud defines the contract for bidrequest.imp[i].ext.prebid.bidder.datablocks 4 | type ExtImpZeroClickFraud struct { 5 | SourceId int `json:"sourceId"` 6 | Host string `json:"host"` 7 | } 8 | -------------------------------------------------------------------------------- /static/bidder-params/nativo.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "Nativo Adapter Params", 4 | "description": "A schema which validates params accepted by the Nativo adapter", 5 | "type": "object", 6 | "properties": {} 7 | } -------------------------------------------------------------------------------- /static/bidder-params/zentotem.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "Zentotem Adapter Params", 4 | "description": "A schema which validates params accepted by the Zentotem adapter", 5 | "type": "object", 6 | "properties": {} 7 | } -------------------------------------------------------------------------------- /openrtb_ext/imp_fwssp.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtFWSSP struct { 4 | CustomSiteSectionId string `json:"custom_site_section_id,omitempty"` 5 | NetworkId string `json:"network_id,omitempty"` 6 | ProfileId string `json:"profile_id,omitempty"` 7 | } 8 | -------------------------------------------------------------------------------- /openrtb_ext/imp_smartrtb.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpSmartRTB struct { 4 | PubID string `json:"pub_id,omitempty"` 5 | MedID string `json:"med_id,omitempty"` 6 | ZoneID string `json:"zone_id,omitempty"` 7 | ForceBid bool `json:"force_bid,omitempty"` 8 | } 9 | -------------------------------------------------------------------------------- /openrtb_ext/imp_sovrnXsp.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpSovrnXsp struct { 4 | PubID string `json:"pub_id,omitempty"` 5 | MedID string `json:"med_id,omitempty"` 6 | ZoneID string `json:"zone_id,omitempty"` 7 | ForceBid bool `json:"force_bid,omitempty"` 8 | } 9 | -------------------------------------------------------------------------------- /static/bidder-info/madsense.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://ads.madsense.io/pbs" 2 | maintainer: 3 | email: "prebid@madsense.io" 4 | capabilities: 5 | app: 6 | mediaTypes: 7 | - banner 8 | - video 9 | site: 10 | mediaTypes: 11 | - banner 12 | - video -------------------------------------------------------------------------------- /static/bidder-info/silvermob.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://{{.Host}}.silvermob.com/marketplace/api/dsp/bid/{{.ZoneID}}" 2 | maintainer: 3 | email: "support@silvermob.com" 4 | capabilities: 5 | app: 6 | mediaTypes: 7 | - banner 8 | - video 9 | - native 10 | -------------------------------------------------------------------------------- /firstpartydata/tests/extractbidderconfigfpd/bidder-config-null.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Bidder config is null - no bidder fpd expected", 3 | "inputRequestData": { 4 | "data": {}, 5 | "bidderconfig": null 6 | }, 7 | "outputRequestData": {}, 8 | "bidderConfigFPD": {} 9 | } -------------------------------------------------------------------------------- /openrtb_ext/imp_akcelo.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | import "encoding/json" 4 | 5 | type ExtImpAkcelo struct { 6 | AdUnitID json.Number `json:"adUnitId,omitempty"` 7 | SiteID json.Number `json:"siteId,omitempty"` 8 | Test json.Number `json:"test,omitempty"` 9 | } 10 | -------------------------------------------------------------------------------- /openrtb_ext/imp_eplanning.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpEPlanning defines the contract for bidrequest.imp[i].ext.prebid.bidder.eplanning 4 | type ExtImpEPlanning struct { 5 | ClientID string `json:"ci"` 6 | AdUnitCode string `json:"adunit_code"` 7 | SizeString string 8 | } 9 | -------------------------------------------------------------------------------- /openrtb_ext/imp_gamoshi.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpGamoshi defines the contract for bidrequest.imp[i].ext.prebid.bidder.gamoshi 4 | type ExtImpGamoshi struct { 5 | SupplyPartnerId string `json:"supplyPartnerId"` 6 | FavoredMediaType string `json:"favoredMediaType"` 7 | } 8 | -------------------------------------------------------------------------------- /endpoints/openrtb2/sample-requests/invalid-whole/malformed-bid-request.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Malformed bid request throws an error", 3 | "mockBidRequest": "malformed", 4 | "expectedReturnCode": 400, 5 | "expectedErrorMessage": "Invalid request: expect { or n, but found m" 6 | } 7 | -------------------------------------------------------------------------------- /macros/replacer.go: -------------------------------------------------------------------------------- 1 | package macros 2 | 3 | import "strings" 4 | 5 | type Replacer interface { 6 | // Replace the macros and returns replaced string 7 | // if any error the error will be returned 8 | Replace(result *strings.Builder, url string, macroProvider *MacroProvider) 9 | } 10 | -------------------------------------------------------------------------------- /openrtb_ext/imp_avocet.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpAvocet defines the contract for bidrequest.imp[i].ext.prebid.bidder.avocet 4 | type ExtImpAvocet struct { 5 | Placement string `json:"placement,omitempty"` 6 | PlacementCode string `json:"placement_code,omitempty"` 7 | } 8 | -------------------------------------------------------------------------------- /openrtb_ext/imp_impactify.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpImpactify defines the contract for bidrequest.imp[i].ext.prebid.bidder.impactify 4 | type ExtImpImpactify struct { 5 | AppID string `json:"appId"` 6 | Format string `json:"format"` 7 | Style string `json:"style"` 8 | } 9 | -------------------------------------------------------------------------------- /openrtb_ext/imp_nexx360.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtNexx360 defines the contract for bidrequest.imp[i].ext.prebid.bidder.nexx360 4 | type ExtImpNexx360 struct { 5 | TagId string `json:"tagId,omitempty"` 6 | Placement string `json:"placement,omitempty"` // Placement ID 7 | } 8 | -------------------------------------------------------------------------------- /openrtb_ext/imp_telaria.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | import "encoding/json" 4 | 5 | type ExtImpTelaria struct { 6 | AdCode string `json:"adCode,omitempty"` 7 | SeatCode string `json:"seatCode"` 8 | Extra json.RawMessage `json:"extra,omitempty"` 9 | } 10 | -------------------------------------------------------------------------------- /static/bidder-info/bidstack.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://server.bidstack.com/openrtb" 2 | maintainer: 3 | email: tech@bidstack.com 4 | endpointCompression: gzip 5 | gvlVendorID: 462 6 | modifyingVastXmlAllowed: true 7 | capabilities: 8 | app: 9 | mediaTypes: 10 | - video 11 | -------------------------------------------------------------------------------- /static/bidder-info/coinzilla.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://request-global.czilladx.com/serve/prebid-server.php" 2 | maintainer: 3 | email: "technical@sevio.com" 4 | capabilities: 5 | app: 6 | mediaTypes: 7 | - banner 8 | site: 9 | mediaTypes: 10 | - banner 11 | 12 | -------------------------------------------------------------------------------- /static/bidder-info/freewheel-ssp.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: freewheelssp 2 | userSync: 3 | iframe: 4 | url: "https://ads.stickyadstv.com/pbs-user-sync?gdpr={{.GDPR}}&gdpr_consent={{.GDPRConsent}}&us_privacy={{.USPrivacy}}&gpp={{.GPP}}&gpp_sid={{.GPPSID}}&r={{.RedirectURL}}" 5 | userMacro: "{viewerid}" -------------------------------------------------------------------------------- /static/bidder-info/yahooAdvertising.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: yahooAds 2 | userSync: 3 | # yahooAdvertising supports user syncing, but requires configuration by the host. contact this 4 | # bidder directly at the email address in this file to ask about enabling user sync. 5 | supports: 6 | - redirect -------------------------------------------------------------------------------- /util/sliceutil/containstring.go: -------------------------------------------------------------------------------- 1 | package sliceutil 2 | 3 | import ( 4 | "strings" 5 | ) 6 | 7 | func ContainsStringIgnoreCase(s []string, v string) bool { 8 | for _, i := range s { 9 | if strings.EqualFold(i, v) { 10 | return true 11 | } 12 | } 13 | return false 14 | } 15 | -------------------------------------------------------------------------------- /adapters/teads/teadstest/supplemental/no-impression.json: -------------------------------------------------------------------------------- 1 | { 2 | "mockBidRequest": { 3 | "id": "test-request-id" 4 | }, 5 | 6 | "expectedMakeRequestsErrors": [ 7 | { 8 | "value": "No impression in the bid request", 9 | "comparison": "literal" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /openrtb_ext/imp_alkimi.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpAlkimi struct { 4 | Token string `json:"token"` 5 | BidFloor float64 `json:"bidFloor"` 6 | Instl int8 `json:"instl"` 7 | Exp int64 `json:"exp"` 8 | AdUnitCode string `json:"adUnitCode"` 9 | } 10 | -------------------------------------------------------------------------------- /openrtb_ext/imp_insticator.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpInsticator defines the contract for bidrequest.imp[i].ext.prebid.bidder.insticator 4 | type ExtImpInsticator struct { 5 | AdUnitId string `json:"adUnitId,omitempty"` 6 | PublisherId string `json:"publisherId,omitempty"` 7 | } 8 | -------------------------------------------------------------------------------- /openrtb_ext/imp_optidigital.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtOptidigital struct { 4 | PublisherID string `json:"publisherId"` 5 | PlacementID string `json:"placementId"` 6 | PageTemplate string `json:"pageTemplate,omitempty"` 7 | DivID string `json:"divId,omitempty"` 8 | } 9 | -------------------------------------------------------------------------------- /openrtb_ext/imp_rise.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ImpExtRise defines the contract for bidrequest.imp[i].ext.prebid.bidder.rise 4 | type ImpExtRise struct { 5 | PublisherID string `json:"publisher_id"` 6 | Org string `json:"org"` 7 | PlacementID string `json:"placementId"` 8 | } 9 | -------------------------------------------------------------------------------- /openrtb_ext/imp_smartyads.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtSmartyAds defines the contract for bidrequest.imp[i].ext.prebid.bidder.smartyads 4 | type ExtSmartyAds struct { 5 | AccountID string `json:"accountid"` 6 | SourceID string `json:"sourceid"` 7 | Host string `json:"host"` 8 | } 9 | -------------------------------------------------------------------------------- /openrtb_ext/imp_thetradedesk.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpTheTradeDesk defines the contract for bidrequest.imp[i].ext.prebid.bidder.thetradedesk 4 | type ExtImpTheTradeDesk struct { 5 | PublisherId string `json:"publisherId"` 6 | SupplySourceId string `json:"supplySourceId"` 7 | } 8 | -------------------------------------------------------------------------------- /static/bidder-info/oms.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://rt.marphezis.com/pbs" 2 | maintainer: 3 | email: "prebid@onlinemediasolutions.com" 4 | capabilities: 5 | app: 6 | mediaTypes: 7 | - banner 8 | - video 9 | site: 10 | mediaTypes: 11 | - banner 12 | - video 13 | -------------------------------------------------------------------------------- /firstpartydata/tests/extractbidderconfigfpd/bidder-config-empty.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Bidder config is empty - no bidder fpd expected for any bidders", 3 | "inputRequestData": { 4 | "data": {}, 5 | "bidderconfig": [] 6 | }, 7 | "outputRequestData": {}, 8 | "bidderConfigFPD": {} 9 | } -------------------------------------------------------------------------------- /openrtb_ext/imp_adhese.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpAdhese struct { 4 | Account string `json:"account"` 5 | Location string `json:"location"` 6 | Format string `json:"format"` 7 | Targets map[string][]string `json:"targets,omitempty"` 8 | } 9 | -------------------------------------------------------------------------------- /static/bidder-info/definemedia.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://rtb.conative.network/openrtb2/auction" 2 | maintainer: 3 | email: "development@definemedia.de" 4 | gvlVendorID: 440 # GDPR vendor list ID 5 | capabilities: 6 | 7 | site: 8 | mediaTypes: 9 | - banner 10 | - native 11 | -------------------------------------------------------------------------------- /static/bidder-info/teqblaze.yaml: -------------------------------------------------------------------------------- 1 | whiteLabelOnly: true 2 | maintainer: 3 | email: "github@teqblaze.com" 4 | capabilities: 5 | site: 6 | mediaTypes: 7 | - banner 8 | - video 9 | - native 10 | app: 11 | mediaTypes: 12 | - banner 13 | - video 14 | - native 15 | -------------------------------------------------------------------------------- /static/bidder-params/startio.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "Start.io Adapter Params", 4 | "description": "A schema which validates params accepted by the Start.io adapter", 5 | "type": "object", 6 | "properties": {}, 7 | "required": [] 8 | } 9 | -------------------------------------------------------------------------------- /openrtb_ext/imp_loopme.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpLoopme defines the contract for bidrequest.imp[i].ext.prebid.bidder.loopme 4 | type ExtImpLoopme struct { 5 | PublisherId string `json:"publisherId"` 6 | BundleId string `json:"bundleId"` 7 | PlacementId string `json:"placementId"` 8 | } 9 | -------------------------------------------------------------------------------- /openrtb_ext/imp_sovrn.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpSovrn struct { 4 | TagId string `json:"tagId,omitempty"` 5 | Tagid string `json:"tagid,omitempty"` 6 | BidFloor interface{} `json:"bidfloor,omitempty"` 7 | AdUnitCode string `json:"adunitcode,omitempty"` 8 | } 9 | -------------------------------------------------------------------------------- /openrtb_ext/imp_videobyte.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpVideoByte defines the contract for bidrequest.imp[i].ext.prebid.bidder.videobyte 4 | type ExtImpVideoByte struct { 5 | PublisherId string `json:"pubId"` 6 | PlacementId string `json:"placementId"` 7 | NetworkId string `json:"nid"` 8 | } 9 | -------------------------------------------------------------------------------- /static/bidder-info/interactiveoffers.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://prebid-server.ioadx.com/bidRequest/?partnerId={{.AccountID}}" 2 | maintainer: 3 | email: "dev@interactiveoffers.com" 4 | capabilities: 5 | app: 6 | mediaTypes: 7 | - banner 8 | site: 9 | mediaTypes: 10 | - banner 11 | -------------------------------------------------------------------------------- /static/bidder-params/revcontent.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "$schema": "http://json-schema.org/draft-04/schema#", 4 | "title": "Revcontent Adapter Params", 5 | "description": "A schema which validates params accepted by the Revcontent adapter", 6 | "type": "object", 7 | "properties": {}, 8 | "required": [] 9 | } -------------------------------------------------------------------------------- /openrtb_ext/imp_grid.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | import "encoding/json" 4 | 5 | // ExtImpGrid defines the contract for bidrequest.imp[i].ext.prebid.bidder.grid 6 | type ExtImpGrid struct { 7 | Uid int `json:"uid"` 8 | Keywords json.RawMessage `json:"keywords,omitempty"` 9 | } 10 | -------------------------------------------------------------------------------- /openrtb_ext/imp_nextmillennium.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtNextMillennium struct { 4 | GroupID string `json:"group_id,omitempty"` 5 | PlacementID string `json:"placement_id"` 6 | AdSlots []string `json:"adSlots,omitempty"` 7 | AllowedAds []string `json:"allowedAds,omitempty"` 8 | } 9 | -------------------------------------------------------------------------------- /openrtb_ext/imp_orbidder.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpOrbidder defines the contract for bidrequest.imp[i].ext.prebid.bidder.openx 4 | type ExtImpOrbidder struct { 5 | AccountId string `json:"accountId"` 6 | PlacementId string `json:"placementId"` 7 | BidFloor float64 `json:"bidfloor"` 8 | } 9 | -------------------------------------------------------------------------------- /static/bidder-info/madvertise.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://mobile.mng-ads.com/bidrequest{{.ZoneID}}" 2 | maintainer: 3 | email: "hb@azerion.com" 4 | gvlVendorID: 153 5 | capabilities: 6 | app: 7 | mediaTypes: 8 | - banner 9 | - video 10 | site: 11 | mediaTypes: 12 | - banner 13 | -------------------------------------------------------------------------------- /static/bidder-info/nativery.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://hb.nativery.com/openrtb2/auction" 2 | openrtb: 3 | version: 2.6 4 | maintainer: 5 | email: "developer@nativery.com" 6 | gvlVendorID: 1133 7 | capabilities: 8 | site: 9 | mediaTypes: 10 | - banner 11 | - native 12 | - video 13 | -------------------------------------------------------------------------------- /util/timeutil/time.go: -------------------------------------------------------------------------------- 1 | package timeutil 2 | 3 | import ( 4 | "time" 5 | ) 6 | 7 | type Time interface { 8 | Now() time.Time 9 | } 10 | 11 | // RealTime wraps the time package for testability 12 | type RealTime struct{} 13 | 14 | func (c *RealTime) Now() time.Time { 15 | return time.Now() 16 | } 17 | -------------------------------------------------------------------------------- /adapters/akcelo/akcelotest/supplemental/no-valid-imp.json: -------------------------------------------------------------------------------- 1 | { 2 | "mockBidRequest": { 3 | "id": "test-req-id", 4 | "imp": [], 5 | "tmax": 500 6 | }, 7 | "expectedMakeRequestsErrors": [ 8 | { 9 | "value": "No valid Imp", 10 | "comparison": "literal" 11 | } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /adapters/inmobi/inmobitest/supplemental/no-imp-error.json: -------------------------------------------------------------------------------- 1 | { 2 | "mockBidRequest": { 3 | "id": "req-id", 4 | "imp": [ 5 | ] 6 | }, 7 | "expectedMakeRequestsErrors": [ 8 | { 9 | "value": "No impression in the request", 10 | "comparison": "literal" 11 | } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /openrtb_ext/imp_openweb.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpOpenWeb defines the contract for bidrequest.imp[i].ext.prebid.bidder.openweb 4 | type ExtImpOpenWeb struct { 5 | Aid int `json:"aid,omitempty"` 6 | Org string `json:"org,omitempty"` 7 | PlacementID string `json:"placementId"` 8 | } 9 | -------------------------------------------------------------------------------- /config/adapter.go: -------------------------------------------------------------------------------- 1 | package config 2 | 3 | type Adapter struct { 4 | Endpoint string 5 | ExtraAdapterInfo string 6 | 7 | // needed for Rubicon 8 | XAPI AdapterXAPI 9 | 10 | // needed for AppNexus and Facebook 11 | PlatformID string 12 | 13 | // nededed for Facebook 14 | AppSecret string 15 | } 16 | -------------------------------------------------------------------------------- /openrtb_ext/imp_richaudience.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpRichaudience struct { 4 | Pid string `json:"pid"` 5 | SupplyType string `json:"supplyType"` 6 | BidFloor float64 `json:"bidfloor"` 7 | BidFloorCur string `json:"bidfloorcur"` 8 | Test bool `json:"test"` 9 | } 10 | -------------------------------------------------------------------------------- /openrtb_ext/imp_silverpush.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ImpExtSilverpush defines the contract for bidrequest.imp[i].ext.prebid.bidder.silverpush 4 | // PublisherId is mandatory parameters 5 | type ImpExtSilverpush struct { 6 | PublisherId string `json:"publisherId"` 7 | BidFloor float64 `json:"bidfloor"` 8 | } 9 | -------------------------------------------------------------------------------- /static/bidder-info/boldwin_rapid.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://rtb.beardfleet.com/auction/bid?pid={{.PublisherID}}&tid={{.PlacementID}}" 2 | maintainer: 3 | email: "info@bold-win.com" 4 | openrtb: 5 | version: 2.5 6 | capabilities: 7 | app: 8 | mediaTypes: 9 | - banner 10 | - video 11 | - native -------------------------------------------------------------------------------- /static/bidder-info/mobfoxpb.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://bes.mobfox.com/?c=__route__&m=__method__&key=__key__" 2 | maintainer: 3 | email: "support@mobfox.com" 4 | capabilities: 5 | app: 6 | mediaTypes: 7 | - banner 8 | - video 9 | site: 10 | mediaTypes: 11 | - banner 12 | - video 13 | -------------------------------------------------------------------------------- /static/bidder-info/vungle.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://rtb.ads.vungle.com/bid/t/c770f32" 2 | maintainer: 3 | email: vxssp@liftoff.io 4 | endpointCompression: gzip 5 | modifyingVastXmlAllowed: true 6 | capabilities: 7 | app: 8 | mediaTypes: 9 | - video 10 | site: 11 | mediaTypes: 12 | - video 13 | -------------------------------------------------------------------------------- /util/httputil/pixel.go: -------------------------------------------------------------------------------- 1 | package httputil 2 | 3 | import _ "embed" 4 | 5 | type Pixel struct { 6 | Content []byte 7 | ContentType string 8 | } 9 | 10 | //go:embed pixel.png 11 | var pixelContent []byte 12 | var Pixel1x1PNG = Pixel{ 13 | Content: pixelContent, 14 | ContentType: "image/png", 15 | } 16 | -------------------------------------------------------------------------------- /adapters/gamma/gammatest/supplemental/bad-request-no-imps.json: -------------------------------------------------------------------------------- 1 | { 2 | "mockBidRequest": { 3 | "id": "test-request-id", 4 | "imp": [] 5 | }, 6 | "expectedMakeRequestsErrors": [ 7 | { 8 | "value": "No impressions in the bid request", 9 | "comparison": "literal" 10 | } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /adapters/gamoshi/gamoshitest/supplemental/bad-request-no-imps.json: -------------------------------------------------------------------------------- 1 | { 2 | "mockBidRequest": { 3 | "id": "test-request-id", 4 | "imp": [] 5 | }, 6 | "expectedMakeRequestsErrors": [ 7 | { 8 | "value": "No impressions in the bid request", 9 | "comparison": "literal" 10 | } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /endpoints/openrtb2/sample-requests/invalid-whole/only-request-id.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Bid request is is missing imp array", 3 | "mockBidRequest": { 4 | "id": "req-id" 5 | }, 6 | "expectedReturnCode": 400, 7 | "expectedErrorMessage": "Invalid request: request.imp must contain at least one element.\n" 8 | } 9 | -------------------------------------------------------------------------------- /modules/fiftyonedegrees/devicedetection/context.go: -------------------------------------------------------------------------------- 1 | //go:build cgo 2 | 3 | package devicedetection 4 | 5 | // Context keys for device detection 6 | const ( 7 | evidenceFromHeadersCtxKey = "evidence_from_headers" 8 | evidenceFromSuaCtxKey = "evidence_from_sua" 9 | ddEnabledCtxKey = "dd_enabled" 10 | ) 11 | -------------------------------------------------------------------------------- /static/bidder-info/silverpush.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://prebid.chocolateplatform.co/bidder/?identifier=prebidchoc" 2 | maintainer: 3 | email: "prebid@silverpush.co" 4 | capabilities: 5 | app: 6 | mediaTypes: 7 | - banner 8 | - video 9 | site: 10 | mediaTypes: 11 | - banner 12 | - video -------------------------------------------------------------------------------- /static/bidder-info/trustx.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: grid 2 | maintainer: 3 | email: "grid-tech@themediagrid.com" 4 | gvlVendorID: 686 5 | userSync: 6 | redirect: 7 | url: "https://x.bidswitch.net/check_uuid/{{.RedirectURL}}?gdpr={{.GDPR}}&gdpr_consent={{.GDPRConsent}}&us_privacy={{.USPrivacy}}" 8 | userMacro: "${BSW_UUID}" 9 | -------------------------------------------------------------------------------- /static/bidder-info/yahoossp.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: yahooAds 2 | maintainer: 3 | email: "hb-fe-tech@oath.com" 4 | userSync: 5 | # yahoossp supports user syncing, but requires configuration by the host. contact this 6 | # bidder directly at the email address in this file to ask about enabling user sync. 7 | supports: 8 | - redirect -------------------------------------------------------------------------------- /openrtb_ext/imp_33across.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImp33across defines the contract for bidrequest.imp[i].ext.prebid.bidder.33across 4 | type ExtImp33across struct { 5 | ZoneId string `json:"zoneId,omitempty"` 6 | SiteId string `json:"siteId,omitempty"` 7 | ProductId string `json:"productId,omitempty"` 8 | } 9 | -------------------------------------------------------------------------------- /static/bidder-info/kidoz.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://prebid-adapter.kidoz.net/openrtb2/auction?src=prebid-server" 2 | maintainer: 3 | email: prebid-support@kidoz.net 4 | capabilities: 5 | app: 6 | mediaTypes: 7 | - banner 8 | - video 9 | site: 10 | mediaTypes: 11 | - banner 12 | - video 13 | -------------------------------------------------------------------------------- /static/bidder-info/suntContent.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://b.suntcontent.se/cds/rtb/bid?ssp={{.AccountID}}" 2 | aliasOf: "seedingAlliance" 3 | gvlVendorID: 1097 4 | userSync: 5 | redirect: 6 | url: "https://dmp.suntcontent.se/set-uuid?gdpr={{.GDPR}}&gdpr_consent={{.GDPRConsent}}&redirect_url={{.RedirectURL}}" 7 | userMacro: "$UID" -------------------------------------------------------------------------------- /util/mathutil/mathutil.go: -------------------------------------------------------------------------------- 1 | // Package mathutil provides utility functions for mathematical operations. 2 | package mathutil 3 | 4 | import "math" 5 | 6 | // RoundTo4Decimals rounds a float64 value to 4 decimal places. 7 | func RoundTo4Decimals(amount float64) float64 { 8 | return math.Round(amount*10000) / 10000 9 | } 10 | -------------------------------------------------------------------------------- /adapters/grid/gridtest/supplemental/no_imp_request.json: -------------------------------------------------------------------------------- 1 | { 2 | "mockBidRequest": { 3 | "id": "test-request-id", 4 | "imp": [] 5 | }, 6 | "expectedMakeRequestsErrors": [ 7 | { 8 | "value": "No valid impressions for grid", 9 | "comparison": "literal" 10 | } 11 | ], 12 | "httpCalls":[] 13 | } 14 | -------------------------------------------------------------------------------- /adapters/lockerdome/lockerdometest/supplemental/empty_imps.json: -------------------------------------------------------------------------------- 1 | { 2 | "mockBidRequest": { 3 | "id": "test-request-id", 4 | "imp": [] 5 | }, 6 | 7 | "expectedMakeRequestsErrors": [ 8 | { 9 | "value": "No valid impressions in the bid request.", 10 | "comparison": "literal" 11 | } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /openrtb_ext/imp_connectad.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | import "github.com/prebid/prebid-server/v3/util/jsonutil" 4 | 5 | type ExtImpConnectAd struct { 6 | NetworkID jsonutil.StringInt `json:"networkId"` 7 | SiteID jsonutil.StringInt `json:"siteId"` 8 | Bidfloor float64 `json:"bidfloor,omitempty"` 9 | } 10 | -------------------------------------------------------------------------------- /openrtb_ext/imp_criteo.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpCriteo defines the contract for bidrequest.imp[i].ext.prebid.bidder.criteo 4 | type ExtImpCriteo struct { 5 | ZoneID int64 `json:"zoneId"` 6 | NetworkID int64 `json:"networkId"` 7 | UID int64 `json:"uid"` 8 | PubID string `json:"pubid"` 9 | } 10 | -------------------------------------------------------------------------------- /static/bidder-info/aceex.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://bl-us.aceex.io/?uqhash={{.AccountID}}" 2 | maintainer: 3 | email: "tech@aceex.io" 4 | capabilities: 5 | app: 6 | mediaTypes: 7 | - banner 8 | - video 9 | - native 10 | site: 11 | mediaTypes: 12 | - banner 13 | - video 14 | - native 15 | -------------------------------------------------------------------------------- /static/bidder-info/adoppler.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://{{.AccountID}}.trustedmarketplace.io/ads/processHeaderBid/{{.AdUnit}}" 2 | maintainer: 3 | email: pbs@adoppler.com 4 | capabilities: 5 | app: 6 | mediaTypes: 7 | - banner 8 | - video 9 | site: 10 | mediaTypes: 11 | - banner 12 | - video 13 | -------------------------------------------------------------------------------- /analytics/clients/http.go: -------------------------------------------------------------------------------- 1 | package clients 2 | 3 | import ( 4 | "net/http" 5 | ) 6 | 7 | var defaultHttpInstance = http.DefaultClient 8 | 9 | func GetDefaultHttpInstance() *http.Client { 10 | // TODO 2020-06-22 @see https://github.com/prebid/prebid-server/pull/1331#discussion_r436110097 11 | return defaultHttpInstance 12 | } 13 | -------------------------------------------------------------------------------- /errortypes/scope.go: -------------------------------------------------------------------------------- 1 | package errortypes 2 | 3 | type Scope int 4 | 5 | const ( 6 | ScopeAny Scope = iota 7 | ScopeDebug 8 | ) 9 | 10 | type Scoped interface { 11 | Scope() Scope 12 | } 13 | 14 | func ReadScope(err error) Scope { 15 | if e, ok := err.(Scoped); ok { 16 | return e.Scope() 17 | } 18 | return ScopeAny 19 | } 20 | -------------------------------------------------------------------------------- /openrtb_ext/imp_missena.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpMissena struct { 4 | APIKey string `json:"apiKey"` 5 | Formats []string `json:"formats"` 6 | Placement string `json:"placement"` 7 | TestMode string `json:"test"` 8 | Settings map[string]any `json:"settings,omitempty"` 9 | } 10 | -------------------------------------------------------------------------------- /static/bidder-info/appush.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://hb.appush.com/pserver" 2 | maintainer: 3 | email: "support@appush.com" 4 | gvlVendorID: 879 5 | capabilities: 6 | site: 7 | mediaTypes: 8 | - banner 9 | - video 10 | - native 11 | 12 | app: 13 | mediaTypes: 14 | - banner 15 | - video 16 | - native -------------------------------------------------------------------------------- /static/bidder-info/huaweiads.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://acd.op.hicloud.com/ppsadx/getResult" 2 | disabled: true 3 | maintainer: 4 | email: prebid@huawei.com 5 | gvlVendorID: 856 6 | modifyingVastXmlAllowed: true 7 | capabilities: 8 | app: 9 | mediaTypes: 10 | - banner 11 | - native 12 | - video 13 | -------------------------------------------------------------------------------- /static/bidder-info/revcontent.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://trends.revcontent.com/rtb" 2 | disabled: true 3 | maintainer: 4 | email: "developers@revcontent.com" 5 | gvlVendorID: 203 6 | capabilities: 7 | app: 8 | mediaTypes: 9 | - banner 10 | - native 11 | site: 12 | mediaTypes: 13 | - banner 14 | - native -------------------------------------------------------------------------------- /static/bidder-info/sovrnXsp.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://xsp.lijit.com/json/rtb/prebid/server" 2 | maintainer: 3 | email: "sovrnoss@sovrn.com" 4 | endpointCompression: gzip 5 | gvlVendorID: 13 6 | modifyingVastXmlAllowed: true 7 | capabilities: 8 | app: 9 | mediaTypes: 10 | - banner 11 | - video 12 | - native 13 | -------------------------------------------------------------------------------- /adapters/smartadserver/smartadservertest/supplemental/request-no-imp.json: -------------------------------------------------------------------------------- 1 | { 2 | "mockBidRequest": { 3 | "id": "test-request-id", 4 | "imp": [ 5 | ] 6 | }, 7 | "expectedMakeRequestsErrors": [ 8 | { 9 | "value": "No impression in the bid request", 10 | "comparison": "literal" 11 | } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /openrtb_ext/imp_smartx.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpSmartclip struct { 4 | TagID string `json:"tagId"` 5 | PublisherID string `json:"publisherId"` 6 | SiteID string `json:"siteId"` 7 | AppID string `json:"appId"` 8 | BundleID string `json:"bundleId"` 9 | StoreURL string `json:"storeUrl"` 10 | } 11 | -------------------------------------------------------------------------------- /static/bidder-info/loyal.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://us-east-1.loyal.app/pserver" 2 | geoscope: 3 | - USA 4 | maintainer: 5 | email: "hello@loyal.app" 6 | capabilities: 7 | site: 8 | mediaTypes: 9 | - banner 10 | - video 11 | - native 12 | app: 13 | mediaTypes: 14 | - banner 15 | - video 16 | - native 17 | -------------------------------------------------------------------------------- /static/bidder-info/mediasquare.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://pbs-front.mediasquare.fr/msq_prebid" 2 | endpointCompression: gzip 3 | gvlVendorID: 791 4 | modifyingVastXmlAllowed: true 5 | maintainer: 6 | email: "tech@mediasquare.fr" 7 | capabilities: 8 | app: 9 | mediaTypes: 10 | - banner 11 | - video 12 | - native 13 | -------------------------------------------------------------------------------- /static/bidder-info/smartx.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://bid.smartclip.net/bid/1005" 2 | openrtb: 3 | version: 2.6 4 | maintainer: 5 | email: "bidding@smartclip.tv" 6 | gvlVendorID: 115 7 | modifyingVastXmlAllowed: false 8 | capabilities: 9 | site: 10 | mediaTypes: 11 | - video 12 | app: 13 | mediaTypes: 14 | - video 15 | -------------------------------------------------------------------------------- /adapters/smartrtb/smartrtbtest/supplemental/empty-imps.json: -------------------------------------------------------------------------------- 1 | { 2 | "mockBidRequest": { 3 | "id": "abc", 4 | "site": { 5 | "page": "prebid.org" 6 | }, 7 | "publisher": {}, 8 | "imp": [ 9 | { 10 | "id": "imp123" 11 | } 12 | ] 13 | }, 14 | "httpCalls": [], 15 | "expectedBidResponses": [] 16 | } -------------------------------------------------------------------------------- /openrtb_ext/imp_concert.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ImpExtConcert struct { 4 | PartnerId string `json:"partnerId"` 5 | PlacementId *int `json:"placementId,omitempty"` 6 | Site *string `json:"site,omitempty"` 7 | Slot *string `json:"slot,omitempty"` 8 | Sizes *[][]int `json:"sizes,omitempty"` 9 | } 10 | -------------------------------------------------------------------------------- /privacy/gdpr/validate.go: -------------------------------------------------------------------------------- 1 | package gdpr 2 | 3 | import ( 4 | "github.com/prebid/go-gdpr/vendorconsent" 5 | ) 6 | 7 | // ValidateConsent returns true if the consent string is empty or valid per the IAB TCF spec. 8 | func ValidateConsent(consent string) bool { 9 | _, err := vendorconsent.ParseString(consent) 10 | return err == nil 11 | } 12 | -------------------------------------------------------------------------------- /static/bidder-info/edge226.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://ssp.dauup.com/pserver" 2 | maintainer: 3 | email: "audit@edge226.com" 4 | gvlVendorID: 1202 5 | capabilities: 6 | site: 7 | mediaTypes: 8 | - banner 9 | - video 10 | - native 11 | 12 | app: 13 | mediaTypes: 14 | - banner 15 | - video 16 | - native 17 | -------------------------------------------------------------------------------- /static/bidder-info/gothamads.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://us-e-node1.gothamads.com/?pass={{.AccountID}}" 2 | maintainer: 3 | email: "support@gothamads.com" 4 | capabilities: 5 | app: 6 | mediaTypes: 7 | - banner 8 | - video 9 | - native 10 | site: 11 | mediaTypes: 12 | - banner 13 | - video 14 | - native -------------------------------------------------------------------------------- /static/bidder-info/readpeak.yaml: -------------------------------------------------------------------------------- 1 | endpoint: https://dsp.readpeak.com/header/prebid 2 | geoscope: 3 | - EEA 4 | maintainer: 5 | email: devteam@readpeak.com 6 | gvlVendorID: 290 7 | capabilities: 8 | app: 9 | mediaTypes: 10 | - banner 11 | - native 12 | site: 13 | mediaTypes: 14 | - banner 15 | - native 16 | -------------------------------------------------------------------------------- /openrtb_ext/imp_adagio.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpAdagio struct { 4 | OrganizationID string `json:"organizationId"` 5 | Placement string `json:"placement"` 6 | Site string `json:"site,omitempty"` 7 | Pagetype string `json:"pagetype,omitempty"` 8 | Category string `json:"category,omitempty"` 9 | } 10 | -------------------------------------------------------------------------------- /static/bidder-info/adhese.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://ads-{{.AccountID}}.adhese.com/openrtb2" 2 | maintainer: 3 | email: info@adhese.com 4 | gvlVendorID: 553 5 | modifyingVastXmlAllowed: true 6 | capabilities: 7 | app: 8 | mediaTypes: 9 | - banner 10 | - video 11 | site: 12 | mediaTypes: 13 | - banner 14 | - video 15 | -------------------------------------------------------------------------------- /static/bidder-info/adview.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://bid.adview.com/agent/thirdAdxService/{{.AccountID}}" 2 | maintainer: 3 | email: "partner@adview.com" 4 | gvlVendorID: 1022 5 | endpointCompression: gzip 6 | modifyingVastXmlAllowed: true 7 | capabilities: 8 | app: 9 | mediaTypes: 10 | - banner 11 | - native 12 | - video 13 | -------------------------------------------------------------------------------- /static/bidder-info/motorik.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://lb-east.motorik.io/?k={{.AccountID}}&name={{.SourceId}}" 2 | maintainer: 3 | email: "support@motorik.io" 4 | capabilities: 5 | app: 6 | mediaTypes: 7 | - banner 8 | - video 9 | - native 10 | site: 11 | mediaTypes: 12 | - banner 13 | - video 14 | - native -------------------------------------------------------------------------------- /endpoints/openrtb2/sample-requests/invalid-whole/imp-empty-array.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Bid request comes with an empty Imp array", 3 | "mockBidRequest": { 4 | "id": "req-id", 5 | "imp": [] 6 | }, 7 | "expectedReturnCode": 400, 8 | "expectedErrorMessage": "Invalid request: request.imp must contain at least one element.\n" 9 | } 10 | -------------------------------------------------------------------------------- /endpoints/openrtb2/sample-requests/invalid-whole/tmax-negative.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Bid request with negative tmax value. Expect error", 3 | "mockBidRequest": { 4 | "id": "req-id", 5 | "tmax": -2 6 | }, 7 | "expectedReturnCode": 400, 8 | "expectedErrorMessage": "Invalid request: request.tmax must be nonnegative. Got -2\n" 9 | } 10 | -------------------------------------------------------------------------------- /static/bidder-info/kobler.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://bid.essrtb.com/bid/prebid_server_rtb_call" 2 | endpointCompression: gzip 3 | maintainer: 4 | email: bidding-support@kobler.no 5 | geoscope: 6 | - NOR 7 | - SWE 8 | - DNK 9 | capabilities: 10 | site: 11 | mediaTypes: 12 | - banner 13 | app: 14 | mediaTypes: 15 | - banner 16 | -------------------------------------------------------------------------------- /static/bidder-info/showheroes.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://ads.viralize.tv/openrtb2/auction/" 2 | maintainer: 3 | email: tech@showheroes.com 4 | gvlVendorID: 111 5 | openrtb: 6 | version: 2.6 7 | capabilities: 8 | app: 9 | mediaTypes: 10 | - banner 11 | - video 12 | site: 13 | mediaTypes: 14 | - banner 15 | - video 16 | -------------------------------------------------------------------------------- /adapters/nobid/nobidtest/supplemental/missing-imps.json: -------------------------------------------------------------------------------- 1 | { 2 | "expectedMakeRequestsErrors": [ 3 | { 4 | "value": "No Imps in Bid Request", 5 | "comparison": "literal" 6 | } 7 | ], 8 | "mockBidRequest": { 9 | "id": "test-request-id", 10 | "imp": [] 11 | }, 12 | "httpCalls": [] 13 | } 14 | -------------------------------------------------------------------------------- /static/bidder-info/pubnative.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://dsp.pubnative.net/bid/v1/request" 2 | maintainer: 3 | email: product@pubnative.net 4 | gvlVendorID: 512 5 | capabilities: 6 | app: 7 | mediaTypes: 8 | - banner 9 | - video 10 | - native 11 | site: 12 | mediaTypes: 13 | - banner 14 | - video 15 | - native 16 | -------------------------------------------------------------------------------- /static/bidder-info/roulax.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://dsp.rcoreads.com/api/{{.PublisherID}}?pid={{.AccountID}}" 2 | maintainer: 3 | email: "bussiness@roulax.io" 4 | capabilities: 5 | app: 6 | mediaTypes: 7 | - banner 8 | - video 9 | - native 10 | site: 11 | mediaTypes: 12 | - banner 13 | - video 14 | - native 15 | -------------------------------------------------------------------------------- /static/bidder-info/screencore.yaml: -------------------------------------------------------------------------------- 1 | endpoint: 'http://h1.screencore.io/?kp={{.AccountID}}&kn={{.SourceId}}' 2 | maintainer: 3 | email: 'connect@screencore.io' 4 | capabilities: 5 | app: 6 | mediaTypes: 7 | - banner 8 | - video 9 | - native 10 | site: 11 | mediaTypes: 12 | - banner 13 | - video 14 | - native 15 | -------------------------------------------------------------------------------- /static/bidder-info/tradplus.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://{{.ZoneID}}adx.tradplusad.com/{{.AccountID}}/pserver" 2 | 3 | maintainer: 4 | email: "tpxcontact@tradplus.com" 5 | capabilities: 6 | app: 7 | mediaTypes: 8 | - banner 9 | - video 10 | - native 11 | site: 12 | mediaTypes: 13 | - banner 14 | - native 15 | - video -------------------------------------------------------------------------------- /util/task/func_runner.go: -------------------------------------------------------------------------------- 1 | package task 2 | 3 | import "time" 4 | 5 | type funcRunner struct { 6 | run func() error 7 | } 8 | 9 | func (r funcRunner) Run() error { 10 | return r.run() 11 | } 12 | 13 | func NewTickerTaskFromFunc(interval time.Duration, runner func() error) *TickerTask { 14 | return NewTickerTask(interval, funcRunner{run: runner}) 15 | } 16 | -------------------------------------------------------------------------------- /adapters/logicad/logicadtest/supplemental/checkImp.json: -------------------------------------------------------------------------------- 1 | { 2 | "mockBidRequest": { 3 | "id": "testid", 4 | "site": { 5 | "id": "test", 6 | "domain": "test.com" 7 | } 8 | }, 9 | "expectedMakeRequestsErrors": [ 10 | { 11 | "value": "No impression in the bid request", 12 | "comparison": "literal" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /openrtb_ext/imp_theadx.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | import ( 4 | "encoding/json" 5 | ) 6 | 7 | type ExtImpTheadx struct { 8 | TagID json.Number `json:"tagid"` 9 | InventorySourceID int `json:"wid,omitempty"` 10 | MemberID int `json:"pid,omitempty"` 11 | PlacementName string `json:"pname,omitempty"` 12 | } 13 | -------------------------------------------------------------------------------- /static/bidder-info/mediafuse.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://ib.adnxs.com/openrtb2" 2 | maintainer: 3 | email: "support@mediafuse.com" 4 | capabilities: 5 | app: 6 | mediaTypes: 7 | - banner 8 | - video 9 | - native 10 | site: 11 | mediaTypes: 12 | - banner 13 | - video 14 | - native 15 | # userSync: 16 | # key: "adnxs" 17 | -------------------------------------------------------------------------------- /static/bidder-info/videoheroes.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://point.contextualadv.com/?t=3&partner={{.PublisherID}}" 2 | maintainer: 3 | email: "support@videoheroes.tv" 4 | capabilities: 5 | app: 6 | mediaTypes: 7 | - banner 8 | - video 9 | - native 10 | site: 11 | mediaTypes: 12 | - banner 13 | - video 14 | - native 15 | -------------------------------------------------------------------------------- /adapters/smaato/smaatotest/supplemental/no-imp-request.json: -------------------------------------------------------------------------------- 1 | { 2 | "mockBidRequest": { 3 | "id": "1C86242D-9535-47D6-9576-7B1FE87F282C", 4 | "site": { 5 | "page": "prebid.org" 6 | } 7 | }, 8 | "expectedMakeRequestsErrors": [ 9 | { 10 | "value": "No impressions in bid request.", 11 | "comparison": "literal" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /openrtb_ext/imp_adf.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | import ( 4 | "encoding/json" 5 | ) 6 | 7 | type ExtImpAdf struct { 8 | MasterTagID json.Number `json:"mid,omitempty"` 9 | InventorySourceID int `json:"inv,omitempty"` 10 | PlacementName string `json:"mname,omitempty"` 11 | PriceType string `json:"priceType,omitempty"` 12 | } 13 | -------------------------------------------------------------------------------- /static/bidder-info/adnuntius.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://ads.adnuntius.delivery/i" 2 | extra_info: "https://europe.delivery.adnuntius.com/i" 3 | maintainer: 4 | email: hello@adnuntius.com 5 | gvlVendorID: 855 6 | capabilities: 7 | app: 8 | mediaTypes: 9 | - banner 10 | - native 11 | site: 12 | mediaTypes: 13 | - banner 14 | - native 15 | -------------------------------------------------------------------------------- /.semgrep/README.md: -------------------------------------------------------------------------------- 1 | # Semgrep Test 2 | 3 | Running semgrep unit tests: 4 | ```bash 5 | semgrep --test 6 | ``` 7 | 8 | 9 | Running single semgrep rules against adapter code: 10 | ```bash 11 | semgrep --config=./adapter/{rule}.yml ../adapters/ 12 | ``` 13 | 14 | Running all semgrep rules simultaneously: 15 | ```bash 16 | semgrep --config=./adapter ../adapters/ 17 | ``` 18 | -------------------------------------------------------------------------------- /openrtb_ext/imp_rtbhouse.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpRTBHouse defines the contract for bidrequest.imp[i].ext.prebid.bidder.rtbhouse 4 | type ExtImpRTBHouse struct { 5 | PublisherId string `json:"publisherId"` 6 | Region string `json:"region"` 7 | 8 | BidFloor float64 `json:"bidfloor,omitempty"` 9 | Channel string `json:"channel,omitempty"` 10 | } 11 | -------------------------------------------------------------------------------- /static/bidder-info/bidscube.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://supply.bidscube.com/?c=o&m=rtb" 2 | maintainer: 3 | email: "support@bidscube.com" 4 | modifyingVastXmlAllowed: true 5 | capabilities: 6 | app: 7 | mediaTypes: 8 | - banner 9 | - video 10 | - native 11 | site: 12 | mediaTypes: 13 | - banner 14 | - video 15 | - native 16 | 17 | -------------------------------------------------------------------------------- /static/bidder-info/brave.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://point.braveglobal.tv/?t=3&partner={{.PublisherID}}" 2 | maintainer: 3 | email: "support@thebrave.io" 4 | gvlVendorID: 869 5 | capabilities: 6 | app: 7 | mediaTypes: 8 | - banner 9 | - video 10 | - native 11 | site: 12 | mediaTypes: 13 | - banner 14 | - video 15 | - native 16 | -------------------------------------------------------------------------------- /static/bidder-info/startio.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://pbs-rtb.startappnetwork.com/1.3/2.5/getbid?account=pbs" 2 | maintainer: 3 | email: prebid@start.io 4 | gvlVendorID: 1216 5 | capabilities: 6 | app: 7 | mediaTypes: 8 | - banner 9 | - video 10 | - native 11 | site: 12 | mediaTypes: 13 | - banner 14 | - video 15 | - native 16 | -------------------------------------------------------------------------------- /openrtb_ext/imp_sparteo.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpSparteo struct { 4 | NetworkId string `json:"networkId"` 5 | Custom1 string `json:"custom1,omitempty"` 6 | Custom2 string `json:"custom2,omitempty"` 7 | Custom3 string `json:"custom3,omitempty"` 8 | Custom4 string `json:"custom4,omitempty"` 9 | Custom5 string `json:"custom5,omitempty"` 10 | } 11 | -------------------------------------------------------------------------------- /static/bidder-info/decenterads.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://supply.decenterads.com/?c=o&m=rtb" 2 | maintainer: 3 | email: "support@decenterads.com" 4 | modifyingVastXmlAllowed: true 5 | capabilities: 6 | app: 7 | mediaTypes: 8 | - banner 9 | - video 10 | - native 11 | site: 12 | mediaTypes: 13 | - banner 14 | - video 15 | - native 16 | -------------------------------------------------------------------------------- /static/bidder-info/janet.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: adtelligent 2 | endpoint: "http://ghb.bidder.jmgads.com/pbs/ortb" 3 | maintainer: 4 | email: "info@thejmg.com" 5 | userSync: 6 | # JANet supports user syncing, but requires configuration by the host. contact this 7 | # bidder directly at the email address in this file to ask about enabling user sync. 8 | supports: 9 | - iframe 10 | -------------------------------------------------------------------------------- /adapters/gamma/gammatest/supplemental/invalid-imp.json: -------------------------------------------------------------------------------- 1 | { 2 | "mockBidRequest": { 3 | "id": "test-request-id", 4 | "ext": { 5 | "bidder": { 6 | "id": "sample-id" 7 | } 8 | } 9 | }, 10 | "expectedMakeRequestsErrors": [ 11 | { 12 | "value": "No impressions in the bid request", 13 | "comparison": "literal" 14 | } 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /adapters/kidoz/kidoztest/supplemental/missing-banner-format.json: -------------------------------------------------------------------------------- 1 | { 2 | "mockBidRequest": { 3 | "id": "test-request-id", 4 | "imp": [ 5 | { 6 | "id": "test-impression-id-1", 7 | "banner": { 8 | } 9 | } 10 | ] 11 | }, 12 | "expectedMakeRequestsErrors": [ 13 | { 14 | "value": "banner format required", 15 | "comparison": "literal" 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /openrtb_ext/imp_algorix.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpAlgoriX defines the contract for bidrequest.imp[i].ext.prebid.bidder.algorix 4 | type ExtImpAlgorix struct { 5 | Sid string `json:"sid"` 6 | Token string `json:"token"` 7 | PlacementId string `json:"placementId"` 8 | AppId string `json:"appId"` 9 | Region string `json:"region"` 10 | } 11 | -------------------------------------------------------------------------------- /static/bidder-info/pgam.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: adtelligent 2 | endpoint: "http://ghb.pgamssp.com/pbs/ortb" 3 | maintainer: 4 | email: "ppatel@pgammedia.com" 5 | userSync: 6 | # PGAM ssp supports user syncing, but requires configuration by the host. contact this 7 | # bidder directly at the email address in this file to ask about enabling user sync. 8 | supports: 9 | - iframe 10 | -------------------------------------------------------------------------------- /static/bidder-info/rocketlab.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: 'teqblaze' 2 | endpoint: 'https://traffic1.rocketlab.ai/pserver' 3 | maintainer: 4 | email: 'support@rocketlab.ai' 5 | userSync: 6 | redirect: 7 | url: 'https://usync.rocketlab.ai/pbserver?gdpr={{.GDPR}}&gdpr_consent={{.GDPRConsent}}&us_privacy={{.USPrivacy}}&gpp={{.GPP}}&gpp_sid={{.GPPSID}}&redir={{.RedirectURL}}' 8 | userMacro: '[UID]' 9 | -------------------------------------------------------------------------------- /adapters/kayzen/kayzentest/supplemental/requires-imp-object.json: -------------------------------------------------------------------------------- 1 | { 2 | "expectedMakeRequestsErrors": [ 3 | { 4 | "value": "Missing Imp Object", 5 | "comparison": "literal" 6 | } 7 | ], 8 | "mockBidRequest": { 9 | "id": "test-request-id", 10 | "imp": [], 11 | "site": { 12 | "page": "test.com" 13 | } 14 | }, 15 | "httpCalls": [] 16 | } 17 | -------------------------------------------------------------------------------- /adapters/lunamedia/lunamediatest/supplemental/checkImp.json: -------------------------------------------------------------------------------- 1 | { 2 | "mockBidRequest": { 3 | "id": "testid", 4 | "site": { 5 | "id": "test", 6 | "domain": "test.com" 7 | } 8 | }, 9 | "expectedMakeRequestsErrors": [ 10 | { 11 | "value": "No impression in the bid request", 12 | "comparison": "literal" 13 | }] 14 | } -------------------------------------------------------------------------------- /openrtb_ext/imp_yieldlab.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpYieldlab defines the contract for bidrequest.imp[i].ext.prebid.bidder.yieldlab 4 | type ExtImpYieldlab struct { 5 | AdslotID string `json:"adslotId"` 6 | SupplyID string `json:"supplyId"` 7 | Targeting map[string]string `json:"targeting"` 8 | ExtId string `json:"extId"` 9 | } 10 | -------------------------------------------------------------------------------- /static/bidder-info/copper6.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: adtelligent 2 | endpoint: "http://ghb.app.copper6.com/pbs/ortb" 3 | maintainer: 4 | email: "info@copper6.com" 5 | userSync: 6 | # Copper6 ssp supports user syncing, but requires configuration by the host. contact this 7 | # bidder directly at the email address in this file to ask about enabling user sync. 8 | supports: 9 | - iframe 10 | -------------------------------------------------------------------------------- /static/bidder-info/epom.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://an.epom.com/ortb" 2 | disabled: true 3 | maintainer: 4 | email: "support@epom.com" 5 | modifyingVastXmlAllowed: true 6 | gvlVendorID: 849 7 | capabilities: 8 | app: 9 | mediaTypes: 10 | - banner 11 | - video 12 | - native 13 | site: 14 | mediaTypes: 15 | - banner 16 | - video 17 | - native 18 | -------------------------------------------------------------------------------- /static/bidder-info/indicue.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: adtelligent 2 | endpoint: "http://ghb.console.indicue.com/pbs/ortb" 3 | maintainer: 4 | email: "ops@indicue.com" 5 | userSync: 6 | # Indicue ssp supports user syncing, but requires configuration by the host. contact this 7 | # bidder directly at the email address in this file to ask about enabling user sync. 8 | supports: 9 | - iframe 10 | -------------------------------------------------------------------------------- /static/bidder-params/mobkoi.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "Mobkoi Adapter Params", 4 | "description": "A schema which validates params accepted by the Mobkoi adapter", 5 | "type": "object", 6 | "properties": { 7 | "placementId": { 8 | "type": "string", 9 | "description": "Placement ID" 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /adapters/marsmedia/marsmediatest/supplemental/invalid-imp.json: -------------------------------------------------------------------------------- 1 | { 2 | "mockBidRequest": { 3 | "id": "test-request-id", 4 | "ext": { 5 | "bidder": { 6 | "zoneId": "9999" 7 | } 8 | } 9 | }, 10 | "expectedMakeRequestsErrors": [ 11 | { 12 | "value": "No impression in the bid request", 13 | "comparison": "literal" 14 | } 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /openrtb_ext/app.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtApp defines the contract for bidrequest.app.ext 4 | type ExtApp struct { 5 | Prebid ExtAppPrebid `json:"prebid"` 6 | } 7 | 8 | // ExtAppPrebid further defines the contract for bidrequest.app.ext.prebid. 9 | type ExtAppPrebid struct { 10 | Source string `json:"source,omitempty"` 11 | Version string `json:"version,omitempty"` 12 | } 13 | -------------------------------------------------------------------------------- /openrtb_ext/imp_unicorn.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpUnicorn defines the contract for bidrequest.imp[i].ext.prebid.bidder.unicorn 4 | type ExtImpUnicorn struct { 5 | PlacementID string `json:"placementId,omitempty"` 6 | PublisherID string `json:"publisherId,omitempty"` 7 | MediaID string `json:"mediaId,omitempty"` 8 | AccountID int `json:"accountId,omitempty"` 9 | } 10 | -------------------------------------------------------------------------------- /static/bidder-info/algorix.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://{{.Host}}.svr-algorix.com/rtb/sa?sid={{.SourceId}}&token={{.AccountID}}" 2 | maintainer: 3 | email: "prebid@algorix.co" 4 | gvlVendorID: 1176 5 | capabilities: 6 | app: 7 | mediaTypes: 8 | - banner 9 | - video 10 | - native 11 | site: 12 | mediaTypes: 13 | - banner 14 | - video 15 | - native 16 | -------------------------------------------------------------------------------- /adapters/gamoshi/gamoshitest/supplemental/invalid-imp.json: -------------------------------------------------------------------------------- 1 | { 2 | "mockBidRequest": { 3 | "id": "test-request-id", 4 | "ext": { 5 | "bidder": { 6 | "supplyPartnerId": "1707" 7 | } 8 | } 9 | }, 10 | "expectedMakeRequestsErrors": [ 11 | { 12 | "value": "No impressions in the bid request", 13 | "comparison": "literal" 14 | } 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /adapters/krushmedia/krushmediatest/supplemental/requires-imp-object.json: -------------------------------------------------------------------------------- 1 | { 2 | "expectedMakeRequestsErrors": [ 3 | { 4 | "value": "Missing Imp Object", 5 | "comparison": "literal" 6 | } 7 | ], 8 | "mockBidRequest": { 9 | "id": "test-request-id", 10 | "imp": [], 11 | "site": { 12 | "page": "test.com" 13 | } 14 | }, 15 | "httpCalls": [] 16 | } 17 | -------------------------------------------------------------------------------- /adapters/telaria/telariatest/supplemental/requires-imp-object.json: -------------------------------------------------------------------------------- 1 | { 2 | "expectedMakeRequestsErrors": [ 3 | { 4 | "value": "Telaria: Missing Imp Object", 5 | "comparison": "literal" 6 | } 7 | ], 8 | "mockBidRequest": { 9 | "id": "test-request-id", 10 | "imp": [], 11 | "site": { 12 | "page": "test.com" 13 | } 14 | }, 15 | "httpCalls": [] 16 | } 17 | -------------------------------------------------------------------------------- /firstpartydata/tests/extractbidderconfigfpd/bidder-list-specified-only.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Only global bidder list specified - no bidder fpds expected", 3 | "inputRequestData": { 4 | "data": { 5 | "bidders": [ 6 | "appnexus", 7 | "telaria", 8 | "testBidder" 9 | ] 10 | } 11 | }, 12 | "outputRequestData": {}, 13 | "bidderConfigFPD": {} 14 | } -------------------------------------------------------------------------------- /static/bidder-info/displayio.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://prebid.display.io/?publisher={{.PublisherID}}" 2 | endpointCompression: gzip 3 | geoscope: 4 | - global 5 | maintainer: 6 | email: contact@display.io 7 | modifyingVastXmlAllowed: true 8 | capabilities: 9 | app: 10 | mediaTypes: 11 | - banner 12 | - video 13 | site: 14 | mediaTypes: 15 | - banner 16 | - video -------------------------------------------------------------------------------- /static/bidder-params/aja.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "AJA Adapter Params", 4 | "description": "A schema which validates params accepted by the AJA adapter", 5 | "type": "object", 6 | "properties": { 7 | "asi": { 8 | "type": "string", 9 | "description": "Ad spot ID" 10 | } 11 | }, 12 | "required": ["asi"] 13 | } 14 | -------------------------------------------------------------------------------- /static/bidder-info/bcmint.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: aso 2 | endpoint: "https://srv.datacygnal.io/pbs/bidder?zid={{.ZoneID}}" 3 | maintainer: 4 | email: "contact@bcm.ltd" 5 | userSync: 6 | # BCM Int. supports user syncing, but requires configuration by the host.Contact this 7 | # bidder directly at the email address in this file to ask about enabling user sync. 8 | supports: 9 | - redirect 10 | - iframe -------------------------------------------------------------------------------- /static/bidder-info/bidgency.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: aso 2 | endpoint: "https://srv.bidgx.com/pbs/bidder?zid={{.ZoneID}}" 3 | maintainer: 4 | email: "aso@bidgency.com" 5 | userSync: 6 | # Bidgency supports user syncing, but requires configuration by the host.Contact this 7 | # bidder directly at the email address in this file to ask about enabling user sync. 8 | supports: 9 | - redirect 10 | - iframe -------------------------------------------------------------------------------- /static/bidder-info/resetdigital.yaml: -------------------------------------------------------------------------------- 1 | endpoint: http://b-us-east14.resetdigital.co:9001 2 | maintainer: 3 | email: biddersupport@resetdigital.co 4 | capabilities: 5 | site: 6 | mediaTypes: 7 | - banner 8 | - video 9 | - audio 10 | gvlVendorID: 1162 11 | userSync: 12 | redirect: 13 | url: https://sync.resetdigital.co/csync?redir={{.RedirectURL}} 14 | userMacro: '$USER_ID' 15 | -------------------------------------------------------------------------------- /static/bidder-params/bidmyadz.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "BidMyAdz Adapter Params", 4 | "description": "A schema which validates params accepted by the BidMyAdz adapter", 5 | "type": "object", 6 | "properties": { 7 | "placementId": { 8 | "type": "string" 9 | } 10 | }, 11 | "required": ["placementId"] 12 | } -------------------------------------------------------------------------------- /util/uuidutil/uuidutil.go: -------------------------------------------------------------------------------- 1 | package uuidutil 2 | 3 | import ( 4 | "github.com/gofrs/uuid" 5 | ) 6 | 7 | type UUIDGenerator interface { 8 | Generate() (string, error) 9 | } 10 | 11 | type UUIDRandomGenerator struct{} 12 | 13 | func (UUIDRandomGenerator) Generate() (string, error) { 14 | id, err := uuid.NewV4() 15 | if err != nil { 16 | return "", err 17 | } 18 | return id.String(), nil 19 | } 20 | -------------------------------------------------------------------------------- /adapters/kidoz/kidoztest/supplemental/empty-banner-format .json: -------------------------------------------------------------------------------- 1 | { 2 | "mockBidRequest": { 3 | "id": "test-request-id", 4 | "imp": [ 5 | { 6 | "id": "test-impression-id-1", 7 | "banner": { 8 | "format": [] 9 | } 10 | } 11 | ] 12 | }, 13 | "expectedMakeRequestsErrors": [ 14 | { 15 | "value": "banner format array is empty", 16 | "comparison": "literal" 17 | } 18 | ] 19 | } -------------------------------------------------------------------------------- /modules/fiftyonedegrees/devicedetection/module_no_cgo_test.go: -------------------------------------------------------------------------------- 1 | //go:build !cgo 2 | 3 | package devicedetection 4 | 5 | import ( 6 | "testing" 7 | 8 | "github.com/prebid/prebid-server/v3/modules/moduledeps" 9 | "github.com/stretchr/testify/assert" 10 | ) 11 | 12 | func TestBuilderError(t *testing.T) { 13 | _, err := Builder(nil, moduledeps.ModuleDeps{}) 14 | assert.EqualError(t, err, errMsg) 15 | } 16 | -------------------------------------------------------------------------------- /openrtb_ext/imp_pulsepoint.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | import ( 4 | "github.com/prebid/prebid-server/v3/util/jsonutil" 5 | ) 6 | 7 | // ExtImpPulsePoint defines the json spec for bidrequest.imp[i].ext.prebid.bidder.pulsepoint 8 | // PubId/TagId are mandatory params 9 | 10 | type ExtImpPulsePoint struct { 11 | PubID jsonutil.StringInt `json:"cp"` 12 | TagID jsonutil.StringInt `json:"ct"` 13 | } 14 | -------------------------------------------------------------------------------- /static/bidder-info/audienceNetwork.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://an.facebook.com/placementbid.ortb" 2 | disabled: true 3 | maintainer: 4 | email: "none" 5 | capabilities: 6 | app: 7 | mediaTypes: 8 | - banner 9 | - video 10 | - native 11 | userSync: 12 | # facebook's audience network supports user syncing, but requires configuration by the host. 13 | supports: 14 | - redirect 15 | -------------------------------------------------------------------------------- /static/bidder-info/goldbach.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://goldlayer-api.prod.gbads.net/openrtb/2.5/auction" 2 | endpointCompression: gzip 3 | maintainer: 4 | email: "engineering@goldbach.com" 5 | gvlVendorID: 580 6 | capabilities: 7 | app: 8 | mediaTypes: 9 | - banner 10 | - video 11 | - native 12 | site: 13 | mediaTypes: 14 | - banner 15 | - video 16 | - native 17 | -------------------------------------------------------------------------------- /static/bidder-info/kuantyx.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: aso 2 | endpoint: "https://srv.kntxy.com/pbs/bidder?zid={{.ZoneID}}" 3 | maintainer: 4 | email: "ssp@kuantyx.com" 5 | userSync: 6 | # Kuantyx supports user syncing, but requires configuration by the host.Contact this 7 | # bidder directly at the email address in this file to ask about enabling user sync. 8 | supports: 9 | - redirect 10 | - iframe 11 | -------------------------------------------------------------------------------- /static/bidder-params/adsinteractive.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "Adsinteractive Adapter Params", 4 | "description": "Adsinteractive Bidder Parameter Schema", 5 | "type": "object", 6 | "properties": { 7 | "adUnit": { 8 | "type": "string", 9 | "description": "ad unit name" 10 | } 11 | }, 12 | "required": ["adUnit"] 13 | } 14 | -------------------------------------------------------------------------------- /adapters/beachfront/beachfronttest/supplemental/no-imps.json: -------------------------------------------------------------------------------- 1 | { 2 | "mockBidRequest": { 3 | "id": "some_test_ad", 4 | "site": { 5 | "page": "https://some.domain.us/some/page.html" 6 | }, 7 | "imp": [] 8 | }, 9 | 10 | "expectedMakeRequestsErrors": [ 11 | { 12 | "value": "no valid impressions were found in the request", 13 | "comparison": "literal" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /openrtb_ext/imp_yandex.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpYandex struct { 4 | /* 5 | Possible formats 6 | - `R-I-123456-2` 7 | - `R-123456-1` 8 | - `123456-789` 9 | */ 10 | PlacementID string `json:"placement_id"` 11 | 12 | // Deprecated: in favor of `PlacementID` 13 | PageID int64 `json:"page_id"` 14 | // Deprecated: in favor of `PlacementID` 15 | ImpID int64 `json:"imp_id"` 16 | } 17 | -------------------------------------------------------------------------------- /static/bidder-info/adquery.yaml: -------------------------------------------------------------------------------- 1 | endpoint: https://bidder2.adquery.io/prebid/bid 2 | maintainer: 3 | email: prebid@adquery.io 4 | gvlVendorID: 902 5 | capabilities: 6 | site: 7 | mediaTypes: 8 | - banner 9 | userSync: 10 | iframe: 11 | url: https://api.adquery.io/storage?gdpr={{.GDPR}}&consent={{.GDPRConsent}}&ccpa_consent={{.USPrivacy}}&redirect={{.RedirectURL}} 12 | userMacro: $UID 13 | -------------------------------------------------------------------------------- /static/bidder-info/loopme.yaml: -------------------------------------------------------------------------------- 1 | endpoint: http://prebid.loopmertb.com 2 | geoscope: 3 | - global 4 | maintainer: 5 | email: "prebid@loopme.com" 6 | gvlVendorID: 109 7 | capabilities: 8 | app: 9 | mediaTypes: 10 | - banner 11 | - video 12 | - native 13 | - audio 14 | site: 15 | mediaTypes: 16 | - banner 17 | - video 18 | - native 19 | - audio 20 | 21 | -------------------------------------------------------------------------------- /static/bidder-info/trafficgate.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://{{.Host}}.bc-plugin.com/?c=o&m=rtb" 2 | maintainer: 3 | email: "support@bidscube.com" 4 | modifyingVastXmlAllowed: true 5 | capabilities: 6 | app: 7 | mediaTypes: 8 | - banner 9 | - video 10 | - native 11 | - audio 12 | site: 13 | mediaTypes: 14 | - banner 15 | - video 16 | - native 17 | - audio 18 | -------------------------------------------------------------------------------- /static/bidder-info/viewdeos.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: adtelligent 2 | endpoint: "http://ghb.sync.viewdeos.com/pbs/ortb" 3 | maintainer: 4 | email: "contact@viewdeos.com" 5 | gvlVendorID: 924 6 | userSync: 7 | # viewdeos supports user syncing, but requires configuration by the host. contact this 8 | # bidder directly at the email address in this file to ask about enabling user sync. 9 | supports: 10 | - redirect 11 | -------------------------------------------------------------------------------- /static/bidder-params/adpone.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "Adpone Adapter Params", 4 | "description": "A schema which validates params accepted by the adpone adapter", 5 | "type": "object", 6 | "properties": { 7 | "placementId": { 8 | "type": "string", 9 | "description": "Placement Id" 10 | } 11 | }, 12 | "required": [] 13 | } 14 | -------------------------------------------------------------------------------- /openrtb_ext/imp_invibes.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpInvibes struct { 4 | PlacementID string `json:"placementId,omitempty"` 5 | DomainID int `json:"domainId"` 6 | Debug ExtImpInvibesDebug `json:"debug,omitempty"` 7 | } 8 | 9 | type ExtImpInvibesDebug struct { 10 | TestBvid string `json:"testBvid,omitempty"` 11 | TestLog bool `json:"testLog,omitempty"` 12 | } 13 | -------------------------------------------------------------------------------- /openrtb_ext/imp_mediago.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpMediaGo defines the contract for bidrequest.imp[i].ext.prebid.bidder.mediago 4 | type ExtImpMediaGo struct { 5 | Token string `json:"token"` 6 | Region string `json:"region"` 7 | PlacementId string `json:"placementId"` 8 | } 9 | 10 | type ExtMediaGo struct { 11 | Token string `json:"token"` 12 | Region string `json:"region"` 13 | } 14 | -------------------------------------------------------------------------------- /static/bidder-info/adpone.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://rtb.adpone.com/bid-request?src=prebid_server" 2 | maintainer: 3 | email: "tech@adpone.com" 4 | gvlVendorID: 799 5 | capabilities: 6 | app: 7 | mediaTypes: 8 | - banner 9 | site: 10 | mediaTypes: 11 | - banner 12 | userSync: 13 | redirect: 14 | url: "https://usersync.adpone.com/csync?redir={{.RedirectURL}}" 15 | userMacro: "{uid}" 16 | -------------------------------------------------------------------------------- /static/bidder-info/bluesea.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://bid.bluevoox.com/rtb/prebid" 2 | maintainer: 3 | email: prebid@blueseasx.com 4 | endpointCompression: gzip 5 | modifyingVastXmlAllowed: true 6 | gvlVendorID: 1294 7 | capabilities: 8 | app: 9 | mediaTypes: 10 | - banner 11 | - native 12 | - video 13 | site: 14 | mediaTypes: 15 | - banner 16 | - native 17 | - video 18 | -------------------------------------------------------------------------------- /static/bidder-info/concert.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://bids.concert.io/bids/openrtb" 2 | endpointCompression: gzip 3 | geoscope: 4 | - global 5 | maintainer: 6 | email: support@concert.io 7 | modifyingVastXmlAllowed: true 8 | capabilities: 9 | app: 10 | mediaTypes: 11 | - banner 12 | - video 13 | - audio 14 | site: 15 | mediaTypes: 16 | - banner 17 | - video 18 | - audio -------------------------------------------------------------------------------- /static/bidder-info/connektai.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: "xeworks" 2 | endpoint: "http://rtb.connektai.live/?pid={{.SourceId}}&host={{.Host}}&s=pbs" 3 | maintainer: 4 | email: "adops@connekt.ai" 5 | userSync: 6 | # connektai supports user syncing, but requires configuration by the host. contact this 7 | # bidder directly at the email address in this file to ask about enabling user sync. 8 | supports: 9 | - redirect 10 | -------------------------------------------------------------------------------- /static/bidder-info/kayzen.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://bids-{{.ZoneID}}.bidder.kayzen.io/?exchange={{.AccountID}}" 2 | maintainer: 3 | email: "platform-dev@kayzen.io" 4 | gvlVendorID: 528 5 | modifyingVastXmlAllowed: true 6 | capabilities: 7 | app: 8 | mediaTypes: 9 | - banner 10 | - video 11 | - native 12 | site: 13 | mediaTypes: 14 | - banner 15 | - video 16 | - native 17 | -------------------------------------------------------------------------------- /static/bidder-info/limelightDigital.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://ads-pbs.ortb.net/openrtb/{{.PublisherID}}?host={{.Host}}" 2 | maintainer: 3 | email: "engineering@project-limelight.com" 4 | capabilities: 5 | app: 6 | mediaTypes: 7 | - banner 8 | - video 9 | - audio 10 | - native 11 | site: 12 | mediaTypes: 13 | - banner 14 | - video 15 | - audio 16 | - native 17 | -------------------------------------------------------------------------------- /static/bidder-info/zentotem.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://rtb.zentotem.net/bid?sspuid=cqlnvfk00bhs0b6rci6g" 2 | maintainer: 3 | email: support@zentotem.net 4 | endpointCompression: gzip 5 | modifyingVastXmlAllowed: true 6 | capabilities: 7 | app: 8 | mediaTypes: 9 | - banner 10 | - video 11 | - native 12 | site: 13 | mediaTypes: 14 | - banner 15 | - video 16 | - native 17 | -------------------------------------------------------------------------------- /openrtb_ext/imp_tappx.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | type ExtImpTappx struct { 4 | Host string `json:"host,omitempty"` //DEPRECATED 5 | TappxKey string `json:"tappxkey"` 6 | Endpoint string `json:"endpoint"` 7 | BidFloor float64 `json:"bidfloor,omitempty"` 8 | Mktag string `json:"mktag,omitempty"` 9 | Bcid []string `json:"bcid,omitempty"` 10 | Bcrid []string `json:"bcrid,omitempty"` 11 | } 12 | -------------------------------------------------------------------------------- /static/bidder-info/eplanning.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://rtb.e-planning.net/pbs/1" 2 | maintainer: 3 | email: "producto@e-planning.net" 4 | gvlVendorID: 90 5 | capabilities: 6 | app: 7 | mediaTypes: 8 | - banner 9 | site: 10 | mediaTypes: 11 | - banner 12 | - video 13 | userSync: 14 | iframe: 15 | url: "https://ads.us.e-planning.net/uspd/1/?du={{.RedirectURL}}" 16 | userMacro: "$UID" 17 | -------------------------------------------------------------------------------- /static/bidder-info/epsilon.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: conversant 2 | userSync: 3 | redirect: 4 | url: "https://prebid-match.dotomi.com/match/bounce/current?version=1&networkId=72582&gdpr={{.GDPR}}&gdpr_consent={{.GDPRConsent}}&us_privacy={{.USPrivacy}}&gpp={{.GPP}}&gpp_sid={{.GPPSID}}&rurl={{.RedirectURL}}" 5 | userMacro: "" 6 | # epsilon/conversant appends the user id to end of the redirect url and does not utilize a macro 7 | -------------------------------------------------------------------------------- /static/bidder-info/mabidder.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://prebid.ecdrsvc.com/pbs" 2 | maintainer: 3 | email: lmprebidadapter@loblaw.ca 4 | endpointCompression: gzip 5 | capabilities: 6 | app: 7 | mediaTypes: 8 | - banner 9 | site: 10 | mediaTypes: 11 | - banner 12 | # This bidder does not operate globally. Please consider setting "disabled: true" outside of the following regions: 13 | geoscope: 14 | - CAN -------------------------------------------------------------------------------- /static/bidder-info/quantumdex.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: "apacdex" 2 | userSync: 3 | iframe: 4 | url: https://sync.quantumdex.io/usersync/pbs?gdpr={{.GDPR}}&gdpr_consent={{.GDPRConsent}}&us_privacy={{.USPrivacy}}&r={{.RedirectURL}} 5 | userMacro: "[UID]" 6 | redirect: 7 | url: "https://sync.quantumdex.io/getuid?gdpr={{.GDPR}}&gdpr_consent={{.GDPRConsent}}&us_privacy={{.USPrivacy}}&r={{.RedirectURL}}" 8 | userMacro: "[UID]" 9 | -------------------------------------------------------------------------------- /static/bidder-params/adtrgtme.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "Adtrgtme adapter params", 4 | "description": "A schema which validates params accepted by the Adtrgtme adapter", 5 | "type": "object", 6 | 7 | "properties": { 8 | "site_id": { 9 | "type": "integer", 10 | "description": "Site ID" 11 | } 12 | }, 13 | 14 | "required": ["site_id"] 15 | } -------------------------------------------------------------------------------- /static/bidder-params/stroeerCore.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "StroeerCore Adapter Params", 4 | "description": "A schema which validates params accepted by the StroeerCore adapter", 5 | 6 | "type": "object", 7 | "properties": { 8 | "sid": { 9 | "type": "string", 10 | "description": "Slot Id" 11 | } 12 | }, 13 | "required": ["sid"] 14 | } 15 | -------------------------------------------------------------------------------- /util/randomutil/randomutil.go: -------------------------------------------------------------------------------- 1 | package randomutil 2 | 3 | import ( 4 | "math/rand" 5 | ) 6 | 7 | type RandomGenerator interface { 8 | GenerateInt63() int64 9 | Intn(n int) int 10 | } 11 | 12 | type RandomNumberGenerator struct{} 13 | 14 | func (RandomNumberGenerator) GenerateInt63() int64 { 15 | return rand.Int63() 16 | } 17 | 18 | func (r RandomNumberGenerator) Intn(n int) int { 19 | return rand.Intn(n) 20 | } 21 | -------------------------------------------------------------------------------- /adapters/screencore/screencoretest/supplemental/empty-imp-array.json: -------------------------------------------------------------------------------- 1 | { 2 | "expectedMakeRequestsErrors": [ 3 | { 4 | "value": "Empty Imp array in BidRequest", 5 | "comparison": "literal" 6 | } 7 | ], 8 | "mockBidRequest": { 9 | "id": "test-request-id", 10 | "imp": [], 11 | "site": { 12 | "page": "test.com" 13 | } 14 | }, 15 | "httpCalls": [] 16 | } -------------------------------------------------------------------------------- /logger/interface.go: -------------------------------------------------------------------------------- 1 | package logger 2 | 3 | type Logger interface { 4 | // Debugf level logging 5 | Debugf(msg string, args ...any) 6 | 7 | // Infof level logging 8 | Infof(msg string, args ...any) 9 | 10 | // Warnf level logging 11 | Warnf(msg string, args ...any) 12 | 13 | // Errorf level logging 14 | Errorf(msg string, args ...any) 15 | 16 | // Fatalf level logging 17 | Fatalf(msg string, args ...any) 18 | } 19 | -------------------------------------------------------------------------------- /openrtb_ext/imp_aduptech.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | import "encoding/json" 4 | 5 | type ExtImpAduptech struct { 6 | Publisher string `json:"publisher"` 7 | Placement string `json:"placement"` 8 | Query string `json:"query"` 9 | AdTest bool `json:"adtest"` 10 | Debug bool `json:"debug,omitempty"` 11 | Ext json.RawMessage `json:"ext,omitempty"` 12 | } 13 | -------------------------------------------------------------------------------- /static/bidder-info/nexx360.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://fast.nexx360.io/prebid-server" 2 | maintainer: 3 | email: "tech@nexx360.io" 4 | endpointCompression: gzip 5 | geoscope: 6 | - global 7 | capabilities: 8 | app: 9 | mediaTypes: 10 | - banner 11 | - video 12 | - native 13 | - audio 14 | site: 15 | mediaTypes: 16 | - banner 17 | - video 18 | - native 19 | - audio 20 | -------------------------------------------------------------------------------- /static/bidder-info/relevantdigital.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://{{.Host}}.relevant-digital.com/openrtb2/auction" 2 | maintainer: 3 | email: "support@relevant-digital.com" 4 | gvlVendorID: 1100 5 | capabilities: 6 | app: 7 | mediaTypes: 8 | - banner 9 | - video 10 | - native 11 | - audio 12 | site: 13 | mediaTypes: 14 | - banner 15 | - video 16 | - native 17 | - audio 18 | -------------------------------------------------------------------------------- /static/bidder-info/valueimpression.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: "apacdex" 2 | userSync: 3 | iframe: 4 | url: https://sync.quantumdex.io/usersync/pbs?gdpr={{.GDPR}}&gdpr_consent={{.GDPRConsent}}&us_privacy={{.USPrivacy}}&r={{.RedirectURL}} 5 | userMacro: "[UID]" 6 | redirect: 7 | url: "https://sync.quantumdex.io/getuid?gdpr={{.GDPR}}&gdpr_consent={{.GDPRConsent}}&us_privacy={{.USPrivacy}}&r={{.RedirectURL}}" 8 | userMacro: "[UID]" 9 | -------------------------------------------------------------------------------- /static/bidder-params/marsmedia.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "Marsmedia Adapter Params", 4 | "description": "A schema which validates params accepted by the Marsmedia adapter", 5 | "type": "object", 6 | "properties": { 7 | "zoneId": { 8 | "type": ["integer", "string"], 9 | "description": "The zone ID from Mars Media Group." 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /util/jsonutil/intstring.go: -------------------------------------------------------------------------------- 1 | package jsonutil 2 | 3 | import ( 4 | "errors" 5 | 6 | "github.com/tidwall/gjson" 7 | ) 8 | 9 | type IntString string 10 | 11 | func (st *IntString) UnmarshalJSON(b []byte) error { 12 | res := gjson.ParseBytes(b) 13 | if res.Type != gjson.Number && res.Type != gjson.String { 14 | return errors.New("invalid type") 15 | } 16 | 17 | *st = IntString(res.String()) 18 | return nil 19 | } 20 | -------------------------------------------------------------------------------- /adapters/blis/blistest/supplemental/invalid-imp-ext.json: -------------------------------------------------------------------------------- 1 | { 2 | "mockBidRequest": { 3 | "id": "test-request", 4 | "imp": [ 5 | { 6 | "id": "test-imp" 7 | } 8 | ] 9 | }, 10 | 11 | "expectedMakeRequestsErrors": [ 12 | { 13 | "value": "Invalid imp.ext for impression", 14 | "comparison": "startswith" 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /endpoints/openrtb2/sample-requests/invalid-whole/imp-empty-object.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Bid request's sole imp element is empty", 3 | "mockBidRequest": { 4 | "id": "req-id", 5 | "imp": [ 6 | { } 7 | ], 8 | "app": { 9 | "id": "app_001" 10 | } 11 | }, 12 | "expectedReturnCode": 400, 13 | "expectedErrorMessage": "Invalid request: request.imp[0] missing required field: \"id\"\n" 14 | } 15 | -------------------------------------------------------------------------------- /openrtb_ext/imp_adtarget.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | import "encoding/json" 4 | 5 | // ExtImpAdtarget defines the contract for bidrequest.imp[i].ext.prebid.bidder.adtarget 6 | type ExtImpAdtarget struct { 7 | SourceId json.Number `json:"aid"` 8 | PlacementId int `json:"placementId,omitempty"` 9 | SiteId int `json:"siteId,omitempty"` 10 | BidFloor float64 `json:"bidFloor,omitempty"` 11 | } 12 | -------------------------------------------------------------------------------- /openrtb_ext/imp_bidmatic.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | import "encoding/json" 4 | 5 | // ExtImpBidmatic defines the contract for bidrequest.imp[i].ext.prebid.bidder.bidmatic 6 | type ExtImpBidmatic struct { 7 | SourceId json.Number `json:"source"` 8 | PlacementId int `json:"placementId,omitempty"` 9 | SiteId int `json:"siteId,omitempty"` 10 | BidFloor float64 `json:"bidFloor,omitempty"` 11 | } 12 | -------------------------------------------------------------------------------- /static/bidder-info/beintoo.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://ib.beintoo.com/um" 2 | maintainer: 3 | email: "adops@beintoo.com" 4 | gvlVendorID: 618 5 | capabilities: 6 | site: 7 | mediaTypes: 8 | - banner 9 | userSync: 10 | key: "Beintoo" 11 | iframe: 12 | url: "https://ib.beintoo.com/um?ssp=pbs&gdpr={{.GDPR}}&gdpr_consent={{.GDPRConsent}}&us_privacy={{.USPrivacy}}&redirect={{.RedirectURL}}" 13 | userMacro: "$UID" 14 | -------------------------------------------------------------------------------- /static/bidder-info/omnidex.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: "vidazoo" 2 | endpoint: "https://exchange.omni-dex.io/openrtb/" 3 | maintainer: 4 | email: "dev@vidazoo.com" 5 | userSync: 6 | iframe: 7 | url: https://sync.omni-dex.io/api/user/html/6810d0c7f163277130f3d7a9?pbs=true&gdpr={{.GDPR}}&gdpr_consent={{.GDPRConsent}}&us_privacy={{.USPrivacy}}&redirect={{.RedirectURL}}&gpp={{.GPP}}&gpp_sid={{.GPPSID}} 8 | userMacro: ${userId} 9 | gvlVendorID: 1463 -------------------------------------------------------------------------------- /static/bidder-info/robustApps.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: "xeworks" 2 | endpoint: "http://rtb.rbstsystems.live?pid={{.SourceId}}&host={{.Host}}&pbs=1" 3 | maintainer: 4 | email: "prebid@robust-apps.com" 5 | userSync: 6 | # robustApps supports user syncing, but requires configuration by the host. contact this 7 | # bidder directly at the email address in this file to ask about enabling user sync. 8 | supports: 9 | - redirect 10 | -------------------------------------------------------------------------------- /static/bidder-params/brave.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "Brave Adapter Params", 4 | "description": "A schema which validates params accepted by the Brave adapter", 5 | "type": "object", 6 | "properties": { 7 | "placementId": { 8 | "type": "string", 9 | "description": "Unique Placement ID of publisher" 10 | } 11 | }, 12 | "required": ["placementId"] 13 | } -------------------------------------------------------------------------------- /static/bidder-params/krushmedia.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "Krushmedia Adapter Params", 4 | "description": "A schema which validates params accepted by the Krushmedia adapter", 5 | "type": "object", 6 | "properties": { 7 | "key": { 8 | "type": "string", 9 | "description": "ssp key" 10 | } 11 | }, 12 | "required": ["key"] 13 | } -------------------------------------------------------------------------------- /static/bidder-params/logicad.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "Logicad Adapter Params", 4 | "description": "A schema which validates params accepted by the Logicad adapter", 5 | "type": "object", 6 | "properties": { 7 | "tid": { 8 | "type": "string", 9 | "description": "Logicad for Publishers placement ID" 10 | } 11 | }, 12 | "required": ["tid"] 13 | } 14 | -------------------------------------------------------------------------------- /static/bidder-params/mabidder.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "Mabidder Adapter Params", 4 | "description": "A schema which validates params accepted by the Mabidder adapter", 5 | "type": "object", 6 | 7 | "properties": { 8 | "ppid": { 9 | "type": "string", 10 | "description": "Publisher Placement ID" 11 | } 12 | }, 13 | 14 | "required": ["ppid"] 15 | } -------------------------------------------------------------------------------- /static/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Prebid Server 4 | 5 | 6 | Prebid Server is a server-to-server proxy for Prebid.js users. 7 | The host is not responsible for the content or advertising delivered through this proxy. For more information, 8 | please contact prebid-server - at - prebid.org. 9 | 10 | 11 | -------------------------------------------------------------------------------- /openrtb_ext/imp_mgid.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | // ExtImpMgid defines the contract for bidrequest.imp[i].ext.prebid.bidder.mgid 4 | type ExtImpMgid struct { 5 | AccountId string `json:"accountId"` 6 | PlacementId string `json:"placementId,omitempty"` 7 | Cur string `json:"cur"` 8 | Currency string `json:"currency"` 9 | BidFloor float64 `json:"bidfloor"` 10 | BidFloor2 float64 `json:"bidFloor"` 11 | } 12 | -------------------------------------------------------------------------------- /static/bidder-params/aceex.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "Aceex Adapter Params", 4 | "description": "A schema which validates params accepted by the Aceex adapter", 5 | "type": "object", 6 | "properties": { 7 | "accountid": { 8 | "type": "string", 9 | "description": "Account id", 10 | "minLength": 1 11 | } 12 | }, 13 | "required": ["accountid"] 14 | } -------------------------------------------------------------------------------- /static/bidder-params/interactiveoffers.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "Interactive Offers Adapter Params", 4 | "description": "A schema which validates params accepted by Interactive Offers adapter", 5 | "type": "object", 6 | "properties": { 7 | "partnerId": { 8 | "type": "string", 9 | "description": "The partners id" 10 | } 11 | }, 12 | "required": [] 13 | } -------------------------------------------------------------------------------- /static/bidder-params/zeta_global_ssp.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "Zeta Global SSP Adapter Params", 4 | "description": "A schema which validates params accepted by the Zeta Global SSP adapter", 5 | 6 | "type": "object", 7 | "properties": { 8 | "sid": { 9 | "type": "integer", 10 | "description": "An ID which identifies the publisher" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /usersync/shuffler.go: -------------------------------------------------------------------------------- 1 | package usersync 2 | 3 | import "math/rand" 4 | 5 | // shuffler changes the order of elements in the slice. 6 | type shuffler interface { 7 | shuffle(v []string) 8 | } 9 | 10 | // randomShuffler randomly changes the order of elements in the slice. 11 | type randomShuffler struct{} 12 | 13 | func (randomShuffler) shuffle(v []string) { 14 | rand.Shuffle(len(v), func(i, j int) { v[i], v[j] = v[j], v[i] }) 15 | } 16 | -------------------------------------------------------------------------------- /openrtb_ext/imp_adtelligent.go: -------------------------------------------------------------------------------- 1 | package openrtb_ext 2 | 3 | import "encoding/json" 4 | 5 | // ExtImpAdtelligent defines the contract for bidrequest.imp[i].ext.prebid.bidder.adtelligent 6 | type ExtImpAdtelligent struct { 7 | SourceId json.Number `json:"aid"` 8 | PlacementId int `json:"placementId,omitempty"` 9 | SiteId int `json:"siteId,omitempty"` 10 | BidFloor float64 `json:"bidFloor,omitempty"` 11 | } 12 | -------------------------------------------------------------------------------- /static/bidder-info/mgid.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://prebid.mgid.com/prebid/" 2 | maintainer: 3 | email: "prebid@mgid.com" 4 | gvlVendorID: 358 5 | capabilities: 6 | app: 7 | mediaTypes: 8 | - banner 9 | - native 10 | site: 11 | mediaTypes: 12 | - banner 13 | - native 14 | userSync: 15 | redirect: 16 | url: "https://cm.mgid.com/m?cdsp=363893&adu={{.RedirectURL}}" 17 | userMacro: "{muidn}" 18 | 19 | -------------------------------------------------------------------------------- /modules/fiftyonedegrees/devicedetection/no-cgo.go: -------------------------------------------------------------------------------- 1 | //go:build !cgo 2 | 3 | package devicedetection 4 | 5 | import ( 6 | "encoding/json" 7 | "errors" 8 | 9 | "github.com/prebid/prebid-server/v3/modules/moduledeps" 10 | ) 11 | 12 | const errMsg = "fiftyonedegrees should not be enabled unless CGO is enabled" 13 | 14 | func Builder(_ json.RawMessage, _ moduledeps.ModuleDeps) (interface{}, error) { 15 | return nil, errors.New(errMsg) 16 | } 17 | -------------------------------------------------------------------------------- /static/bidder-info/adelement.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://amp.adelement.com/openrtb2/auction?supply_id={{.SupplyId}}" 2 | endpointCompression: gzip 3 | maintainer: 4 | email: "tech@adelement.com" 5 | gvlVendorID: 196 6 | capabilities: 7 | app: 8 | mediaTypes: 9 | - banner 10 | - native 11 | - video 12 | - audio 13 | site: 14 | mediaTypes: 15 | - banner 16 | - native 17 | - video 18 | - audio -------------------------------------------------------------------------------- /static/bidder-info/progx.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: "vidazoo" 2 | endpoint: "https://exchange.programmaticx.ai/openrtb/" 3 | maintainer: 4 | email: "pxteam@programmaticx.ai" 5 | gvlVendorID: 1344 6 | userSync: 7 | iframe: 8 | url: https://sync.programmaticx.ai/api/user/html/685297194d85991a5e6e36dd?pbs=true&gdpr={{.GDPR}}&gdpr_consent={{.GDPRConsent}}&us_privacy={{.USPrivacy}}&redirect={{.RedirectURL}}&gpp={{.GPP}}&gpp_sid={{.GPPSID}} 9 | userMacro: ${userId} -------------------------------------------------------------------------------- /static/bidder-params/bigoad.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "BigoAd Adapter Params", 4 | "description": "A schema which validates params accepted by the BigoAd adapter", 5 | "type": "object", 6 | "properties": { 7 | "sspid": { 8 | "type": "string", 9 | "description": "Special id provided by BigoAd" 10 | } 11 | }, 12 | "required": ["sspid"] 13 | } -------------------------------------------------------------------------------- /static/bidder-params/e_volution.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "E-volution Adapter Params", 4 | "description": "A schema which validates params accepted by the E-volution adapter", 5 | "type": "object", 6 | "properties": { 7 | "key": { 8 | "type": "string", 9 | "description": "network or placement key" 10 | } 11 | }, 12 | "required": ["key"] 13 | } -------------------------------------------------------------------------------- /static/bidder-params/freewheelssp.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "FreewheelSSP Adapter Params", 4 | "description": "A schema which validates params accepted by the FreewheelSSP adapter", 5 | "type": "object", 6 | 7 | "properties": { 8 | "zoneId": { 9 | "type": ["integer", "string"], 10 | "description": "Zone ID" 11 | } 12 | }, 13 | 14 | "required": ["zoneId"] 15 | } -------------------------------------------------------------------------------- /static/bidder-params/showheroes.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "Showheroes Adapter Params", 4 | "description": "A schema which validates params accepted by the Showheroes adapter", 5 | "type": "object", 6 | "properties": { 7 | "unitId": { 8 | "type": "string", 9 | "description": "Unit ID", 10 | "minLength": 8 11 | } 12 | }, 13 | "required": ["unitId"] 14 | } 15 | -------------------------------------------------------------------------------- /adapters/adkernelAdn/adkerneladntest/supplemental/no-imps.json: -------------------------------------------------------------------------------- 1 | { 2 | "mockBidRequest": { 3 | "id": "0000000000001", 4 | "imp": [], 5 | "site": { 6 | "page": "http://example.com/test.html", 7 | "publisher": { 8 | "id": "1" 9 | } 10 | } 11 | }, 12 | "expectedMakeRequestsErrors": [ 13 | { 14 | "value": "No impression in the bid request", 15 | "comparison": "literal" 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /openrtb_ext/doc.go: -------------------------------------------------------------------------------- 1 | /* 2 | Package openrtb_ext defines all the input validation for Prebid Server's extensions to the OpenRTB 2.5 spec. 3 | 4 | Most of these are defined by simple contract classes. 5 | 6 | One notable exception is the bidder params, which have more complex validation rules. 7 | These are validated by a BidderParamValidator, which relies on the json-schemas from 8 | static/bidder-params/{bidder}.json 9 | */ 10 | package openrtb_ext 11 | -------------------------------------------------------------------------------- /static/bidder-info/gamma.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://hb.gammaplatform.com/adx/request/" 2 | maintainer: 3 | email: "support@gammassp.com" 4 | capabilities: 5 | app: 6 | mediaTypes: 7 | - banner 8 | - video 9 | userSync: 10 | # gamma supports user syncing, but requires configuration by the host. contact this 11 | # bidder directly at the email address in this file to ask about enabling user sync. 12 | supports: 13 | - iframe 14 | -------------------------------------------------------------------------------- /static/bidder-info/jixie.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://hb.jixie.io/v2/hbsvrpost" 2 | maintainer: 3 | email: contact@jixie.io 4 | modifyingVastXmlAllowed: true 5 | capabilities: 6 | site: 7 | mediaTypes: 8 | - banner 9 | - video 10 | userSync: 11 | redirect: 12 | url: "https://id.jixie.io/api/sync?pid=&gdpr={{.GDPR}}&gdpr_consent={{.GDPRConsent}}&us_privacy={{.USPrivacy}}&redirect={{.RedirectURL}}" 13 | userMacro: "%%JXUID%%" 14 | -------------------------------------------------------------------------------- /static/bidder-info/seedingAlliance.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://b.nativendo.de/cds/rtb/bid?ssp={{.AccountID}}" 2 | maintainer: 3 | email: tech@seeding-alliance.de 4 | gvlVendorID: 371 5 | capabilities: 6 | site: 7 | mediaTypes: 8 | - native 9 | - banner 10 | userSync: 11 | redirect: 12 | url: "https://dmp.nativendo.de/set-uuid?gdpr={{.GDPR}}&gdpr_consent={{.GDPRConsent}}&redirect_url={{.RedirectURL}}" 13 | userMacro: "$UID" 14 | -------------------------------------------------------------------------------- /static/bidder-info/tagoras.yaml: -------------------------------------------------------------------------------- 1 | aliasOf: "vidazoo" 2 | endpoint: "https://exchange.tagoras.io/openrtb/" 3 | maintainer: 4 | email: "prebid@tagoras.io" 5 | userSync: 6 | iframe: 7 | url: https://sync.tagoras.io/api/user/html/6819bdc3e6bb44545c55f843?pbs=true&gdpr={{.GDPR}}&gdpr_consent={{.GDPRConsent}}&us_privacy={{.USPrivacy}}&redirect={{.RedirectURL}}&gpp={{.GPP}}&gpp_sid={{.GPPSID}} 8 | userMacro: ${userId} 9 | openrtb: 10 | version: 2.6 -------------------------------------------------------------------------------- /static/bidder-params/minutemedia.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "MinuteMedia Adapter Params", 4 | "description": "A schema which validates params accepted by the MinuteMedia adapter", 5 | "type": "object", 6 | "properties": { 7 | "org": { 8 | "type": "string", 9 | "description": "The organization ID.", 10 | "minLength": 1 11 | } 12 | }, 13 | "required": ["org"] 14 | } -------------------------------------------------------------------------------- /static/bidder-params/videoheroes.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "VideoHeroes Adapter Params", 4 | "description": "A schema which validates params accepted by the VideoHeroes adapter", 5 | "type": "object", 6 | "properties": { 7 | "placementId": { 8 | "type": "string", 9 | "description": "Unique Placement ID of publisher" 10 | } 11 | }, 12 | "required": ["placementId"] 13 | } -------------------------------------------------------------------------------- /static/bidder-info/logicad.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://pbs.ladsp.com/adrequest/prebidserver" 2 | maintainer: 3 | email: "prebid@so-netmedia.jp" 4 | capabilities: 5 | site: 6 | mediaTypes: 7 | - banner 8 | app: 9 | mediaTypes: 10 | - banner 11 | userSync: 12 | redirect: 13 | url: "https://cr-p31.ladsp.com/cookiesender/31?r=true&gdpr={{.GDPR}}&gdpr_consent={{.GDPRConsent}}&ru={{.RedirectURL}}" 14 | userMacro: "$UID" 15 | 16 | -------------------------------------------------------------------------------- /static/bidder-info/lunamedia.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://rtb.lunamedia.live/?pid={{.PublisherID}}" 2 | geoscope: 3 | - USA 4 | maintainer: 5 | email: "cs@lunamedia.io" 6 | capabilities: 7 | site: 8 | mediaTypes: 9 | - banner 10 | - video 11 | app: 12 | mediaTypes: 13 | - banner 14 | - video 15 | userSync: 16 | iframe: 17 | url: "https://sync.lunamedia.live/psync?t=s&e=0&cb={{.RedirectURL}}" 18 | userMacro: "%USER_ID%" 19 | -------------------------------------------------------------------------------- /static/bidder-info/telaria.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://ads.tremorhub.com/ad/rtb/prebid" 2 | maintainer: 3 | email: "github@telaria.com" 4 | gvlVendorID: 202 5 | capabilities: 6 | app: 7 | mediaTypes: 8 | - video 9 | site: 10 | mediaTypes: 11 | - video 12 | userSync: 13 | redirect: 14 | url: "https://pbs.publishers.tremorhub.com/pubsync?gdpr={{.GDPR}}&gdpr_consent={{.GDPRConsent}}&redir={{.RedirectURL}}" 15 | userMacro: "[tvid]" -------------------------------------------------------------------------------- /static/bidder-params/aso.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "Adserver.Online Adapter Params", 4 | "description": "A schema which validates params accepted by the aso adapter", 5 | "type": "object", 6 | "properties": { 7 | "zone": { 8 | "type": "integer", 9 | "description": "An ID which identifies the zone selling the impression" 10 | } 11 | }, 12 | "required": ["zone"] 13 | } 14 | -------------------------------------------------------------------------------- /static/bidder-params/axonix.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "Axonix Adapter Params", 4 | "description": "A schema which validates params accepted by the Axonix adapter", 5 | "type": "object", 6 | "properties": { 7 | "supplyId": { 8 | "type": "string", 9 | "minLength": 1, 10 | "description": "Unique supply identifier" 11 | } 12 | }, 13 | "required": ["supplyId"] 14 | } 15 | -------------------------------------------------------------------------------- /static/bidder-params/bidtheatre.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "Bidtheatre Adapter Params", 4 | "description": "A schema which validates params accepted by the Bidtheatre adapter", 5 | "type": "object", 6 | "properties": { 7 | "publisherId": { 8 | "type": "string", 9 | "description": "Publisher ID", 10 | "format": "uuid" 11 | } 12 | }, 13 | "required": ["publisherId"] 14 | } -------------------------------------------------------------------------------- /static/bidder-params/ccx.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "Clickonometrics Adapter Params", 4 | "description": "A schema which validates params accepted by the Clickonometrics adapter", 5 | "type": "object", 6 | "properties": { 7 | "placementId": { 8 | "type": "integer", 9 | "description": "Placement ID" 10 | } 11 | }, 12 | "required": ["placementId"] 13 | } -------------------------------------------------------------------------------- /static/bidder-params/deepintent.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "Deepintent Adapter Params", 4 | "description": "A schema which validates params accepted by the Deepintent adapter", 5 | 6 | "type": "object", 7 | "properties": { 8 | "tagId": { 9 | "type": "string", 10 | "description": "An ID which identifies the deepintent ad tag" 11 | } 12 | }, 13 | "required" : [ "tagId" ] 14 | } -------------------------------------------------------------------------------- /static/bidder-params/inmobi.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "InMobi Adapter Params", 4 | "description": "A schema which validates params accepted by the InMobi adapter", 5 | "type": "object", 6 | "properties": { 7 | "plc": { 8 | "type": ["string"], 9 | "description": "An ID corresponding to the placement selling the impression" 10 | } 11 | }, 12 | "required": ["plc"] 13 | } 14 | -------------------------------------------------------------------------------- /static/bidder-params/tpmn.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "TPMN Adapter Params", 4 | "description": "A schema which validates params accepted by the TPMN adapter", 5 | "type": "object", 6 | "properties": { 7 | "inventoryId": { 8 | "description": "Inventory ID", 9 | "type": "integer", 10 | "minLength": 1 11 | } 12 | }, 13 | "required": [ 14 | "inventoryId" 15 | ] 16 | } -------------------------------------------------------------------------------- /static/bidder-params/vidazoo.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "Vidazoo Adapter Params", 4 | "description": "A schema which validates params accepted by the Vidazoo adapter", 5 | "type": "object", 6 | "properties": { 7 | "cId": { 8 | "type": "string", 9 | "description": "The connection id.", 10 | "minLength": 1 11 | } 12 | }, 13 | "required": [ 14 | "cId" 15 | ] 16 | } -------------------------------------------------------------------------------- /static/bidder-params/adtonos.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "AdTonos Adapter Params", 4 | "description": "A schema which validates params accepted by the AdTonos adapter", 5 | 6 | "type": "object", 7 | "properties": { 8 | "supplierId": { 9 | "type": "string", 10 | "description": "ID of the supplier account in AdTonos platform" 11 | } 12 | }, 13 | "required": ["supplierId"] 14 | } -------------------------------------------------------------------------------- /adapters/adquery/adquerytest/exemplary/empty.json: -------------------------------------------------------------------------------- 1 | { 2 | "mockBidRequest": { 3 | "id": "22e26bd9a702bc", 4 | "user": { 5 | "id": "xyz" 6 | }, 7 | "site": { 8 | "page": "https://www.example.com" 9 | }, 10 | "device": { 11 | "ip": "104.28.131.104", 12 | "ua": "PostmanRuntime/7.26.8" 13 | }, 14 | "imp": [], 15 | "bidder": "adquery" 16 | }, 17 | "httpCalls": [], 18 | "expectedBidResponses": [] 19 | } 20 | -------------------------------------------------------------------------------- /adapters/impactify/impactifytest/supplemental/invalid_imp.json: -------------------------------------------------------------------------------- 1 | { 2 | "mockBidRequest": { 3 | "id": "test-request-id", 4 | "ext": { 5 | "bidder": { 6 | "appId": "impactify.io", 7 | "format": "screen", 8 | "style": "impact" 9 | } 10 | } 11 | }, 12 | "expectedMakeRequestsErrors": [ 13 | { 14 | "value": "No valid impressions in the bid request", 15 | "comparison": "literal" 16 | } 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /static/bidder-params/adkernel.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "Adkernel Adapter Params", 4 | "description": "A schema which validates params accepted by the Adkernel adapter", 5 | 6 | "type": "object", 7 | "properties": { 8 | "zoneId": { 9 | "type": "integer", 10 | "minimum": 1, 11 | "description": "Publisher Id to use." 12 | } 13 | }, 14 | "required": ["zoneId"] 15 | } 16 | -------------------------------------------------------------------------------- /static/bidder-params/logan.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "Logan Adapter Params", 4 | "description": "A schema which validates params accepted by the Logan adapter", 5 | "type": "object", 6 | 7 | "properties": { 8 | "placementId": { 9 | "type": "string", 10 | "minLength": 1, 11 | "description": "Placement ID" 12 | } 13 | }, 14 | "required": [ 15 | "placementId" 16 | ] 17 | } -------------------------------------------------------------------------------- /static/bidder-params/melozen.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "MeloZen Adapter Params", 4 | "description": "A schema which validates params accepted by the MeloZen adapter", 5 | "type": "object", 6 | "properties": { 7 | "pubId": { 8 | "type": "string", 9 | "minLength": 1, 10 | "description": "The unique identifier for the publisher." 11 | } 12 | }, 13 | "required": ["pubId"] 14 | } 15 | -------------------------------------------------------------------------------- /adapters/madvertise/madvertisetest/supplemental/required-ext.json: -------------------------------------------------------------------------------- 1 | { 2 | "mockBidRequest": { 3 | "id": "test-request-id", 4 | "imp": [ 5 | { 6 | "id": "test-imp-id-1", 7 | "banner": { 8 | "format": [{"w": 300, "h": 250}] 9 | } 10 | } 11 | ] 12 | }, 13 | "expectedMakeRequestsErrors": [ 14 | { 15 | "value": "expect { or n, but found", 16 | "comparison": "startswith" 17 | } 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /adapters/yieldlab/const.go: -------------------------------------------------------------------------------- 1 | package yieldlab 2 | 3 | const adSlotIdSeparator = "," 4 | const adsizeSeparator = "x" 5 | const adSourceBanner = "" 6 | const adSourceURL = "https://ad.yieldlab.net/d/%v/%v/%v?%v" 7 | const vastMarkup = "Yieldlab" 8 | const creativeID = "%v%v%v" 9 | -------------------------------------------------------------------------------- /modules/moduledeps/deps.go: -------------------------------------------------------------------------------- 1 | package moduledeps 2 | 3 | import ( 4 | "net/http" 5 | 6 | "github.com/prebid/prebid-server/v3/currency" 7 | ) 8 | 9 | // ModuleDeps provides dependencies that custom modules may need for hooks execution. 10 | // Additional dependencies can be added here if modules need something more. 11 | type ModuleDeps struct { 12 | HTTPClient *http.Client 13 | RateConvertor *currency.RateConverter 14 | Geoscope map[string][]string 15 | } 16 | -------------------------------------------------------------------------------- /ortb/request_validator_pmp.go: -------------------------------------------------------------------------------- 1 | package ortb 2 | 3 | import ( 4 | "fmt" 5 | 6 | "github.com/prebid/openrtb/v20/openrtb2" 7 | ) 8 | 9 | func validatePmp(pmp *openrtb2.PMP, impIndex int) error { 10 | if pmp == nil { 11 | return nil 12 | } 13 | 14 | for dealIndex, deal := range pmp.Deals { 15 | if deal.ID == "" { 16 | return fmt.Errorf("request.imp[%d].pmp.deals[%d] missing required field: \"id\"", impIndex, dealIndex) 17 | } 18 | } 19 | return nil 20 | } 21 | -------------------------------------------------------------------------------- /static/bidder-info/escalax.yaml: -------------------------------------------------------------------------------- 1 | endpoint: 'http://bidder_us.escalax.io/?partner={{.SourceId}}&token={{.AccountID}}&type=pbs' 2 | maintainer: 3 | email: 'connect@escalax.io' 4 | geoscope: 5 | - global 6 | endpointCompression: "GZIP" 7 | modifyingVastXmlAllowed: true 8 | capabilities: 9 | app: 10 | mediaTypes: 11 | - banner 12 | - video 13 | - native 14 | site: 15 | mediaTypes: 16 | - banner 17 | - video 18 | - native 19 | -------------------------------------------------------------------------------- /static/bidder-info/flatads.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://bid.rtbshark.com/api/rtbs/adx/rtb?x-net-id={{.PublisherID}}&x-net-token={{.TokenID}}" 2 | endpointCompression: gzip 3 | maintainer: 4 | email: "adxbusiness@flat-ads.com" 5 | openrtb: 6 | version: 2.6 7 | capabilities: 8 | app: 9 | mediaTypes: 10 | - banner 11 | - video 12 | - native 13 | site: 14 | mediaTypes: 15 | - banner 16 | - video 17 | - native 18 | -------------------------------------------------------------------------------- /static/bidder-params/adelement.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "Adelement Params", 4 | "description": "A schema which validates params accepted by the Adelement", 5 | "type": "object", 6 | "properties": { 7 | "supply_id": { 8 | "type": "string", 9 | "description": "Supply id", 10 | "minLength": 1 11 | } 12 | }, 13 | "required": ["supply_id"] 14 | } 15 | -------------------------------------------------------------------------------- /static/bidder-params/adman.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "Adman Adapter Params", 4 | "description": "A schema which validates params accepted by the Adman adapter", 5 | 6 | "type": "object", 7 | "properties": { 8 | "TagID": { 9 | "type": "string", 10 | "description": "An ID which identifies the adman ad tag" 11 | } 12 | }, 13 | "required" : [ "TagID" ] 14 | } 15 | -------------------------------------------------------------------------------- /static/bidder-params/blis.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "Blis Adapter Params", 4 | "description": "A schema which validates params accepted by the Blis adapter", 5 | "type": "object", 6 | 7 | "properties": { 8 | "spid": { 9 | "type": "string", 10 | "minLength": 1, 11 | "description": "Unique supply partner ID provided by Blis" 12 | } 13 | }, 14 | 15 | "required": ["spid"] 16 | } 17 | -------------------------------------------------------------------------------- /static/bidder-params/coinzilla.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "Coinzilla Adapter Params", 4 | "description": "A schema which validates params accepted by the Coinzilla adapter", 5 | "type": "object", 6 | "properties": { 7 | "placementId": { 8 | "type": "string", 9 | "minLength": 1, 10 | "description": "Placement Id or Website Id" 11 | } 12 | }, 13 | "required": ["placementId"] 14 | } 15 | -------------------------------------------------------------------------------- /static/bidder-params/globalsun.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "Globalsun Adapter Params", 4 | "description": "A schema which validates params accepted by the Globalsun adapter", 5 | "type": "object", 6 | "properties": { 7 | "placementId": { 8 | "type": "string", 9 | "minLength": 1, 10 | "description": "Placement ID" 11 | } 12 | }, 13 | "required": [ 14 | "placementId" 15 | ] 16 | } -------------------------------------------------------------------------------- /static/bidder-params/lockerdome.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "LockerDome Adapter Params", 4 | "description": "A schema which validates params accepted by the LockerDome adapter", 5 | "type": "object", 6 | "properties": { 7 | "adUnitId": { 8 | "type": "string", 9 | "description": "A tag which identifies the LockerDome ad unit by adUnitId" 10 | } 11 | }, 12 | "required": ["adUnitId"] 13 | } 14 | -------------------------------------------------------------------------------- /adapters/admixer/admixertest/supplemental/zero-bid-request-error.json: -------------------------------------------------------------------------------- 1 | { 2 | "mockBidRequest": { 3 | "id": "test-request-id", 4 | "imp": [ 5 | ], 6 | "app": { 7 | "bundle": "com.prebid" 8 | }, 9 | "device": { 10 | "ifa":"ec943cb9-61ec-460f-a925-6489c3fcc4e3" 11 | } 12 | }, 13 | "expectedMakeRequestsErrors": [ 14 | { 15 | "value": "No impressions in request", 16 | "comparison": "literal" 17 | } 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /adapters/blis/blistest/supplemental/invalid-imp-ext-bidder.json: -------------------------------------------------------------------------------- 1 | { 2 | "mockBidRequest": { 3 | "id": "test-request", 4 | "imp": [ 5 | { 6 | "id": "test-imp", 7 | "ext": {} 8 | } 9 | ] 10 | }, 11 | 12 | "expectedMakeRequestsErrors": [ 13 | { 14 | "value": "Invalid imp.ext.bidder for impression", 15 | "comparison": "startswith" 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /adapters/tappx/tappxtest/supplemental/no-imps.json: -------------------------------------------------------------------------------- 1 | { 2 | "mockBidRequest": { 3 | "id": "0000000000001", 4 | "test": 1, 5 | "imp": [], 6 | "app": { 7 | "id": "app_001", 8 | "bundle": "com.rovio.angrybirds", 9 | "publisher": { 10 | "id": "2" 11 | } 12 | } 13 | }, 14 | "expectedMakeRequestsErrors": [ 15 | { 16 | "value": "No impression in the bid request", 17 | "comparison": "literal" 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /firstpartydata/tests/extractbidderconfigfpd/bidder-config-config-null.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Bidder config for bidder is null - expected bidder fpd with no data", 3 | "inputRequestData": { 4 | "data": {}, 5 | "bidderconfig": [ 6 | { 7 | "bidders": [ 8 | "appnexus" 9 | ], 10 | "config": null 11 | } 12 | ] 13 | }, 14 | "outputRequestData": {}, 15 | "bidderConfigFPD": { 16 | "appnexus": {} 17 | } 18 | } -------------------------------------------------------------------------------- /static/bidder-info/avocet.yaml: -------------------------------------------------------------------------------- 1 | disabled: true 2 | maintainer: 3 | email: "developers@avocet.io" 4 | gvlVendorID: 63 5 | capabilities: 6 | app: 7 | mediaTypes: 8 | - banner 9 | - video 10 | site: 11 | mediaTypes: 12 | - banner 13 | - video 14 | userSync: 15 | redirect: 16 | url: "https://ads.avct.cloud/getuid?&gdpr={{.GDPR}}&gdpr_consent={{.GDPRConsent}}&us_privacy={{.USPrivacy}}&url={{.RedirectURL}}" 17 | userMacro: "{{UUID}}" 18 | -------------------------------------------------------------------------------- /static/bidder-params/adkernelAdn.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "AdkernelAdn Adapter Params", 4 | "description": "A schema which validates params accepted by the AdkernelAdn adapter", 5 | 6 | "type": "object", 7 | "properties": { 8 | "pubId": { 9 | "type": "integer", 10 | "minimum": 1, 11 | "description": "Publisher Id to use." 12 | } 13 | }, 14 | "required": ["pubId"] 15 | } 16 | -------------------------------------------------------------------------------- /static/bidder-params/datablocks.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "Datablocks Adapter Params", 4 | "description": "A schema which validates params accepted by the Datablocks adapter", 5 | 6 | "type": "object", 7 | "properties": { 8 | "sourceId": { 9 | "type": "integer", 10 | "minimum": 1, 11 | "description": "Website Source Id" 12 | } 13 | }, 14 | "required": ["sourceId"] 15 | } 16 | -------------------------------------------------------------------------------- /static/bidder-params/teads.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "Teads Adapter Params", 4 | "description": "A schema which validates params accepted by the Teads adapter", 5 | 6 | "type": "object", 7 | "properties": { 8 | "placementId": { 9 | "type": "integer", 10 | "description": "The placement id.", 11 | "minimum": 1 12 | } 13 | }, 14 | "required": ["placementId"] 15 | } -------------------------------------------------------------------------------- /adapters/between/betweentest/supplemental/zero-bid-request-error.json: -------------------------------------------------------------------------------- 1 | { 2 | "mockBidRequest": { 3 | "id": "test-request-id", 4 | "imp": [ 5 | ], 6 | "app": { 7 | "bundle": "com.prebid" 8 | }, 9 | "device": { 10 | "ifa": "ec943cb9-61ec-460f-a925-6489c3fcc4e3" 11 | } 12 | }, 13 | "expectedMakeRequestsErrors": [ 14 | { 15 | "value": "No valid Imps in Bid Request", 16 | "comparison": "literal" 17 | } 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /adapters/kidoz/kidoztest/supplemental/missing-ext.json: -------------------------------------------------------------------------------- 1 | { 2 | "mockBidRequest": { 3 | "id": "test-request-id", 4 | "imp": [ 5 | { 6 | "id": "test-impression-id-1", 7 | "banner": { 8 | "format": [ 9 | { 10 | "w": 320, 11 | "h": 50 12 | } 13 | ] 14 | } 15 | } 16 | ] 17 | }, 18 | "expectedMakeRequestsErrors": [ 19 | { 20 | "value": "impression extensions required", 21 | "comparison": "literal" 22 | } 23 | ] 24 | } -------------------------------------------------------------------------------- /static/bidder-info/advangelists.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "http://nep.advangelists.com/xp/get?pubid={{.PublisherID}}" 2 | maintainer: 3 | email: "prebid@advangelists.com" 4 | capabilities: 5 | site: 6 | mediaTypes: 7 | - banner 8 | - video 9 | 10 | app: 11 | mediaTypes: 12 | - banner 13 | - video 14 | userSync: 15 | iframe: 16 | url: "https://nep.advangelists.com/xp/user-sync?acctid={aid}&&redirect={{.RedirectURL}}" 17 | userMacro: "$UID" 18 | 19 | -------------------------------------------------------------------------------- /static/bidder-info/aja.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://ad.as.amanad.adtdp.com/v1/bid/4" 2 | maintainer: 3 | email: "dev@aja-kk.co.jp" 4 | capabilities: 5 | site: 6 | mediaTypes: 7 | - banner 8 | - video 9 | 10 | app: 11 | mediaTypes: 12 | - banner 13 | - video 14 | userSync: 15 | redirect: 16 | url: "https://ad.as.amanad.adtdp.com/v1/sync/ssp?ssp=4&gdpr={{.GDPR}}&us_privacy={{.USPrivacy}}&redir={{.RedirectURL}}" 17 | userMacro: "%s" 18 | 19 | -------------------------------------------------------------------------------- /static/bidder-info/ccx.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://delivery.clickonometrics.pl/ortb/prebid/bid" 2 | maintainer: 3 | email: "it@clickonometrics.pl" 4 | gvlVendorID: 773 5 | capabilities: 6 | site: 7 | mediaTypes: 8 | - banner 9 | - video 10 | userSync: 11 | redirect: 12 | url: "https://sync.clickonometrics.pl/prebid/set-cookie?gdpr={{.GDPR}}&gdpr_consent={{.GDPRConsent}}&us_privacy={{.USPrivacy}}&redirurl={{.RedirectURL}}" 13 | userMacro: "${USER_ID}" 14 | -------------------------------------------------------------------------------- /static/bidder-info/dxkulture.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://ads.dxkulture.com/pbs" 2 | maintainer: 3 | email: "devops@dxkulture.com" 4 | capabilities: 5 | app: 6 | mediaTypes: 7 | - banner 8 | - video 9 | site: 10 | mediaTypes: 11 | - banner 12 | - video 13 | userSync: 14 | redirect: 15 | url: "https://ads.dxkulture.com/usync?gdpr={{.GDPR}}&gdpr_consent={{.GDPRConsent}}&us_privacy={{.USPrivacy}}&cb={{.RedirectURL}}" 16 | userMacro: "$UID" 17 | -------------------------------------------------------------------------------- /static/bidder-info/impactify.yaml: -------------------------------------------------------------------------------- 1 | endpoint: "https://sonic.impactify.media/bidder" 2 | maintainer: 3 | email: "contact@impactify.io" 4 | gvlVendorID: 606 5 | capabilities: 6 | site: 7 | mediaTypes: 8 | - banner 9 | - video 10 | userSync: 11 | iframe: 12 | url: "https://sonic.impactify.media/static/cookie_sync.html?gdpr={{.GDPR}}&gdpr_consent={{.GDPRConsent}}&us_privacy={{.USPrivacy}}&redirect_url={{.RedirectURL}}" 13 | userMacro: "{IMPACTIFY_UID}" 14 | -------------------------------------------------------------------------------- /static/bidder-params/madsense.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "madSense Adapter Params", 4 | "description": "A schema which validates params accepted by the madSense adapter", 5 | "type": "object", 6 | "properties": { 7 | "company_id": { 8 | "type": "string", 9 | "description": "An id used to identify madSense company", 10 | "minLength": 1 11 | } 12 | }, 13 | "required": ["company_id"] 14 | } 15 | -------------------------------------------------------------------------------- /static/bidder-params/smrtconnect.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "Smrtconnect Params", 4 | "description": "A schema which validates params accepted by the Smrtconnect", 5 | "type": "object", 6 | "properties": { 7 | "supply_id": { 8 | "type": "string", 9 | "description": "Supply id", 10 | "minLength": 1 11 | } 12 | }, 13 | "required": ["supply_id"] 14 | } 15 | -------------------------------------------------------------------------------- /static/bidder-params/vidoomy.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "title": "Vidoomy Adapter Params", 4 | "description": "A schema which validates params accepted by the Vidoomy adapter", 5 | "type": "object", 6 | "properties": { 7 | "zoneId": { 8 | "type": "string", 9 | "description": "Specific zone ID for this placement, belonging to app/site", 10 | "minLength": 1 11 | } 12 | }, 13 | "required": ["zoneId"] 14 | } -------------------------------------------------------------------------------- /static/bidder-params/yieldmo.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "$schema": "http://json-schema.org/draft-04/schema#", 4 | "title": "Yieldmo Adapter Params", 5 | "description": "A schema which validates params accepted by the Yieldmo adapter", 6 | 7 | "type": "object", 8 | "properties": { 9 | "placementId": { 10 | "type": "string", 11 | "description": "Internal Yieldmo Placement ID" 12 | } 13 | }, 14 | "required": ["placementId"] 15 | } 16 | -------------------------------------------------------------------------------- /adapters/kidoz/kidoztest/supplemental/missing-bidder.json: -------------------------------------------------------------------------------- 1 | { 2 | "mockBidRequest": { 3 | "id": "test-request-id", 4 | "imp": [ 5 | { 6 | "id": "test-impression-id-1", 7 | "banner": { 8 | "format": [ 9 | { 10 | "w": 320, 11 | "h": 50 12 | } 13 | ] 14 | }, 15 | "ext": {} 16 | } 17 | ] 18 | }, 19 | "expectedMakeRequestsErrors": [ 20 | { 21 | "value": "bidder required", 22 | "comparison": "literal" 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /adapters/yahooAds/yahooAdstest/supplemental/required-nobidder-info.json: -------------------------------------------------------------------------------- 1 | { 2 | "mockBidRequest": { 3 | "id": "test-request-id", 4 | "imp": [ 5 | { 6 | "id": "test-imp-id", 7 | "banner": { 8 | "format": [{"w": 728, "h": 90}] 9 | } 10 | } 11 | ] 12 | }, 13 | 14 | "expectedMakeRequestsErrors": [ 15 | { 16 | "value": "imp #0: ext.bidder not provided", 17 | "comparison": "literal" 18 | } 19 | ] 20 | } 21 | --------------------------------------------------------------------------------