PGAM Direct
Features
| Bidder Code | pgamdirect | Prebid.org Member | no |
|---|---|---|---|
| Prebid.js Adapter | yes | Prebid Server Adapter | no |
| Media Types | display, video, native | Multi Format Support | will-bid-on-any |
| TCF-EU Support | yes | IAB GVL ID | 1353 |
| GPP Support | tcfeu, usnat, usstate_all | DSA Support | check with bidder |
| USP/CCPA Support | yes | COPPA Support | yes |
| Supply Chain Support | yes | Demand Chain Support | check with bidder |
| Safeframes OK | yes | Supports Deals | yes |
| Floors Module Support | yes | First Party Data Support | yes |
| Endpoint Compression | check with bidder | ORTB Blocking Support | partial |
| User IDs | all | Privacy Sandbox | paapi |
Note
PGAM Direct is the self-hosted server-to-server OpenRTB adapter operated by PGAM Media LLC. For the legacy TeqBlaze-hosted integration, see pgamssp. We plan to migrate publishers from pgamssp to pgamdirect over 2026; both will coexist on the bidders list during that window.
Key differences from pgamssp:
- Canonical OpenRTB 2.5/2.6 (not a proprietary envelope)
- Dynamic rolling-quantile floor pricing on our bidder, published per
(dsp × placement × geo × device)cell - Transparent margin enforcement (5% hard floor, compile-time enforced, never zeroable from config)
- schain integrity —
pgamssp.com,1353appears verified on every outbound request; complete=1 enforced - HMAC-signed
burl/nurlto defeat pixel replay - Account onboarding via
orgIdissued by PGAM Media; reach out to your account manager for yours
Bid Params
| Name | Scope | Description | Example | Type |
|---|---|---|---|---|
orgId |
required | Your publisher identifier at PGAM Media. Issued during onboarding. | 'pgam-acme-publisher' |
string |
placementId |
optional | Free-text placement identifier; mapped to imp.tagid on the bid request |
'leaderboard-728x90' |
string |
bidfloor |
optional | Per-placement USD bidfloor; bidder still enforces its own minimum | 1.25 |
number |
Example — Banner
pbjs.addAdUnits([{
code: 'ad-slot-1',
mediaTypes: {
banner: { sizes: [[300, 250], [728, 90]] }
},
bids: [{
bidder: 'pgamdirect',
params: {
orgId: 'pgam-acme-publisher',
placementId: 'leaderboard-728x90'
}
}]
}]);
Example — Video (instream)
pbjs.addAdUnits([{
code: 'video-adunit',
mediaTypes: {
video: {
playerSize: [[640, 480]],
mimes: ['video/mp4', 'application/javascript'],
protocols: [2, 3, 5, 6],
api: [1, 2],
minduration: 5,
maxduration: 30,
placement: 1,
plcmt: 1,
linearity: 1
}
},
bids: [{
bidder: 'pgamdirect',
params: {
orgId: 'pgam-acme-publisher',
placementId: 'preroll-15s'
}
}]
}]);
Example — Native
pbjs.addAdUnits([{
code: 'native-adunit',
mediaTypes: {
native: {
image: { required: true, sizes: [150, 50] },
title: { required: true, len: 80 },
sponsoredBy: { required: true }
}
},
bids: [{
bidder: 'pgamdirect',
params: { orgId: 'pgam-acme-publisher' }
}]
}]);
Privacy
The adapter forwards only what Prebid.js supplies:
source.ext.schain— the publisher’s supply-chain object, if setuser.ext.eids— registered Prebid User-ID modulesregs.ext.gdpr/regs.ext.gdpr_consent— TCF v2 ifconsentManagementis enabledregs.ext.us_privacy— CCPA ifconsentManagementUSPis enabledregs.gpp/regs.gpp_sid— GPP if configuredregs.coppa— fromortb2.regs.coppa
No cookies are set on the publisher’s domain by this adapter.
Migrating from pgamssp
Publishers already integrated via pgamssp can run both adapters in parallel during the migration window:
bids: [
{ bidder: 'pgamssp', params: { placementId: 'your-placement' } },
{ bidder: 'pgamdirect', params: { orgId: 'pgam-your-slug', placementId: 'your-placement' } }
]
Prebid’s auction picks the higher bid per impression, so you get the best of both while you evaluate.
"Send All Bids" Ad Server Keys
These are the bidder-specific keys that would be targeted within GAM in a Send-All-Bids scenario. GAM truncates keys to 20 characters.hb_pb_pgamdirect |
hb_bidder_pgamdirect |
hb_adid_pgamdirect |
hb_size_pgamdirect |
hb_source_pgamdirect |
hb_format_pgamdirect |
hb_cache_host_pgamdi |
hb_cache_id_pgamdire |
hb_uuid_pgamdirect |
hb_cache_path_pgamdi |
hb_deal_pgamdirect |