Skip to navigation

CTV app fields

Every field the Enrichment API returns for a connected TV app, grouped by widget.

Every Enrichment API lookup returns a docs array of records. Each record covers one app on one CTV platform, for one region. The fields in a record depend on the widgets you request: if you don’t pass widget, you get all of them. See the Enrichment API guide for how to make requests.

Risk ratings are one of low, medium or high. Some fields can be null, as noted in their descriptions. Fields that appear in a response but aren’t listed here can change without notice, so don’t build on them.

For the full request and response schema, see the API reference for GET /mrt/ctv/{appId}.

Record keys

These identify what a record covers.

On CTV, device is the platform, not a form factor. Each platform’s record carries that platform’s own app ID, and there is no cross-platform aggregate record.

FieldTypeDescription
appIdstringThe app’s identifier on its platform’s store. Each platform row carries that platform’s own ID.
regionstring: GLOBAL, NA, EMEA, LATAM, APACThe region this record covers. GLOBAL is the aggregate of all regions.
devicestring: roku, firetvThe platform this record covers. There is no cross-platform GLOBAL aggregate.
includeSpoofingbooleantrue if spoofing information is included.

Widgets

Pass any of these names in the widget parameter, comma-separated. Each links to its fields below.

WidgetWhat it contains
appOverviewTitle, description, categories, screenshots and channel ID.
riskOverviewHeadline IVT, SSAI and brand safety figures, plus Pixalate’s overall risk rating with reasons.
pixalateAdvisoriesAdvisory flags: app-ads.txt, delisting, developer policies and app age risk.
appSpoofingWhether the app is a victim of spoofing, and spoofing by fraud type.
appDetailsStore details, ratings, availability, privacy policy, delisting status and bundle IDs.
developerOverviewThe developer’s name, website, policies and number of apps.
channelsChannels offered by apps that aggregate channels or provide ‘skinny bundles’.
brandSafetyBrand safety risk from the app’s descriptive text and from its visual content.
trafficOverlapTraffic and audience estimates, ad density, and how the app’s audience overlaps with other apps.
authorizedSellersThe sell-side platforms selling the app’s inventory, with volume, IVT, spoofing and SSAI rates for each.
invalidTrafficIVT, GIVT and SIVT percentages, with a breakdown by IVT type.
inventoryEstimated programmatic impressions by region, ad size and DMA, with IVT and SSAI rates.
availableCountriesThe countries where the app is available.
rankingsRegion and category ranks, plus grades and scores across several dimensions.
rankingsByCountryReach and market share rankings by country.
coppaSignals related to the Children’s Online Privacy Protection Act (COPPA): audience, COPPA risk and data practices.
mfaMade-for-advertising (MFA) risk and ad refresh rate.

appOverview

Title, description, categories, screenshots and channel ID.

FieldTypeDescription
appOverview.channelIdstringThe channel identifier.
appOverview.appTitlestringThe app title.
appOverview.descriptionstringApp description.
appOverview.categoriesarray of stringsThe categories of the app.
appOverview.screenshotUrlsarray of stringsA list of app screenshot URLs.

riskOverview

Headline IVT, SSAI and brand safety figures, plus Pixalate’s overall risk rating with reasons.

FieldTypeDescription
riskOverview.riskarray of objectsPixalate’s overall advertising risk rating, blending brand safety, invalid traffic and inventory risk factors, with the reasons behind it.
riskOverview.risk[].regionstring: GLOBAL, NA, EMEA, LATAM, APACA geographic region. GLOBAL indicates an aggregate of all regions.
riskOverview.risk[].pixalateRiskstring: low, medium, highPixalate’s overall risk rating.
riskOverview.risk[].pixalateRiskReasonsarray of stringsReasons for the rating. See Risk reasons.
riskOverview.ivtnumberPercentage of invalid traffic associated with advertising transactions for the app.
riskOverview.ivtRiskstring: low, medium, highThe invalid traffic risk.
riskOverview.ssaiRatenumberThe percentage of traffic observed to utilize server-side-ad-insertion (SSAI) integrations for ad/ad content delivery to the end user.
riskOverview.transaparentSsaiRatenumberThe SSAI tracked impressions that come from proxies passing X-Device-User-Agent headers for more transparency.
riskOverview.descriptionBrandSafetyRiskstring: low, medium, highThe overall description risk to advertiser brand safety from the app.
riskOverview.contentBrandSafetyRiskstring: low, medium, highThe overall content risk to advertiser brand safety from the app.

