Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prebid 8.40.0 #176

Merged
merged 273 commits into from
Mar 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
273 commits
Select commit Hold shift + click to select a range
a90d6c8
Bump github/codeql-action from 2 to 3 (#10856)
dependabot[bot] Dec 18, 2023
5f8ff5f
HadronId Module: implementing user consent in backend calls (#10845)
jlaso Dec 18, 2023
9a0f012
Eids Docs : add missing EID examples (#10844)
3link Dec 18, 2023
332a7d2
Admixer Bid Adaper: add admixerwl alias (#10859)
AdmixerTech Dec 19, 2023
cd787eb
AdagioAnalyticsAdapter: fix function param check (#10860)
osazos Dec 19, 2023
0b59d4d
NoBid Analytics Adapter: support for counting blocked requests for th…
redaguermas Dec 20, 2023
a5c2e06
consentManagementGpp: fix handling of CMP errors (#10811)
dgirardi Dec 20, 2023
104f53f
Taboola Bid Adapter: implement Iframe user sync (#10789)
ahmadlob Dec 20, 2023
2548949
AMX bid adapter: fix timeout handler, bump version (#10744)
nickjacob Dec 20, 2023
2b8aacb
Ucfunnel Bid Adapter: add format support (#10862)
jackhsiehucf Dec 20, 2023
3c632ca
R2B2 Bid Adapter: Initial release (#10702)
alexalukr2b2 Dec 21, 2023
f5e1988
Core: fix headers in ortbConverter readme (#10874)
someden Dec 27, 2023
c6b45c4
SparteoBidAdapter: Add UserSync (#10822)
geoffray-viously Dec 27, 2023
f625c1e
Yandex Bid Adapter: Add rtt (roud trip time) tracking via nurl (#10846)
korobkov-k Dec 27, 2023
ed48e34
AdMatic Bid Adapter : consent management features added (#10813)
fatihkaya84 Dec 27, 2023
9ec2092
Taboola Bid Adapter: Cookie Look Up Logic Fix (#10873)
ahmadlob Dec 27, 2023
984abfa
ZetaGlobalSsp Bid Adapter : support topics module (#10803)
asurovenko-zeta Dec 27, 2023
325cd3c
Adnuntius Bid Adapter: bugfix for storageFunction (#10869)
mikael-lundin Dec 28, 2023
bdbbf09
Prebid 8.29.0 release
prebidjs-release Dec 28, 2023
46784ab
Increment version to 8.30.0-pre
prebidjs-release Dec 28, 2023
cc49968
Yandex Bid Adapter: add support for topicsFpdModule (#10875)
someden Dec 31, 2023
ff27673
Yandex Bid Adapter: add jsdoc (#10884)
someden Dec 31, 2023
233695d
DxKulture Bid Adapter : user syncs improvements (#10738)
bev-devops Jan 2, 2024
04a7659
Mygaru Id System: Initial release (#10848)
GeneGenie Jan 2, 2024
ed05478
Update viantOrtbBidAdapter_spec.js (#10888)
tkrishnaviant Jan 3, 2024
665c894
Stv Bid Adapter: added user id support, adaptation of schain support …
theo-stv Jan 3, 2024
185e97f
Missena Bid Adapter: allow per page capping (#10863)
pdamoc Jan 3, 2024
49904a0
LiveIntent ID Module: Update live-connect version (#10894)
wi101 Jan 3, 2024
136f0bb
Do not require API for video requests (#10895)
robertrmartinez Jan 3, 2024
7a09d81
Price Floors: Failure to Account for 'data.skipRate' (#10872)
bbaresic Jan 4, 2024
aa21bfd
Prebid 8.30.0 release
prebidjs-release Jan 4, 2024
714acd3
Increment version to 8.31.0-pre
prebidjs-release Jan 4, 2024
866be6e
1.Added safechecks for s2s metadapter case 2.Skipped firing client si…
kapil-tuptewar Jan 4, 2024
60e7e96
Discovery Bid Adapter: update buyerId, add ssppid & pmguid, add getUs…
ecoeco163 Jan 4, 2024
cdbe68c
ID5 User Id module - pass gpp string and sid in getId request (#10899)
abazylewicz-id5 Jan 5, 2024
7f2763d
Adnuntius Bid Adapter : bugfix void au ids (#10890)
antosarho Jan 5, 2024
3e6b546
GreenbidsAnalyticsAdapter and GreenbidsRtdProvider: Rework greenbids …
jbogp Jan 5, 2024
d390f6c
Core: add eslint-plugin-jsdoc (#10893)
someden Jan 6, 2024
759c52d
Pangle Bid Adapter : add multi format support (#10909)
pangle-fe Jan 8, 2024
6689373
Criteo bid adapter: remove checks on video context and placement (#10…
dzhang-criteo Jan 8, 2024
b6d7b0a
Discovery Bid Adapter : add title, description, keywords (#10900)
lhxx121 Jan 9, 2024
cf1f150
Ampliffy Bid Adapter: initial commit (#10883)
vicenteampliffy Jan 9, 2024
b93416b
Utils.js (Warning in Integration Tests): add back getWindowFromDocume…
ChrisHuie Jan 9, 2024
2b25ec4
Rubicon: remove transformBidParams function (#10919)
bretg Jan 9, 2024
621cedc
Bump follow-redirects from 1.15.2 to 1.15.4 (#10922)
dependabot[bot] Jan 10, 2024
cdcfe15
Support cdep (#10921)
jefftmahoney Jan 10, 2024
74f6bce
Adkernel Bid Adapter: multiformat imp splitting (#10918)
ckbo3hrk Jan 10, 2024
c94eb4e
Geodge RTD module: update preload mechanism (#10911)
GeoEdge-r-and-d Jan 11, 2024
28ba8bc
Add option for no signal bidders (#10867)
apukh-magnite Jan 11, 2024
a491505
Criteo bid adapter: add device object to backend request (#10926)
dzhang-criteo Jan 11, 2024
1c5d925
Geolocation RTD provider: make module 'vendorless' for the purposes o…
dgirardi Jan 11, 2024
c3401f9
LiveConnect Bid Adapter : add prebid version to liveConnect (#10920)
wi101 Jan 11, 2024
000a0ad
Insticator Bid Adaptor : add support for playerSize, plcmt, vastXML, …
shubhamc-ins Jan 11, 2024
c2d4a88
Seedtag Bid Adapter : add geom to bidRequest (#10906)
ybootin Jan 11, 2024
1837f79
add dsp_genieeBidAdapter (#10834)
kiyoshi0205 Jan 11, 2024
07f4809
Contxtful RTD Provider: Initial Release (#10550)
sebastienrufiange Jan 11, 2024
b8c6918
Prebid 8.31.0 release
prebidjs-release Jan 11, 2024
759d5ac
Increment version to 8.32.0-pre
prebidjs-release Jan 11, 2024
672b535
Ad2iction Bid Adapter: initial release (#10877)
charlie0228 Jan 12, 2024
c7f4d18
LiveIntent UserId module: Make process and process.env optional (#10905)
3link Jan 12, 2024
19a3281
Smartadserver Bid Adapter: support additional video parameters (#10815)
krzysztofequativ Jan 12, 2024
869edc7
Core: fix jsdoc errors (#10941)
someden Jan 14, 2024
8069abd
Richaudience Bid Adapter : add function onTimeout (#10891)
richaudience Jan 15, 2024
aed0f06
PubMatic Bid Adapter : add support to read and pass badv to adserver …
pm-azhar-mulla Jan 15, 2024
dc80cff
Taboola Bid Adapter : refactor using ortb conversion library (#10910)
barRubi Jan 16, 2024
37aba0a
[Fledge] Add support for seller signals per imp (#10948)
afewcc Jan 16, 2024
5bf8083
Adman Bid Adapter : add GVLID (#10949)
SmartyAdman Jan 16, 2024
d6c39f5
Unicorn Bid Adapter : support id5 (#10947)
faithnh Jan 16, 2024
a63e748
Yahoo SSP Bid Adapter : update maintainer email address (#10954)
DeepthiNeeladri Jan 17, 2024
2e4b98e
EUID Id Module : add support for client side token generation (#10885)
ssundahlTTD Jan 17, 2024
34e6192
add alias support to riseBidAdapter (#10956)
lasloche Jan 17, 2024
faec96e
Richaudience Bid Adapter): change url tracking (#10963)
richaudience Jan 18, 2024
953e387
Prebid 8.32.0 release
prebidjs-release Jan 18, 2024
a7e6ce9
Increment version to 8.33.0-pre
prebidjs-release Jan 18, 2024
f95f520
Send experian rtid in the bid request payload (#10961)
JonGoSonobi Jan 18, 2024
bc7aa93
Tagoras Bid Adapter : Initial release (#10826)
saar120 Jan 22, 2024
d93eb4c
Insticator Bid Adapter: support optional video params (#10969)
shubhamc-ins Jan 22, 2024
4092a05
pass document instance to custom renderer (#10959)
olafbuitelaar Jan 22, 2024
e589c4b
Oxxion Rtd Module: tracking time to run (#10955)
matthieularere-msq Jan 22, 2024
01ef25e
IQX Bid Adapter : initial release (#10952)
IQzoneIT Jan 22, 2024
a8d36a6
AJA Bid Adapter: add Global Placement ID support, remove native/video…
0tarof Jan 23, 2024
48d8766
AdFusion Bid Adapter : currency support (#10938)
AdFusionPrebid Jan 23, 2024
65fd605
[TECH-6244] fix: add gvlid to adot adapter (#11) (#10975)
ramyferjaniadot Jan 23, 2024
5a73e16
Agma Analytics Module : fix getting global config data (#10968)
steffenmllr Jan 23, 2024
c6a9ebc
ID5 ID Module : ID5 will be able to optionally delegate its logic to …
cosenmarco Jan 23, 2024
a189b32
JSdoc Lint Fixes for Multiple ID Modules (#10972)
ChrisHuie Jan 23, 2024
aa24e10
JSdoc Linting Fixes for Multiiple RTD Modules (#10973)
ChrisHuie Jan 23, 2024
b7f60d8
Insticator Bid Adaptor: add support for bidder video params (#10976)
shubhamc-ins Jan 24, 2024
12430d7
Conversant adapter: use ortbConverter to handle requests and response…
johnwier Jan 24, 2024
a40061e
Missena Bid Adapter: send cookieDeprecationLabel and prebid version (…
pdamoc Jan 24, 2024
ec5880b
zMaticoo Bid Adapter : Initial Release (#10881)
lxj15398019970 Jan 25, 2024
57c18bd
MediaGo Bid Adapter : add pmguid, title, description, keywords and s…
Yimilh Jan 25, 2024
379b687
Discovery Bid Adapter : not filter params (#10965)
ecoeco163 Jan 25, 2024
4cd9d50
appnexus Bid Adapter - DSA support (#10971)
jsnellbaker Jan 26, 2024
73310f1
NextMillennium Bid Adapter : currency support in request (#10871)
mhlm Jan 26, 2024
f78996d
Core & PBS adapter: fix race condition between network timeout and au…
dgirardi Jan 26, 2024
3ab9a57
Prebid 8.33.0 release
prebidjs-release Jan 26, 2024
904359e
Increment version to 8.34.0-pre
prebidjs-release Jan 26, 2024
0dc3d59
Discovery Bid Adapter : synchronize mguid from third party cookie to …
lhxx121 Jan 26, 2024
e37ba4e
JSdoc Lint Fixes for Multiple Adapters (#10967)
ChrisHuie Jan 26, 2024
1c0f80f
update mail (#10992)
ikagotso Jan 27, 2024
ba42d90
Grid bid adapter : do not send topics along requests to the backend (…
leonardlabat Jan 29, 2024
17f3468
dfpAdServerVideo: add several parameters do DFP URLs (#10977)
dgirardi Jan 29, 2024
07962d6
SmileWanted - Add Video Instream, Video Outstream and Native support …
QuentinGallard Jan 30, 2024
1ec144f
GC-179 Simpliy the userId module, and added feature to allow customer…
southern-growthcode Jan 30, 2024
c161e0c
E2E testing: Remove @wdio/sync and update @wdio/* to the latest (#10990)
jamarzka Jan 30, 2024
eee58b0
Yandex Analytics Adapter: initial release (#10876)
enovikov11 Jan 30, 2024
2592706
MgidX Bid Adapter: add optional region param (#10612)
xmgiddev Jan 30, 2024
ad85b03
Video module: log error when adUnit provides unknown player div ID (#…
dgirardi Jan 30, 2024
0815414
ZetaGlobalSsp: bugfix (#10882)
asurovenko-zeta Jan 30, 2024
951d7d0
Yieldmo Bid Adapter : send topics in the Bid Request (#10892)
desidiver Jan 30, 2024
2171ca4
SilverMob adapter initial commit (#10896)
freemmy Jan 30, 2024
ffd5706
Update appnexusBidAdapter.js (#11009)
patmmccann Jan 31, 2024
4fbb1c7
Topics fpd module : fix for intermitent failing test (#11013)
jlquaccia Jan 31, 2024
1b4a1ce
Appnexus Bid Adapter: Update DSA field names (#11027)
jsnellbaker Jan 31, 2024
d000ec8
Adding gpc in the bid request (#11028)
desidiver Feb 1, 2024
0ad3244
Livewrapped Bidder: add support for ortb2imp (#11026)
bjorn-lw Feb 1, 2024
7f0732f
BeOp Bid Adapter: add eids support (#11025)
sebrobert Feb 1, 2024
30513cf
AdagioBidAdapter: don't try to compute slot position if element is hi…
osazos Feb 1, 2024
7d3ff58
priceFloors: do not log error on missing floor definitions (#11037)
dgirardi Feb 1, 2024
804d078
Prebid 8.34.0 release
prebidjs-release Feb 2, 2024
d53dae2
Increment version to 8.35.0-pre
prebidjs-release Feb 2, 2024
60b6ada
OpenX Bid Adapter: add ortb2Imp to PAAPI auctionSignals (#11012)
laurb9 Feb 3, 2024
9961236
ZetaGlobalSsp Bid Adapter : cleanup object (#11049)
asurovenko-zeta Feb 4, 2024
3dc8dea
zmaticoo Bid Adapter : add support for video (#11016)
lxj15398019970 Feb 5, 2024
6f93a5b
ZetaGlobalSsp: provide device.sua object (#11050)
asurovenko-zeta Feb 5, 2024
16ee425
Rise BidAdapter : add support for gpp (#11051)
innay Feb 5, 2024
6e13ea0
MinuteMedia BidAdapter : add support for gpp (#11052)
innay Feb 5, 2024
860924f
feat: remove dependency on EID Allowlist [ADDR-2801] (#10988)
sajidbsk Feb 5, 2024
1dfd7eb
Bump release-drafter/release-drafter from 5 to 6 (#11053)
dependabot[bot] Feb 6, 2024
643930f
Criteo bid adatper: add logic to handle dsa in bid request/response (…
vraybaud Feb 6, 2024
6733fe8
Onetag Bid Adapter: add DSA support (#11036)
onetag-dev Feb 6, 2024
00fd7c1
Add GVLID to illuminBidAdapter module. (#11060)
saar120 Feb 6, 2024
7260a2d
PGAMSSP Bidder Adapter: add id5id (#11024)
PGAMSSP Feb 6, 2024
f8858ae
Missena Bid Adapter: add session identifier (#11058)
pdamoc Feb 6, 2024
88b7477
Grid bid adapter: add logic to handle dsa in bid request/response (#1…
vraybaud Feb 6, 2024
36906f7
Sharethrough Bid Adapter: support Fledge + refine video-placement req…
jefftmahoney Feb 7, 2024
8fbd6a3
Innity Bid Adapter: handle empty response from server (#10960)
khonghau-cha Feb 7, 2024
66bab27
Add skippedReason property to floorData. (#11040)
bbaresic Feb 7, 2024
bfbce73
GumGum Bid Adapter: fix size in the bid response for multi size slot …
MartinGumGum Feb 7, 2024
f380912
Addition of ImproveDigital's Topics API iframe (#10986)
cciocov Feb 7, 2024
8931850
Core: use same transaction ID for twin ad units (#10962)
dgirardi Feb 7, 2024
6342942
snigel Bid Adapter : pass more information to backend (#10987)
snigelweb Feb 7, 2024
35eb3d4
rayn rtd provider module (#11054)
aleksandar-rayn Feb 7, 2024
d8c2ffd
mediasquare Bid Adapter: add DSA support (#11070)
matthieularere-msq Feb 7, 2024
9f5e205
PBjs Core : add ability to inject tracking in video (#10191)
matthieularere-msq Feb 7, 2024
9270339
Adform Bid Adapter: add DSA support (#11066)
braizhas Feb 7, 2024
796ad95
Vidazoo Bid Adapter: Implement onBidWon (#11057)
saar120 Feb 7, 2024
e410b28
Adquery Bid Adapter : IdSystem fix getId and decode method, added use…
adquery Feb 8, 2024
cd4717c
NextMillenium Bid Adapter : added support for the keywords parameter …
mhlm Feb 8, 2024
e41a174
Contentexchange Bid Adapter: add gvlid (#11079)
contentexchange Feb 8, 2024
fe4a2f6
Prebid 8.35.0 release
prebidjs-release Feb 8, 2024
61ba3fe
Increment version to 8.36.0-pre
prebidjs-release Feb 8, 2024
3548745
Core: fix missing AD_RENDER_SUCCEDED for outstream renderers (#11073)
dgirardi Feb 8, 2024
f31058c
IX Bid Adapter: support DSA fields [ADDR-2990] (#11069)
sajidbsk Feb 8, 2024
6eaae9d
PBjs Core Utils: fix deepEqual() to work correctly on sites where Arr…
samuel-palmer-relevant-digital Feb 8, 2024
e8426c7
Yieldlab Bid Adapter: Add Digital Services Act (DSA) handling (#10981)
nkloeber Feb 8, 2024
6fddf80
Fixed build and improved docs (#11078)
enovikov11 Feb 8, 2024
dbbbccd
Build system: add --no-lint-warnings option (#11082)
dgirardi Feb 8, 2024
43e3980
dsaControl module: Reject bids without meta.dsa when required (#10982)
dgirardi Feb 8, 2024
4047495
Prebid 8.36.0 release
prebidjs-release Feb 8, 2024
8bda2ce
Increment version to 8.37.0-pre
prebidjs-release Feb 8, 2024
f7163de
NoBid Analytics Adapter: added support for flag to control bidWon and…
redaguermas Feb 10, 2024
e13bd53
Microad Bid Adapter: send gpid and other to our request. (#11076)
kida-yuga Feb 12, 2024
55fa1a5
StroeerCore Bid Adapter: add DSA support (#11083)
philipwatson Feb 12, 2024
aa092c0
Teads adapter: add dsa info support in bid request & response (#11080)
github-christophe-oudar Feb 13, 2024
0862952
Richaudience Bid Adapter : add compatibility to GPP (#11022)
richaudience Feb 13, 2024
5e7b34b
add OpenX topics iframe (#11039)
bwschmidt Feb 13, 2024
6eeb99e
✨ add sellerCurrency to fledge auction config for criteo bid adapter …
vraybaud Feb 14, 2024
7fbe4e9
greenbids Analytics Adapter: fix double sampling bug (#11090)
jbogp Feb 14, 2024
8df7a80
mediasquare Bid Adapter: minor change with floors (#11100)
matthieularere-msq Feb 14, 2024
b627687
PAAPI/fledgeForGpt: make auction configs available independently from…
dgirardi Feb 14, 2024
24b6d71
Add Onetag topics iframe (#11091)
onetag-dev Feb 14, 2024
0b62955
Use built-in sampling (#11041)
3link Feb 14, 2024
5b4bfd9
Rubicon Bid Adapter: pass DSA fields (#10974)
apukh-magnite Feb 14, 2024
f9584c6
Fix build (#11098)
someden Feb 14, 2024
8e5a2b9
Lucead Bid Adapter: Add new adapter (#11068)
aymeric45 Feb 14, 2024
40e3f40
Adnuntius Bid Adapter: Allow user ID to be passed as parameter (#11029)
mikael-lundin Feb 14, 2024
13cbc7c
Adagio Bid Adapter: add DSA support (#11096)
osazos Feb 15, 2024
9379982
RTB House Bid Adapter: add DSA support (#11097)
piotrj-rtbh Feb 15, 2024
57325f2
The Moneytizer Bid Adapter: initial release (#11047)
themoneytizer Feb 15, 2024
4552111
Prebid 8.37.0 release
prebidjs-release Feb 15, 2024
11c77af
Increment version to 8.38.0-pre
prebidjs-release Feb 15, 2024
a0194cf
ZetaGlobalSsp Analytics Adapter: keep only needed fields in event (#1…
asurovenko-zeta Feb 18, 2024
cd328b6
Add AdButler bid adapter (#11011)
trevoradbutler Feb 19, 2024
aaf2951
define split between exploratory and non exploratory sides of the det…
jbogp Feb 19, 2024
67210fa
Taboola Bid Adapter: fix cookie look up logic and gpp extracting (#1…
ahmadlob Feb 19, 2024
969e417
add schain support (#11111)
0tarof Feb 20, 2024
8cce0b8
Readpeak Bid Adapter : remove click url encoding (#11120)
readpeak-user Feb 20, 2024
7995508
fix handling of default settings for rubiconBidAdapter (#11114)
smozhaiskyi-rubi Feb 20, 2024
be08dc8
Zeta Global Ssp Adapter: remove null values from payload (#11092)
asurovenko-zeta Feb 20, 2024
0606e77
Kimberlite Bidder Adapter: initial commit (#11032)
solta-dev Feb 20, 2024
6ecd4a9
Pass TTD cookie through prebid endpoint (#11119)
wi101 Feb 20, 2024
ff58535
Euid id module: cstg opt out enforcement (#11075)
ssundahlTTD Feb 20, 2024
f58100a
Conversant Adapter: fix response handling (#11122)
johnwier Feb 20, 2024
2505322
Yieldmo Bid Adapter: send topics as string for request (#11121)
desidiver Feb 21, 2024
708bc86
Bump ip from 1.1.8 to 1.1.9 (#11124)
dependabot[bot] Feb 21, 2024
f5b71cd
Core: rendering logic overhaul, PUC-less native rendering (#10819)
dgirardi Feb 21, 2024
adbcf71
33Across User ID sub-module: Introduce first-party ID support (#10714)
macinjosh32 Feb 21, 2024
11bbd29
New bidder adapter : RixEngine (#11035)
xiaochang Feb 22, 2024
b2ace9f
change expire recommendation from 90 to 30 (#11130)
carlosfelix Feb 22, 2024
6a8f2d5
add required version (#11127)
ryohamadaumt Feb 22, 2024
9485c6b
cleanup references to allowAuctionWithoutConsent (#11129)
bretg Feb 22, 2024
e3f03be
fix video object null in validate request (#11128)
shubhamc-ins Feb 22, 2024
2c7ae8a
Reset Digital Bid Adapter: updating users syncs (#11126)
jhon-reset Feb 22, 2024
de841da
Alkimi Bid Adapter: add custom user object (#11093)
kalidas-alkimi Feb 22, 2024
ce5c5aa
Unified ID 2.0 Module: Update documentation (#11105)
mcollins-ttd Feb 23, 2024
0906043
Prebid 8.38.0 release
prebidjs-release Feb 23, 2024
8c37489
Increment version to 8.39.0-pre
prebidjs-release Feb 23, 2024
f869118
GreenbidsAnalyticsAdapter: bump version following previous PR (#11135)
jbogp Feb 23, 2024
ecc3441
Rubicon Bid Adapter: Pass on carbon segtaxes (#10985)
spotxslagle Feb 24, 2024
ab7068e
Blockthrough Bid Adapter: initial release (#10870)
PavloMalashnyak Feb 24, 2024
d93032b
OMS Adapter: add new adapter (#10924)
prBigBrother Feb 24, 2024
f2eb49b
zMaticoo Bid Adapter : add onBidWon function (#11056)
lxj15398019970 Feb 24, 2024
d607309
Criteo bid adapter: add fledge timeout and group limits (#11125)
dzhang-criteo Feb 24, 2024
cd6934c
Reset Digital Bid Adapter: usersync url (#11138)
jhon-reset Feb 24, 2024
2e40035
Yandex: use ortb2 info & Core: add webdriver flag (#11110)
chernodub Feb 24, 2024
98162dc
Logicad Bid Adapter: Add paapi support (#11123)
naru-tsujine Feb 24, 2024
2a3b64f
Magnite Analytics: Check if prebid cache was called for video trackin…
robertrmartinez Feb 26, 2024
1ecfe8e
Taboola Bid Adapter - support topics handling (#11139)
aleskanderl Feb 26, 2024
5b6dd8c
Adagio Bid Adapter: fix ortb delivery video param validation (#11144)
osazos Feb 26, 2024
9fdc06a
JsDoc Lint Fix : multiple adapters and modules (#11103)
ChrisHuie Feb 26, 2024
c794435
Mediaimpact Bid Adapter: initial release (#11099)
nalexand Feb 27, 2024
37d368e
Lucead Adapter: update (#11143)
aymeric45 Feb 28, 2024
6669609
ZetaGlobalSsp Bid Adapter: provide dspId into bid (#11150)
asurovenko-zeta Feb 28, 2024
72e2ee6
Adspirit Bid Adapter: initial release (#10939)
carsten1980 Feb 28, 2024
b4d9197
fix hadron ID module name (#11151)
dgirardi Feb 29, 2024
6184940
Criteo bid adapter: raise Fledge timeout (#11152)
dzhang-criteo Feb 29, 2024
e97e700
Stn Bid Adapter: initial release (#11085)
lasloche Feb 29, 2024
9427cd3
Fixed use of adUnitId for analytics purpose (#11160)
pm-azhar-mulla Mar 1, 2024
0a0343b
adspiritBidAdapter - fix lint errors in unit test file (#11163)
jsnellbaker Mar 1, 2024
6347324
Prebid 8.39.0 release
prebidjs-release Mar 1, 2024
9da6ef0
Increment version to 8.40.0-pre
prebidjs-release Mar 1, 2024
99247d0
Opsco Bid Adapter : initial release (#11112)
ops-co Mar 3, 2024
eb08d22
ID5 User Id module - expose euid as a separate eid object (#11158)
abazylewicz-id5 Mar 4, 2024
94bb619
Triplelift Bid Adapter: Optimize EID Signals (#11168)
patrickloughrey Mar 4, 2024
37e91e7
Azerion Edge RTD Module: Initial release (#11134)
garciapuig Mar 5, 2024
b97b55a
feat: pangle multi format (#11175)
pangle-fe Mar 5, 2024
e873c71
NoBid Analytics Adapter: support for multiple currencies (#11171)
redaguermas Mar 5, 2024
2553471
Fix for bids without userId specified. (#11170)
antosarho Mar 5, 2024
9cb0df5
adstirBidAdapter support topic api (#11177)
ryohamadaumt Mar 6, 2024
1a3a6ed
inline ttd and refactor test (#11174)
wi101 Mar 6, 2024
06bf1e4
NextMillennium Bid Adapter: removed the use of the events module (#11…
mhlm Mar 6, 2024
0210d2e
Colossus Bid Adapter: Add GPP Support and Accept eids from publisher …
bhasker-ddh Mar 6, 2024
0bb0df1
Cwire adapter: Add gvl_id for tcfeu compliance  (c-wire/support#117) …
espen-j Mar 7, 2024
48e88f3
Vidazoo Bid Adapter : more ortb2 data and fledge support (#11182)
saar120 Mar 7, 2024
2b3a62b
[JW Player RTD Module] Deprecate playerID (#11179)
karimMourra Mar 7, 2024
e7eb2be
Delete test/spec/modules/enrichmentFpdModule_spec.js (#11188)
patmmccann Mar 8, 2024
8a92067
Prebid 8.40.0 release
prebidjs-release Mar 8, 2024
21ee608
Merge tag 'tags/8.40.0' into prebid-8.40.0
yagovelazquezfreestar Mar 20, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ aliases:
- &environment
docker:
# specify the version you desire here
- image: circleci/node:12.16.1-browsers
- image: cimg/node:16.20-browsers
resource_class: xlarge
# Specify service dependencies here if necessary
# CircleCI maintains a library of pre-built images
Expand Down
36 changes: 34 additions & 2 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,25 @@ module.exports = {
node: {
moduleDirectory: ['node_modules', './']
}
},
'jsdoc': {
mode: 'typescript',
tagNamePreference: {
'tag constructor': 'constructor',
extends: 'extends',
method: 'method',
return: 'return',
}
}
},
extends: 'standard',
extends: [
'standard',
'plugin:jsdoc/recommended'
],
plugins: [
'prebid',
'import'
'import',
'jsdoc'
],
globals: {
'BROWSERSTACK_USERNAME': false,
Expand All @@ -29,6 +42,7 @@ module.exports = {
sourceType: 'module',
ecmaVersion: 2018,
},
ignorePatterns: ['libraries/creative-renderer*'],

rules: {
'comma-dangle': 'off',
Expand All @@ -46,6 +60,24 @@ module.exports = {
'no-undef': 2,
'no-useless-escape': 'off',
'no-console': 'error',
'jsdoc/check-types': 'off',
'jsdoc/newline-after-description': 'off',
'jsdoc/require-jsdoc': 'off',
'jsdoc/require-param': 'off',
'jsdoc/require-param-description': 'off',
'jsdoc/require-param-name': 'off',
'jsdoc/require-param-type': 'off',
'jsdoc/require-property': 'off',
'jsdoc/require-property-description': 'off',
'jsdoc/require-property-name': 'off',
'jsdoc/require-property-type': 'off',
'jsdoc/require-returns': 'off',
'jsdoc/require-returns-check': 'off',
'jsdoc/require-returns-description': 'off',
'jsdoc/require-returns-type': 'off',
'jsdoc/require-yields': 'off',
'jsdoc/require-yields-check': 'off',
'jsdoc/tag-lines': 'off'
},
overrides: Object.keys(allowedModules).map((key) => ({
files: key + '/**/*.js',
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-drafter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
runs-on: ubuntu-latest
steps:
# Drafts your next Release notes as Pull Requests are merged into "master"
- uses: release-drafter/release-drafter@v5
- uses: release-drafter/release-drafter@v6
with:
config-name: release-drafter.yml
env:
Expand Down
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,12 @@ gulp test-coverage
gulp view-coverage
```

Local end-to-end testing can be done with:

```bash
gulp e2e-test --local
```

For Prebid.org members with access to BrowserStack, additional end-to-end testing can be done with:

```bash
Expand Down
8 changes: 2 additions & 6 deletions allowedModules.js
Original file line number Diff line number Diff line change
@@ -1,22 +1,18 @@

const sharedWhiteList = [
];

module.exports = {
'modules': [
...sharedWhiteList,
'criteo-direct-rsa-validate',
'crypto-js',
'live-connect' // Maintained by LiveIntent : https://github.com/liveintent-berlin/live-connect/
],
'src': [
...sharedWhiteList,
'fun-hooks/no-eval',
'just-clone',
'dlv',
'dset'
],
'libraries': [
...sharedWhiteList // empty for now, but keep it to enable linting
],
'creative': [
]
};
44 changes: 44 additions & 0 deletions creative/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
## Dynamic creative renderers

The contents of this directory are compiled separately from the rest of Prebid, and intended to be dynamically injected
into creative frames:

- `crossDomain.js` (compiled into `build/creative/creative.js`, also exposed in `integrationExamples/gpt/x-domain/creative.html`)
is the logic that should be statically set up in the creative.
- At build time, each folder under 'renderers' is compiled into a source string made available from a corresponding
`creative-renderer-*` library. These libraries are committed in source so that they are available to NPM consumers.
- At render time, Prebid passes the appropriate renderer's source string to the remote creative, which then runs it.

The goal is to have a creative script that is as simple, lightweight, and unchanging as possible, but still allow the possibility
of complex or frequently updated rendering logic. Compared to the approach taken by [PUC](https://github.com/prebid/prebid-universal-creative), this:

- should perform marginally better: the creative only runs logic that is pertinent (for example, it sees native logic only on native bids);
- avoids the problem of synchronizing deployments when the rendering logic is updated (see https://github.com/prebid/prebid-universal-creative/issues/187), since it's bundled together with the rest of Prebid;
- is easier to embed directly in the creative (saving a network call), since the static "shell" is designed to change as infrequently as possible;
- allows the same rendering logic to be used both in remote (cross-domain) and local (`pbjs.renderAd`) frames, since it's directly available to Prebid;
- requires Prebid.js - meaning it does not support AMP/App/Mobile (but it's still possible for something like PUC to run the same dynamic renderers
when it receives them from Prebid, and fall back to separate AMP/App/Mobile logic otherwise).

### Renderer interface

A creative renderer (not related to other types of renderers in the codebase) is a script that exposes a global `window.render` function:

```javascript
window.render = function(data, {mkFrame, sendMessage}, win) { ... }
```

where:

- `data` is rendering data about the winning bid, and varies depending on the bid type - see `getRenderingData` in `adRendering.js`;
- `mkFrame(document, attributes)` is a utility that creates a frame with the given attributes and convenient defaults (no border, margin, and scrolling);
- `sendMessage(messageType, payload)` is the mechanism by which the renderer/creative can communicate back with Prebid - see `creativeMessageHandler` in `adRendering.js`;
- `win` is the window to render into; note that this is not the same window that runs the renderer.

The function may return a promise; if it does and the promise rejects, or if the function throws, an AD_RENDER_FAILED event is emitted in Prebid. Otherwise an AD_RENDER_SUCCEEDED is fired
when the promise resolves (or when `render` returns anything other than a promise).

### Renderer development

Since renderers are compiled into source, they use production settings even during development builds. You can toggle this with
the `--creative-dev` CLI option (e.g., `gulp serve-fast --creative-dev`), which disables the minifier and generates source maps; if you do, take care
to not commit the resulting `creative-renderer-*` libraries (or run a normal build before you do).
9 changes: 9 additions & 0 deletions creative/constants.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
// eslint-disable-next-line prebid/validate-imports
import CONSTANTS from '../src/constants.json';

export const MESSAGE_REQUEST = CONSTANTS.MESSAGES.REQUEST;
export const MESSAGE_RESPONSE = CONSTANTS.MESSAGES.RESPONSE;
export const MESSAGE_EVENT = CONSTANTS.MESSAGES.EVENT;
export const EVENT_AD_RENDER_FAILED = CONSTANTS.EVENTS.AD_RENDER_FAILED;
export const EVENT_AD_RENDER_SUCCEEDED = CONSTANTS.EVENTS.AD_RENDER_SUCCEEDED;
export const ERROR_EXCEPTION = CONSTANTS.AD_RENDER_FAILED_REASON.EXCEPTION;
92 changes: 92 additions & 0 deletions creative/crossDomain.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
import {
ERROR_EXCEPTION,
EVENT_AD_RENDER_FAILED, EVENT_AD_RENDER_SUCCEEDED,
MESSAGE_EVENT,
MESSAGE_REQUEST,
MESSAGE_RESPONSE
} from './constants.js';

const mkFrame = (() => {
const DEFAULTS = {
frameBorder: 0,
scrolling: 'no',
marginHeight: 0,
marginWidth: 0,
topMargin: 0,
leftMargin: 0,
allowTransparency: 'true',
};
return (doc, attrs) => {
const frame = doc.createElement('iframe');
Object.entries(Object.assign({}, attrs, DEFAULTS))
.forEach(([k, v]) => frame.setAttribute(k, v));
return frame;
};
})();

export function renderer(win) {
return function ({adId, pubUrl, clickUrl}) {
const pubDomain = new URL(pubUrl, window.location).origin;

function sendMessage(type, payload, responseListener) {
const channel = new MessageChannel();
channel.port1.onmessage = guard(responseListener);
win.parent.postMessage(JSON.stringify(Object.assign({message: type, adId}, payload)), pubDomain, [channel.port2]);
}

function onError(e) {
sendMessage(MESSAGE_EVENT, {
event: EVENT_AD_RENDER_FAILED,
info: {
reason: e?.reason || ERROR_EXCEPTION,
message: e?.message
}
});
// eslint-disable-next-line no-console
e?.stack && console.error(e);
}

function guard(fn) {
return function () {
try {
return fn.apply(this, arguments);
} catch (e) {
onError(e);
}
};
}

function onMessage(ev) {
let data;
try {
data = JSON.parse(ev.data);
} catch (e) {
return;
}
if (data.message === MESSAGE_RESPONSE && data.adId === adId) {
const renderer = mkFrame(win.document, {
width: 0,
height: 0,
style: 'display: none',
srcdoc: `<script>${data.renderer}</script>`
});
renderer.onload = guard(function () {
const W = renderer.contentWindow;
// NOTE: on Firefox, `Promise.resolve(P)` or `new Promise((resolve) => resolve(P))`
// does not appear to work if P comes from another frame
W.Promise.resolve(W.render(data, {sendMessage, mkFrame}, win)).then(
() => sendMessage(MESSAGE_EVENT, {event: EVENT_AD_RENDER_SUCCEEDED}),
onError
)
});
win.document.body.appendChild(renderer);
}
}

sendMessage(MESSAGE_REQUEST, {
options: {clickUrl}
}, onMessage);
};
}

window.pbRender = renderer(window);
4 changes: 4 additions & 0 deletions creative/renderers/display/constants.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
// eslint-disable-next-line prebid/validate-imports
import CONSTANTS from '../../../src/constants.json';

export const ERROR_NO_AD = CONSTANTS.AD_RENDER_FAILED_REASON.NO_AD;
21 changes: 21 additions & 0 deletions creative/renderers/display/renderer.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import {ERROR_NO_AD} from './constants.js';

export function render({ad, adUrl, width, height}, {mkFrame}, win) {
if (!ad && !adUrl) {
throw {
reason: ERROR_NO_AD,
message: 'Missing ad markup or URL'
};
} else {
const doc = win.document;
const attrs = {width, height};
if (adUrl && !ad) {
attrs.src = adUrl;
} else {
attrs.srcdoc = ad;
}
doc.body.appendChild(mkFrame(doc, attrs));
}
}

window.render = render;
14 changes: 14 additions & 0 deletions creative/renderers/native/constants.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// eslint-disable-next-line prebid/validate-imports
import CONSTANTS from '../../../src/constants.json';

export const MESSAGE_NATIVE = CONSTANTS.MESSAGES.NATIVE;
export const ACTION_RESIZE = 'resizeNativeHeight';
export const ACTION_CLICK = 'click';
export const ACTION_IMP = 'fireNativeImpressionTrackers';

export const ORTB_ASSETS = {
title: 'text',
data: 'value',
img: 'url',
video: 'vasttag'
}
88 changes: 88 additions & 0 deletions creative/renderers/native/renderer.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
import {ACTION_CLICK, ACTION_IMP, ACTION_RESIZE, MESSAGE_NATIVE, ORTB_ASSETS} from './constants.js';

export function getReplacer(adId, {assets = [], ortb, nativeKeys = {}}) {
const assetValues = Object.fromEntries((assets).map(({key, value}) => [key, value]));
let repl = Object.fromEntries(
Object.entries(nativeKeys).flatMap(([name, key]) => {
const value = assetValues.hasOwnProperty(name) ? assetValues[name] : undefined;
return [
[`##${key}##`, value],
[`${key}:${adId}`, value]
];
})
);
if (ortb) {
Object.assign(repl,
{
'##hb_native_linkurl##': ortb.link?.url,
'##hb_native_privacy##': ortb.privacy
},
Object.fromEntries(
(ortb.assets || []).flatMap(asset => {
const type = Object.keys(ORTB_ASSETS).find(type => asset[type]);
return [
type && [`##hb_native_asset_id_${asset.id}##`, asset[type][ORTB_ASSETS[type]]],
asset.link?.url && [`##hb_native_asset_link_id_${asset.id}##`, asset.link.url]
].filter(e => e);
})
)
);
}
repl = Object.entries(repl).concat([[/##hb_native_asset_(link_)?id_\d+##/g]]);

return function (template) {
return repl.reduce((text, [pattern, value]) => text.replaceAll(pattern, value || ''), template);
};
}

function loadScript(url, doc) {
return new Promise((resolve, reject) => {
const script = doc.createElement('script');
script.onload = resolve;
script.onerror = reject;
script.src = url;
doc.body.appendChild(script);
});
}

export function getAdMarkup(adId, nativeData, replacer, win, load = loadScript) {
const {rendererUrl, assets, ortb, adTemplate} = nativeData;
const doc = win.document;
if (rendererUrl) {
return load(rendererUrl, doc).then(() => {
if (typeof win.renderAd !== 'function') {
throw new Error(`Renderer from '${rendererUrl}' does not define renderAd()`);
}
const payload = assets || [];
payload.ortb = ortb;
return win.renderAd(payload);
});
} else {
return Promise.resolve(replacer(adTemplate ?? doc.body.innerHTML));
}
}

export function render({adId, native}, {sendMessage}, win, getMarkup = getAdMarkup) {
const {head, body} = win.document;
const resize = () => sendMessage(MESSAGE_NATIVE, {
action: ACTION_RESIZE,
height: body.offsetHeight,
width: body.offsetWidth
});
const replacer = getReplacer(adId, native);
head && (head.innerHTML = replacer(head.innerHTML));
return getMarkup(adId, native, replacer, win).then(markup => {
body.innerHTML = markup;
if (typeof win.postRenderAd === 'function') {
win.postRenderAd({adId, ...native});
}
win.document.querySelectorAll('.pb-click').forEach(el => {
const assetId = el.getAttribute('hb_native_asset_id');
el.addEventListener('click', () => sendMessage(MESSAGE_NATIVE, {action: ACTION_CLICK, assetId}));
});
sendMessage(MESSAGE_NATIVE, {action: ACTION_IMP});
win.document.readyState === 'complete' ? resize() : win.onload = resize;
});
}

window.render = render;
Loading
Loading