POST /track/realtimeconversion

The POST /track/realtimeconversion endpoint enables you to upload conversion events to the platform in real-time.

Prerequisites

Before you can send conversion events, you must have a captured event and a unique ID of the user who triggered the event. For details and FAQs, see Real-time conversion events.

Technical requirements

Here's what you need to know to use this endpoint:

Request size limits

The total request size may not exceed 28.6 MB. There's no limit on the number of events you can send.

TIP: To upload a larger file, split it into several smaller files that meet the request size requirements. For details, see the individual endpoints.

Request example

The following is a JSON example with the request properties that you can use to communicate real-time conversion events to The Trade Desk. Specifically, the example shows the resulting JSON for a First Purchase event for booking two hotel rooms, a Deluxe Twin and King Terrace, from an Android device at the IP address 7.7.7.7 with revenue tracking enabled and sent by advertiser GenericMart with ID 4w1ba8e.

{
  "data": [
    {
      "adv": "4w1ba8e",
      "pixel_id": "hc7ihke",
      "value": 25.97,
      "currency": "USD",
      "event_name": "purchase",
      "client_ip": "7.7.7.7",
      "referrer_url": "site.com",
      "adid": "A4AAAAs6ZBcEbwAPoFhVV7CNW5W-4R-9TKDNL4RS0ctkw1U-IkNOXSnWczvwOMgCQaXHPf3Gd1o1W6IBmlZBFIloM67XOsOgwP5jUrQrclGkq1zBJJUJmOFTe6sJJA7pM1GP9gLd-hz5did6baZvcKd8DXkUYM-WALRZFnzHivu_1YEsC_CeXNdMexKDN7EwSQ6L5eZvOd1F1RkF_nLy_J0twg",
      "adid_type": "UID2",
      "tdid": "660e1d86-6796-463a-be86-897993136018",
      "daid": "3ecef5dd-21da-4a9d-a6d7-cd541666bc1e",
      "idfa": "cc9d5044-5837-4bcd-b339-26115f56deb6",
      "aaid": "8887b1e6-82cd-4b44-b36e-1a25655349a1",
      "naid": "9aa5696c-af88-4127-bfdb-107b12417913",
      "idl": "XY1234wXyWPB1SgpMUKIpzA0I3UaLEz-2lg0wFAr1PWK7FMhs",
      "imp": "49gCBlwj-9d33-0927-s9g7-sd7nF3D248d5",
      "uid2_token": "A4AAAAs6ZBcEbwAPoFhVV7CNW5W-4R-9TKDNL4RS0ctkw1U-IkNOXSnWczvwOMgCQaXHPf3Gd1o1W6IBmlZBFIloM67XOsOgwP5jUrQrclGkq1zBJJUJmOFTe6sJJA7pM1GP9gLd-hz5did6baZvcKd8DXkUYM-WALRZFnzHivu_1YEsC_CeXNdMexKDN7EwSQ6L5eZvOd1F1RkF_nLy_J0twg",
      "country": "United States",
      "region": "TX",
      "NielsenDMA": "678",
      "city": "US ELP",
      "zip": "10004",
      "order_id": "abc123XyZ",
      "items": [
        {
          "item_code": "203319203",
          "name": "Deluxe Twin Room",
          "qty": 1,
          "price": 264.00,
          "cat": "23",
          "item_brand": "Sample Hotel Group"
        },
        {
          "item_code": "#2234567892",
          "name": "King Terrace Suite",
          "qty": 1,
          "price": 399.00,
          "cat": "1110",
          "item_brand": "Sample Hotel Group"
        }
      ],
      "privacy_settings": [
        {
          "privacy_type": "GDPR",
          "is_applicable": true,
          "consent_string": "12345"
        }
      ],
      "data_processing_option": {
        "policies": [
          "LDU"
        ],
        "region": "US-CO"
      },
      "td1": "Spring 2026 Promo"
    }
  ]
}

Request properties

The following table lists all the conversion event properties that JSON requests to the POST /track/realtimeconversion endpoint support.

