Upcoming API changes for advertisers

This page outlines the timeline for upcoming changes to The Trade Desk APIs for advertisers and offers support guidelines to help you upgrade to new features or adapt to API updates that require code changes on your part. For details on how The Trade Desk introduces and manages changes to the API, see API changes.

TIP: For any past upgrades and guidelines, see the Archived API changes for advertisers page.

The following sections summarize the upcoming updates by quarter.

October-December 2026

Effective Date Product/Feature Update Type Details
Oct 17, 2026 GraphQL: AdGroupBidFactorWorkflowInput Enum value deprecation AdGroupBidFactorWorkflowInput GraphQL type: enum value deprecation
Oct 20, 2026 GraphQL: City Field deprecation City GraphQL type: field deprecation
Oct 20, 2026 GraphQL: GeoSegmentType Enum value deprecation GeoSegmentType GraphQL type: enum value deprecation
Oct 20, 2026 GraphQL: AdGroupFlightForecast Field deprecation AdGroupFlightForecast GraphQL type: field deprecation
Oct 20, 2026 GraphQL: AdvertiserDataRate and ProviderDataRate Field deprecation AdvertiserDataRate and ProviderDataRate GraphQL types: field deprecation
Oct 20, 2026 GraphQL: CampaignFlightForecast Field deprecation CampaignFlightForecast GraphQL type: field deprecation
Oct 20, 2026 GraphQL: Creative types Field deprecation Creative GraphQL types: field deprecation
Oct 20, 2026 GraphQL: FrequencyDistributionMetrics Field deprecation FrequencyDistributionMetrics GraphQL type: field deprecation
Oct 20, 2026 GraphQL: GeoReportingMetro Field deprecation GeoReportingMetro GraphQL type: field deprecation
Oct 20, 2026 GraphQL: GeoTarget Field deprecation GeoTarget GraphQL type: field deprecation
Oct 20, 2026 GraphQL: CreativeAdGroupAssociatePayload Field deprecation CreativeAdGroupAssociatePayload GraphQL type: field deprecation
Oct 30, 2026 Timestamps in UTC New timestamp validation Timestamp validation
Oct 30, 2026 GraphQL: TargetingDataSegment Field deprecation TargetingDataSegment GraphQL type: field deprecation
Nov 9, 2026 GraphQL: Product Catalog itemset inputs Field deprecation Product Catalog itemset input types: field deprecation
Nov 15, 2026 GraphQL: GeneralReportingMetrics Field deprecation GeneralReportingMetrics GraphQL type: field deprecation
Dec 1, 2026 GraphQL: Query Endpoint deprecation Query GraphQL type: endpoint deprecation
Dec 1, 2026 GraphQL: AdGroup Field deprecation AdGroup GraphQL type: field deprecation
Dec 11, 2026 GraphQL: AdGroupUpdateInput Field deprecation AdGroupUpdateInput GraphQL type: field deprecation
Dec 16, 2026 GraphQL: Marketplace Field deprecation Marketplace GraphQL type: field deprecation
Dec 31, 2026 GraphQL: PharmaHcpFrequencyWindowInput Enum value deprecation PharmaHcpFrequencyWindowInput GraphQL type: enum value deprecation
Dec 31, 2026 GraphQL: MyReportsReportSchedule Field deprecation MyReportsReportSchedule GraphQL type: field deprecation

AdGroupBidFactorWorkflowInput GraphQL type: enum value deprecation

What you need to know and do
Change summary

Effective October 17, 2026, the AD_GROUP_UPDATE_INTEGRAL_VIEWABILITY value will be deprecated as an enum value used in the steps.mutationName field of the adGroupBidFactorWorkflow mutation (AdGroupBidFactorWorkflowInput type). Use AD_GROUP_UPDATE instead. This is a semantic-only change—there is no difference in behavior between the two enum values.

Action required

Update any code that references the AD_GROUP_UPDATE_INTEGRAL_VIEWABILITY enum value on the AdGroupBidFactorWorkflowInput type by October 17, 2026. Use AD_GROUP_UPDATE instead. For details, see the following examples.

The following are example deprecated and new mutations that show the update.

NOTE: Only the mutationName step value changes; the mutation shape itself is identical.

This mutation is deprecated—it sets the mutationName step to AD_GROUP_UPDATE_INTEGRAL_VIEWABILITY:

