From 7b2fab6c2c4b828924b8a9605d99b086f74217c0 Mon Sep 17 00:00:00 2001 From: floxis-tech Date: Thu, 25 Sep 2025 17:31:30 +0300 Subject: [PATCH 1/3] Floxis Bid Adapter : initial release --- dev-docs/bidders/floxis.md | 150 +++++++++++++++++++++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 dev-docs/bidders/floxis.md diff --git a/dev-docs/bidders/floxis.md b/dev-docs/bidders/floxis.md new file mode 100644 index 0000000000..675e35b403 --- /dev/null +++ b/dev-docs/bidders/floxis.md @@ -0,0 +1,150 @@ +--- +layout: bidder +title: Floxis +description: Prebid Floxis Bidder Adapter +biddercode: floxis +pbjs: true +pbs: false +media_types: banner, video, native +safeframes_ok: true +sidebarType: 1 +tcfeu_supported: true +dsa_supported: false +gvl_id: none +usp_supported: true +coppa_supported: true +gpp_supported: true +schain_supported: true +dchain_supported: false +deals_supported: false +floors_supported: yes +fpd_supported: false +prebid_member: false +multiformat_supported: will-bid-on-any +ortb_blocking_supported: partial +privacy_sandbox: no +--- + +### Note + +The Floxis bidder adapter enables integration with the Floxis programmatic advertising platform via Prebid.js. It supports banner, video, and native formats, and is designed for multi-partner, multi-region use. Please contact Floxis to set up your partner account and obtain the required parameters. + +### Bid Params + +{: .table .table-bordered .table-striped } + +| Name | Scope | Description | Example | Type | +|------|-------|-------------|---------|------| +| `partner` | required | Partner identifier provided by Floxis | `"floxis"` | `string` | +| `placementId` | required | Placement identifier provided by Floxis | `123` | `integer` | + +### AdUnit Configuration for Banner + +```javascript +var adUnits = [{ + code: 'banner-ad-div', + mediaTypes: { + banner: { + sizes: [[300, 250], [728, 90]] + } + }, + bids: [{ + bidder: 'floxis', + params: { + partner: 'floxis', + placementId: 123, + } + }] +}]; +``` + +### AdUnit Configuration for Video + +```javascript +var adUnits = [{ + code: 'video-ad-div', + mediaTypes: { + video: { + context: 'instream', + playerSize: [[640, 480]], + mimes: ['video/mp4'], + protocols: [2, 3, 5, 6], + minduration: 5, + maxduration: 30 + } + }, + bids: [{ + bidder: 'floxis', + params: { + partner: 'floxis', + placementId: 456 + } + }] +}]; +``` + +### AdUnit Configuration for Native + +```javascript +var adUnits = [{ + code: 'native-ad-div', + mediaTypes: { + native: { + title: { + required: true, + len: 80 + }, + body: { + required: true + }, + image: { + required: true, + sizes: [150, 50] + }, + sponsoredBy: { + required: true + } + } + }, + bids: [{ + bidder: 'floxis', + params: { + partner: 'floxis', + placementId: 789 + } + }] +}]; +``` + +### Example + +```javascript +var pbjs = pbjs || {}; +pbjs.que = pbjs.que || []; + +pbjs.que.push(function() { + pbjs.addAdUnits([{ + code: 'div-gpt-ad-1234567890123-0', + mediaTypes: { + banner: { + sizes: [[300, 250], [320, 50]] + } + }, + bids: [{ + bidder: 'floxis', + params: { + partner: 'floxis', + placementId: 123 + } + }] + }]); + + pbjs.requestBids({ + timeout: 3000, + bidsBackHandler: function(bidResponses) { + // Handle bid responses + pbjs.setTargetingForGPTAsync(); + } + }); +}); +``` From 0b534c8a0bc6694cad1f3c19ac3dc6379d047480 Mon Sep 17 00:00:00 2001 From: floxis-tech Date: Thu, 25 Sep 2025 20:53:20 +0300 Subject: [PATCH 2/3] Improved documentation --- dev-docs/bidders/floxis.md | 159 +++++++++++++++++++++++++++++++++++-- 1 file changed, 151 insertions(+), 8 deletions(-) diff --git a/dev-docs/bidders/floxis.md b/dev-docs/bidders/floxis.md index 675e35b403..a78c3b8623 100644 --- a/dev-docs/bidders/floxis.md +++ b/dev-docs/bidders/floxis.md @@ -21,7 +21,7 @@ floors_supported: yes fpd_supported: false prebid_member: false multiformat_supported: will-bid-on-any -ortb_blocking_supported: partial +ortb_blocking_supported: true privacy_sandbox: no --- @@ -37,6 +37,39 @@ The Floxis bidder adapter enables integration with the Floxis programmatic adver |------|-------|-------------|---------|------| | `partner` | required | Partner identifier provided by Floxis | `"floxis"` | `string` | | `placementId` | required | Placement identifier provided by Floxis | `123` | `integer` | +| `bcat` | optional | Blocked advertiser categories (IAB taxonomy) | `['IAB1-1', 'IAB25-2']` | `array` | +| `badv` | optional | Blocked advertiser domains | `['competitor.com', 'example.com']` | `array` | +| `bapp` | optional | Blocked mobile app bundle IDs | `['com.example.app']` | `array` | +| `battr` | optional | Blocked creative attributes | `[1, 2, 3]` | `array` | + +### ORTB Blocking Support + +The Floxis adapter supports OpenRTB blocking parameters in two ways: + +- **Bidder-specific blocking**: Configure blocking parameters directly in `params` for granular control +- **Global blocking**: Configure `ortb2.bcat` and `ortb2.badv` in `pbjs.setConfig()` for site-wide blocking +- **Category blocking**: Use `bcat` parameter with IAB category codes +- **Advertiser blocking**: Use `badv` parameter with advertiser domains +- **App blocking**: Use `bapp` parameter with mobile app bundle IDs +- **Creative attribute blocking**: Use `battr` parameter with creative attribute IDs + +### Floors Support + +The Floxis adapter supports Prebid.js floors module: + +- **Global floors**: Configure floors globally using `pbjs.setConfig({ floors: {...} })` +- **AdUnit floors**: Set floor prices per ad unit using the `floors` object +- **Dynamic floors**: Supports endpoint-based floor fetching +- **Currency support**: Floors can be set in different currencies (converted automatically) + +### First Party Data + +The adapter supports first party data through standard Prebid.js mechanisms: + +- **Global FPD**: Set via `ortb2` in `pbjs.setConfig()` +- **AdUnit FPD**: Set via `ortb2Imp` on individual ad units +- **User FPD**: Passed through `ortb2.user` object +- **Site FPD**: Passed through `ortb2.site` object ### AdUnit Configuration for Banner @@ -53,8 +86,33 @@ var adUnits = [{ params: { partner: 'floxis', placementId: 123, + bcat: ['IAB1-1', 'IAB25-2'], + badv: ['competitor.com', 'example.com'], + battr: [1, 2, 3] + } + }], + floors: { + currency: 'USD', + schema: { + delimiter: '|', + fields: ['mediaType', 'size'] + }, + values: { + 'banner|300x250': 0.50, + 'banner|728x90': 0.75, + '*': 0.25 + } + }, + ortb2Imp: { + ext: { + data: { + adserver: { + name: 'gam', + adslot: '/1234/homepage' + } + } } - }] + } }]; ``` @@ -77,9 +135,33 @@ var adUnits = [{ bidder: 'floxis', params: { partner: 'floxis', - placementId: 456 + placementId: 456, + bcat: ['IAB23', 'IAB24'], + badv: ['competitor.com'] + } + }], + floors: { + currency: 'USD', + schema: { + delimiter: '|', + fields: ['mediaType'] + }, + values: { + 'video': 1.00, + '*': 0.50 } - }] + }, + ortb2Imp: { + ext: { + data: { + pbadslot: 'homepage-video', + adserver: { + name: 'gam', + adslot: '/1234/video' + } + } + } + } }]; ``` @@ -110,9 +192,29 @@ var adUnits = [{ bidder: 'floxis', params: { partner: 'floxis', - placementId: 789 + placementId: 789, + bcat: ['IAB25-1', 'IAB25-2'], + bapp: ['com.example.app', 'com.competitor.app'] + } + }], + floors: { + currency: 'USD', + schema: { + delimiter: '|', + fields: ['mediaType'] + }, + values: { + 'native': 0.75, + '*': 0.30 + } + }, + ortb2Imp: { + ext: { + data: { + pbadslot: 'homepage-native' + } } - }] + } }]; ``` @@ -123,6 +225,34 @@ var pbjs = pbjs || {}; pbjs.que = pbjs.que || []; pbjs.que.push(function() { + // Configure global floors + pbjs.setConfig({ + floors: { + enforcement: { + enforceJS: true, + enforcePBS: false, + floorDeals: true + }, + auctionDelay: 100, + endpoint: { + url: 'https://yourdomain.com/floors_endpoint.json' + }, + data: { + currency: 'USD', + modelVersion: 'new model 1.0', + skipRate: 0, + schema: { + delimiter: '|', + fields: ['gptSlot', 'adUnitCode'] + }, + values: { + 'homepage|div-gpt-ad-1234567890123-0': 0.50, + '*': 0.25 + } + } + } + }); + pbjs.addAdUnits([{ code: 'div-gpt-ad-1234567890123-0', mediaTypes: { @@ -134,9 +264,22 @@ pbjs.que.push(function() { bidder: 'floxis', params: { partner: 'floxis', - placementId: 123 + placementId: 123, + bcat: ['IAB23', 'IAB25-2'], + badv: ['competitor1.com', 'competitor2.com'] } - }] + }], + ortb2Imp: { + ext: { + data: { + pbadslot: 'homepage-banner', + adserver: { + name: 'gam', + adslot: '/1234/homepage' + } + } + } + } }]); pbjs.requestBids({ From cb511d7d2751310655957506a348338c4a6b254b Mon Sep 17 00:00:00 2001 From: floxis-tech Date: Mon, 16 Feb 2026 23:48:39 +0200 Subject: [PATCH 3/3] Simplified documentation --- dev-docs/bidders/floxis.md | 174 +++++-------------------------------- 1 file changed, 22 insertions(+), 152 deletions(-) diff --git a/dev-docs/bidders/floxis.md b/dev-docs/bidders/floxis.md index a78c3b8623..e8c7b1f75b 100644 --- a/dev-docs/bidders/floxis.md +++ b/dev-docs/bidders/floxis.md @@ -27,7 +27,7 @@ privacy_sandbox: no ### Note -The Floxis bidder adapter enables integration with the Floxis programmatic advertising platform via Prebid.js. It supports banner, video, and native formats, and is designed for multi-partner, multi-region use. Please contact Floxis to set up your partner account and obtain the required parameters. +The Floxis bidder adapter enables integration with the Floxis programmatic advertising platform via Prebid.js. It supports banner, video, and native formats with OpenRTB 2.x compliance. Please contact Floxis to set up your partner account and obtain the required parameters. ### Bid Params @@ -35,41 +35,17 @@ The Floxis bidder adapter enables integration with the Floxis programmatic adver | Name | Scope | Description | Example | Type | |------|-------|-------------|---------|------| +| `seat` | required | Seat identifier provided by Floxis | `"testSeat"` | `string` | +| `region` | required | Region identifier for routing | `"us-e"` | `string` | | `partner` | required | Partner identifier provided by Floxis | `"floxis"` | `string` | -| `placementId` | required | Placement identifier provided by Floxis | `123` | `integer` | -| `bcat` | optional | Blocked advertiser categories (IAB taxonomy) | `['IAB1-1', 'IAB25-2']` | `array` | -| `badv` | optional | Blocked advertiser domains | `['competitor.com', 'example.com']` | `array` | -| `bapp` | optional | Blocked mobile app bundle IDs | `['com.example.app']` | `array` | -| `battr` | optional | Blocked creative attributes | `[1, 2, 3]` | `array` | - -### ORTB Blocking Support - -The Floxis adapter supports OpenRTB blocking parameters in two ways: - -- **Bidder-specific blocking**: Configure blocking parameters directly in `params` for granular control -- **Global blocking**: Configure `ortb2.bcat` and `ortb2.badv` in `pbjs.setConfig()` for site-wide blocking -- **Category blocking**: Use `bcat` parameter with IAB category codes -- **Advertiser blocking**: Use `badv` parameter with advertiser domains -- **App blocking**: Use `bapp` parameter with mobile app bundle IDs -- **Creative attribute blocking**: Use `battr` parameter with creative attribute IDs ### Floors Support -The Floxis adapter supports Prebid.js floors module: - -- **Global floors**: Configure floors globally using `pbjs.setConfig({ floors: {...} })` -- **AdUnit floors**: Set floor prices per ad unit using the `floors` object -- **Dynamic floors**: Supports endpoint-based floor fetching -- **Currency support**: Floors can be set in different currencies (converted automatically) +The Floxis adapter supports the Prebid.js [Floors Module](https://docs.prebid.org/dev-docs/modules/floors.html). Floor values are automatically included in the OpenRTB request as `imp.bidfloor` and `imp.bidfloorcur`. -### First Party Data +### Privacy Support -The adapter supports first party data through standard Prebid.js mechanisms: - -- **Global FPD**: Set via `ortb2` in `pbjs.setConfig()` -- **AdUnit FPD**: Set via `ortb2Imp` on individual ad units -- **User FPD**: Passed through `ortb2.user` object -- **Site FPD**: Passed through `ortb2.site` object +Privacy fields (GDPR, USP, GPP, COPPA) are handled by Prebid.js core and automatically included in the OpenRTB request. ### AdUnit Configuration for Banner @@ -84,35 +60,11 @@ var adUnits = [{ bids: [{ bidder: 'floxis', params: { - partner: 'floxis', - placementId: 123, - bcat: ['IAB1-1', 'IAB25-2'], - badv: ['competitor.com', 'example.com'], - battr: [1, 2, 3] - } - }], - floors: { - currency: 'USD', - schema: { - delimiter: '|', - fields: ['mediaType', 'size'] - }, - values: { - 'banner|300x250': 0.50, - 'banner|728x90': 0.75, - '*': 0.25 + seat: 'testSeat', + region: 'us-e', + partner: 'floxis' } - }, - ortb2Imp: { - ext: { - data: { - adserver: { - name: 'gam', - adslot: '/1234/homepage' - } - } - } - } + }] }]; ``` @@ -134,34 +86,11 @@ var adUnits = [{ bids: [{ bidder: 'floxis', params: { - partner: 'floxis', - placementId: 456, - bcat: ['IAB23', 'IAB24'], - badv: ['competitor.com'] - } - }], - floors: { - currency: 'USD', - schema: { - delimiter: '|', - fields: ['mediaType'] - }, - values: { - 'video': 1.00, - '*': 0.50 - } - }, - ortb2Imp: { - ext: { - data: { - pbadslot: 'homepage-video', - adserver: { - name: 'gam', - adslot: '/1234/video' - } - } + seat: 'testSeat', + region: 'us-e', + partner: 'floxis' } - } + }] }]; ``` @@ -191,30 +120,11 @@ var adUnits = [{ bids: [{ bidder: 'floxis', params: { - partner: 'floxis', - placementId: 789, - bcat: ['IAB25-1', 'IAB25-2'], - bapp: ['com.example.app', 'com.competitor.app'] - } - }], - floors: { - currency: 'USD', - schema: { - delimiter: '|', - fields: ['mediaType'] - }, - values: { - 'native': 0.75, - '*': 0.30 + seat: 'testSeat', + region: 'us-e', + partner: 'floxis' } - }, - ortb2Imp: { - ext: { - data: { - pbadslot: 'homepage-native' - } - } - } + }] }]; ``` @@ -225,34 +135,6 @@ var pbjs = pbjs || {}; pbjs.que = pbjs.que || []; pbjs.que.push(function() { - // Configure global floors - pbjs.setConfig({ - floors: { - enforcement: { - enforceJS: true, - enforcePBS: false, - floorDeals: true - }, - auctionDelay: 100, - endpoint: { - url: 'https://yourdomain.com/floors_endpoint.json' - }, - data: { - currency: 'USD', - modelVersion: 'new model 1.0', - skipRate: 0, - schema: { - delimiter: '|', - fields: ['gptSlot', 'adUnitCode'] - }, - values: { - 'homepage|div-gpt-ad-1234567890123-0': 0.50, - '*': 0.25 - } - } - } - }); - pbjs.addAdUnits([{ code: 'div-gpt-ad-1234567890123-0', mediaTypes: { @@ -263,23 +145,11 @@ pbjs.que.push(function() { bids: [{ bidder: 'floxis', params: { - partner: 'floxis', - placementId: 123, - bcat: ['IAB23', 'IAB25-2'], - badv: ['competitor1.com', 'competitor2.com'] - } - }], - ortb2Imp: { - ext: { - data: { - pbadslot: 'homepage-banner', - adserver: { - name: 'gam', - adslot: '/1234/homepage' - } - } + seat: 'testSeat', + region: 'us-e', + partner: 'floxis' } - } + }] }]); pbjs.requestBids({