Knowledge Base
Sending Data to The Trade Desk First Party Endpoint
Using Narrative’s Trade Desk Connector for a 1st Party Connection
This guide explains how to create a 1st party connection between your data set and The Trade Desk (TTD) via Narrative. Unlike marketplace listings with a full taxonomy, a 1st party connection is a one-off setup per dataset, allowing a direct link between your data and specific TTD advertisers or partners.
Add an Advertiser
If you need to grant access to a new advertiser in TTD, you must first create the advertiser record in Narrative.
Endpoint
POST https://thetradedesk-dev.narrativeconnectors.com/advertisers
Sample Request Body
{
"name": "my test advertiser ",
"secret": "12343",
"ttd_id": "test advertiser id"
}
Sample Response
{
"id": "005644f4-5b14-47aa-a673-a340fbd04c74",
"company_id": 1,
"created_at": "2025-02-07T19:52:14.508437Z",
"name": "my test advertiser ",
"secret": "12343",
"ttd_id": "test advertiser id",
"updated_at": "2025-02-07T19:52:14.508437Z"
}
name
is an internal reference for the advertiser in Narrative.secret
can be used for authentication or as a unique key.ttd_id
links this advertiser to your TTD environment.
Create the Connection
Once the advertiser is set up, create a 1st party connection in Narrative. This ties a specific dataset to a TTD partner or advertiser. The example below restricts access to partner_id: "12323"
with a hybrid rate (2.00 CPM plus 0.2% of media cost).
Endpoint
POST https://app-dev.narrative.io/openapi/connections
Sample Request Body
{
"parent_element_id": "4a27dfb9-4a1d-430d-b8de-8c028bee5130",
"buyable": true,
"data_rates": [
{
"rate_type": "hybrid",
"type": "create_data_rate_partner",
"batch_id": null,
"element_id": null,
"cpm_rate": 2,
"percent_of_media_cost_rate": 0.2,
"partner_id": "12323"
}
],
"datasets": [
10523
],
"display_name": "maid_and_hem"
}
Sample Response
{
"buyable": true,
"children": [],
"connections": [
{
"type": "connection_draft",
"created_at": "2025-02-07T19:27:17.195663Z",
"dataset_id": 10523,
"status": "draft",
"updated_at": "2025-02-07T19:27:17.195663Z"
}
],
"created_at": "2025-02-07T19:27:17.195663Z",
"data_rates": [
{
"type": "data_rate_partner",
"batch": null,
"cpm_rate": 2.0,
"element_id": "62a863dd-1b2e-4980-880c-3e88e684460d",
"partner_id": "12323",
"percent_of_media_cost_rate": 0.2,
"rate_type": "hybrid"
}
],
"display_name": "maid_and_hem",
"element_id": "62a863dd-1b2e-4980-880c-3e88e684460d",
"parent_element_id": "4a27dfb9-4a1d-430d-b8de-8c028bee5130",
"status": "draft",
"updated_at": "2025-02-07T19:27:17.195663Z"
}
buyable: true
indicates the data can be purchased (or activated) by the designated partner.connections
shows the link is in adraft
status by default.
Verify the Connection
Retrieve existing connections to confirm your dataset is properly linked. This can be used to review the status (draft
, active
, etc.) or verify parameters like advertiser_ids
and historical_data_enabled
.
Endpoint
GET https://app-dev.narrative.io/openapi/connections?dataset_id=12117
Sample Response
{
"records": [
{
"id": "337f2c5e-0bbb-46de-b6d1-4c9c0f0a3aca",
"dataset_id": 12117,
"quick_settings": {
"advertiser_ids": ["test"],
"data_segment_names": ["yahoo_maids"],
"first_party_data_type": "first_party_external",
"historical_data_enabled": true
},
"profile_id": "d39461d7-cc53-4a51-9dbb-552f5a129593",
"status": "active"
},
...
]
}
dataset_id
confirms which dataset is connected.quick_settings
may contain additional targeting or expiration logic.status
can bedraft
,active
, or other lifecycle states.
Conclusion
In a 1st party connection flow, each dataset is individually connected to a TTD partner or advertiser. First, ensure the advertiser is created if needed (POST /advertisers
). Then, create the connection (POST /openapi/connections
) referencing your dataset and partner/advertiser details. Finally, verify the connection via GET /connections?dataset_id={your_id}
. If you require assistance, please contact Narrative Support.