mutation AdGroupBidFactorWorkflowExampleDeprecated($input: AdGroupBidFactorWorkflowInput!) {
  adGroupBidFactorWorkflow(input: $input) {
    data {
      id
      name
    }
    errors {
      ... on AdGroupBidFactorWorkflowError {
        message
        field
        failedMutationName
        succeededMutationNames
      }
      ... on AdGroupWorkflowAuthError {
        message
        field
      }
    }
  }
}
{
  "input": {
    "adGroupId": "abujmf1",
    "steps": [
      {
        "mutationName": "AD_GROUP_UPDATE_INTEGRAL_VIEWABILITY",
        "mutationVariables": {
          "input": {
            "id": "abujmf1",
            "isQualityAllianceSuiteEnabled": true
          }
        }
      }
    ]
  }
}

Use this new mutation instead, with the mutationName step set to AD_GROUP_UPDATE:

mutation AdGroupBidFactorWorkflowExampleNew($input: AdGroupBidFactorWorkflowInput!) {
  adGroupBidFactorWorkflow(input: $input) {
    data {
      id
      name
    }
    errors {
      ... on AdGroupBidFactorWorkflowError {
        message
        field
        failedMutationName
        succeededMutationNames
      }
      ... on AdGroupWorkflowAuthError {
        message
        field
      }
    }
  }
}
{
  "input": {
    "adGroupId": "abujmf1",
    "steps": [
      {
        "mutationName": "AD_GROUP_UPDATE",
        "mutationVariables": {
          "input": {
            "id": "abujmf1",
            "isQualityAllianceSuiteEnabled": true
          }
        }
      }
    ]
  }
}

City GraphQL type: field deprecation

What you need to know and do
Change summary

Effective October 20, 2026, the metro field will be deprecated on the City GraphQL type. Use the NIELSEN_DMA field instead.

Action required

Update any code that references the metro field on the City type by October 20, 2026. Use the NIELSEN_DMA field instead.

GeoSegmentType GraphQL type: enum value deprecation

What you need to know and do
Change summary

Effective October 20, 2026, the METRO field will be deprecated as an enum value used in queries on the GeoSegmentType GraphQL type.

Action required

Update any code that references the METRO enum value on the GeoSegmentType type by October 20, 2026.

AdGroupFlightForecast GraphQL type: field deprecation

What you need to know and do
Change summary

Effective October 20, 2026, the following five fields on the AdGroupFlightForecast GraphQL type will be deprecated:

  • decisionPower—use the forecastedDecisionPower.decisionPower field instead.
  • lastUpdated—use the forecastedSpend.lastUpdated field instead.
  • projectedImpressions—use the forecastedSpend.forecastedSpendInImpressions field instead.
  • projectedSpend—use the forecastedSpend.forecastedSpendInAdvertiserCurrency field instead.
  • relevance—use the forecastedRelevance.relevance field instead.

Action required

Update any code that references the five fields on the AdGroupFlightForecast type by October 20, 2026. See the replacement properties listed above.

AdvertiserDataRate and ProviderDataRate GraphQL types: field deprecation

What you need to know and do
Change summary

Effective October 20, 2026, the cost field will be deprecated on both AdvertiserDataRate and ProviderDataRate GraphQL types. Use the more type-safe DataRateCost entities (such as HybridDataRateCost) at DataRateBasicInfo.DataRateCost instead.

Action required

Update any code that references the cost field on the AdvertiserDataRate and ProviderDataRate types by October 20, 2026. Use the more type-safe DataRateCost entities (such as HybridDataRateCost) at DataRateBasicInfo.DataRateCost instead.

CampaignFlightForecast GraphQL type: field deprecation

What you need to know and do
Change summary

Effective October 20, 2026, the following eight fields on the CampaignFlightForecast GraphQL type will be deprecated:

  • decisionPower—use the forecastedDecisionPower.decisionPower field instead.
  • forecastedImpressionsTomorrow—use the forecastedSpend.forecastedSpendInImpressionsTomorrow field instead.
  • forecastedSpendTomorrow—use the forecastedSpend.forecastedSpendInAdvertiserCurrencyTomorrow field instead.
  • lastUpdated—use the forecastedSpend.lastUpdated field instead.
  • neededSpendToday—use the forecastedSpend.neededSpendToday field instead.
  • projectedImpressions—use the forecastedSpend.forecastedSpendInImpressions field instead.
  • projectedSpend—use the forecastedSpend.forecastedSpendInAdvertiserCurrency field instead.
  • relevance—use the forecastedRelevance.relevance field instead.

Action required

Update any code that references the eight fields on the CampaignFlightForecast type by October 20, 2026. See the replacement properties listed above.

Creative GraphQL types: field deprecation

What you need to know and do
Change summary

Effective October 20, 2026, the following 5 fields on all Creative-related GraphQL types (Creative, DeprecatedCreative, BroadcasterHostedVideoCreative, HostedAudioCreative, HostedDisplayCreative, HostedHtml5Creative, HostedNativeCreative, HostedNativeVideoCreative, HostedVideoCreative) will be deprecated:

  • flightEndDateUTC—use the flightEnd field instead.
  • flightStartDateUTC—use the flightStart field instead.
  • interstitialSupportId—this field is deprecated as it is no longer in use (no replacement)
  • tagType—use the type field instead.
  • tagTypeEnum—use the type field instead.

Action required

Update any code that references the five fields on the Creative types listed above by October 20, 2026. See the replacement properties listed above.

FrequencyDistributionMetrics GraphQL type: field deprecation

What you need to know and do
Change summary

Effective October 20, 2026, the frequency field will be deprecated on the FrequencyDistributionMetrics GraphQL type. Use Frequency in dimensions instead.

Action required

Update any code that references the frequency field on the FrequencyDistributionMetrics type by October 20, 2026. Use Frequency in dimensions instead.

GeoReportingMetro GraphQL type: field deprecation

What you need to know and do
Change summary

Effective October 20, 2026, the following four fields on the GeoReportingMetro GraphQL type will be deprecated:

  • countryName—use GeoReportingNielsenDma instead.
  • geoSegment—use GeoReportingNielsenDma instead.
  • geoSegmentId—use GeoReportingNielsenDma instead.
  • metroCode—use GeoReportingNielsenDma instead.

Action required

Update any code that references the four fields on the GeoReportingMetro type by October 20, 2026. Use GeoReportingNielsenDma instead.

GeoTarget GraphQL type: field deprecation

What you need to know and do
Change summary

Effective October 20, 2026, the polygonFileDownloadUrl field will be deprecated on the GeoTarget GraphQL type. Use the CustomGeofence.fileDownloadUrl field instead.

Action required

Update any code that references the polygonFileDownloadUrl field on the GeoTarget type by October 20, 2026. Use the CustomGeofence.fileDownloadUrl field instead.

CreativeAdGroupAssociatePayload GraphQL type: field deprecation

What you need to know and do
Change summary

Effective October 20, 2026, the creative field will be deprecated on the CreativeAdGroupAssociatePayload GraphQL type. Use data instead.

Action required

Update any code that references the creative field on the CreativeAdGroupAssociatePayload type by October 20, 2026. Use data instead.

Timestamp validation

What you need to know and do
Change summary Effective October 30, 2026, data submitted to the /data/advertiser and /data/thirdparty endpoints with an invalid TimestampUtc value will be rejected and returned as a failed line under a new error code, InvalidTimestampUtc.
Data is considered invalid when it is either:
  • A timestamp whose expiration (TimestampUtc + TTLInMinutes) is more than 1 hour in the past.
  • A timestamp more than 1 hour in the future.
Action required To avoid dropped records, make sure the timestamp in UTC on submitted data reflects a current, non-expired value before October 30, 2026. For details, see Timestamp in UTC

TargetingDataSegment GraphQL type: field deprecation

What you need to know and do
Change summary

Effective October 30, 2026, the targetingDataCounts and daysUntilLargeExpiration fields on the TargetingDataSegment GraphQL type will be deprecated. Use the newer targetingDataInsights field instead, which includes an equivalent daysUntilLargeExpiration field alongside additional counts data.

Action required

Update any code that references the targetingDataCounts and daysUntilLargeExpiration fields on the TargetingDataSegment type by October 30, 2026. Use targetingDataInsights instead. For details, see the following examples.

The following are example deprecated and new queries that show the update.

This query is deprecated—it queries targetingDataCounts and daysUntilLargeExpiration directly on the TargetingDataSegment type:

query GetAdvertiserTargetingDataExampleDeprecated($advertiserId: ID!, $targetingDataFilterInput: TargetingDataFilterInput!) {
  advertiser(id: $advertiserId) {
    targetingDataSegments(where: $targetingDataFilterInput) {
      nodes {
        targetingDataCounts {
          activeCounts
          receivedCounts
          lastUpdatedAtUTC
        }
        daysUntilLargeExpiration
      }
    }
  }
}

Use this new query instead, scoped through targetingDataInsights.

NOTE: The daysUntilLargeExpiration field now lives inside the targetingDataInsights object rather than at the TargetingDataSegment level.

query GetAdvertiserTargetingDataExampleNew($advertiserId: ID!, $targetingDataFilterInput: TargetingDataFilterInput!) {
  advertiser(id: $advertiserId) {
    targetingDataSegments(where: $targetingDataFilterInput) {
      nodes {
        targetingDataInsights {
          activeCounts {
            devices
          }
          receivedCounts {
            totalUserIdCount
          }
          lastUpdatedAtUTC
          daysUntilLargeExpiration
        }
      }
    }
  }
}

Product Catalog itemset input types: field deprecation

What you need to know and do
Change summary

Effective November 9, 2026, the following GraphQL input fields will be deprecated:

  • ItemsetProductFilterInput.searchText—use searchCriteria instead.
  • StaticItemsetCreateInput.itemsToAdd—use itemsToAddFilter instead.
  • StaticItemsetUpdateInput.itemsToAdd—use itemsToAddFilter instead.
  • StaticItemsetUpdateInput.itemsToRemove—use itemsToRemoveFilter instead.
NOTE: If a request provides both a legacy field and its replacement, the replacement (*Filter) field takes precedence.

Action required

Update any code that references the fields listed above by November 9, 2026. See the replacement properties listed above.

GeneralReportingMetrics GraphQL type: field deprecation

What you need to know and do
Change summary

Effective November 15, 2026, the following 2 fields on the GeneralReportingMetrics GraphQL type will be deprecated:

  • nielsenOtp
  • roasAggregate

Action required

Update any code that references the two fields on the GeneralReportingMetrics type by November 15, 2026.

Query GraphQL type: endpoint deprecation

What you need to know and do
Change summary

Effective December 1, 2026, the following 2 fields on the Query GraphQL type will be deprecated:

  • thirdPartyData
  • thirdPartyDatas

Action required

Update any code that references the two fields on the Query type by December 1, 2026.

AdGroup GraphQL type: field deprecation

What you need to know and do
Change summary

Effective December 1, 2026, the following four fields on the AdGroup GraphQL type will be removed:

  • displayViewabilityStandardIntegral—use displayViewabilityStandardIntegralType instead.
  • videoViewabilityStandardIntegral—use videoViewabilityStandardIntegralType instead.
  • isNewsNavigatorEnabled—use isNewsNavigatorEnabledState instead.
  • isUsingLiveEventSchedule—use isUsingLiveEventScheduleState instead.

Action required

Update any code that references the four fields on the AdGroup type by December 1, 2026. See the replacement properties listed above.

AdGroupUpdateInput GraphQL type: field deprecation

What you need to know and do
Change summary

Effective December 11, 2026, the dataSettings field will be deprecated on the AdGroupUpdateInput GraphQL type.

Action required

Update any code that references the dataSettings field on the AdGroupUpdateInput type by December 11, 2026.

Marketplace GraphQL type: field deprecation

What you need to know and do
Change summary

Effective December 16, 2026, the following three fields on the Marketplace GraphQL type will be deprecated:

  • isEnabled
  • isPublished
  • isUsingManualSupplyPathConfiguration

Action required

Update any code that references the three fields on the Marketplace type by December 16, 2026.

PharmaHcpFrequencyWindowInput GraphQL type: enum value deprecation

What you need to know and do
Change summary

Effective December 31, 2026, the SEVEN_DAYS field will be deprecated as an enum value used in queries on the PharmaHcpFrequencyWindowInput GraphQL type.

Action required

Update any code that references the SEVEN_DAYS enum value on the PharmaHcpFrequencyWindowInput type by December 31, 2026.

MyReportsReportSchedule GraphQL type: field deprecation

What you need to know and do
Change summary

Effective December 31, 2026, the createdBy field on the MyReportsReportSchedule GraphQL type will be deprecated in favor of createdByUser. Both fields identify who created a scheduled report, but if the caller lacks visibility over the creator, createdBy returns a permission-gated User object that comes back null with a per-row GraphQL error. The createdByUser field returns a UserBasicInfo object that always resolves, returning [REDACTED] name and email instead of an error when visibility is restricted.

This deprecation applies only to MyReportsReportSchedule.createdBy (a report schedule). It does not affect the unrelated, non-deprecated createdBy field on MyReportsTemplate (a report template).

Action required

Update any code that references MyReportsReportSchedule.createdBy to use createdByUser instead, by December 31, 2026.