Property Required? Data Type Description Value Example Notes
merchant_id Required, only for merchants String The platform ID of the merchant assigned by The Trade Desk to the merchant during the onboarding process. 12345 None
adv Required, only for non-merchants String The platform ID for the advertiser on whose behalf the tracking call was made. 4w1ba8e None
pixel_id Required String The platform ID of the event tracker for merchant event mappings, or the Universal pixel ID of the event for URL mappings. ejs57s6 For event mapping, include the event tracker and the event_name property in the request.
pixel_ids Optional String array The list of IDs for event trackers or universal pixels. ejs57s6, hc7ihke You can include multiple IDs of the same type, or a combination of event tracker and universal pixel IDs.
If this property is provided, pixel_id is ignored.
tracker_id Not recommended, use pixel_id instead String The platform ID of the event tracker. hc7ihke This property has been deprecated.
upixel_id Not recommended, use pixel_id instead String The universal pixel ID for the event. ejs57s6 This property has been deprecated.
value Required, only for purchase events Decimal The revenue-tracking value with a period (not a comma) as a decimal point. 19.98 If revenue is passed, it will be available in all reports.
currency Optional String The ISO 4217 currency code for the revenue value. USD Here’s what you need to know about this property:
  • For merchants, include this property only if you want to use a different currency than the default currency that you set.
  • Revenue is calculated based on the advertiser’s currency, not the code passed in the event.
event_name Optional String The type of event defined by the partner platform. addtocart For a list of event names to use, see Event names.
For merchants with a product catalog, see Item-Level Event Tracking in the Knowledge Portal.
.
client_ip Optional String The client IPv4 or IPv6 IP address that uniquely identifies a network interface on a machine. 7.7.7.7 Make sure that it is the client, not server, IP address.
referrer_url Required, if you are including a universal pixel ID String The website URL from where the event occurred, if any. site.com If you are using the conversion SDK, the URL will automatically be extracted.
To provide a specific URL, set this value to the URL you want to provide.
adid Optional String The unique advertising ID for the event. For details, see Supported user ID types. 660e1d86-6796-463a-be86-897993136018 If the adid value is empty and the adid_type value is not provided, your request might be rejected.
Be sure to include this property if you are using any of the following:
  • The Trade Desk for attribution.
  • Segment and audience generation from The Trade Desk platform.
  • A third-party measurement partner, in a scenario where you want to provide additional data when an impression ID can't be found.