pixalateAdvisories

Advisory flags: app-ads.txt, delisting, developer policies and app age risk.

FieldTypeDescription
pixalateAdvisories.hasAppAdsTxtbooleantrue if AppAds.txt is enabled for the app’s domain.
pixalateAdvisories.delistedAppbooleantrue if app has been delisted from the app store.
pixalateAdvisories.delistedDatestring (date)If app has been delisted from the app store, then this property is the date when delisted. The date format is YYYY-MM-DD.
pixalateAdvisories.privateDomainbooleantrue if app’s domain is privately registered.
pixalateAdvisories.hasTermsAndConditionsbooleantrue if app has terms and conditions.
pixalateAdvisories.hasPrivacyPolicybooleantrue if app has privacy policy.
pixalateAdvisories.appAgeRiskstring: low, medium, highRisk rating based on the amount of time the app has been listed within the app store. Apps which have been listed for an extended period of time may present less risk than those recently published.

appSpoofing

Whether the app is a victim of spoofing, and spoofing by fraud type.

FieldTypeDescription
appSpoofing.victimOfSpoofingbooleantrue if the app is a victim of spoofing.
appSpoofing.spoofingRiskstring: low, medium, highRisk of spoofing in this app.
appSpoofing.byFraudTypearray of objectsSpoofing broken down by fraud type. Each entry lists the apps involved, with the detected bundle ID, the declared bundle ID and the share of voice (SOV) risk.
appSpoofing.byFraudType[].fraudTypestringThe fraud type.
appSpoofing.byFraudType[].appsarray of objectsThe apps designated for this fraud type.
appSpoofing.byFraudType[].apps[].detectedBundleIdstringThe bundle identifier detected for the app.
appSpoofing.byFraudType[].apps[].declaredBundleIdstringThe bundle identifier declared for the app.
appSpoofing.byFraudType[].apps[].sovRiskstring: low, medium, highThe share of voice (SOV) risk for the app.

appDetails

Store details, ratings, availability, privacy policy, delisting status and bundle IDs.

FieldTypeDescription
appDetails.appStoreUrlstringThe app’s page in its platform’s store.
appDetails.availableCountriesarray of stringsThe countries in which the app is available.
appDetails.availableLanguagesarray of stringsThe languages in which the app is available.
appDetails.keywordsarray of stringsSearch terms and keywords typically associated to the app.
appDetails.ratingnumberThe app’s average user-rating within the app store (based on a 5-star scale).
appDetails.starRatingCountintegerThe number of ratings provided within the app store.
appDetails.parentalHintstringIndicates parental sensitivity considerations for the respective app content.
appDetails.revenueSourcesarray of stringsThe primary sources of revenue for the app.
appDetails.cvaaCompliantbooleantrue if the app is in compliance with the FCC’s Communications and Video Accessibility Act (CVAA) Standards.
appDetails.appAgeRiskstring: low, medium, highRisk rating based on the amount of time the app has been listed within the app store.
appDetails.appAgenumberThe amount of time the app has been listed within the app store.
appDetails.publishedDatestringThe date of original publication within the app store.
appDetails.appPrivacyPolicybooleantrue if an app-specific privacy policy is maintained. Apps which do not maintain a privacy policy may be of higher risk to advertisers and sellers.
appDetails.appPrivacyPolicyUrlstringLink to the app-specific privacy policy.
appDetails.delistedAppbooleantrue if the app was delisted from app store.
appDetails.delistedDatestringIf the app is delisted, then the date app was delisted from app store. The date format is YYYY-MM-DD.
appDetails.bundleIdsarray of objectsThe share of voice (SOV) ratio broken down by bundle identifier.
appDetails.bundleIds[].bundleIdstringThe bundle identifier.
appDetails.bundleIds[].sovRationumberThe share of voice (SOV) ratio for this bundle identifier.

developerOverview

The developer’s name, website, policies and number of apps.

FieldTypeDescription
developerOverview.developerNamestringThe business name of the app’s developer.
developerOverview.developerWebsitestringThe website of the app’s developer.
developerOverview.privateDomainbooleantrue if app’s domain is privately registered.
developerOverview.hasTermsAndConditionsbooleantrue if app has terms and conditions.
developerOverview.hasPrivacyPolicybooleantrue if app has privacy policy.
developerOverview.totalAppsintegerTotal number of apps published by this developer.

channels

Channels offered by apps that aggregate channels or provide ‘skinny bundles’.

FieldTypeDescription
channelsarray of objectsChannels available for apps considered as aggregators or providers of ‘skinny bundles’.
channels[].namestringThe channel name.

brandSafety

Brand safety risk from the app’s descriptive text and from its visual content.

FieldTypeDescription
brandSafety.descriptionBrandSafetyobjectApp descriptive text is processed through natural language algorithms and comprehensive categorical dictionaries to predict the advertiser brand safety risk.
brandSafety.descriptionBrandSafety.advisoriesRiskstring: low, medium, highThe risk to brand safety derived from the app’s content advisories.
brandSafety.descriptionBrandSafety.adultContentRiskstring: low, medium, highThe risk to brand safety from adult themed content based on textual analysis of the app and its descriptive content.
brandSafety.descriptionBrandSafety.drugContentRiskstring: low, medium, highThe risk to brand safety from drug themed content based on textual analysis of the app and its descriptive content.
brandSafety.descriptionBrandSafety.alcoholContentRiskstring: low, medium, highThe risk to brand safety from Alcohol themed content based on textual analysis of the app and its descriptive content.
brandSafety.descriptionBrandSafety.hateSpeechRiskstring: low, medium, highThe risk to brand safety from hate speech content based on textual analysis of the app and its descriptive content.
brandSafety.descriptionBrandSafety.offensiveContentRiskstring: low, medium, highThe risk to brand safety from content with offensive language based on textual analysis of the app and its descriptive content.
brandSafety.contentBrandSafetyobjectIn-app visual content is processed through an advanced machine learning algorithm and evaluated for risk to advertiser brand safety.
brandSafety.contentBrandSafety.adultRiskstring: low, medium, highThe risk to brand safety from potential adult images and content detected within the app.
brandSafety.contentBrandSafety.violenceRiskstring: low, medium, highThe risk to brand safety from potential violent imagery and content detected within the app.
brandSafety.contentBrandSafety.imageDataarray of objectsThe image by image breakdown of brand safety risk factors based on advanced image processing and machine learning.
brandSafety.contentBrandSafety.imageData[].urlstringA URL to the image.
brandSafety.contentBrandSafety.imageData[].textstringThe extracted text.
brandSafety.contentBrandSafety.imageData[].violenceRiskstring: low, medium, highThe risk to brand safety from potential violence images and any extracted text.
brandSafety.contentBrandSafety.imageData[].spoofRiskstring: low, medium, highThe risk to brand safety from potential spoofing based on images and any extracted text.
brandSafety.contentBrandSafety.imageData[].medicalRiskstring: low, medium, highThe risk to brand safety from potential medical images and any extracted text.
brandSafety.contentBrandSafety.imageData[].adultRiskstring: low, medium, highThe risk to brand safety from potential adult images and any extracted text.

trafficOverlap

Traffic and audience estimates, ad density, and how the app’s audience overlaps with other apps.