January-March 2027

Effective Date Product/Feature Update Type Details
Jan 1, 2027 GraphQL: TradingMode types Field deprecation TradingMode GraphQL types: field deprecation
Jan 2, 2027 GraphQL: Query (audiences) Field deprecation Query GraphQL type: root-level audiences field deprecation
Jan 2, 2027 GraphQL: TargetingData and TargetingDataSegment Field deprecation TargetingData and TargetingDataSegment GraphQL types: field deprecation
Jan 11, 2027 Contextual targeting New requirement (breaking change) Contextual targeting for new campaigns and ad groups: contextual entities required
Jan 28, 2027 GraphQL: Ad group targeting disallowed reasons Field deprecation Deal targeting disallowed reason GraphQL types: field deprecation
Feb 1, 2027 GraphQL: valueAddedProviders Field deprecation Value-added provider fields deprecation: GraphQL fields
Feb 1, 2027 Rest API: iptargetinglist Behavioral change IP targeting list REST API: unique name required for new segments
Feb 8, 2027 GraphQL: BidLine and BidListDimension Field deprecation Contextual bid list deprecation: GraphQL fields
Feb 8, 2027 Bid lists REST API Property deprecation Contextual bid list deprecation: REST properties

TradingMode GraphQL types: field deprecation

What you need to know and do
Change summary

Effective January 1, 2027, as part of the Trading Modes closed beta sunset, the audienceUnlimitedTier field will be deprecated on the following GraphQL types:

  • CampaignTradingModeDetails—use the campaign.audienceUnlimitedSettings field instead.
  • TradingModeSettings—use the advertiser.audienceUnlimitedSettings field instead.
  • CampaignCreateTradingModeSettingsInput—use the audienceUnlimitedSettings field instead.
  • CampaignCloneTradingModeSettingsInput—use the audienceUnlimitedSettings field instead.
  • CampaignUpdateTradingModeSettingsInput—use the audienceUnlimitedSettings field instead.

Both the deprecated and new fields will be exposed during the transition period; requests that submit an invalid combination of old and new field values will return an error.

Action required

Update any code that references the audienceUnlimitedTier field on the types listed above by January 1, 2027.

Query GraphQL type: root-level audiences field deprecation

What you need to know and do
Change summary

Effective January 2, 2027, the root-level audiences query on the Query GraphQL type will be deprecated. Use the scoped advertiser.audiences or partner.audiences query instead, which is consistent with how other entities are scoped through their owning entity.

Action required

Update any code that queries audiences at the root level to instead query it through advertiser(id: ...) { audiences } or partner(id: ...) { audiences } by January 2, 2027. For details, see the following examples.

The following are example deprecated and new queries that show the updates.

This query is deprecated—it queries the audiences type at the root level:

query GetAudiencesExampleDeprecated($advertiserId: String) {
  audiences(where: {advertiserId: {eq: $advertiserId}}) {
    nodes {
      audienceId: id
      audienceName: name
    }
  }
}

Use this new query instead, scoped through the advertiser type:

query GetAudiencesForAdvertiserExampleNew($advertiserId: ID!) {
  advertiser(id: $advertiserId) {
    audiences {
      nodes {
        audienceId: id
        audienceName: name
      }
    }
  }
}

To query audiences at the partner level, use this new query instead, scoped through the partner type:

query GetAudiencesForPartnerExampleNew($partnerId: ID!) {
  partner(id: $partnerId) {
    audiences {
      nodes {
        audienceId: id
        audienceName: name
      }
    }
  }
}

TargetingData and TargetingDataSegment GraphQL types: field deprecation

What you need to know and do
Change summary

Effective January 2, 2027, the targetingDataStatus field on the TargetingData GraphQL type will be deprecated. Use the targetingDataInsights field on the TargetingDataSegment GraphQL type instead, available starting mid-October 2026. Note that the state field is not carried over to targetingDataInsights. The receivedCounts field remains available for now but will eventually become internal-only.

Action required

Update any code that references targetingDataStatus (under TargetingData) to instead use targetingDataInsights (under TargetingDataSegment) by January 2, 2027.

Contextual targeting on new campaigns and ad groups: contextual entities required

What you need to know and do
Change summary

