Third party data: REST → GraphQL migration guide

Quick reference table

REST endpoint GraphQL operation Notes
POST /v3/thirdpartydata/query ThirdPartyDataProvider.thirdPartyDataTaxonomies N/A
GET /v3/thirdpartydata/status/{providerId}/{providerElementId} ThirdPartyDataProvider.taxonomyApprovalStatus N/A
POST /v3/dmp/thirdparty/advertiser Query.thirdPartyDatas N/A
POST /v3/dmp/firstparty/advertiser Advertiser.firstPartyData N/A
GET /v3/dmp/lookalikemodel/{firstPartyDataId} N/A Not currently available in GraphQL
GET /v3/dmp/lookalikemodel/build/{firstPartyDataId} N/A Not currently available in GraphQL
POST /v3/dmp/lookalikethirdpartydata/query Advertiser.targetingDataSegments Select lookAlikeThirdPartyData on connection edges
GET /v3/thirdpartydataprovider Query.thirdPartyDataProvidersForBilling N/A
GET /v3/thirdpartydataprovider/{providerId} Query.thirdPartyDataProviderForBilling N/A
GET /v3/thirdpartydataproviderbrandmapping Query.thirdPartyDataProviderBrandMappings N/A
GET /v3/thirdpartydataproviderbrandmapping/{brandId} Query.thirdPartyDataProviderBrandMapping N/A
POST /v3/datarate/query ThirdPartyDataProvider.thirdPartyDataRates N/A
GET /v3/datarate/batch/{batchId} Query.thirdPartyDataRateBatch N/A
GET /v3/datarate/brands/{providerId} ThirdPartyDataProvider.brandsForDataRates N/A

Shared nested types and enums

MoneyModel

GraphQL field GraphQL type Nullable Notes
amount Decimal! Not nullable N/A
currency Currency! Not nullable N/A
currencyCode CurrencyCode! Not nullable N/A

ThirdPartyDataRate

Node type returned by ThirdPartyDataProvider.thirdPartyDataRates. REST returns a flat BrandId; GraphQL exposes brand: ThirdPartyDataBrand!, so resolve the brand ID as brand { id }. REST RateLevel and RateType map to rateLevel and rateType.

GraphQL field GraphQL type Nullable Notes
advertiser Advertiser Nullable Present when rateLevel is advertiser-level
brand ThirdPartyDataBrand! Not nullable REST BrandId → brand { id }
cpmRate MoneyModel Nullable Present when rateType is CPM or hybrid
inheritedFromProviderElementId ID Nullable N/A
isInherited Boolean Nullable N/A
partner Partner Nullable Present when rateLevel is partner-level
percentOfMediaCostRate Decimal Nullable Present when rateType is percent-of-media-cost or hybrid
provider ThirdPartyDataProvider! Not nullable N/A
providerElementId ID! Not nullable N/A
rateLevel DataRateLevel! Not nullable REST RateLevel
rateType ThirdPartyDataRateType! Not nullable REST RateType

ThirdPartyDataRateBatchItem

Element type of ThirdPartyDataRateBatch.dataRates. REST returns a flat BrandId; GraphQL exposes brand: ThirdPartyDataBrand!, so resolve the brand ID as brand { id }. REST RateLevel and RateType map to rateLevel and rateType.

GraphQL field GraphQL type Nullable Notes
advertiser Advertiser Nullable Present when rateLevel is advertiser-level
brand ThirdPartyDataBrand! Not nullable REST BrandId → brand { id }
cpmRate MoneyModel Nullable Present when rateType is CPM or hybrid
partner Partner Nullable Present when rateLevel is partner-level
percentOfMediaCostRate Decimal Nullable Present when rateType is percent-of-media-cost or hybrid
providerElementId ID! Not nullable N/A
rateLevel DataRateLevel! Not nullable REST RateLevel
rateType ThirdPartyDataRateType! Not nullable REST RateType

DataRateBatchApprovalStatus

Approval status on ThirdPartyDataRateBatch.approvalStatus.

GraphQL value Notes
APPROVED N/A
AWAITING_MANUAL_REVIEW N/A
DENIED N/A
NOT_REVIEWED N/A

DataRateLevelInput

GraphQL value Notes
ADVERTISER N/A
PARTNER N/A
SYSTEM N/A

DataRateLevel

Distinct type from DataRateLevelInput above (output enum vs query filter); members are the same.

GraphQL value Notes
ADVERTISER N/A
PARTNER N/A
SYSTEM N/A

ThirdPartyDataRateType

GraphQL value Notes
CPM Priced per thousand impressions; read cpmRate
HYBRID Both a CPM and a percentage of media cost apply
PERCENT_OF_MEDIA_COST Priced as a share of media cost; read percentOfMediaCostRate

DataRateBatchProcessingStatus

Distinct from DataRateBatchApprovalStatus above.

GraphQL value Notes
FAILED N/A
IN_PROGRESS N/A
NOT_STARTED N/A
SUCCESSFUL N/A

DataEventType

GraphQL value Notes
ADD_TO_CART N/A
DIRECTION N/A
LOCATION_VISITORS N/A
LOGIN N/A
LOYALTY_MEMBERS N/A
MESSAGE_BUSINESS N/A
MODELED_PHARMA N/A
OTHER N/A
PURCHASE N/A
PURCHASE_CATEGORY N/A
PURCHASE_CATEGORY_MODELED N/A
PURCHASE_MODELED N/A
REGISTERED_VOTERS N/A
SEARCH_CATEGORY N/A
SEARCH_ITEM N/A
SITE_VISIT N/A
START_CHECKOUT N/A
SUBSCRIBE_TO_NEWSLETTER N/A
VIEW_CART N/A
VIEW_ITEM N/A
VOTERS N/A
WISH_LIST_ITEM N/A

TargetingDataType

GraphQL value Notes
BULK_USER_LIST N/A
CAMPAIGN_SEED_DATA N/A
CLICK_RETARGETING N/A
CRM_DATA N/A
DIRECT_IP_TARGETING N/A
DYNAMIC_TRACKING_RULE N/A
ECOMMERCE_CATALOG_LIST N/A
EMAIL_OPEN N/A
FIXED_PRICE_USER N/A
HOUSEHOLD_EXTENSION N/A
IMPORTED_ADVERTISER_DATA N/A
IMPORTED_ADVERTISER_DATA_WITH_BASE_BID N/A
IP_ADDRESS_RANGE N/A
LOOK_A_LIKE_DATA N/A
PAID_SEARCH_CLICK N/A
PLAYER_EVENT_COMPLETE N/A
PLAYER_EVENT_MIDPOINT N/A
PLAYER_EVENT_START N/A
SEED_DATA N/A
THIRD_PARTY_DATA N/A
THIRD_PARTY_IMPRESSION N/A
TRACKING_TAG N/A
UNKNOWN N/A

SegmentAudienceExpansion

Object type, not an enum.

GraphQL field GraphQL type Nullable Notes
countries [String!] Nullable N/A
isCrossDeviceExpansionEnabled Boolean Nullable N/A
isEnabled Boolean Nullable N/A
isLookAlikeExpansionEnabled Boolean Nullable N/A
lastProcessedUtc DateTime Nullable N/A
lookalikeSettings AudienceExpansionLookalikeSettings Nullable N/A
providerElementIds [String!] Nullable N/A

ThirdPartyDataSortInput

Input object, not an enum.

GraphQL field GraphQL type Required Notes
id SortEnumType Optional N/A
thirdPartyDataProviderId SortEnumType Optional N/A