New Adapter: Teal#4765
Draft
ChrisHuie wants to merge 1 commit into
Draft
Conversation
Adds the Teal OpenRTB 2.6 bidder. Teal is a publisher-side bidder exchanging bid requests via https://a.bids.ws/openrtb2/auction. Maintainer: prebid@teal.works GVL Vendor ID: 1378 (Teal Digital Group Ltd) Behavior is a 1:1 port of prebid-server-java's TealBidder; every Java unit-test scenario has a matching Go test. The adapter applies three request-level mutations distinct to Teal's integration model: - per-imp imp.ext.prebid.storedrequest.id = placement (when set) - Site.Publisher.ID and App.Publisher.ID rewritten to the first valid imp's account - request.ext.bids = {"pbs":1} reporting/billing signal Disabled tealplus alias declared via static/bidder-info/tealplus.yaml. Test surface: - 32 unit tests + 15 JSON fixtures (9 exemplary + 6 supplemental) - 95.0% line coverage; race-clean - 3 fuzz harnesses + 3 benchmarks for adapter hardening - doc.go for full mutation contract + cross-language fidelity notes Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Code coverage summaryNote:
tealRefer here for heat map coverage report |
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.
Description
Adds the Teal OpenRTB 2.6 bidder to
prebid-server(Go). Teal is a publisher-side bidder exchanging requests throughhttps://a.bids.ws/openrtb2/auction. Teal already has a Prebid.js adapter and aprebid-server-javaadapter; this PR completes the trifecta with the Go server-side implementation.dev-docs/bidders/teal.mdalready covers Teal across Prebid.js + Prebid Server; the page declarespbs: trueand lists the sameaccount(required) /placement(optional) params our Go adapter consumes. No separate docs PR needed.Behavior
The adapter is a 1:1 port of
prebid-server-java'sorg.prebid.server.bidder.teal.TealBidder; every assertion inTealBidderTest.javahas a matching Go test inteal_test.go.Three request-level mutations distinct to Teal's integration model:
imp.ext.prebid.storedrequest.id = placementinjection (when set)Site.Publisher.IDandApp.Publisher.IDrewritten to the first valid imp'saccountrequest.ext.bids = {"pbs":1}reporting/billing signalAll three are documented inline in
teal.goand pinned by dedicated test cases. The package-leveldoc.goalso captures four cross-language fidelity divergences from Java (placement-pointer typing, URL-validation lenience, NBSP whitespace classification, JSON map-key ordering) so future readers don't have to rediscover them.Test surface
FuzzParseImpExt,FuzzMergeBidsPBSFlag,FuzzModifyImp) — these surfaced a real fidelity bug during development which is fixed and pinned byTestMergeBidsPBSFlag_NullInputHandledAsEmptyb.ReportAllocs()for hot-path measurementNote on test artifacts
The
doc.go,teal_fuzz_test.go, andteal_bench_test.gofiles are not yet standard in the adapter corpus. They're entirely additive (no wire-behavior impact) and were retained because the fuzz harnesses caught a real regression during development. Happy to remove them if reviewers prefer they land in a separate PR — just let me know.Test plan
./validate.shpasses locallygo test ./adapters/teal/... -racepassesgo test ./openrtb_ext/...passesgo test ./config/...passeshttps://a.bids.ws/openrtb2/auctionreachable