Effective January 11, 2027, contextual entities become the default experience for contextual targeting for new campaigns and ad groups.

  • Contextual bid lists will no longer be created on net-new campaigns or ad groups, in the UI or using the Platform REST API.
  • Contextual targeting on net-new campaigns and ad groups will be available only through GraphQL, using contextual entities. For details, see Contextual category configuration.
  • This update does not affect existing campaigns and ad groups already using contextual bid lists. They will continue to work as-is until contextual bid lists are fully deprecated.
  • Cloning an existing bid list campaign also remains supported in the UI and API until that full deprecation.
Action required

If you use the Platform REST API to create contextual bid lists on new campaigns or ad groups, migrate to using contextual entities via GraphQL before January 11, 2027. No action is required for existing campaigns or ad groups.

Deal targeting disallowed reason GraphQL types: field deprecation

What you need to know and do
Change summary

As part of a broader effort to improve the performance of ad group targetable inventory queries, effective January 28, 2027, the targetedAtPartnerLevel, targetedAtAdvertiserLevel and targetedAtCampaignLevel fields will be deprecated in favor of a single new field, targetedAtHigherLevel, on the following GraphQL types:

  • DealTargetingDisallowedReason
  • CommitmentTargetingDisallowedReason
  • EndeavorTargetingDisallowedReason

Here's what you need to know:

  • The targetedAtHigherLevel value is true when any of the three deprecated fields would have been set to true.
  • You can reach these types through the isTargetingChangeAllowed.reason field on the edges of the adGroup.targetableDeals, adGroup.targetableCommitments and adGroup.targetableEndeavors fields.
  • The targetedAtHigherLevel field doesn't distinguish between partner-, advertiser- and campaign-owned bid lists. If that distinction matters to you, retrieve the higher-level bid list and its owning level through the Platform API.
Action required

Update any code that references the targetedAtPartnerLevel, targetedAtAdvertiserLevel and targetedAtCampaignLevel fields on the three types listed above to use targetedAtHigherLevel instead, by January 28, 2027. For details, see the following examples.

The following are example deprecated and new queries that show the update.

NOTE: The same change applies to the targetableCommitments and targetableEndeavors deprecated fields.

This query is deprecated—it queries the three per-level fields directly on the reason value:

query AdGroupTargetableDealsExampleDeprecated($adGroupId: ID!) {
  adGroup(id: $adGroupId) {
    targetableDeals {
      edges {
        isTargetingChangeAllowed {
          isAllowed
          reason {
            targetedAtPartnerLevel
            targetedAtAdvertiserLevel
            targetedAtCampaignLevel
          }
        }
      }
    }
  }
}

Use this new query instead, with the single targetedAtHigherLevel field:

query AdGroupTargetableDealsExampleNew($adGroupId: ID!) {
  adGroup(id: $adGroupId) {
    targetableDeals {
      edges {
        isTargetingChangeAllowed {
          isAllowed
          reason {
            targetedAtHigherLevel
          }
        }
      }
    }
  }
}

Value-added provider fields deprecation: GraphQL fields

What you need to know and do
Change summary

The following GraphQL value-added provider fields are deprecated. Their replacements identify providers by ID instead of enum value, consistent with the REST API change. Deprecated endpoints will be removed on February 1, 2027.

  • Query fields:
    • Adgroup.valueAddedProviders— use the Adgroup.valueAddedProviderInfo field instead.
    • Campaign.valueAddedProviders— use the Campaign.valueAddedProviderInfo field instead.
    The replacement fields return a ValueAddedProviderInfo object with id, name, and description properties. You can filter by the id and name fields.

  • Mutation input fields:
    • AdGroupCreateInput.valueAddedProviders— use the AdGroupCreateInput.enabledValueAddedProviderIds field instead.
    • AdgroupUpdateInput.valueAddedProviders— use the AdgroupUpdateInput.enabledValueAddedProviderIds field instead.
    The replacement fields accept an array of integer provider IDs.
Action required

Update your campaign and ad group queries to use the valueAddedProviderInfo field and your ad group create and update mutations to pass provider IDs in the enabledValueAddedProviderIds field by February 1, 2027.

IP targeting list REST API: unique name required for new segments

What you need to know and do
Change summary

Effective February 1, 2027, the POST /iptargetinglist endpoint requires a unique IP targeting data name. Previously, clients could call the endpoint repeatedly with the same IP targeting data name; each call succeeded and was assigned the same targeting data ID but a different IP targeting data name, resulting in duplicate IP target lists in your account. Going forward, a request that reuses an existing IP targeting data name for a new segment will return an error.

To edit an existing IP list, continue using the PUT /iptargetinglist endpoint.

Action required

Before February 1, 2027, review any automation that calls POST /iptargetinglist. If it relies on reusing an existing IP targeting data name value to create new segments, update it to supply a unique name per new segment, or switch to the PUT /iptargetinglist endpoint if the intent is to edit an existing list.

Contextual bid list deprecation: GraphQL fields

What you need to know and do
Change summary

Effective February 8, 2027, contextual bid lists will be deprecated. To use contextual categories in your campaigns, you must first organize them into contextual groups and entities, then assign those entities to your ad groups. For details, see Contextual category configuration.

The following GraphQL fields will be removed:

  • BidLine
    • doubleVerifyBrandSafetyCategory
    • integralBrandSafetyCategory
    • integralVideoBrandSafetyCategory
    • peer39BrandSafetyCategory
    • preBidContextualCategory
  • BidListDimension
    • HAS_DOUBLE_VERIFY_BRAND_SAFETY_CATEGORY_ID
    • HAS_INTEGRAL_BRAND_SAFETY_CATEGORY_ID
    • HAS_INTEGRAL_VIDEO_BRAND_SAFETY_CATEGORY_ID
    • HAS_PEER39_BRAND_SAFETY_CATEGORY_ID
    • HAS_PRE_BID_CONTEXTUAL_CATEGORY_ID

Requests that include these fields after this date will return an error.

Action required

Update any code that references the fields listed above on the BidLine and BidListDimension GraphQL types by February 8, 2027. For details, see Migrate bid lists to contextual entities.

Contextual bid list deprecation: REST properties

What you need to know and do
Change summary

Effective February 8, 2027, contextual bid lists will be deprecated. To use contextual categories in your campaigns, you must first organize them into contextual groups and entities, then assign those entities to your ad groups. For details, see Contextual category configuration.

The following REST properties will be removed:

  • POST /v3/adgroup
    • AssociatedBidLists.BidListDimensions.HasDoubleVerifyBrandSafetyCategoryId
    • AssociatedBidLists.BidListDimensions.HasIntegralBrandSafetyCategoryId
    • AssociatedBidLists.BidListDimensions.HasIntegralContextualCategoryId
    • AssociatedBidLists.BidListDimensions.HasIntegralVideoBrandSafetyCategoryId
    • NewBidLists.BidLines.DoubleVerifyBrandSafetyCategoryId
    • NewBidLists.BidLines.IntegralBrandSafetyCategoryId
    • NewBidLists.BidLines.IntegralVideoBrandSafetyCategoryId
    • NewBidLists.BidLines.TTDContextualCategoryId
    • NewBidLists.BidListDimensions.HasDoubleVerifyBrandSafetyCategoryId
  • PUT /v3/adgroup
    • AssociatedBidLists.BidListDimensions.HasDoubleVerifyBrandSafetyCategoryId
    • AssociatedBidLists.BidListDimensions.HasDoubleVerifyContextualCategoryId
    • AssociatedBidLists.BidListDimensions.HasIntegralBrandSafetyCategoryId
    • AssociatedBidLists.BidListDimensions.HasIntegralContextualCategoryId
    • AssociatedBidLists.BidListDimensions.HasIntegralVideoBrandSafetyCategoryId
    • AssociatedBidLists.BidListDimensions.HasPeer39BrandSafetyCategoryId
    • AssociatedBidLists.BidListDimensions.HasPeer39ContextualCategoryId
    • AssociatedBidLists.BidListDimensions.HasPreBidContextualCategoryId
    • AssociatedBidLists.BidListDimensions.HasSemasioContextualCategoryId
    • AssociatedBidLists.BidListDimensions.HasTTDContextualCategoryId
    • NewBidLists.BidLines.AudigentContextualCategoryId
    • NewBidLists.BidLines.DoubleVerifyBrandSafetyCategoryId
    • NewBidLists.BidLines.IntegralBrandSafetyCategoryId
    • NewBidLists.BidLines.IntegralVideoBrandSafetyCategoryId
    • NewBidLists.BidLines.Peer39BrandSafetyCategoryId
    • NewBidLists.BidLines.TTDContextualCategoryId
    • NewBidLists.BidListDimensions.HasDoubleVerifyBrandSafetyCategoryId
    • NewBidLists.BidListDimensions.HasIntegralBrandSafetyCategoryId
    • NewBidLists.BidListDimensions.HasIntegralVideoBrandSafetyCategoryId
  • POST /v3/bidlist
    • BidLines.AdFontesContextualCategoryId
    • BidLines.AudigentContextualCategoryId
    • BidLines.ComscoreContextualCategoryId
    • BidLines.DoubleVerifyBrandSafetyCategoryId
    • BidLines.DoubleVerifyContextualCategoryId
    • BidLines.FourDContextualCategoryId
    • BidLines.IntegralBrandSafetyCategoryId
    • BidLines.IntegralContextualCategoryId
    • BidLines.IntegralVideoBrandSafetyCategoryId
    • BidLines.Peer39BrandSafetyCategoryId
    • BidLines.Peer39ContextualCategoryId
    • BidLines.TTDContextualCategoryId
    • BidLines.hyScoreContextualCategoryId
  • PUT /v3/bidlist
    • BidLines.ComscoreContextualCategoryId
    • BidLines.DoubleVerifyBrandSafetyCategoryId
    • BidLines.DoubleVerifyContextualCategoryId
    • BidLines.IntegralContextualCategoryId
    • BidLines.TTDContextualCategoryId
  • POST /v3/bidlist/batch
    • BidLines.AudigentContextualCategoryId
    • BidLines.DoubleVerifyBrandSafetyCategoryId
    • BidLines.IntegralBrandSafetyCategoryId
    • BidLines.IntegralContextualCategoryId
    • BidLines.IntegralVideoBrandSafetyCategoryId
    • BidLines.TTDContextualCategoryId
  • PUT /v3/bidlist/batch
    • BidLines.DoubleVerifyBrandSafetyCategoryId
    • BidLines.IntegralBrandSafetyCategoryId
    • BidLines.IntegralVideoBrandSafetyCategoryId
  • PUT /v3/campaign
    • AssociatedBidLists.BidListDimensions.HasDoubleVerifyBrandSafetyCategoryId
    • AssociatedBidLists.BidListDimensions.HasDoubleVerifyContextualCategoryId
    • AssociatedBidLists.BidListDimensions.HasPreBidContextualCategoryId
  • POST /v3/universalforecasting/generate
    • UniversalForecastingBidLists.BidLines.DoubleVerifyBrandSafetyCategoryId

