Skip to content

Port Floxis: New Adapter#4529

Open
floxis-admin wants to merge 1 commit into
prebid:masterfrom
floxis-admin:floxis-new-adapter
Open

Port Floxis: New Adapter#4529
floxis-admin wants to merge 1 commit into
prebid:masterfrom
floxis-admin:floxis-new-adapter

Conversation

@floxis-admin
Copy link
Copy Markdown

🔧 Type of changes

  • new bid adapter

✨ Whats the context?

This PR ports the Floxis bid adapter from PBS-Go to PBS-Java. Floxis is an ad exchange; the adapter sends standard OpenRTB 2.x server-to-server bid requests to the Floxis exchange so PBS publishers can access Floxis demand. It is the Java counterpart of the in-review Go adapter prebid/prebid-server#4811.

Scope:

  • Media types: banner, video, native, audio (declared for both app and site).
  • OpenRTB 2.6; GPP supported. The incoming bid request body is forwarded unchanged.
  • Cookie sync: redirect type.
  • modifying-vast-xml-allowed: false.

🧠 Rationale behind the change

Bidder params (imp[].ext.prebid.bidder.floxis):

  • seat (string, required, minLength 1) — the Floxis seat the publisher buys through; appended url-escaped to the endpoint as ?seat=.
  • region (string, optional, enum us-e / eu / apac, default us-e) — selects the regional RTB host.

Endpoint routing uses a fixed allowlist map in adapter code (us-ertb-us-e.floxis.tech, eurtb-eu.floxis.tech, apacrtb-apac.floxis.tech; unknown/empty → us-e), filled into the {{Host}} macro. Routing is never derived from a request-supplied hostname — satisfying the "no fully dynamic hostnames" requirement. seat/region are read from the first imp; the request body is forwarded unchanged (no caller-owned object is mutated).

Bid type resolution treats bid.mtype (OpenRTB 2.6) as authoritative (1/2/3/4 → banner/video/audio/native). When mtype is absent, a single-format imp resolves to that media type; a multi-format imp without mtype cannot be disambiguated and surfaces a badServerResponse, while other bids in the response continue to be processed.

gvlVendorID is intentionally omitted (vendor-id: 0) — Floxis is not currently registered in the IAB Global Vendor List.

🔎 New Bid Adapter Checklist

  • verify email contact works
  • NO fully dynamic hostnames
  • geographic host parameters are NOT required
  • direct use of HTTP is prohibited - implement an existing Bidder interface that will do all the job
  • if the ORTB is just forwarded to the endpoint, use the generic adapter - the adapter is not a plain forward: it performs region-based host routing, url-escaped seat injection, and mtype/single-format bid-type resolution, so a dedicated adapter is warranted
  • cover an adapter configuration with an integration test

🧪 Test plan

  • FloxisBidderTest — 19 unit tests; JaCoCo reports 100% instruction/line and 95% branch coverage on FloxisBidder. Covers region resolution (us-e/eu/apac/default/unknown/null), url-escaping the seat, request-forwarded-unchanged, and the full getMediaTypeForBid matrix (mtype-authoritative for all four types, unsupported mtype, single-format fallback for all four, multi-format-needs-mtype, no-format, imp-not-found), plus per-bid error accumulation.
  • FloxisTest integration test — exercises the full auction path against WireMock and validates the adapter configuration is reachable.
  • mvn test (unit + IT) and mvn checkstyle:check pass locally.

🏎 Quality check

  • Are your changes following our code style guidelines?
  • Are there any breaking changes in your code? — No.
  • Does your test coverage exceed 90%? — Yes (100% line, 95% branch on the bidder).
  • Are there any erroneous console logs, debuggers or leftover code in your changes? — No.

Companion Go adapter: prebid/prebid-server#4811. The corresponding prebid.github.io documentation PR is forthcoming.

Please add the do not port label per the porting guide (I do not have label permissions on this repo).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant