New Adapter: Adswag - #4597
Open
westerschmal wants to merge 1 commit into
Open
Conversation
3 tasks
Port of the Go adapter (prebid/prebid-server#4908), authored by the Adswag team. Banner, video, audio; site and app; GVL vendor 1417; consent-gated usersync redirect.
westerschmal
force-pushed
the
new-adapter-adswag
branch
from
August 13, 2026 15:43
a6c29df to
3eba77e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🔧 Type of changes
✨ What's the context?
Adds the Adswag bid adapter — our own port of the Go adapter (prebid/prebid-server#4908, opened alongside by us, the adapter maintainers). Adswag is directly-integrated European supply: banner, video and audio; site and app; EU-hosted endpoint
https://bid.adswag.ai/prebid/bid; GVL vendor 1417; GPP supported; geoscope EEA.🧠 Rationale behind the change
Same semantics as the Go adapter: per-imp param validation (
publisherIdrequired; invalid imps dropped with a bad-input error, valid ones proceed),imp.extrewritten toimp.ext.adswag.placement_id, publisher id promoted tosite.publisher.id/app.publisher.id, everything else passes through in-band. Response side resolves media type per bid (banner/video/audio), backfills w/h/mtype, defaults currency to EUR, and synthesizes iframe markup only for legacy serve-url-only display bids (current production sends markup inadm).modifying-vast-xml-allowed: false— our ad server owns VAST composition and measurement beacons. Consent-gated usersync redirect onev.adswag.ai(uid only with vendor-1417 + Purpose-1 consent).🔎 New Bid Adapter Checklist
Bidder<BidRequest>via the standard HttpRequest/BidderBid typesAdswagTest(WireMock exchange) + IT fixtures🧪 Test plan
AdswagBidderTest: 21/21 (includes a captured-production-response mapping test; fixture tokens synthetic)AdswagTest: 1/1 (full Spring boot + WireMock)BidderParamValidatorTest25/25 andApplicationTest27/27 (config/schema consistency gates, re-run with the adswag yaml registered){ "publisherId": "prebid-test", "placementId": "prebid-test-display" }(display imps must include 300x250;prebid-test-video/prebid-test-audiofor video/audio)🏎 Quality check
Docs PR (one bidder page, pbs + pbs_app_supported metadata): prebid/prebid.github.io#6702