Requests that include these properties after this date will return an error.

Action required

Update any code that references the properties listed above across these REST endpoints by February 8, 2027. For details, see Migrate bid lists to contextual entities.

April-June 2027

Effective Date Product/Feature Update Type Details
Apr 1, 2027 GraphQL: Advertiser and ConversionLiftProvider Field deprecation Advertiser and ConversionLiftProvider GraphQL types: field deprecation
Apr 1, 2027 GraphQL: Mutation Endpoint deprecation Mutation GraphQL type: endpoint deprecation
Apr 1, 2027 GraphQL: Query Endpoint deprecation Query GraphQL type: endpoint deprecation
Apr 1, 2027 Reports Download URL update Scheduled reports: new download URL format

Advertiser and ConversionLiftProvider GraphQL types: field deprecation

What you need to know and do
Change summary

Effective April 1, 2027, the conversionLiftExperiments field will be deprecated on both Advertiser and ConversionLiftProvider GraphQL types.

Action required

Update any code that references the conversionLiftExperiments field on the Advertiser and ConversionLiftProvider types by April 1, 2027.

Mutation GraphQL type: endpoint deprecation

What you need to know and do
Change summary

Effective April 1, 2027, the conversionLiftExperimentUpdate field query will be deprecated on the Mutation GraphQL type.

Action required

Update any code that references the conversionLiftExperimentUpdate field on the Mutation type by April 1, 2027.

Query GraphQL type: endpoint deprecation

What you need to know and do
Change summary

Effective April 1, 2027, the following two fields on the Query GraphQL type will be deprecated:

  • conversionLiftExperiment
  • conversionLiftExperimentDelta

Action required

Update any code that references the two fields on the Query type by April 1, 2027.

Scheduled reports: new download URL format

What you need to know and do
Change summary

Effective April 1, 2027, the DownloadURL field returned by the scheduled reports API will use a new format. The legacy format will remain valid for 30 days after the change takes effect.

Here's the new format, with placeholders in curly braces:

api.thetradedesk.com/v3/reports/download/{EXECUTION_ID}/{DELIVERY_ID}?t={TIMESTAMP}&s={SIGNATURE}&src={SOURCE}
Action required

Whether action is required depends on how your integration uses the DownloadURL value:

  • If your integration uses the DownloadURL value returned directly by the API without modification, no action is required.
  • If you hardcode the download URL or parse and reassemble it, update your integration to use the new format.