adid_type Required, if adid is provided String The type of the advertising ID, specified in the adid property: TDID, IDFA, AAID, DAID, NAID, IDL, EUID, or UID2. For details, see Supported user ID types. TDID If this field is empty and adid is not provided, the default value is TDID.
tdid Optional String The Trade Desk 36-character GUID (including dashes) for this user. 660e1d86-6796-463a-be86-897993136018 None
daid Optional String A 36-character GUID (including dashes) that serves as the device advertising ID for this user. See also idfa for iOS, or aaid for Android devices. 3ecef5dd-21da-4a9d-a6d7-cd541666bc1e None
idfa Optional String A 36-character GUID (including dashes) that serves as the device advertising ID for Android devices. cc9d5044-5837-4bcd-b339-26115f56deb6 None
aaid Optional String A 36-character GUID (including dashes) that serves as the device advertising ID for iOS devices. 8887b1e6-82cd-4b44-b36e-1a25655349a1 None
naid Optional String A 36-character GUID (including dashes) that serves as the device advertising ID for Windows devices. 9aa5696c-af88-4127-bfdb-107b12417913 None
uid2_token Optional String The encrypted UID2 token, also known as an advertising token. This token is case-sensitive. Tokens are generated and managed using UID2 APIs. For details about UID2 APIs, see UID2 Endpoints. See Request example. None
euid_token Optional String The encrypted EUID token, also known as an advertising token. This token is case-sensitive. For details about EUID APIs, see UID2 Endpoints. See Request example. None
idl Optional String The 49-character or 70-character RampID (previously known as IdentityLink).
IMPORTANT: This must be a RampID from LiveRamp that is mapped specifically for The Trade Desk. For details about mapping a RampID, see LiveRamp documentation.
XY1234wXyWPB1SgpMUKIpzA0I3UaLEz-2lg0wFAr1PWK7FMhs A Ramp ID (formerly IDL) is a 49 or 70 character ID based on the LiveRamp identity graph.
imp Optional String A 36-character GUID (including dashes) that serves as the unique ID for the impression to which the event is attributed. 49gCBlwj-9d33-0927-s9g7-sd7nF3D248d5 If you are using a third-party measurement partner, be sure to include this property for more accurate attribution.
country Optional String Optional The full name of the country where the conversion occurred. United States
region Required if country is set to United States String The full name or code of the region in the United States where the conversion occurred. NY, New York
NielsenDMA* Optional Integer The numerical metropolitan area geotargeting code where the conversion occurred. 501
city Optional String The city where the conversion occurred. US NYC None
zip Optional String The zip code or postal code. 10004 None
order_id Optional String The associated order identifier of the event. abc123XyZ None
items Optional Object array One or more items in the order. For object properties, see Item properties. N/A None
privacy_settings Required for the EU unless an exemption has been approved by The Trade Desk Legal team.
Optional for the US.
Object array User privacy settings based on data privacy consent processing. For object properties, see Privacy settings properties. N/A None
data_processing_option Required for applicable states Object A data processing option to pass users' opt-out choices, such as Limited Data Use (LDU), in applicable US states. This is an alternative to the GPP string in the Privacy settings properties. For object properties, see Data processing option properties. N/A The user choice processing options are supported only for events from US states where applicable laws and regulations are in effect.
td1 - td10 Optional String(150) Ten sequentially numbered custom dynamic properties that can be used to provide additional conversion metadata. For details, see Custom line-item dynamic parameters. N/A None

* © 2026, The Nielsen Company (US), LLC. The DMA® data is used pursuant to a license from The Nielsen Company (US), LLC. Any use and/or reproduction of these materials without the express written consent of The Nielsen Company (US), LLC, is strictly prohibited. DMA® data is valid for the period 2025 - 2026. DMA® is a registered service mark of The Nielsen Company (US), LLC and is used pursuant to license.

Item properties

The following table lists the items object properties that contain item-level information.

Property Required? Data Type Description Value Example
item_code Required String The item identifier (such as SKU numbers). #3234567894
name Optional String(150) The name associated with the item code. Lemon Sandwich Creme Cookies, Family Size, 25 oz
qty Optional Integer The number of items in the order for the item code. 12
price Optional Decimal The unit price of the item. 9.99
cat Optional String The item category ID.
NOTE: The Real-Time Conversion Events API uses the provided value in all cases except when a merchant has a product catalog with the specified item code in it, but with a different category ID. In this case, the product catalog category ID will be used.
1110
item_brand Optional String The brand name of the item. Cookie Brand Name

Privacy settings properties

The following table lists the privacy_settings object properties.

Property Name Required? Data Type Description Example Notes
privacy_type Required String Specifies the applicable privacy regulation based on the user's geographical location:
  • GDPR (General Data Protection Regulation)
    Intended for users in the European Union, leveraging the IAB Europe Transparency and Consent Framework (TCF).
  • GPP (Global Privacy Platform)
    Intended for users in US states with applicable privacy regulations, such as California, Colorado, and Virginia, which leverage the IAB Global Privacy Platform.
GDPR Only one value per PrivacySettings object.
NOTE: You can also use the data_processing_option object as an alternative to the GPP string. For details, see Data processing option properties.
is_applicable Required Boolean Indicates if the value specified in the privacy_type property is applicable. true or 1 None.
consent_string Required String The user's consent when the privacy regulations are in effect. The format depends on the privacy_type property value:
  • GDPR: A valid TCF string, encapsulating user preferences for data processing under GDPR, as defined by IAB Europe.
  • GPP: A GPP string, consolidating privacy signals across US state regulations, as defined by IAB Tech Lab.
