From 7b2fab6c2c4b828924b8a9605d99b086f74217c0 Mon Sep 17 00:00:00 2001 From: floxis-tech Date: Thu, 25 Sep 2025 17:31:30 +0300 Subject: [PATCH 1/2] 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/2] 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({