Skip to content

Commit 8d05917

Browse files
mastap150muuki88
andauthored
Docs: New Bidder — PGAM Direct (#6536)
* Docs: New Bidder — PGAM Direct Adds the docs page for the new pgamdirect bidder adapter. Code PR: prebid/Prebid.js#14763 GVL 1353. Related to existing pgamssp adapter; this doc explicitly calls out the relationship so publishers browsing the bidders list understand which adapter is which. * Update dev-docs/bidders/pgamdirect.md * Update dev-docs/bidders/pgamdirect.md * Update dev-docs/bidders/pgamdirect.md * Update dev-docs/bidders/pgamdirect.md * Update dev-docs/bidders/pgamdirect.md * Update dev-docs/bidders/pgamdirect.md * Update dev-docs/bidders/pgamdirect.md --------- Co-authored-by: Muki Seiler <muuki88@users.noreply.github.com>
1 parent 4b3a5cb commit 8d05917

1 file changed

Lines changed: 138 additions & 0 deletions

File tree

dev-docs/bidders/pgamdirect.md

Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
---
2+
layout: bidder
3+
title: PGAM Direct
4+
description: Server-to-server OpenRTB 2.6 adapter from PGAM Media (self-hosted). Dynamic floors, transparent margins, schain integrity. Related — pgamssp (legacy, TeqBlaze-hosted).
5+
biddercode: pgamdirect
6+
media_types: banner, video, native
7+
gvl_id: 1353
8+
prebid_member: false
9+
schain_supported: true
10+
tcfeu_supported: true
11+
gpp_sids: tcfeu, usnat, usstate_all
12+
usp_supported: true
13+
coppa_supported: true
14+
pbjs: true
15+
pbs: false
16+
safeframes_ok: true
17+
deals_supported: true
18+
floors_supported: true
19+
fpd_supported: true
20+
userIds: all
21+
multiformat_supported: will-bid-on-any
22+
ortb_blocking_supported: partial
23+
privacy_sandbox: paapi
24+
sidebarType: 1
25+
---
26+
27+
## Note
28+
29+
PGAM Direct is the self-hosted server-to-server OpenRTB adapter operated by PGAM Media LLC. For the legacy TeqBlaze-hosted integration, see [pgamssp](/dev-docs/bidders/pgamssp.html). We plan to migrate publishers from pgamssp to pgamdirect over 2026; both will coexist on the bidders list during that window.
30+
31+
Key differences from pgamssp:
32+
33+
- Canonical OpenRTB 2.5/2.6 (not a proprietary envelope)
34+
- Dynamic rolling-quantile floor pricing on our bidder, published per `(dsp × placement × geo × device)` cell
35+
- Transparent margin enforcement (5% hard floor, compile-time enforced, never zeroable from config)
36+
- schain integrity — `pgamssp.com,1353` appears verified on every outbound request; complete=1 enforced
37+
- HMAC-signed `burl` / `nurl` to defeat pixel replay
38+
- Account onboarding via `orgId` issued by PGAM Media; reach out to your account manager for yours
39+
40+
## Bid Params
41+
42+
{: .table .table-bordered .table-striped }
43+
| Name | Scope | Description | Example | Type |
44+
|---------------|----------|--------------------------------------------------------------------------|----------------------------|-----------|
45+
| `orgId` | required | Your publisher identifier at PGAM Media. Issued during onboarding. | `'pgam-acme-publisher'` | `string` |
46+
| `placementId` | optional | Free-text placement identifier; mapped to `imp.tagid` on the bid request | `'leaderboard-728x90'` | `string` |
47+
| `bidfloor` | optional | Per-placement USD bidfloor; bidder still enforces its own minimum | `1.25` | `number` |
48+
49+
## Example — Banner
50+
51+
```javascript
52+
pbjs.addAdUnits([{
53+
code: 'ad-slot-1',
54+
mediaTypes: {
55+
banner: { sizes: [[300, 250], [728, 90]] }
56+
},
57+
bids: [{
58+
bidder: 'pgamdirect',
59+
params: {
60+
orgId: 'pgam-acme-publisher',
61+
placementId: 'leaderboard-728x90'
62+
}
63+
}]
64+
}]);
65+
```
66+
67+
## Example — Video (instream)
68+
69+
```javascript
70+
pbjs.addAdUnits([{
71+
code: 'video-adunit',
72+
mediaTypes: {
73+
video: {
74+
playerSize: [[640, 480]],
75+
mimes: ['video/mp4', 'application/javascript'],
76+
protocols: [2, 3, 5, 6],
77+
api: [1, 2],
78+
minduration: 5,
79+
maxduration: 30,
80+
placement: 1,
81+
plcmt: 1,
82+
linearity: 1
83+
}
84+
},
85+
bids: [{
86+
bidder: 'pgamdirect',
87+
params: {
88+
orgId: 'pgam-acme-publisher',
89+
placementId: 'preroll-15s'
90+
}
91+
}]
92+
}]);
93+
```
94+
95+
## Example — Native
96+
97+
```javascript
98+
pbjs.addAdUnits([{
99+
code: 'native-adunit',
100+
mediaTypes: {
101+
native: {
102+
image: { required: true, sizes: [150, 50] },
103+
title: { required: true, len: 80 },
104+
sponsoredBy: { required: true }
105+
}
106+
},
107+
bids: [{
108+
bidder: 'pgamdirect',
109+
params: { orgId: 'pgam-acme-publisher' }
110+
}]
111+
}]);
112+
```
113+
114+
## Privacy
115+
116+
The adapter forwards only what Prebid.js supplies:
117+
118+
- `source.ext.schain` — the publisher's supply-chain object, if set
119+
- `user.ext.eids` — registered Prebid User-ID modules
120+
- `regs.ext.gdpr` / `regs.ext.gdpr_consent` — TCF v2 if `consentManagement` is enabled
121+
- `regs.ext.us_privacy` — CCPA if `consentManagementUSP` is enabled
122+
- `regs.gpp` / `regs.gpp_sid` — GPP if configured
123+
- `regs.coppa` — from `ortb2.regs.coppa`
124+
125+
No cookies are set on the publisher's domain by this adapter.
126+
127+
## Migrating from pgamssp
128+
129+
Publishers already integrated via [pgamssp](/dev-docs/bidders/pgamssp.html) can run both adapters in parallel during the migration window:
130+
131+
```javascript
132+
bids: [
133+
{ bidder: 'pgamssp', params: { placementId: 'your-placement' } },
134+
{ bidder: 'pgamdirect', params: { orgId: 'pgam-your-slug', placementId: 'your-placement' } }
135+
]
136+
```
137+
138+
Prebid's auction picks the higher bid per impression, so you get the best of both while you evaluate.

0 commit comments

Comments
 (0)