Skip to content

Commit 30490b3

Browse files
authored
New Bidder: goadserver (#6550)
* New Bidder: goadserver Documentation for the goadserver Prebid.js adapter merged in prebid/Prebid.js#14701. One bidder code (goadserver) serves every goadserver deployment; publishers select the deployment via params.host and authenticate the ad unit via params.token. Supports banner, video (instream + outstream), and native via ortbConverter, with optional per-bid floor, subid, and PMP deals. GVL ID is not yet registered with IAB Europe; gvl_id is set to none and tcfeu_supported to false until the registration lands, at which point this page will be updated in a follow-up PR. * goadserver: fix markdownlint failures (heading levels + table style)
1 parent 7458213 commit 30490b3

1 file changed

Lines changed: 170 additions & 0 deletions

File tree

dev-docs/bidders/goadserver.md

Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
1+
---
2+
layout: bidder
3+
title: GoAdserver
4+
description: Prebid GoAdserver Bidder Adapter
5+
pbjs: true
6+
pbs: false
7+
biddercode: goadserver
8+
userIds:
9+
media_types: banner, video, native
10+
schain_supported: true
11+
dchain_supported: false
12+
ortb_blocking_supported: partial
13+
floors_supported: true
14+
multiformat_supported: will-bid-on-any
15+
tcfeu_supported: false
16+
dsa_supported: false
17+
gvl_id: none
18+
usp_supported: true
19+
coppa_supported: true
20+
gpp_sids: none
21+
userId: no
22+
safeframes_ok: true
23+
deals_supported: true
24+
fpd_supported: true
25+
prebid_member: false
26+
privacy_sandbox: no
27+
sidebarType: 1
28+
---
29+
30+
## Note
31+
32+
GoAdserver is a self-hosted, multi-tenant ad serving platform with a built-in OpenRTB 2.5 Prebid Server endpoint. One adapter (`goadserver`) serves every deployment — the specific ad server is selected per-ad-unit via `params.host`, and the publisher's SSP campaign authentication token (issued in the GoAdserver panel) is passed via `params.token`. Publishers running multiple GoAdserver instances can mix and match them in a single Prebid.js config by setting different `params.host` values on different ad units.
33+
34+
Requests are POSTed to `https://{params.host}/openrtb2/auction`. The token lands in the outgoing BidRequest as `site.publisher.id`, which the GoAdserver auction handler uses to resolve the publisher account.
35+
36+
For setup or to obtain a token, contact <support@goadserver.com>.
37+
38+
## Bid Parameters
39+
40+
{: .table .table-bordered .table-striped }
41+
42+
| Name | Scope | Description | Example | Type |
43+
| --- | --- | --- | --- | --- |
44+
| `host` | required | The GoAdserver deployment's public domain. The adapter POSTs to `https://{host}/openrtb2/auction`. | `"ads.example.com"` | `string` |
45+
| `token` | required | SSP campaign authentication token from the publisher's GoAdserver panel. Forwarded as `site.publisher.id`. | `"a1b2c3d4..."` | `string` |
46+
| `floor` | optional | Per-bid CPM floor (USD). Honored only when the [Price Floors module](/dev-docs/modules/floors.html) hasn't already set `imp.bidfloor`. | `0.50` | `number` |
47+
| `subid` | optional | Per-impression sub-identifier for stats attribution (page section, A/B group, etc.). Emitted as `imp.ext.goadserver.subid` and logged against the bid in GoAdserver reporting. | `"article_page"` | `string` |
48+
| `deals` | optional | Array of private marketplace deal objects attached to this impression. Each entry maps to OpenRTB `imp.pmp.deals[]`: `id` (required), `bidfloor`, `bidfloorcur`, `at`, `wseat[]`, `wadomain[]`. See example below. | see below | `Object[]` |
49+
| `outstreamRendererUrl` | optional | Override URL for the outstream video renderer script. Defaults to `https://{host}/prebid-outstream.js`, which every GoAdserver deployment hosts. Set this to self-host or bundle a custom player. | `"https://cdn.pub.example.com/my-outstream.js"` | `string` |
50+
51+
## Deals / Private Marketplace
52+
53+
```js
54+
bids: [{
55+
bidder: 'goadserver',
56+
params: {
57+
host: 'ads.example.com',
58+
token: 'your-sspcampaigns-hash',
59+
deals: [
60+
{ id: 'DEAL_XYZ', bidfloor: 2.50, bidfloorcur: 'USD' },
61+
{ id: 'DEAL_ABC', bidfloor: 1.00, at: 1, wseat: ['agency-42'] }
62+
]
63+
}
64+
}]
65+
```
66+
67+
Deal objects are forwarded verbatim to downstream DSPs. Winning bids return with `bid.dealid`, surfaced by Prebid.js as `bid.dealId` for GAM line-item targeting.
68+
69+
## Outstream Video
70+
71+
Outstream is supported via the standard `mediaTypes.video.context: 'outstream'` setting. When a video bid is returned for an outstream ad unit, the adapter attaches a Prebid.js `Renderer` that loads the GoAdserver-hosted outstream player. The player parses the VAST XML, injects a muted auto-playing `<video>` element into the slot, and fires impression / click trackers — no publisher-side renderer configuration is required.
72+
73+
```js
74+
const adUnit = {
75+
code: 'outstream-1',
76+
mediaTypes: {
77+
video: {
78+
context: 'outstream',
79+
playerSize: [[640, 360]],
80+
mimes: ['video/mp4']
81+
}
82+
},
83+
bids: [{
84+
bidder: 'goadserver',
85+
params: {
86+
host: 'ads.example.com',
87+
token: 'your-token'
88+
// outstreamRendererUrl: 'https://cdn.pub.example.com/my-outstream.js' // optional override
89+
}
90+
}]
91+
};
92+
```
93+
94+
## Test Parameters
95+
96+
```js
97+
const adUnits = [
98+
{
99+
code: 'top-banner',
100+
mediaTypes: { banner: { sizes: [[728, 90], [970, 250]] } },
101+
bids: [{
102+
bidder: 'goadserver',
103+
params: {
104+
host: 'ads.example.com',
105+
token: 'your-sspcampaigns-hash',
106+
floor: 0.50
107+
}
108+
}]
109+
},
110+
{
111+
code: 'preroll',
112+
mediaTypes: {
113+
video: {
114+
context: 'instream',
115+
playerSize: [[640, 480]],
116+
mimes: ['video/mp4']
117+
}
118+
},
119+
bids: [{
120+
bidder: 'goadserver',
121+
params: { host: 'ads.example.com', token: 'your-sspcampaigns-hash' }
122+
}]
123+
},
124+
{
125+
code: 'native-1',
126+
mediaTypes: {
127+
native: {
128+
title: { required: true },
129+
image: { required: true },
130+
sponsoredBy: { required: true }
131+
}
132+
},
133+
bids: [{
134+
bidder: 'goadserver',
135+
params: { host: 'ads.example.com', token: 'your-sspcampaigns-hash' }
136+
}]
137+
}
138+
];
139+
```
140+
141+
## Multi-Deployment Example
142+
143+
Two ad units auctioned against two different GoAdserver deployments in one request:
144+
145+
```js
146+
pbjs.addAdUnits([
147+
{
148+
code: 'slot-a',
149+
mediaTypes: { banner: { sizes: [[300, 250]] } },
150+
bids: [{
151+
bidder: 'goadserver',
152+
params: { host: 'deployment1.example.com', token: 'token-a' }
153+
}]
154+
},
155+
{
156+
code: 'slot-b',
157+
mediaTypes: { banner: { sizes: [[728, 90]] } },
158+
bids: [{
159+
bidder: 'goadserver',
160+
params: { host: 'deployment2.example.com', token: 'token-b' }
161+
}]
162+
}
163+
]);
164+
```
165+
166+
## Consent & Privacy
167+
168+
The adapter relies on Prebid.js's standard consent plumbing via `ortbConverter`: GDPR (`regs.ext.gdpr`, `user.ext.consent`), US Privacy (`regs.ext.us_privacy`), GPP (`regs.gpp` + `regs.gpp_sid`), and COPPA (`regs.coppa`). No bidder-specific consent handling is required on the publisher side.
169+
170+
**GVL ID:** the GoAdserver adapter is not yet registered with the IAB Global Vendor List. EU publishers using CMPs that enforce GVL may see bid requests dropped pre-auction. A registration is in progress at [iabeurope.eu/tcf](https://iabeurope.eu/tcf/); this page will be updated with the assigned GVL ID once it lands.

0 commit comments

Comments
 (0)