None For details, see the IAB documentation on the Transparency and Consent Framework and Global Privacy Platform.

Data processing option properties

The following table lists the data_processing_option object properties that you can use to signal users' opt-out choices in US states with applicable privacy laws.

Property Required? Data Type Description Value Example Notes
policies Required String array Specifies the data processing option policies. LDU LDU (Limited Data Use) is currently the only supported value that signals the user's opt-out.
region Required String The data processing option region of the request in this format: US followed by a hyphen (-) and a two-letter state or territory abbreviation. US-CO (Colorado) If the region is passed, The Trade Desk uses it to determine the enforcement of applicable regulations. Otherwise, we look up the geo location based on the IP address.

Event names

The Trade Desk provides a list of events that you can map to an event tracker without any additional configuration. Here's what you need to know about the event names list:

NOTE: To configure and manage events as a merchant with a product catalog, you need to use the platform UI. For details, see Item-Level Event Tracking in the Knowledge Portal.

Event Name User Action
purchase The user completed a purchase and has the Thank You page displayed.
donate The user donated to the business or a cause.
subscribe The user subscribed to a service or content offering.
reserve The user made a reservation.
starttrial The user started a free trial.
applicationapproval The user's application was approved.
submitapplication The user submitted an application.
initiatecheckout The user started the checkout process.
TIP: There is no functional difference between initiatecheckout and startcheckout. Choose the one that aligns best with your own internal systems.
startcheckout The user started the checkout process.
TIP: There is no functional difference between initiatecheckout and startcheckout. Choose the one that aligns best with your own internal systems.
addpaymentinfo The user added payment information during checkout.
addbilling The user added or updated their billing information.
addtocart The user added an item to the shopping cart.
addtowishlist The user added an item to the wish list.
wishlistitem The user added an item or SKU number to the wish list.
customizeproduct The user customized a product configuration.
viewcart The user viewed the contents of the shopping cart.
viewitem The user viewed an item or SKU number.
viewcontent The user viewed a specific piece of content, such as a product or landing page.
viewcategory The user viewed a category page.
listview The user viewed a list of items.
pageview The user viewed a page on the site.
searchitem The user searched for an item or SKU number.
searchcategory The user searched for a category.
search The user performed a search on the site or app.
sitevisit The user visited the site.
login The user logged in to the site.
contact The user contacted the business (for example, by chat, email, or phone).
messagebusiness The user sent a message to the business or contacted the business via form or email.
direction The user requested and received directions to the business.
findlocation The user searched for or requested a store or business location.
share The user shared content, a product, or a promotion.
save The user saved content or an item to revisit later.
rate The user rated a product or service.
schedule The user scheduled an appointment or visit.
invite The user invited another person to use the product or service.
watchvideo The user watched a video.
download The user downloaded a file or asset.
adclick The user clicked an ad.
adview The user viewed an ad.
lead The user submitted their information as a lead.
submitform The user submitted a form.
completeregistration The user completed a registration or sign-up form.
levelcomplete The user completed a level in a game or experience.

Custom line-item dynamic parameters

When you include an items array in your request, The Trade Desk automatically maps item-level fields to the td1-td10 fields to support dynamic rules for commerce use cases. You do not need to populate the td1-td10 fields yourself — the platform derives these values from your items payload. This mapping occurs only on rule-matched conversion copies. The original conversion record always reflects your payload as sent.

If you do not include an items array in your request, the td1-td10 fields are available as general-purpose custom fields. You can use them to pass any additional conversion metadata relevant to your use case.

IMPORTANT: If your payload includes both an items array and explicit td1-td10 values, the item-based mapping will overwrite your td1-td10 values on any rule-matched copies. Avoid populating the td1-td10 fields manually if you are also sending an items array. If you have a use case that requires both, contact your Trade Desk representative to understand how these fields interact and their downstream impact on optimization and reporting prior to implementation.

