The Trade Desk
Features
| Bidder Code | ttd | Prebid.org Member | yes |
|---|---|---|---|
| Prebid.js Adapter | yes | Prebid Server Adapter | yes |
| Media Types | display, video | Multi Format Support | will-not-bid |
| TCF-EU Support | yes | IAB GVL ID | 21 |
| GPP Support | check with bidder | DSA Support | check with bidder |
| USP/CCPA Support | yes | COPPA Support | yes |
| Supply Chain Support | yes | Demand Chain Support | no |
| Safeframes OK | check with bidder | Supports Deals | yes |
| Floors Module Support | yes | First Party Data Support | no |
| Endpoint Compression | check with bidder | ORTB Blocking Support | yes |
| User IDs | all | Privacy Sandbox | check with bidder |
| Prebid Server App Support | yes |
Disclosure
This adapter is known to use an HTTP 1 endpoint. Header bidding often generates multiple requests to the same host and bidders are encouraged to change to HTTP 2 or above to help improve publisher page performance via multiplexing.
Note: The Trade Desk Header Bidding adapter requires setup and approval before beginning. Please reach out to OpenPathPublishers@thetradedesk.com for more details.
Bid Params
| Name | Scope | Description | Example | Type |
|---|---|---|---|---|
supplySourceId |
required | The TTD-provided supply source name. | 'supplier' |
String |
publisherId |
required | The publisher ID. If there is a sellers.json, this should be the same as the seller_id in the sellers.json for the site being trafficked. If there is no sellers.json, this should be hardcoded to “1”. | '1427ab10f2e448057ed3b422' |
String |
placementId |
optional | This field is optional if GPID is passed through the GPT module https://docs.prebid.org/dev-docs/modules/gpt-pre-auction.html. If that module isn’t used, the GPID value should be passed in this field. | '/1111/home#header' |
String |
banner |
optional | Display banner targeting parameters. See the banner section below. | {} |
object |
bidfloor |
optional | Sets a bid floor price | 0.95 |
Float |
customBidderEndpoint |
optional | Only set if TTD has provided a custom endpoint. If set the custom endpoint will take precedent over the hard-coded endpoints | https://customBidderEndpoint/bid/bidder/ |
String |
Banner Object
The following banner parameters are supported:
| Name | Scope | Description | Example | Type |
|---|---|---|---|---|
expdir |
optional | Directions in which the banner may expand. See “Expandable Direction” in the OpenRTB 2.5 docs for possible values. | [1, 3] |
Array[integer] |
mediaTypes.banner Parameters
The TTD adapter for banner uses certain parameters in the AdUnit’s
mediaTypes.banner definition. Specifically, sizes is required for banner ad units. pos is recommended.
Here’s a banner ad unit example:
var bannerAdUnit = {
code: 'myBannerAdUnit',
mediaTypes: {
banner: {
sizes: [400, 600],
pos: 1
}
},
bids: [
{
bidder: 'ttd',
params: {
supplySourceId: 'supplier'
publisherId: '1427ab10f2e448057ed3b422',
siteId: 'site-123',
placementId: 'sidebar_1',
banner: {
expdir: [1, 3]
},
bidfloor: 0.95
}
}
]
}
Video
mediaTypes.video Parameters
The TTD adapter for video requires certain parameters in the AdUnit’s
mediaTypes.video definition. Specifically, maxduration, api, mimes, plcmt, and protocols are all required for video ad units. playerSize, startdelay, playbackmethod, and pos are recommended. minduration, minbitrate, maxbitrate, skip, skipmin, and skipafter are optional.
Note: TTD does not currently support adpod video contexts.
Here’s a video ad unit example:
var videoAdUnit = {
code: 'myVideoAdUnit',
mediaTypes: {
video: {
minduration: 1,
maxduration: 60,
playerSize: [640, 480],
api: [1, 3],
mimes: ['video/mp4'],
plcmt: 3,
protocols: [2, 3, 5, 6],
startdelay: -1,
playbackmethod: [1],
pos: 1,
minbitrate: 0,
maxbitrate: 5000,
skip: 1,
skipmin: 5,
skipafter: 10
}
},
bids: [
{
bidder: "ttd",
params: {
supplySourceId: 'supplier',
publisherId: '1427ab10f2e448057ed3b422',
siteId: 'site-123',
placementId: 'video1',
bidfloor: 0.95
}
}
]
}
Lists of api, playbackmethod, protocols, pos, and expdir potential values are in the OpenRTB 2.5 docs, copied here for convenience:
api
1: VPAID 1.02: VPAID 2.03: MRAID-14: ORMMA5: MRAID-26: MRAID-37: OMID-1
playbackmethod
1: Initiates on Page Load with Sound On2: Initiates on Page Load with Sound Off by Default3: Initiates on Click with Sound On4: Initiates on Mouse-Over with Sound On5: Initiates on Entering Viewport with Sound On6: Initiates on Entering Viewport with Sound Off by Default
protocols
1: VAST 1.02: VAST 2.03: VAST 3.04: VAST 1.0 Wrapper5: VAST 2.0 Wrapper6: VAST 3.0 Wrapper7: VAST 4.08: VAST 4.0 Wrapper9: DAAST 1.010: DAAST 1.0 Wrapper11: VAST 4.112: VAST 4.1 Wrapper
pos
0: Unknown1: Above the Fold3: Below the Fold4: Header5: Footer6: Sidebar7: Full Screen
expdir
1: Left2: Right3: Up4: Down5: Full Screen
First Party Data (Supported starting prebid v7.49)
Publishers should set First Party Data in the ortb2 and ortb2Imp objects. These fields are supported:
ortb2.site.ext.dataortb2.user.ext.dataAdUnit.ortb2Imp.ext.data(for AdUnit data)
"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_ttd |
hb_bidder_ttd |
hb_adid_ttd |
hb_size_ttd |
hb_source_ttd |
hb_format_ttd |
hb_cache_host_ttd |
hb_cache_id_ttd |
hb_uuid_ttd |
hb_cache_path_ttd |
hb_deal_ttd |