FieldTypeDescription
trafficOverlap.trafficOverviewobjectTraffic volume and ad inventory estimates for the app along with associated advertising risk factors.
trafficOverlap.trafficOverview.spoofingRiskstring: low, medium, highThe risk the app may be misrepresented in advertising transactions and ads delivered to a different app or site.
trafficOverlap.trafficOverview.advertisingIvtRiskstring: low, medium, highThe risk of advertising impressions delivered to the app being due to invalid traffic (IVT). IVT risk is derived from standardized definitions of invalid traffic maintained by the Media Rating Council, Inc. (MRC) and the Interactive Advertising Bureau (IAB).
trafficOverlap.trafficOverview.trustedSellerstringThe top-rated seller for this app. Pixalate rates the sellers representing the app on factors including audience reach and invalid traffic risk.
trafficOverlap.trafficOverview.ivtFreeUsersRatenumberThe percentage of the app’s individual user-base not responsible for presence of invalid traffic.
trafficOverlap.trafficOverview.estimatedDailyActiveUsersintegerThe estimated Daily Active Users (DAU) for the app.
trafficOverlap.trafficOverview.estimatedMonthlyActiveUsersintegerThe estimated Monthly Active Users (MAU) for the app.
trafficOverlap.trafficOverview.adSpendnumberTotal estimated monthly ad spend on this app.
trafficOverlap.trafficOverview.adDensitynumberThe estimated number of ads displayed to the average user by this app.
trafficOverlap.trafficOverview.adDensityRiskstring: low, medium, highThe ad density risk for the application.
trafficOverlap.trafficOverview.adDensityConfidenceScorenumberConfidence of ad density calculations and risk.
trafficOverlap.trafficOverlapobjectOverlap traffic illustrates the most common user journeys from app to app. It leverages shared users to not only connect apps together but also to create relationships between a series of apps. List of apps provided based on overall traffic(byOveralTraffic) and invalid traffic(byIvt).
trafficOverlap.trafficOverlap.byOverallTrafficarray of objectsOverall traffic overlap broken down by app.
trafficOverlap.trafficOverlap.byOverallTraffic[].appNamestringThe app name.
trafficOverlap.trafficOverlap.byOverallTraffic[].developerNamestringThe developer name.
trafficOverlap.trafficOverlap.byOverallTraffic[].impressionOverlapnumberThe impression overlap with the app.
trafficOverlap.trafficOverlap.byOverallTraffic[].deviceOverlapnumberThe device overlap with the app.
trafficOverlap.trafficOverlap.byOverallTraffic[].riskstring: low, medium, highThe overlap risk.
trafficOverlap.trafficOverlap.byIvtarray of objectsIVT traffic overlap broken down by app.
trafficOverlap.trafficOverlap.byIvt[].appNamestringThe app name.
trafficOverlap.trafficOverlap.byIvt[].developerNamestringThe developer name.
trafficOverlap.trafficOverlap.byIvt[].impressionOverlapnumberThe impression overlap with the app.
trafficOverlap.trafficOverlap.byIvt[].deviceOverlapnumberThe device overlap with the app.
trafficOverlap.trafficOverlap.byIvt[].riskstring: low, medium, highThe overlap risk.

authorizedSellers

The sell-side platforms selling the app’s inventory, with volume, IVT, spoofing and SSAI rates for each.

FieldTypeDescription
authorizedSellersarray of objectsThe contribution of various sell side platforms to programmatic ad impressions sold on the app.
authorizedSellers[].exchangestringThe name of the exchange.
authorizedSellers[].paymentTypestringHow the seller is categorized, for example Direct.
authorizedSellers[].inventoryintegerThe estimated number of monthly impressions this app makes available programmatically by this seller.
authorizedSellers[].inventoryRationumberThe average inventory ratio for ad impressions on the app by this seller.
authorizedSellers[].ivtnumberThe average IVT for ad impressions on the app by this seller.
authorizedSellers[].videoInventoryRationumberThe average video inventory ratio for ad impressions on the app by this seller.
authorizedSellers[].displayInventoryRationumberThe average display inventory ratio for ad impressions on the app by this seller.
authorizedSellers[].spoofingRatenumberThe average spoofing rate for ad impressions on the app by this seller.
authorizedSellers[].ssaiRatenumberThe percentage of traffic observed to utilize server-side-ad-insertion (SSAI) integrations for ad/ad content delivery to the end user.
authorizedSellers[].transparentSsaiRatenumberThe SSAI tracked impressions that come from proxies passing X-Device-User-Agent headers for more transparency.

invalidTraffic

IVT, GIVT and SIVT percentages, with a breakdown by IVT type.

FieldTypeDescription
invalidTraffic.ivtnumberThe total percentage of non-human traffic measured on the app.
invalidTraffic.givtnumberGIVT refers to General Invalid Traffic - Deterministically judged to be non-human traffic; high to very high risk.
invalidTraffic.sivtnumberSIVT refers to Sophisticated Invalid Traffic - Probabilistically judged to be non-human traffic using advanced statistical detection methods; moderate to high risk traffic.
invalidTraffic.givtTypesarray of objectsThe percentage of invalid traffic associated with each Pixalate’s taxonomy of GIVT invalid traffic types.
invalidTraffic.givtTypes[].fraudTypestringThe GIVT type.
invalidTraffic.givtTypes[].givtnumberGIVT refers to General Invalid Traffic - Deterministically judged to be non-human traffic; high to very high risk.
invalidTraffic.sivtTypesarray of objectsThe percentage of invalid traffic associated with each Pixalate’s taxonomy of SIVT invalid traffic types.
invalidTraffic.sivtTypes[].fraudTypestringThe type of SIVT fraud.
invalidTraffic.sivtTypes[].sivtnumberSIVT refers to Sophisticated Invalid Traffic - Probabilistically judged to be non-human traffic using advanced statistical detection methods; moderate to high risk traffic.

inventory

Estimated programmatic impressions by region, ad size and DMA, with IVT and SSAI rates.

FieldTypeDescription
inventory.byRegionarray of objectsThe estimated volume of programmatic ad impressions broken down by region.
inventory.byRegion[].regionstringThe region.
inventory.byRegion[].inventoryintegerThe estimated volume of programmatic ad impressions by region.
inventory.byRegion[].inventoryRationumberThe estimated percentage of inventory by region.
inventory.byRegion[].ivtnumberThe total percentage of non-human traffic measured on the app by region.
inventory.byRegion[].ssaiRatenumberThe percentage of traffic observed to utilize server-side-ad-insertion (SSAI) integrations for ad/ad content delivery to the end user by region.
inventory.byRegion[].TransparentssaiRatenumberThe SSAI tracked impressions that come from proxies passing X-Device-User-Agent headers for more transparency by region.
inventory.byAdsizearray of objectsThe estimated volume of programmatic ad impressions broken down by ad size.
inventory.byAdsize[].adSizestringThe ad size.
inventory.byAdsize[].inventoryintegerThe estimated volume of programmatic ad impressions by ad size.
inventory.byAdsize[].inventoryRationumberThe estimated percentage of inventory by ad size.
inventory.byAdsize[].ivtnumberThe total percentage of non-human traffic measured on the app by ad size.
inventory.byAdsize[].ssaiRatenumberThe percentage of traffic observed to utilize server-side-ad-insertion (SSAI) integrations for ad/ad content delivery to the end user by ad size.
inventory.byAdsize[].TransparentssaiRatenumberThe SSAI-tracked impressions that come from proxies passing X-Device-User-Agent headers for more transparency, by ad size.
inventory.byDmaarray of objectsThe estimated volume of programmatic ad impressions broken down by DMA.
inventory.byDma[].dmaNamestringThe DMA name.
inventory.byDma[].inventoryintegerThe estimated volume of programmatic ad impressions by DMA.
inventory.byDma[].inventoryRationumberThe estimated percentage of inventory by DMA.
inventory.byDma[].ivtnumberThe total percentage of non-human traffic measured on the app by DMA.
inventory.byDma[].ssaiRatenumberThe percentage of traffic observed to utilize server-side-ad-insertion (SSAI) integrations for ad/ad content delivery to the end user by DMA.
inventory.byDma[].TransparentssaiRatenumberThe SSAI tracked impressions that come from proxies passing X-Device-User-Agent headers for more transparency by DMA.

availableCountries

The countries where the app is available.

FieldTypeDescription
availableCountriesarray of stringsA list of available countries.

rankings

Region and category ranks, plus grades and scores across several dimensions.

FieldTypeDescription
rankings.regionRankintegerThe rank of the app within the requested region.
rankings.categoryarray of objectsThe rankings by various categories for the app.
rankings.category[].categorystringA category.
rankings.category[].rankstringThe rank within the specific category for the app.
rankings.finalobjectThe final grade and score for the app.
rankings.final.gradestringThe final grade for the app.
rankings.final.scorestringThe final score for the app.
rankings.ivtobjectThe IVT grade and score for the app.
rankings.ivt.gradestringThe IVT grade for the app.
rankings.ivt.scorestringThe IVT score for the app.
rankings.popularityobjectThe popularity grade and score for the app.
rankings.popularity.gradestringThe popularity grade for the app.
rankings.popularity.scorestringThe popularity score for the app.
rankings.userEngagementobjectThe user engagement grade and score for the app.
rankings.userEngagement.gradestringThe user engagement grade for the app.
rankings.userEngagement.scorestringThe user engagement score for the app.
rankings.adDensityobjectThe ad density grade and score for the app.
rankings.adDensity.gradestringThe ad density grade for the app.
rankings.adDensity.scorestringThe ad density score for the app.
rankings.globalPopularityRankstringThe overall global popularity ranking of the app.