Custom mapping field Derived from
td1 event_name
td2 items.item_code
td3 items.qty
td4 items.price
td5 items.name
td6 N/A
td7 N/A
td8 items.cat
td9 N/A
td10 adid_type

Response format

Here's what you need to know about the Real-Time Conversion Events API responses:

TIP: For troubleshooting tips and other details about using this API, see FAQs.

The Real-Time Conversion Events API response uses the following format:

{
   "Message": null,
   "EventResponses": [
            {
         "EventIndex": 23,
         "EventErrors": [],
         "EventWarnings": [
            {
               "Warning": "Warning code",
               "WarningMessage": "Warning description."
            }
         ],
         "Successful": true // a warning was issued for the event but it processed successfully
      },
      {
         "EventIndex": 31,
         "EventErrors": [
            {
               "Error": "Error code",
               "ErrorMessage": "Error description."
            }
         ],
         "EventWarnings": [],
         "Successful": false // an event error occurred
      }
   ]
}

The following table lists the response object properties.

Property Data Type Description
Message String The top-level message that indicates the processing status of the request. If set to null, it indicates that the request itself was successful, even though individual events in the batch might not have been process successfully. Otherwise, a 400 request error message is provided. For details, see Error code and responses.
EventResponses Object array Individual event processing details. For details, see Event Response object properties.

Event Response object properties

The following table lists the EventResponse object properties that contain information about event errors, or warnings, that might have occurred when processing the request.

Property Data Type Description
EventIndex Integer The 0-based index of the event where the issue occurred.
EventErrors Object array A list of error codes and messages that provide details about failed events, if there are any. For details, see Error code and responses.
EventWarnings Object array A list of potential warnings about when they might have been processed successfully but with some alterations. For example, if an invalid quantity, monetary or price value is provided, the default value is used instead.
Successful Boolean Indicates whether the event was processed successfully:
  • If false, indicates that the event has failed, with the details provided in the EventErrors object property.
  • If true, indicates that the request has been processed successfully, with warnings (if there are any) provided in the EventWarnings object property.

Error code and responses

The following table provides a list of common errors and their respective HTTP error codes.

Error Case HTTP Response Code HTTP Response Description Error Message
Request sent empty, without content in the body. 400 Bad Request The provided request could not be interpreted (no json data).
Request sent without the merchant_id value. 400 Bad Request The request is missing a merchant identifier (merchant_id).
General processing error (possibly because of invalid values in the Items array). 400 Bad Request A deserialization error occurred.
Request sent with an invalid or missing ADID type for the device ID. 200 OK The request is missing or has an invalid adid_type property. Value provided ''. Valid ADID types are: TDID, IDFA, AAID, NAID, UID2, EUID.
Request sent with an invalid or missing tracking tag ID. 200 OK The request is missing or has an invalid tracker_id property. Value provided ''.
Request sent with an invalid privacy setting. 400 Bad Request The request has an invalid privacy setting.
Request sent with multiple privacy settings per type. 400 Bad Request The request contains multiple privacy settings for a single type. Only one privacy setting per type is permitted.

Here's an example of a successful response with no individual event issues:

{
   "Message": null,
   "EventResponses": []
}

Here's an example of a partially successful response with an event that is missing property values:

{
   "Message": null,
   "EventResponses":[
      {
         "EventIndex":0,
         "EventErrors":[
            {
               "Error":"MissingOrInvalidADIDType",
               "ErrorMessage":"The request is missing or has an invalid adid_type parameter. Value provided ''. Valid ADID types are: TDID, IDFA, AAID, NAID, UID2, EUID."
            },
            {
               "Error":"MissingOrInvalidTrackingTagId",
               "ErrorMessage":"The request is missing or has an invalid tracker_id parameter. Value provided ''."
            }
         ],
         "EventWarnings":[],
         "Successful":false
      }
   ]
}

Here's an example of a failed response:

{
   "Message": "The provided request could not be interpreted (no json data).",
   "EventResponses":[]
}