New Adapter: Floxis#4811
Conversation
Adds the Floxis bidder adapter. Standard OpenRTB 2.x server-to-server; region param selects a fixed RTB host (us-e/eu/apac, default us-e); supports banner, video, native, and audio.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
82085dd to
26ab0bf
Compare
… host comment - MakeRequests now sets Content-Type: application/json;charset=utf-8 and Accept: application/json on the outbound POST (the dominant convention across in-tree adapters), asserted in all exemplary test cases. - Reword the bidder-info comment: region/partner are validated as single DNS host-labels prefixed onto the fixed .floxis.tech domain — there is no fixed us-e/eu/apac allowlist (the prior comment misdescribed the SSRF control).
…tner are subdomain labels) Per the dev-guide, a bidder endpoint domain must not be fully variable. Move the fixed .floxis.tech suffix into the bidder-info endpoint template and have resolveBidHost return just the validated region/partner subdomain label. Resolved URLs are unchanged (e.g. https://us-e.floxis.tech/pbs); this matches the fixed-suffix pattern of merged region-routed adapters (rubicon, clydo, mediago, algorix).
…Formats Remove the in-code host-label regex (the params JSON schema already enforces the same pattern before MakeRequests runs), the redundant empty-imp guard (the framework only invokes the adapter with at least one imp), and the explanatory comment blocks. Extract a countFormats helper; resolveBidHost no longer needs to return an error. Schema-level host-label rejection stays covered by params_test.go.
|
Hi — a gentle nudge on this Floxis adapter PR, open since June 3 with no review yet. The matching Java adapter (prebid/prebid-server-java#4529) has already been through a review round with the feedback applied. Whenever a maintainer has bandwidth, I'd appreciate a first pass — glad to address anything. Thanks for your time! |
|
Documentation PR (per the add-new-bidder checklist): prebid/prebid.github.io#6596 — already approved by @muuki88; it sets One ask for a maintainer: the CI workflows on this PR (Validate / Adapter Code Coverage / Validate Merge) are still awaiting first-time-contributor approval, so they've never run — could someone approve the workflow runs? Happy to address anything they or a review turn up. |
|
@bsardo @SyntaxNode @przemkaczmarek — sorry for the direct ping, but this one has been open since June 3 without a first review, so flagging it for your queue. The submission checklist is complete: docs PR prebid/prebid.github.io#6650 ( |
Code coverage summaryNote:
floxisRefer here for heat map coverage report |
| endpoint: "https://{{.Host}}.floxis.tech/pbs" | ||
| maintainer: | ||
| email: prebid@floxis.tech | ||
| gvlVendorID: 1609 |
| # validated in the adapter as a single DNS host-label and prefixed onto the fixed .floxis.tech | ||
| # domain below; request-supplied hostnames are never used. The seat query param is appended in | ||
| # code (not a standard macro). | ||
| endpoint: "https://{{.Host}}.floxis.tech/pbs" |
| # code (not a standard macro). | ||
| endpoint: "https://{{.Host}}.floxis.tech/pbs" | ||
| maintainer: | ||
| email: prebid@floxis.tech |
Code coverage summaryNote:
floxisRefer here for heat map coverage report |



Type of change
Overview
Hi Prebid maintainers,
This PR adds the Floxis bidder adapter to prebid-server. Floxis is an ad exchange; this adapter sends standard OpenRTB 2.x server-to-server bid requests to the Floxis exchange so PBS publishers can access Floxis demand.
Scope
appandsite).modifyingVastXmlAllowed: falsedeclared explicitly.Adapter behavior
imp[].ext.bidder):seat(string, required, minLength 1) — the Floxis seat the publisher buys through; appended url-escaped to the endpoint as?seat=.region(string, optional, defaultus-e) — the regional RTB host, used as a subdomain label. Validated as a DNS label by the params JSON schema.partner(string, optional, defaultfloxis) — white-label partner, used as an additional subdomain label. Validated as a DNS label by the params JSON schema..floxis.tech) is pinned in the adapter'sendpointconfig; only the{{.Host}}subdomain is filled per-request. The subdomain isregion(e.g.us-e.floxis.tech), orpartner-regionfor a named white-label partner (e.g.acme-us-e.floxis.tech); the defaultfloxispartner adds no prefix.region/partnerare constrained to DNS labels by the params schema, so the host is never derived from a request-supplied hostname — this satisfies the "no fully dynamic hostnames" requirement. Which region maps to which datacenter is handled at DNS/LB level, not in the adapter.seat/region/partnerare read from the first imp; a multi-imp request that mixes seats/regions/partners is rejected asBadInput(one request routes to one host).BidRequest; copy-on-write is satisfied by construction (the request is marshalled unchanged).bid.mtype(OpenRTB 2.6) as authoritative (1/2/3/4 → banner/video/audio/native). Whenmtypeis absent, a single-format imp's media type is used; an imp without exactly one format cannot be disambiguated and surfaces aBadServerResponse.Cookie sync
Standard PBS redirect-type sync. The Floxis
/syncendpoint substitutes its own cookie ID into thedestsetuid URL and 302s back. Cookie family isfloxis(the bidder name default).GVL vendor ID
gvlVendorIDis set to 1609 — Floxis (legal entity Ad Tech Company OÜ) is registered as an IAB TCF vendor with GVL ID 1609, so EU/TCF consent is enforced against that vendor ID.Tests
go test ./adapters/floxis/...— passes, 95.5% coverage../validate.sh --nofmt --cov— passes (config registration, params-schema strictness, bidder-info capabilities, alphabetical ordering,go vet).bid.mtype, multi-format imp typed viamtype, multi-format imp withoutmtypesurfacesBadServerResponse, unmatched bid impid, and request with neither site nor app.params_test.go.Docs
Companion docs PR: prebid/prebid.github.io#6596 (approved) — sets
pbs: true,gvl_id: 1609, and documents the PBS endpoints/params.Maintainer
prebid@floxis.techThanks for maintaining the project — happy to iterate on review feedback.