rankingsByCountry

Reach and market share rankings by country.

FieldTypeDescription
rankingsByCountry.reacharray of objectsThe reach of the app broken down by country.
rankingsByCountry.reach[].countryCodestringThe ISO ALPHA-2 standard country code.
rankingsByCountry.reach[].countryNamestringThe country name.
rankingsByCountry.reach[].mauRankstringThe current Monthly Active Users (MAU) ranking for the app for this country.
rankingsByCountry.reach[].mauRankChangestringThe change in Monthly Active Users (MAU) rank since last assessment.
rankingsByCountry.marketSharearray of objectsThe market share of the app broken down by country.
rankingsByCountry.marketShare[].countryCodestringThe ISO ALPHA-2 standard country code.
rankingsByCountry.marketShare[].countryNamestringThe country name.
rankingsByCountry.marketShare[].impressionRankstringThe current impression ranking for the app for this country.
rankingsByCountry.marketShare[].impsRankChangestringThe change in impression ranking since last assessment.

coppa

Signals related to the Children’s Online Privacy Protection Act (COPPA): audience, COPPA risk and data practices.

FieldTypeDescription
coppa.coppaAudiencestringAssesses the likely intended audience of an app based on a variety of factors including app store categories, content ratings, and keywords, etc.
coppa.coppaAudienceReasonarray of stringsDescribes the specific variables considered when making the audience assessment.
coppa.isReviewedManuallybooleanFlag which indicates apps that have been evaluated by teachers on Pixalate’s Trust and Safety Advisory Board for child-directedness based on the factors set forth in the COPPA Rule.
coppa.parentalHintstringThe recommended age rating defined by Amazon’s app store or the Parental Hint provided by Roku store.
coppa.Categoriesarray of stringsThe associated categories of an app according to Roku and Amazon Stores.
coppa.coppaViolationRiskstring: low, medium, highPixalate analyzes multiple signals and produces a risk score (low, medium, or high) that captures the potential COPPA risk.
coppa.coppaViolationRiskReasonarray of stringsDescribes the specific variables considered when making the overall COPPA risk rating assessment.
coppa.privacyPolicyDetectedbooleanPixalate determines whether an app has a privacy policy based on information provided in the app stores. Additionally, Pixalate uses crawlers to scan developer websites for privacy policies.
coppa.transmitsResidentialIPbooleanPixalate examines the traffic associated with an app and determines if the end-user IP is transmitted through the advertising pipeline that can expose granular information about the user’s location.
coppa.passesLocationbooleanPixalate examines the traffic associated with an app and determines if the end-users’ GPS coordinates are being transmitted through the advertising pipeline that exposes granular information about the user’s location.

mfa

Made-for-advertising (MFA) risk and ad refresh rate.

FieldTypeDescription
mfa.mfaRiskstring: low, medium, highPixalate’s made-for-advertising risk rating for the app.
mfa.adRefreshRatenumber, nullablePixalate’s ad refresh rate signal: the volume of ad impressions observed per device over time, not how often an individual ad slot refreshes. See MFA methodology. Null when it couldn’t be determined.

Risk reasons

Values that can appear in riskOverview.risk[].pixalateRiskReasons.

  • Significantly Elevated IVT Percentage
  • Publisher Maintains Non-corporate Email Address
  • Moderately Elevated IVT Percentage
  • Publisher Does Not Publish a Privacy Policy
  • The Publisher Hides their Corporate Details in the Domain Registry
  • The Publisher’s Email Address Doesn’t Match Their Domain
  • Adult Content Has Been Detected in the app
  • The Publisher Does Not Publish Terms and Conditions
  • The Publisher Domain is Invalid
  • Gambling Content Has Been Detected in the app
  • Programmatic Ads Not Detected Leads to High Spoofing Risk
  • Violent Content Has Been Detected in the app
  • Alcohol Based Content Has Been Detected in the app
  • Ad Traffic Shows Some Suspicious Characteristics
  • Profanity and Offensive Language Has Been Detected in the app
  • App Description Uses Some Brand Unsafe Language
  • App Has a High Frequency of Invalid Clicks