Direct integration with curated REDS
Integrating directly with curated REDS using The Trade Desk AWS S3 bucket provides you fast access and full control of data ingestion and processing. The following outlines feeds specification and structural details to help you understand the content and delivery of your feeds.
NOTE: For the complete workflow, see Getting started with curated REDS feeds. If you are a vendor who doesn't use UID2, TDID, DAID, or a graph, consider integrating curated REDS through LiveRamp. This may also be an simpler option because LiveRamp manages delivery cadence and file naming conventions. However, you can use only Core-curated REDS.
Policies
Curated REDS are based on the policies in the following table.
| Specification | Details |
|---|---|
| Delivery method | Secure AWS S3 bucket. |
| Authentication | Amazon S3 access through AWS S3 buckets and secret keys only. NOTE: IAM roles and Snowflake shares are not supported. |
| File location and naming convention | See Directory and file naming convention. |
| Delivery frequency | Daily or hourly for each feed. |
| Retention policy | Files are kept for 90 days. Data is deleted after retention ends. |
| Backfill support | Up to 90 days, on request. |
| File Format | TSV, GZIP-compressed. |
| Encoding | UTF-8. |
| Delimiter | Tab (\t). |
| File splitting | Files are split with unique hash when they exceed a size threshold. NOTE:The Trade Desk does not deliver single large files. |
Directory and file naming convention
Each curated feed file uses a standard naming structure for identification and organization. The file names include parameters such as the recipient, campaign ID, feed type, date and time details, and a unique hashed value. The following table describes each variable in the file.
| Variable | Description |
|---|---|
Recipient |
The name of the vendor receiving the data. Used for vendor identification within the directory. |
PartnerId |
Our unique, system-wide identifier that we set up for you as a partner. |
AdvertiserId |
Our unique, system-wide identifier that we generate for each advertiser. |
CampaignId |
The ID of the campaign associated with the ad group. |
FeedType |
Each log file is a record of one event type and will be labeled with one of these four values: impressions, clicks, video events, conversions. |
SchemaVersion |
Format: MAJOR_SCHEMA_VERSION_PLACEHOLDER-MINOR_SCHEMA_VERSION_PLACEHOLDER-INTERNAL_SCHEMA_VERSION_PLACEHOLDER Example: 1-1-0Represents the schema version, which is comprised of:
|
Version |
Represents the client-specific feed version as an integer. Example: 3. |
Date |
The date of data delivery, formatted as yyyy-MM-dd. |
Hour |
The hour of data delivery, if applicable, formatted as HH. |
StartTime |
The earliest timestamp of the hour or day, formatted as yyyy-MM-ddTHHmmss. |
ProcessedTime |
The timestamp for when the file was created, formatted as yyyy-MM-ddTHHmmss. |
FeedId |
A unique identifier we generate for each instance of a feed. |
Hash |
An MD5 hash of the contents of the log file appended to the filename to ensure no two files are identically named. |
Directory taxonomy
This section defines the S3 directory structure for curated REDS data. It specifies standard paths for each feed level (partner, advertiser, campaign, and multi-entity), ensuring consistent integration and delivery.
| Feed Level | Directory Structure |
|---|---|
| Partner level feed | [BUCKET]/exposure/[RECIPIENT]/[PARTNER_ID]/[FEED_TYPE]/sv=[SCHEMA_VERSION]-[VERSION]/date=[DATE]/ |
| Single advertiser level feed | [BUCKET]/exposure/[RECIPIENT]/[PARTNER_ID]/advertisers/[ADVERTISER_ID]/[FEED_TYPE]/sv=[SCHEMA_VERSION]-[VERSION]/date=[DATE]/ |
| Multi-advertiser level feed | [BUCKET]/exposure/[RECIPIENT]/[PARTNER_ID]/advertisers/multiadvertiser_[FEED_ID]/[FEED_TYPE]/sv=[SCHEMA_VERSION]-[VERSION]/date=[DATE]/ |
| Single-campaign level feed | [BUCKET]/exposure/[RECIPIENT]/[PARTNER_ID]/advertisers/[ADVERTISER_ID]/campaigns/[CAMPAIGN_ID]/[FEED_TYPE]/sv=[SCHEMA_VERSION]-[VERSION]/date=[DATE]/ |
| Multi-campaign level feed | [BUCKET]/exposure/[RECIPIENT]/[PARTNER_ID]/advertisers/[ADVERTISER_ID]/campaigns/multicampaign_[FEED_ID]/[FEED_TYPE]/sv=[SCHEMA_VERSION]-[VERSION]/date=[DATE]/ |
| Multi-advertiser, multi-campaign level feed | [BUCKET]/[RECIPIENT]/[PARTNER_ID]/advertisers/multiadvertiser/campaigns/multicampaign_[FEED_ID]/[FEED_TYPE]/sv=[SCHEMA_VERSION]-[VERSION]/date=[DATE]/ |
Example
The following is an example of a full-delivery path for a single-campaign feed using the feed file name convention:
s3://thetradedesk-useast-partner-datafeed/exposure/RECIPIENT_NAME/1abcd2e/advertisers/2fghi3j/campaigns/3klmn4o/impressions/sv=1-1-0-1/date=2025-04-25/impressions_fmroq5a_v1_2025-04-25T000000_2025-08-12T160515_9787_79b7e82b73d84a2b9b6f7404fb384064.log.gz