API Documentation

Enrichment API - CTV Apps v2.0.0

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

The purpose of this API is to provide risk ratings and reputational data for Connected TV applications. The response is a JSON formatted object containing a list of CTV app information partitioned by region and device. Any fields included in the response, but not documented herein are subject to change without notice.

Base URLs:

Email: Pixalate, Inc. Web: Pixalate, Inc.

Authentication

  • API Key (ApiKey)
    • Parameter Name: x-api-key, in: header. Authentication and authorization is achieved by supplying your Pixalate provided API key in the header of the request. An API key may be obtained by signing up for an account on the Pixalate developer website.

CTV Apps

Get CTV Apps Metadata

Code samples

# You can also use wget
        curl -X GET https://api.pixalate.com/api/v2/mrt/ctv \
          -H 'Accept: application/json' \
          -H 'x-api-key: API_KEY'
        
        
using System;
        using System.Collections.Generic;
        using System.Net.Http;
        using System.Net.Http.Headers;
        using System.Text;
        using System.Threading.Tasks;
        using Newtonsoft.Json;
        
        /// <<summary>>
        /// Example of Http Client
        /// <</summary>>
        public class HttpExample
        {
            private HttpClient Client { get; set; }
        
            /// <<summary>>
            /// Setup http client
            /// <</summary>>
            public HttpExample()
            {
              Client = new HttpClient();
            }
        
            /// Make a dummy request
            public async Task MakeGetRequest()
            {
              string url = "https://api.pixalate.com/api/v2/mrt/ctv";
              var result = await GetAsync(url);
            }
        
            /// Performs a GET Request
            public async Task GetAsync(string url)
            {
                //Start the request
                HttpResponseMessage response = await Client.GetAsync(url);
        
                //Validate result
                response.EnsureSuccessStatusCode();
        
            }
        
        
        
        
            /// Deserialize object from request response
            private async Task DeserializeObject(HttpResponseMessage response)
            {
                //Read body 
                string responseBody = await response.Content.ReadAsStringAsync();
        
                //Deserialize Body to object
                var result = JsonConvert.DeserializeObject(responseBody);
            }
        }
        
        
package main
        
        import (
               "bytes"
               "net/http"
        )
        
        func main() {
        
            headers := map[string][]string{
                "Accept": []string{"application/json"},
                "x-api-key": []string{"API_KEY"},
            }
        
            data := bytes.NewBuffer([]byte{jsonReq})
            req, err := http.NewRequest("GET", "https://api.pixalate.com/api/v2/mrt/ctv", data)
            req.Header = headers
        
            client := &http.Client{}
            resp, err := client.Do(req)
            // ...
        }
        
        

        const headers = {
          'Accept':'application/json',
          'x-api-key':'API_KEY'
        };
        
        fetch('https://api.pixalate.com/api/v2/mrt/ctv',
        {
          method: 'GET',
        
          headers: headers
        })
        .then(function(res) {
            return res.json();
        }).then(function(body) {
            console.log(body);
        });
        
        
const fetch = require('node-fetch');
        
        const headers = {
          'Accept':'application/json',
          'x-api-key':'API_KEY'
        };
        
        fetch('https://api.pixalate.com/api/v2/mrt/ctv',
        {
          method: 'GET',
        
          headers: headers
        })
        .then(function(res) {
            return res.json();
        }).then(function(body) {
            console.log(body);
        });
        
        
import requests
        headers = {
          'Accept': 'application/json',
          'x-api-key': 'API_KEY'
        }
        
        r = requests.get('https://api.pixalate.com/api/v2/mrt/ctv', headers = headers)
        
        print(r.json())
        
        

GET /mrt/ctv

The purpose of this API is to provide metadata information for the connected TV applications in general. The response is a JSON formatted object containing the current user's quota state and the date the Connected TV applications database was last updated.

Parameters

Name In Type Required Description
pretty query boolean false If true, return pretty JSON. Default is false.

Example responses

200 Response

{
          "database": {
            "lastUpdated": "2022-04-30"
          },
          "quota": {
            "available": 480,
            "used": 520,
            "expiry": "2022-05-01T12:45:23.234Z",
            "limit": 1000,
            "interval": 1000,
            "timeUnit": "month"
          }
        }
        

Responses

Status Meaning Description Schema
200 OK OK Metadata
400 Bad Request Bad Request - Invalid parameters in request. None
401 Unauthorized Unauthorized - Invalid API Key. None
403 Forbidden Forbidden - Quota has been exhausted, Subscription expired or needs upgrade. None
5XX Unknown Server Error - The API experienced an internal error. Contact support. None

Batch Get CTV Apps data

Code samples

# You can also use wget
        curl -X POST https://api.pixalate.com/api/v2/mrt/ctv \
          -H 'Accept: application/json' \
          -H 'x-api-key: API_KEY'
        
        
using System;
        using System.Collections.Generic;
        using System.Net.Http;
        using System.Net.Http.Headers;
        using System.Text;
        using System.Threading.Tasks;
        using Newtonsoft.Json;
        
        /// <<summary>>
        /// Example of Http Client
        /// <</summary>>
        public class HttpExample
        {
            private HttpClient Client { get; set; }
        
            /// <<summary>>
            /// Setup http client
            /// <</summary>>
            public HttpExample()
            {
              Client = new HttpClient();
            }
        
        
            /// Make a dummy request
            public async Task MakePostRequest()
            {
              string url = "https://api.pixalate.com/api/v2/mrt/ctv";
        
        
              await PostAsync(null, url);
        
            }
        
            /// Performs a POST Request
            public async Task PostAsync(undefined content, string url)
            {
                //Serialize Object
                StringContent jsonContent = SerializeObject(content);
        
                //Execute POST request
                HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
            }
        
        
        
            /// Serialize an object to Json
            private StringContent SerializeObject(undefined content)
            {
                //Serialize Object
                string jsonObject = JsonConvert.SerializeObject(content);
        
                //Create Json UTF8 String Content
                return new StringContent(jsonObject, Encoding.UTF8, "application/json");
            }
        
            /// Deserialize object from request response
            private async Task DeserializeObject(HttpResponseMessage response)
            {
                //Read body 
                string responseBody = await response.Content.ReadAsStringAsync();
        
                //Deserialize Body to object
                var result = JsonConvert.DeserializeObject(responseBody);
            }
        }
        
        
package main
        
        import (
               "bytes"
               "net/http"
        )
        
        func main() {
        
            headers := map[string][]string{
                "Accept": []string{"application/json"},
                "x-api-key": []string{"API_KEY"},
            }
        
            data := bytes.NewBuffer([]byte{jsonReq})
            req, err := http.NewRequest("POST", "https://api.pixalate.com/api/v2/mrt/ctv", data)
            req.Header = headers
        
            client := &http.Client{}
            resp, err := client.Do(req)
            // ...
        }
        
        

        const headers = {
          'Accept':'application/json',
          'x-api-key':'API_KEY'
        };
        
        fetch('https://api.pixalate.com/api/v2/mrt/ctv',
        {
          method: 'POST',
        
          headers: headers
        })
        .then(function(res) {
            return res.json();
        }).then(function(body) {
            console.log(body);
        });
        
        
const fetch = require('node-fetch');
        
        const headers = {
          'Accept':'application/json',
          'x-api-key':'API_KEY'
        };
        
        fetch('https://api.pixalate.com/api/v2/mrt/ctv',
        {
          method: 'POST',
        
          headers: headers
        })
        .then(function(res) {
            return res.json();
        }).then(function(body) {
            console.log(body);
        });
        
        
import requests
        headers = {
          'Accept': 'application/json',
          'x-api-key': 'API_KEY'
        }
        
        r = requests.post('https://api.pixalate.com/api/v2/mrt/ctv', headers = headers)
        
        print(r.json())
        
        

POST /mrt/ctv

The purpose of this API is to provide risk ratings and reputational data across thousands of CTV applications in a batch mode.

Posted data should be in CSV format where each line consists of a single field which is the App ID. The request MIME type should be text/plain.

Once request data is submitted, a URL to a newline-delimited JSON formatted report is provided as a response. While the resulting resource is public, the URL contains a randomly generated identifier that ensures the data is relatively secure unless the URL itself is made public by the user.

The report will not be available for download at the returned URL location until processing has been completed. While creating the report, a request to retrieve the report using the response URL will return an HTTP status code Not Found (404). Once asynchronous processing has completed, the report is returned as normal. If asynchronous processing of a report fails because of an invalid query the request to retrieve the report using the response URL will return an HTTP status code Bad Request (400). Or, if the submitted file contained more than 5000 App IDs, then an HTTP status code Request Entity Too Large (413) is returned. Or, if the account's quota limit has been exceeded, then an HTTP status code Forbidden (403) is returned. For all other errors, a request to retrieve the report using the response URL will return an HTTP status code Internal Service Error (500). Client systems should poll the response URL until the report is available, or a non 404 HTTP status code is returned.

This operation requires an Enterprise subscription. Please reach out to us at support@pixalate.com for details on how to enable this for your account.

Parameters

Name In Type Required Description
pretty query boolean false If true, return pretty JSON. Default is false.

Example responses

200 Response

"https://dashboardcdn.pixalate.com/www/exported/Client/2022-04-12/qprdbkr9dfeoostip8ltqgmecd/apps_2022-04-12"
        

Responses

Status Meaning Description Schema
200 OK OK string
400 Bad Request Bad Request - Invalid parameters in request. None
401 Unauthorized Unauthorized - Invalid API Key. None
403 Forbidden Forbidden - Quota has been exhausted, Subscription expired or needs upgrade. None
5XX Unknown Server Error - The API experienced an internal error. Contact support. None

Get CTV App Data

Code samples

# You can also use wget
        curl -X GET https://api.pixalate.com/api/v2/mrt/ctv/{appId} \
          -H 'Accept: application/json' \
          -H 'x-api-key: API_KEY'
        
        
using System;
        using System.Collections.Generic;
        using System.Net.Http;
        using System.Net.Http.Headers;
        using System.Text;
        using System.Threading.Tasks;
        using Newtonsoft.Json;
        
        /// <<summary>>
        /// Example of Http Client
        /// <</summary>>
        public class HttpExample
        {
            private HttpClient Client { get; set; }
        
            /// <<summary>>
            /// Setup http client
            /// <</summary>>
            public HttpExample()
            {
              Client = new HttpClient();
            }
        
            /// Make a dummy request
            public async Task MakeGetRequest()
            {
              string url = "https://api.pixalate.com/api/v2/mrt/ctv/{appId}";
              var result = await GetAsync(url);
            }
        
            /// Performs a GET Request
            public async Task GetAsync(string url)
            {
                //Start the request
                HttpResponseMessage response = await Client.GetAsync(url);
        
                //Validate result
                response.EnsureSuccessStatusCode();
        
            }
        
        
        
        
            /// Deserialize object from request response
            private async Task DeserializeObject(HttpResponseMessage response)
            {
                //Read body 
                string responseBody = await response.Content.ReadAsStringAsync();
        
                //Deserialize Body to object
                var result = JsonConvert.DeserializeObject(responseBody);
            }
        }
        
        
package main
        
        import (
               "bytes"
               "net/http"
        )
        
        func main() {
        
            headers := map[string][]string{
                "Accept": []string{"application/json"},
                "x-api-key": []string{"API_KEY"},
            }
        
            data := bytes.NewBuffer([]byte{jsonReq})
            req, err := http.NewRequest("GET", "https://api.pixalate.com/api/v2/mrt/ctv/{appId}", data)
            req.Header = headers
        
            client := &http.Client{}
            resp, err := client.Do(req)
            // ...
        }
        
        

        const headers = {
          'Accept':'application/json',
          'x-api-key':'API_KEY'
        };
        
        fetch('https://api.pixalate.com/api/v2/mrt/ctv/{appId}',
        {
          method: 'GET',
        
          headers: headers
        })
        .then(function(res) {
            return res.json();
        }).then(function(body) {
            console.log(body);
        });
        
        
const fetch = require('node-fetch');
        
        const headers = {
          'Accept':'application/json',
          'x-api-key':'API_KEY'
        };
        
        fetch('https://api.pixalate.com/api/v2/mrt/ctv/{appId}',
        {
          method: 'GET',
        
          headers: headers
        })
        .then(function(res) {
            return res.json();
        }).then(function(body) {
            console.log(body);
        });
        
        
import requests
        headers = {
          'Accept': 'application/json',
          'x-api-key': 'API_KEY'
        }
        
        r = requests.get('https://api.pixalate.com/api/v2/mrt/ctv/{appId}', headers = headers)
        
        print(r.json())
        
        

GET /mrt/ctv/{appId}

The purpose of this API is to provide risk ratings and reputational data for CTV applications. The response is a JSON formatted object containing a list of app information partitioned by region and device.

Parameters

Name In Type Required Description
appId path string true The app's unique identifier.
widget query array[string] false Filter by comma-separated list of widgets to return. All widgets are returned by default.
region query Region false Filter by region. All regions are returned by default. GLOBAL indicates aggregated traffic from all regions.
device query Device false Filter by device. All devices are returned by default.
includeSpoofing query boolean false A true indicates that spoofing information should be included.
pretty query boolean false If true, return pretty JSON. Default is false.

Enumerated Values

Parameter Value
widget appOverview
widget riskOverview
widget pixalateAdvisories
widget appSpoofing
widget appDetails
widget developerOverview
widget channels
widget brandSafety
widget trafficOverlap
widget authorizedSellers
widget invalidTraffic
widget inventory
widget availableCountries
widget rankings
widget rankingsByCountry
widget coppa
region GLOBAL
region NA
region EMEA
region LATAM
region APAC
device roku
device firetv

Example responses

200 Response

{
          "status": "OK",
          "numFound": 1,
          "docs": [
            {
              "appId": "B07SM3YB4H",
              "region": "GLOBAL",
              "device": "roku",
              "includeSpoofing": false,
              "appOverview": {
                "channelId": null,
                "appTitle": "Example App",
                "description": "An example app.",
                "categories": [
                  "Movies & TV"
                ],
                "screenshotUrls": [
                  "https://example.com/image/screenshot-1.png",
                  "https://example.com/image/screenshot-2.png"
                ]
              },
              "riskOverview": {
                "risk": [
                  {
                    "region": "GLOBAL",
                    "pixalateRisk": "medium",
                    "pixalateRiskReasons": [
                      "Significantly Elevated IVT Percentage",
                      "Ad Traffic Shows Some Suspicious Characteristics"
                    ]
                  }
                ],
                "ivt": 10.12,
                "ivtRisk": "medium",
                "ssaiRate": 0.55,
                "transaparentSsaiRate": 0.01,
                "descriptionBrandSafetyRisk": "low",
                "contentBrandSafetyRisk": "low"
              },
              "pixalateAdvisories": {
                "hasAppAdsTxt": false,
                "delistedApp": true,
                "delistedDate": "2021-10-30",
                "privateDomain": false,
                "hasTermsAndConditions": true,
                "hasPrivacyPolicy": true,
                "appAgeRisk": "medium"
              },
              "appSpoofing": {
                "victimOfSpoofing": true,
                "spoofingRisk": "medium",
                "byFraudType": [
                  {
                    "fraudType": "userAgentObfuscation",
                    "apps": [
                      {
                        "detectedBundleId": null,
                        "declaredBundleId": "B00KDSGIPK",
                        "sovRisk": "medium"
                      }
                    ]
                  }
                ]
              },
              "appDetails": {
                "appStoreUrl": "https://appstore.example.org/dp/B00KDXXX2PK",
                "availableCountries": [
                  "US",
                  "ES"
                ],
                "availableLanguages": [
                  "en",
                  "es"
                ],
                "keywords": [
                  "space",
                  "news"
                ],
                "rating": 84,
                "starRatingCount": 517628,
                "parentalHint": "Guidance Suggested",
                "revenueSources": null,
                "cvaaCompliant": true,
                "appAgeRisk": "low",
                "appAge": 91,
                "publishedDate": null,
                "appPrivacyPolicy": true,
                "appPrivacyPolicyUrl": "http://example.org/privacy-policy/",
                "delistedApp": false,
                "delistedDate": null,
                "bundleIds": [
                  {
                    "bundleId": "B00KDXXX2PK",
                    "sovRatio": 77.43
                  }
                ]
              },
              "developerOverview": {
                "developerName": "Acme Apps",
                "developerWebsite": "https://www.example.org",
                "privateDomain": false,
                "hasTermsAndConditions": true,
                "hasPrivacyPolicy": true,
                "totalApps": 3
              },
              "channels": [
                "Vevo Pop",
                "World Tour Poker"
              ],
              "brandSafety": {
                "descriptionBrandSafety": {
                  "advisoriesRisk": "medium",
                  "adultContentRisk": "high",
                  "drugContentRisk": "medium",
                  "alcoholContentRisk": "medium",
                  "hateSpeechRisk": "low",
                  "offensiveContentRisk": "medium"
                },
                "contentBrandSafety": {
                  "adultRisk": "low",
                  "violenceRisk": "medium",
                  "imageData": [
                    {
                      "url": "https://example.org/images/kxipXQ3huWkwsqokX66euP.png",
                      "text": "Weather Radar",
                      "violenceRisk": "low",
                      "spoofRisk": "low",
                      "medicalRisk": "low",
                      "adultRisk": "low"
                    }
                  ]
                }
              },
              "trafficOverlap": {
                "trafficOverview": {
                  "spoofingRisk": "low",
                  "advertisingIvtRisk": "low",
                  "trustedSeller": "Google AdExchange",
                  "ivtFreeUsersRate": 96.03,
                  "estimatedDailyActiveUsers": 4929,
                  "estimatedMonthlyActiveUsers": 46502,
                  "adSpend": 69000,
                  "adDensity": 18377044,
                  "adDensityRisk": "low",
                  "adDensityConfidenceScore": 0.95
                },
                "trafficOverlap": {
                  "byOverallTraffic": [
                    {
                      "appName": "ExampleOrg's - Free TV Drama & Movies",
                      "developerName": "Example Org",
                      "impressionOverlap": 0.2,
                      "deviceOverlap": 0.21,
                      "risk": "medium"
                    }
                  ],
                  "byIvt": [
                    {
                      "appName": "ExampleOrg's - Free TV Drama & Movies",
                      "developerName": "Example Org",
                      "impressionOverlap": 0.14,
                      "deviceOverlap": 0.05,
                      "risk": "low"
                    }
                  ]
                }
              },
              "authorizedSellers": [
                {
                  "exchange": "Acme Exchange",
                  "paymentType": "Direct",
                  "inventory": 30039,
                  "inventoryRatio": 12.87,
                  "ivt": 0.9,
                  "videoInventoryRatio": 1.4,
                  "displayInventoryRatio": 1.4,
                  "spoofingRate": 2.6,
                  "ssaiRate": 0.06,
                  "transparentSsaiRate": 0.06
                }
              ],
              "invalidTraffic": {
                "ivt": 7.76,
                "givt": 0.29,
                "sivt": 7.47,
                "givtTypes": [
                  {
                    "fraudType": "Data Center",
                    "givt": 0.29
                  }
                ],
                "sivtTypes": [
                  {
                    "fraudType": "AppSpoofing",
                    "sivt": 2.78
                  }
                ]
              },
              "inventory": {
                "byRegion": [
                  {
                    "region": "GLOBAL",
                    "inventory": null,
                    "inventoryRatio": 6.39,
                    "ivt": 2.93,
                    "ssaiRate": 0.02,
                    "TransparentssaiRate": 0.01
                  }
                ],
                "byAdsize": [
                  {
                    "adSize": "320x50",
                    "inventory": null,
                    "inventoryRatio": 3.47,
                    "ivt": 12.25,
                    "ssaiRate": 0.03,
                    "TransparentssaiRate": 0.02
                  }
                ],
                "byDma": [
                  {
                    "dmaName": "NEW YORK",
                    "inventory": null,
                    "inventoryRatio": 5.35,
                    "ivt": 4.76,
                    "ssaiRate": 0,
                    "TransparentssaiRate": 0
                  }
                ]
              },
              "availableCountries": [
                "Germany"
              ],
              "rankings": {
                "regionRank": 6473,
                "category": [
                  {
                    "category": "Movies & TV",
                    "rank": "11"
                  }
                ],
                "final": {
                  "grade": "C",
                  "score": "38"
                },
                "ivt": {
                  "grade": "B",
                  "score": "62"
                },
                "popularity": {
                  "grade": "C",
                  "score": "44"
                },
                "userEngagement": {
                  "grade": "A",
                  "score": "99"
                },
                "adDensity": {
                  "grade": "A",
                  "score": "99"
                },
                "globalPopularityRank": "234"
              },
              "rankingsByCountry": {
                "reach": [
                  {
                    "countryCode": "ZA",
                    "countryName": "South Africa",
                    "mauRank": "637",
                    "mauRankChange": "-372"
                  }
                ],
                "marketShare": [
                  {
                    "countryCode": "GE",
                    "countryName": "Georgia",
                    "impressionRank": "359",
                    "impsRankChange": "N/A"
                  }
                ]
              },
              "coppa": {
                "coppaAudience": "General Audience",
                "coppaAudienceReason": [
                  "This app is likely directed to children (including mixed audience) based on manual review"
                ],
                "isReviewedManually": true,
                "parentalHint": "Guidance Suggested",
                "Categories": [
                  "Movies & TV"
                ],
                "coppaViolationRisk": "low",
                "coppaViolationRiskReason": [
                  "The COPPA risk is low because the app is likely not directed to children under 13."
                ],
                "privacyPolicyDetected": true,
                "transmitsResidentialIP": true,
                "passesLocation": true
              }
            }
          ]
        }
        

Responses

Status Meaning Description Schema
200 OK OK AppList
400 Bad Request Bad Request - Invalid parameters in request. None
401 Unauthorized Unauthorized - Invalid API Key. None
403 Forbidden Forbidden - Quota has been exhausted, Subscription expired or needs upgrade. None
5XX Unknown Server Error - The API experienced an internal error. Contact support. None

Schemas

Metadata

{
          "database": {
            "lastUpdated": "2022-04-30"
          },
          "quota": {
            "available": 480,
            "used": 520,
            "expiry": "2022-05-01T12:45:23.234Z",
            "limit": 1000,
            "interval": 1000,
            "timeUnit": "month"
          }
        }
        
        

CTV metadata information.

Properties

Name Type Required Restrictions Description
database object false none The CTV Apps database state information.
» lastUpdated string(date) false none The date when the CTV Apps database was last updated. The date format is YYYY-MM-DD.
quota object false none Quota state information.
» available integer false none The amount of quota available for use.
» used integer false none The amount of quota used.
» expiry string(date) false none The datetime when the quota will be refreshed back to the limit. The datetime format is YYYY-MM-DDTHH:MM:SS.SSSZ.
» limit integer false none The amount of quota to be made available for use when the quota is refreshed.
» interval integer false none The number of time units used in calculating the quota refresh datetime.
» timeUnit string false none The time unit used in calculating the quota refresh datetime.

Enumerated Values

Property Value
timeUnit minute
timeUnit hour
timeUnit day
timeUnit week
timeUnit month

AppList

{
          "status": "OK",
          "numFound": 1,
          "docs": [
            {
              "appId": "B07SM3YB4H",
              "region": "GLOBAL",
              "device": "roku",
              "includeSpoofing": false,
              "appOverview": {
                "channelId": null,
                "appTitle": "Example App",
                "description": "An example app.",
                "categories": [
                  "Movies & TV"
                ],
                "screenshotUrls": [
                  "https://example.com/image/screenshot-1.png",
                  "https://example.com/image/screenshot-2.png"
                ]
              },
              "riskOverview": {
                "risk": [
                  {
                    "region": "GLOBAL",
                    "pixalateRisk": "medium",
                    "pixalateRiskReasons": [
                      "Significantly Elevated IVT Percentage",
                      "Ad Traffic Shows Some Suspicious Characteristics"
                    ]
                  }
                ],
                "ivt": 10.12,
                "ivtRisk": "medium",
                "ssaiRate": 0.55,
                "transaparentSsaiRate": 0.01,
                "descriptionBrandSafetyRisk": "low",
                "contentBrandSafetyRisk": "low"
              },
              "pixalateAdvisories": {
                "hasAppAdsTxt": false,
                "delistedApp": true,
                "delistedDate": "2021-10-30",
                "privateDomain": false,
                "hasTermsAndConditions": true,
                "hasPrivacyPolicy": true,
                "appAgeRisk": "medium"
              },
              "appSpoofing": {
                "victimOfSpoofing": true,
                "spoofingRisk": "medium",
                "byFraudType": [
                  {
                    "fraudType": "userAgentObfuscation",
                    "apps": [
                      {
                        "detectedBundleId": null,
                        "declaredBundleId": "B00KDSGIPK",
                        "sovRisk": "medium"
                      }
                    ]
                  }
                ]
              },
              "appDetails": {
                "appStoreUrl": "https://appstore.example.org/dp/B00KDXXX2PK",
                "availableCountries": [
                  "US",
                  "ES"
                ],
                "availableLanguages": [
                  "en",
                  "es"
                ],
                "keywords": [
                  "space",
                  "news"
                ],
                "rating": 84,
                "starRatingCount": 517628,
                "parentalHint": "Guidance Suggested",
                "revenueSources": null,
                "cvaaCompliant": true,
                "appAgeRisk": "low",
                "appAge": 91,
                "publishedDate": null,
                "appPrivacyPolicy": true,
                "appPrivacyPolicyUrl": "http://example.org/privacy-policy/",
                "delistedApp": false,
                "delistedDate": null,
                "bundleIds": [
                  {
                    "bundleId": "B00KDXXX2PK",
                    "sovRatio": 77.43
                  }
                ]
              },
              "developerOverview": {
                "developerName": "Acme Apps",
                "developerWebsite": "https://www.example.org",
                "privateDomain": false,
                "hasTermsAndConditions": true,
                "hasPrivacyPolicy": true,
                "totalApps": 3
              },
              "channels": [
                "Vevo Pop",
                "World Tour Poker"
              ],
              "brandSafety": {
                "descriptionBrandSafety": {
                  "advisoriesRisk": "medium",
                  "adultContentRisk": "high",
                  "drugContentRisk": "medium",
                  "alcoholContentRisk": "medium",
                  "hateSpeechRisk": "low",
                  "offensiveContentRisk": "medium"
                },
                "contentBrandSafety": {
                  "adultRisk": "low",
                  "violenceRisk": "medium",
                  "imageData": [
                    {
                      "url": "https://example.org/images/kxipXQ3huWkwsqokX66euP.png",
                      "text": "Weather Radar",
                      "violenceRisk": "low",
                      "spoofRisk": "low",
                      "medicalRisk": "low",
                      "adultRisk": "low"
                    }
                  ]
                }
              },
              "trafficOverlap": {
                "trafficOverview": {
                  "spoofingRisk": "low",
                  "advertisingIvtRisk": "low",
                  "trustedSeller": "Google AdExchange",
                  "ivtFreeUsersRate": 96.03,
                  "estimatedDailyActiveUsers": 4929,
                  "estimatedMonthlyActiveUsers": 46502,
                  "adSpend": 69000,
                  "adDensity": 18377044,
                  "adDensityRisk": "low",
                  "adDensityConfidenceScore": 0.95
                },
                "trafficOverlap": {
                  "byOverallTraffic": [
                    {
                      "appName": "ExampleOrg's - Free TV Drama & Movies",
                      "developerName": "Example Org",
                      "impressionOverlap": 0.2,
                      "deviceOverlap": 0.21,
                      "risk": "medium"
                    }
                  ],
                  "byIvt": [
                    {
                      "appName": "ExampleOrg's - Free TV Drama & Movies",
                      "developerName": "Example Org",
                      "impressionOverlap": 0.14,
                      "deviceOverlap": 0.05,
                      "risk": "low"
                    }
                  ]
                }
              },
              "authorizedSellers": [
                {
                  "exchange": "Acme Exchange",
                  "paymentType": "Direct",
                  "inventory": 30039,
                  "inventoryRatio": 12.87,
                  "ivt": 0.9,
                  "videoInventoryRatio": 1.4,
                  "displayInventoryRatio": 1.4,
                  "spoofingRate": 2.6,
                  "ssaiRate": 0.06,
                  "transparentSsaiRate": 0.06
                }
              ],
              "invalidTraffic": {
                "ivt": 7.76,
                "givt": 0.29,
                "sivt": 7.47,
                "givtTypes": [
                  {
                    "fraudType": "Data Center",
                    "givt": 0.29
                  }
                ],
                "sivtTypes": [
                  {
                    "fraudType": "AppSpoofing",
                    "sivt": 2.78
                  }
                ]
              },
              "inventory": {
                "byRegion": [
                  {
                    "region": "GLOBAL",
                    "inventory": null,
                    "inventoryRatio": 6.39,
                    "ivt": 2.93,
                    "ssaiRate": 0.02,
                    "TransparentssaiRate": 0.01
                  }
                ],
                "byAdsize": [
                  {
                    "adSize": "320x50",
                    "inventory": null,
                    "inventoryRatio": 3.47,
                    "ivt": 12.25,
                    "ssaiRate": 0.03,
                    "TransparentssaiRate": 0.02
                  }
                ],
                "byDma": [
                  {
                    "dmaName": "NEW YORK",
                    "inventory": null,
                    "inventoryRatio": 5.35,
                    "ivt": 4.76,
                    "ssaiRate": 0,
                    "TransparentssaiRate": 0
                  }
                ]
              },
              "availableCountries": [
                "Germany"
              ],
              "rankings": {
                "regionRank": 6473,
                "category": [
                  {
                    "category": "Movies & TV",
                    "rank": "11"
                  }
                ],
                "final": {
                  "grade": "C",
                  "score": "38"
                },
                "ivt": {
                  "grade": "B",
                  "score": "62"
                },
                "popularity": {
                  "grade": "C",
                  "score": "44"
                },
                "userEngagement": {
                  "grade": "A",
                  "score": "99"
                },
                "adDensity": {
                  "grade": "A",
                  "score": "99"
                },
                "globalPopularityRank": "234"
              },
              "rankingsByCountry": {
                "reach": [
                  {
                    "countryCode": "ZA",
                    "countryName": "South Africa",
                    "mauRank": "637",
                    "mauRankChange": "-372"
                  }
                ],
                "marketShare": [
                  {
                    "countryCode": "GE",
                    "countryName": "Georgia",
                    "impressionRank": "359",
                    "impsRankChange": "N/A"
                  }
                ]
              },
              "coppa": {
                "coppaAudience": "General Audience",
                "coppaAudienceReason": [
                  "This app is likely directed to children (including mixed audience) based on manual review"
                ],
                "isReviewedManually": true,
                "parentalHint": "Guidance Suggested",
                "Categories": [
                  "Movies & TV"
                ],
                "coppaViolationRisk": "low",
                "coppaViolationRiskReason": [
                  "The COPPA risk is low because the app is likely not directed to children under 13."
                ],
                "privacyPolicyDetected": true,
                "transmitsResidentialIP": true,
                "passesLocation": true
              }
            }
          ]
        }
        
        

A list of apps.

Properties

Name Type Required Restrictions Description
status Status false none The returned status.
numFound integer false none The total number of matching apps.
docs [App] false none A list of apps.

App

{
          "appId": "B07SM3YB4H",
          "region": "GLOBAL",
          "device": "roku",
          "includeSpoofing": false,
          "appOverview": {
            "channelId": null,
            "appTitle": "Example App",
            "description": "An example app.",
            "categories": [
              "Movies & TV"
            ],
            "screenshotUrls": [
              "https://example.com/image/screenshot-1.png",
              "https://example.com/image/screenshot-2.png"
            ]
          },
          "riskOverview": {
            "risk": [
              {
                "region": "GLOBAL",
                "pixalateRisk": "medium",
                "pixalateRiskReasons": [
                  "Significantly Elevated IVT Percentage",
                  "Ad Traffic Shows Some Suspicious Characteristics"
                ]
              }
            ],
            "ivt": 10.12,
            "ivtRisk": "medium",
            "ssaiRate": 0.55,
            "transaparentSsaiRate": 0.01,
            "descriptionBrandSafetyRisk": "low",
            "contentBrandSafetyRisk": "low"
          },
          "pixalateAdvisories": {
            "hasAppAdsTxt": false,
            "delistedApp": true,
            "delistedDate": "2021-10-30",
            "privateDomain": false,
            "hasTermsAndConditions": true,
            "hasPrivacyPolicy": true,
            "appAgeRisk": "medium"
          },
          "appSpoofing": {
            "victimOfSpoofing": true,
            "spoofingRisk": "medium",
            "byFraudType": [
              {
                "fraudType": "userAgentObfuscation",
                "apps": [
                  {
                    "detectedBundleId": null,
                    "declaredBundleId": "B00KDSGIPK",
                    "sovRisk": "medium"
                  }
                ]
              }
            ]
          },
          "appDetails": {
            "appStoreUrl": "https://appstore.example.org/dp/B00KDXXX2PK",
            "availableCountries": [
              "US",
              "ES"
            ],
            "availableLanguages": [
              "en",
              "es"
            ],
            "keywords": [
              "space",
              "news"
            ],
            "rating": 84,
            "starRatingCount": 517628,
            "parentalHint": "Guidance Suggested",
            "revenueSources": null,
            "cvaaCompliant": true,
            "appAgeRisk": "low",
            "appAge": 91,
            "publishedDate": null,
            "appPrivacyPolicy": true,
            "appPrivacyPolicyUrl": "http://example.org/privacy-policy/",
            "delistedApp": false,
            "delistedDate": null,
            "bundleIds": [
              {
                "bundleId": "B00KDXXX2PK",
                "sovRatio": 77.43
              }
            ]
          },
          "developerOverview": {
            "developerName": "Acme Apps",
            "developerWebsite": "https://www.example.org",
            "privateDomain": false,
            "hasTermsAndConditions": true,
            "hasPrivacyPolicy": true,
            "totalApps": 3
          },
          "channels": [
            "Vevo Pop",
            "World Tour Poker"
          ],
          "brandSafety": {
            "descriptionBrandSafety": {
              "advisoriesRisk": "medium",
              "adultContentRisk": "high",
              "drugContentRisk": "medium",
              "alcoholContentRisk": "medium",
              "hateSpeechRisk": "low",
              "offensiveContentRisk": "medium"
            },
            "contentBrandSafety": {
              "adultRisk": "low",
              "violenceRisk": "medium",
              "imageData": [
                {
                  "url": "https://example.org/images/kxipXQ3huWkwsqokX66euP.png",
                  "text": "Weather Radar",
                  "violenceRisk": "low",
                  "spoofRisk": "low",
                  "medicalRisk": "low",
                  "adultRisk": "low"
                }
              ]
            }
          },
          "trafficOverlap": {
            "trafficOverview": {
              "spoofingRisk": "low",
              "advertisingIvtRisk": "low",
              "trustedSeller": "Google AdExchange",
              "ivtFreeUsersRate": 96.03,
              "estimatedDailyActiveUsers": 4929,
              "estimatedMonthlyActiveUsers": 46502,
              "adSpend": 69000,
              "adDensity": 18377044,
              "adDensityRisk": "low",
              "adDensityConfidenceScore": 0.95
            },
            "trafficOverlap": {
              "byOverallTraffic": [
                {
                  "appName": "ExampleOrg's - Free TV Drama & Movies",
                  "developerName": "Example Org",
                  "impressionOverlap": 0.2,
                  "deviceOverlap": 0.21,
                  "risk": "medium"
                }
              ],
              "byIvt": [
                {
                  "appName": "ExampleOrg's - Free TV Drama & Movies",
                  "developerName": "Example Org",
                  "impressionOverlap": 0.14,
                  "deviceOverlap": 0.05,
                  "risk": "low"
                }
              ]
            }
          },
          "authorizedSellers": [
            {
              "exchange": "Acme Exchange",
              "paymentType": "Direct",
              "inventory": 30039,
              "inventoryRatio": 12.87,
              "ivt": 0.9,
              "videoInventoryRatio": 1.4,
              "displayInventoryRatio": 1.4,
              "spoofingRate": 2.6,
              "ssaiRate": 0.06,
              "transparentSsaiRate": 0.06
            }
          ],
          "invalidTraffic": {
            "ivt": 7.76,
            "givt": 0.29,
            "sivt": 7.47,
            "givtTypes": [
              {
                "fraudType": "Data Center",
                "givt": 0.29
              }
            ],
            "sivtTypes": [
              {
                "fraudType": "AppSpoofing",
                "sivt": 2.78
              }
            ]
          },
          "inventory": {
            "byRegion": [
              {
                "region": "GLOBAL",
                "inventory": null,
                "inventoryRatio": 6.39,
                "ivt": 2.93,
                "ssaiRate": 0.02,
                "TransparentssaiRate": 0.01
              }
            ],
            "byAdsize": [
              {
                "adSize": "320x50",
                "inventory": null,
                "inventoryRatio": 3.47,
                "ivt": 12.25,
                "ssaiRate": 0.03,
                "TransparentssaiRate": 0.02
              }
            ],
            "byDma": [
              {
                "dmaName": "NEW YORK",
                "inventory": null,
                "inventoryRatio": 5.35,
                "ivt": 4.76,
                "ssaiRate": 0,
                "TransparentssaiRate": 0
              }
            ]
          },
          "availableCountries": [
            "Germany"
          ],
          "rankings": {
            "regionRank": 6473,
            "category": [
              {
                "category": "Movies & TV",
                "rank": "11"
              }
            ],
            "final": {
              "grade": "C",
              "score": "38"
            },
            "ivt": {
              "grade": "B",
              "score": "62"
            },
            "popularity": {
              "grade": "C",
              "score": "44"
            },
            "userEngagement": {
              "grade": "A",
              "score": "99"
            },
            "adDensity": {
              "grade": "A",
              "score": "99"
            },
            "globalPopularityRank": "234"
          },
          "rankingsByCountry": {
            "reach": [
              {
                "countryCode": "ZA",
                "countryName": "South Africa",
                "mauRank": "637",
                "mauRankChange": "-372"
              }
            ],
            "marketShare": [
              {
                "countryCode": "GE",
                "countryName": "Georgia",
                "impressionRank": "359",
                "impsRankChange": "N/A"
              }
            ]
          },
          "coppa": {
            "coppaAudience": "General Audience",
            "coppaAudienceReason": [
              "This app is likely directed to children (including mixed audience) based on manual review"
            ],
            "isReviewedManually": true,
            "parentalHint": "Guidance Suggested",
            "Categories": [
              "Movies & TV"
            ],
            "coppaViolationRisk": "low",
            "coppaViolationRiskReason": [
              "The COPPA risk is low because the app is likely not directed to children under 13."
            ],
            "privacyPolicyDetected": true,
            "transmitsResidentialIP": true,
            "passesLocation": true
          }
        }
        
        

An app.

Properties

Name Type Required Restrictions Description
appId string false none The app's unique identifier. A package name on Google Play or a track id on Apple app Store.
region Region false none A geographic region. GLOBAL indicates an aggregate of all regions.
device Device false none The device.
includeSpoofing boolean false none A true indicates that spoofing information is included.
appOverview AppOverview false none General information about the app.
riskOverview RiskOverview false none An overview of risk for the app.
pixalateAdvisories PixalateAdvisories false none Pixalate app advisories.
appSpoofing AppSpoofing false none Spoofing information about the app.
appDetails AppDetails false none Detailed information about the app.
developerOverview DeveloperOverview false none An overview of app's developer information.
channels Channels false none Channels available for apps considered as aggregators or providers of 'skinny bundles'
brandSafety BrandSafety false none Brand safety information.
trafficOverlap TrafficOverlap false none Overlap traffic illustrates the most common user journeys from app to app.
authorizedSellers AuthorizedSellers false none The contribution of various sell side platforms to programmatic ad impressions sold on the app.
invalidTraffic InvalidTraffic false none The percentage of invalid traffic associated with each Pixalate's taxonomy of GIVT and SIVT invalid traffic types.
inventory Inventory false none The estimated volume of programmatic ad impressions broken down by device, region, country, DMA.
availableCountries AvailableCountries false none A list of available countries.
rankings Rankings false none Ranking information about the app.
rankingsByCountry RankingsByCountry false none The reach and market share of the app broken down by country.
coppa Coppa false none Children's Online Privacy Protection Act information.

AppOverview

{
          "channelId": null,
          "appTitle": "Example App",
          "description": "An example app.",
          "categories": [
            "Movies & TV"
          ],
          "screenshotUrls": [
            "https://example.com/image/screenshot-1.png",
            "https://example.com/image/screenshot-2.png"
          ]
        }
        
        

General information about the app.

Properties

Name Type Required Restrictions Description
channelId string false none The channel identifier.
appTitle string false none The app title.
description string false none App description.
categories [string] false none The categories of the app.
screenshotUrls [string] false none A list of app screenshot URLs.

RiskOverview

{
          "risk": [
            {
              "region": "GLOBAL",
              "pixalateRisk": "medium",
              "pixalateRiskReasons": [
                "Significantly Elevated IVT Percentage",
                "Ad Traffic Shows Some Suspicious Characteristics"
              ]
            }
          ],
          "ivt": 10.12,
          "ivtRisk": "medium",
          "ssaiRate": 0.55,
          "transaparentSsaiRate": 0.01,
          "descriptionBrandSafetyRisk": "low",
          "contentBrandSafetyRisk": "low"
        }
        
        

An overview of risk for the app.

Properties

Name Type Required Restrictions Description
risk [object] false none Pixalate's unique overall advertising risk assessment based on blended risk factors including brand safety, invalid traffic and inventory for all regions and devices. It includes risk reasons. And list of possible risk reasons.
» region Region false none A geographic region. GLOBAL indicates an aggregate of all regions.
» pixalateRisk string false none Pixalate's unique overall risk assessment for the app.
» pixalateRiskReasons RiskReasons false none A list of reasons that the app is at risk.
ivt number false none Percentage of invalid traffic associated with advertising transactions for the app.
ivtRisk string false none The invalid traffic risk.
ssaiRate number false none The percentage of traffic observed to utilize server-side-ad-insertion (SSAI) integrations for ad/ad content delivery to the end user.
transaparentSsaiRate number false none The SSAI tracked impressions that come from proxies passing X-Device-User-Agent headers for more transparency.
descriptionBrandSafetyRisk string false none The overall description risk to advertise brand safety from the app.
contentBrandSafetyRisk string false none The overall content risk to advertise brand safety from the app.

Enumerated Values

Property Value
pixalateRisk low
pixalateRisk medium
pixalateRisk high
ivtRisk low
ivtRisk medium
ivtRisk high
descriptionBrandSafetyRisk low
descriptionBrandSafetyRisk medium
descriptionBrandSafetyRisk high
contentBrandSafetyRisk low
contentBrandSafetyRisk medium
contentBrandSafetyRisk high

PixalateAdvisories

{
          "hasAppAdsTxt": false,
          "delistedApp": true,
          "delistedDate": "2021-10-30",
          "privateDomain": false,
          "hasTermsAndConditions": true,
          "hasPrivacyPolicy": true,
          "appAgeRisk": "medium"
        }
        
        

Pixalate app advisories.

Properties

Name Type Required Restrictions Description
hasAppAdsTxt boolean false none A true indicates that AppAds.txt is enabled for the app's domain.
delistedApp boolean false none A true indicates that app has been delisted from the app store.
delistedDate string(date) false none If app has been delisted from the app store, then this property is the date when delisted. The date format is YYYY-MM-DD.
privateDomain boolean false none A true indicates app's domain is privately registered.
hasTermsAndConditions boolean false none A true indicates app has terms and conditions.
hasPrivacyPolicy boolean false none A true indicates app has privacy policy.
appAgeRisk string false none Risk 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. (low/medium/high)

Enumerated Values

Property Value
appAgeRisk low
appAgeRisk medium
appAgeRisk high

AppSpoofing

{
          "victimOfSpoofing": true,
          "spoofingRisk": "medium",
          "byFraudType": [
            {
              "fraudType": "userAgentObfuscation",
              "apps": [
                {
                  "detectedBundleId": null,
                  "declaredBundleId": "B00KDSGIPK",
                  "sovRisk": "medium"
                }
              ]
            }
          ]
        }
        
        

Spoofing information about the app.

Properties

Name Type Required Restrictions Description
victimOfSpoofing boolean false none A true indicates that the app is a victim of spoofing.
spoofingRisk string false none Risk of spoofing in this app. (low/medium/high)
byFraudType [object] false none Spoofing by fraudType denoting the fraud type with set of apps with detectedBundleId, declaredBundleId, sovRisk
» fraudType string false none The fraud type
» apps [object] false none The apps designated for this fraud type.
»» detectedBundleId string false none The bundle identifier detected for the app.
»» declaredBundleId string false none The bundle identifier declared for the app.
»» sovRisk string false none The SOV risk for the app. (low/medium/high)

Enumerated Values

Property Value
spoofingRisk low
spoofingRisk medium
spoofingRisk high
sovRisk low
sovRisk medium
sovRisk high

AppDetails

{
          "appStoreUrl": "https://appstore.example.org/dp/B00KDXXX2PK",
          "availableCountries": [
            "US",
            "ES"
          ],
          "availableLanguages": [
            "en",
            "es"
          ],
          "keywords": [
            "space",
            "news"
          ],
          "rating": 84,
          "starRatingCount": 517628,
          "parentalHint": "Guidance Suggested",
          "revenueSources": null,
          "cvaaCompliant": true,
          "appAgeRisk": "low",
          "appAge": 91,
          "publishedDate": null,
          "appPrivacyPolicy": true,
          "appPrivacyPolicyUrl": "http://example.org/privacy-policy/",
          "delistedApp": false,
          "delistedDate": null,
          "bundleIds": [
            {
              "bundleId": "B00KDXXX2PK",
              "sovRatio": 77.43
            }
          ]
        }
        
        

Detailed information about the app.

Properties

Name Type Required Restrictions Description
appStoreUrl string false none The app page on App Store.
availableCountries [string] false none The countries in which the app is available.
availableLanguages [string] false none The languages in which the app is available.
keywords [string] false none Search terms and keywords typically associated to the app.
rating number false none The app's average user-rating within the app store (based on a 5-star scale).
starRatingCount integer false none The number of ratings provided within the app store.
parentalHint string false none Indicates parental sensitivity considerations for the respective app content.
revenueSources [string] false none The primary sources of revenue for the app.
cvaaCompliant boolean false none A true indicates that the app is in compliance with the FCC's Communications and Video Accessibility Act (CVAA) Standards.
appAgeRisk string false none Risk rating based on the amount of time the app has been listed within the app store.(low/medium/high).
appAge number false none The amount of time the app has been listed within the app store.
publishedDate string false none The date of original publication within the app store.
appPrivacyPolicy boolean false none A true indicates that an app-specific privacy policy is maintained. Apps which do not maintain a privacy policy may be of higher risk to advertisers and sellers.
appPrivacyPolicyUrl string false none Link to the app-specific privacy policy.
delistedApp boolean false none A true indicates that the app was delisted from app store.
delistedDate string false none If the app is delisted, then the date app was delisted from app store. The date format is YYYY-MM-DD.
bundleIds [object] false none The SOV ratio broken down by bundle identifier.
» bundleId string false none The bundle identifier.
» sovRatio number false none The SOV ratio.

Enumerated Values

Property Value
appAgeRisk low
appAgeRisk medium
appAgeRisk high

DeveloperOverview

{
          "developerName": "Acme Apps",
          "developerWebsite": "https://www.example.org",
          "privateDomain": false,
          "hasTermsAndConditions": true,
          "hasPrivacyPolicy": true,
          "totalApps": 3
        }
        
        

An overview of app's developer information.

Properties

Name Type Required Restrictions Description
developerName string false none The business name of the app's developer.
developerWebsite string false none The website of the app's developer.
privateDomain boolean false none A true indicates app's domain is privately registered.
hasTermsAndConditions boolean false none A true indicates app has terms and conditions.
hasPrivacyPolicy boolean false none A true indicates app has privacy policy.
totalApps integer false none Total number of apps published by this developer.

Channels

[
          "Vevo Pop",
          "World Tour Poker"
        ]
        
        

Channels available for apps considered as aggregators or providers of 'skinny bundles'

Properties

Name Type Required Restrictions Description
name string false none The channel name.

BrandSafety

{
          "descriptionBrandSafety": {
            "advisoriesRisk": "medium",
            "adultContentRisk": "high",
            "drugContentRisk": "medium",
            "alcoholContentRisk": "medium",
            "hateSpeechRisk": "low",
            "offensiveContentRisk": "medium"
          },
          "contentBrandSafety": {
            "adultRisk": "low",
            "violenceRisk": "medium",
            "imageData": [
              {
                "url": "https://example.org/images/kxipXQ3huWkwsqokX66euP.png",
                "text": "Weather Radar",
                "violenceRisk": "low",
                "spoofRisk": "low",
                "medicalRisk": "low",
                "adultRisk": "low"
              }
            ]
          }
        }
        
        

Brand safety information.

Properties

Name Type Required Restrictions Description
descriptionBrandSafety object false none App descriptive text is processed through natural language algorithms and comprehensive categorical dictionaries to predict the advertiser brand safety risk.
» advisoriesRisk string false none The risk to brand safety derived from the app's content advisories.
» adultContentRisk string false none The risk to brand safety from adult themed content based on textual analysis of the app and its descriptive content.
» drugContentRisk string false none The risk to brand safety from drug themed content based on textual analysis of the app and its descriptive content.
» alcoholContentRisk string false none The risk to brand safety from Alcohol themed content based on textual analysis of the app and its descriptive content.
» hateSpeechRisk string false none The risk to brand safety from hate speech content based on textual analysis of the app and its descriptive content.
» offensiveContentRisk string false none The risk to brand safety from content with offensive language based on textual analysis of the app and its descriptive content .
contentBrandSafety object false none In-app visual content is processed through an advanced machine learning algorithm and evaluated for risk to advertiser brand safety.
» adultRisk string false none The risk to brand safety from potential adult images and content detected within the app.
» violenceRisk string false none The risk to brand safety from potential violent imagery and content detected within the app.
» imageData [object] false none The image by image breakdown of brand safety risk factors based on advanced image processing and machine learning.
»» url string false none A URL to the image.
»» text string false none The extracted text.
»» violenceRisk string false none The risk to brand safety from potential violence images and any extracted text.
»» spoofRisk string false none The risk to brand safety from potential spoofing based on images and any extracted text.
»» medicalRisk string false none The risk to brand safety from potential medical images and any extracted text.
»» adultRisk string false none The risk to brand safety from potential adult images images and any extracted text.

Enumerated Values

Property Value
advisoriesRisk low
advisoriesRisk medium
advisoriesRisk high
adultContentRisk low
adultContentRisk medium
adultContentRisk high
drugContentRisk low
drugContentRisk medium
drugContentRisk high
alcoholContentRisk low
alcoholContentRisk medium
alcoholContentRisk high
hateSpeechRisk low
hateSpeechRisk medium
hateSpeechRisk high
offensiveContentRisk low
offensiveContentRisk medium
offensiveContentRisk high
adultRisk low
adultRisk medium
adultRisk high
violenceRisk low
violenceRisk medium
violenceRisk high
violenceRisk low
violenceRisk medium
violenceRisk high
spoofRisk low
spoofRisk medium
spoofRisk high
medicalRisk low
medicalRisk medium
medicalRisk high
adultRisk low
adultRisk medium
adultRisk high

TrafficOverlap

{
          "trafficOverview": {
            "spoofingRisk": "low",
            "advertisingIvtRisk": "low",
            "trustedSeller": "Google AdExchange",
            "ivtFreeUsersRate": 96.03,
            "estimatedDailyActiveUsers": 4929,
            "estimatedMonthlyActiveUsers": 46502,
            "adSpend": 69000,
            "adDensity": 18377044,
            "adDensityRisk": "low",
            "adDensityConfidenceScore": 0.95
          },
          "trafficOverlap": {
            "byOverallTraffic": [
              {
                "appName": "ExampleOrg's - Free TV Drama & Movies",
                "developerName": "Example Org",
                "impressionOverlap": 0.2,
                "deviceOverlap": 0.21,
                "risk": "medium"
              }
            ],
            "byIvt": [
              {
                "appName": "ExampleOrg's - Free TV Drama & Movies",
                "developerName": "Example Org",
                "impressionOverlap": 0.14,
                "deviceOverlap": 0.05,
                "risk": "low"
              }
            ]
          }
        }
        
        

Overlap traffic illustrates the most common user journeys from app to app.

Properties

Name Type Required Restrictions Description
trafficOverview object false none Traffic volume and ad inventory estimates for the app along with associated advertising risk factors.
» spoofingRisk string false none The risk the app may be misrepresented in advertising transactions and ads delivered to a different app or site.
» advertisingIvtRisk string false none The 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).
» trustedSeller string false none Pixalate crunches the data to rate sellers representing this app on the basis of a number of factors including audience reach and invalid traffic risk.
» ivtFreeUsersRate number false none The percentage of the app's individual user-base not responsible for presence of invalid traffic.
» estimatedDailyActiveUsers integer false none The estimated Daily Active Users (DAU) for the app.
» estimatedMonthlyActiveUsers integer false none The estimated Monthly Active Users (MAU) for the app.
» adSpend number false none Total estimated monthly ad spend on this app.
» adDensity number false none The estimated number of ads displayed to the average user by this app.
» adDensityRisk string false none The ad density risk for the application.
» adDensityConfidenceScore number false none Confidence of ad density calculations and risk.
trafficOverlap object false none Overlap 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).
» byOverallTraffic [object] false none Overall traffic overlap broken down by app.
»» appName string false none The app name.
»» developerName string false none The developer name.
»» impressionOverlap number false none The impression overlap with the app.
»» deviceOverlap number false none The device overlap with the app.
»» risk string false none The overlap risk
» byIvt [object] false none IVT traffic overlap broken down by app.
»» appName string false none The app name.
»» developerName string false none The developer name.
»» impressionOverlap number false none The impression overlap with the app.
»» deviceOverlap number false none The device overlap with the app.
»» risk string false none The overlap risk

Enumerated Values

Property Value
spoofingRisk low
spoofingRisk medium
spoofingRisk high
advertisingIvtRisk low
advertisingIvtRisk medium
advertisingIvtRisk high
adDensityRisk low
adDensityRisk medium
adDensityRisk high
risk low
risk medium
risk high
risk low
risk medium
risk high

AuthorizedSellers

[
          {
            "exchange": "Acme Exchange",
            "paymentType": "Direct",
            "inventory": 30039,
            "inventoryRatio": 12.87,
            "ivt": 0.9,
            "videoInventoryRatio": 1.4,
            "displayInventoryRatio": 1.4,
            "spoofingRate": 2.6,
            "ssaiRate": 0.06,
            "transparentSsaiRate": 0.06
          }
        ]
        
        

The contribution of various sell side platforms to programmatic ad impressions sold on the app.

Properties

Name Type Required Restrictions Description
exchange string false none The name of the exchange.
paymentType string false none The payment type.
inventory integer false none The estimated number of monthly impressions this app makes available programmatically by this seller.
inventoryRatio number false none The average inventory ratio for ad impressions on the app by this seller.
ivt number false none The average IVT for ad impressions on the app by this seller.
videoInventoryRatio number false none The average video inventory ratio for ad impressions on the app by this seller.
displayInventoryRatio number false none The average display inventory ratio for ad impressions on the app by this seller.
spoofingRate number false none The average spoofing rate for ad impressions on the app by this seller.
ssaiRate number false none The percentage of traffic observed to utilize server-side-ad-insertion (SSAI) integrations for ad/ad content delivery to the end user.
transparentSsaiRate number false none The SSAI tracked impressions that come from proxies passing X-Device-User-Agent headers for more transparency.

InvalidTraffic

{
          "ivt": 7.76,
          "givt": 0.29,
          "sivt": 7.47,
          "givtTypes": [
            {
              "fraudType": "Data Center",
              "givt": 0.29
            }
          ],
          "sivtTypes": [
            {
              "fraudType": "AppSpoofing",
              "sivt": 2.78
            }
          ]
        }
        
        

The percentage of invalid traffic associated with each Pixalate's taxonomy of GIVT and SIVT invalid traffic types.

Properties

Name Type Required Restrictions Description
ivt number false none The total percentage of non-human traffic measured on the app.
givt number false none GIVT refers to General Invalid Traffic - Deterministically judged to be non-human traffic; high to very high risk.
sivt number false none SIVT refers to Sophisticated Invalid Traffic - Probabilistically judged to be non-human traffic using advanced statistical detection methods; moderate to high risk traffic.
givtTypes [object] false none The percentage of invalid traffic associated with each Pixalate's taxonomy of GIVT invalid traffic types.
» fraudType string false none The type of SIVT fraud.
» givt number false none GIVT refers to General Invalid Traffic - Deterministically judged to be non-human traffic; high to very high risk.
sivtTypes [object] false none The percentage of invalid traffic associated with each Pixalate's taxonomy of SIVT invalid traffic types.
» fraudType string false none The type of SIVT fraud.
» sivt number false none SIVT refers to Sophisticated Invalid Traffic - Probabilistically judged to be non-human traffic using advanced statistical detection methods; moderate to high risk traffic.

Inventory

{
          "byRegion": [
            {
              "region": "GLOBAL",
              "inventory": null,
              "inventoryRatio": 6.39,
              "ivt": 2.93,
              "ssaiRate": 0.02,
              "TransparentssaiRate": 0.01
            }
          ],
          "byAdsize": [
            {
              "adSize": "320x50",
              "inventory": null,
              "inventoryRatio": 3.47,
              "ivt": 12.25,
              "ssaiRate": 0.03,
              "TransparentssaiRate": 0.02
            }
          ],
          "byDma": [
            {
              "dmaName": "NEW YORK",
              "inventory": null,
              "inventoryRatio": 5.35,
              "ivt": 4.76,
              "ssaiRate": 0,
              "TransparentssaiRate": 0
            }
          ]
        }
        
        

The estimated volume of programmatic ad impressions broken down by device, region, country, DMA.

Properties

Name Type Required Restrictions Description
byRegion [object] false none The estimated volume of programmatic ad impressions broken down by region.
» region string false none The region.
» inventory integer false none The estimated volume of programmatic ad impressions by region.
» inventoryRatio number false none The estimated percentage of inventory by region.
» ivt number false none The total percentage of non-human traffic measured on the app by region.
» ssaiRate number false none The percentage of traffic observed to utilize server-side-ad-insertion (SSAI) integrations for ad/ad content delivery to the end user by region.
» TransparentssaiRate number false none The SSAI tracked impressions that come from proxies passing X-Device-User-Agent headers for more transparency by region.
byAdsize [object] false none The estimated volume of programmatic ad impressions broken down by ad size.
» adSize string false none The ad size.
» inventory integer false none The estimated volume of programmatic ad impressions by ad size.
» inventoryRatio number false none The estimated percentage of inventory by ad size.
» ivt number false none The total percentage of non-human traffic measured on the app by ad size.
» ssaiRate number false none The percentage of traffic observed to utilize server-side-ad-insertion (SSAI) integrations for ad/ad content delivery to the end user by ad size.
» TransparentssaiRate number false none The SSAI tracked impressions that come from proxies passing X-Device-User-Agent headers for more transparency by as size.
byDma [object] false none The estimated volume of programmatic ad impressions broken down by DMA.
» dmaName string false none The DMA name.
» inventory integer false none The estimated volume of programmatic ad impressions by DMA.
» inventoryRatio number false none The estimated percentage of inventory by DMA.
» ivt number false none The total percentage of non-human traffic measured on the app by DMA.
» ssaiRate number false none The percentage of traffic observed to utilize server-side-ad-insertion (SSAI) integrations for ad/ad content delivery to the end user by DMA.
» TransparentssaiRate number false none The SSAI tracked impressions that come from proxies passing X-Device-User-Agent headers for more transparency by DMA.

AvailableCountries

[
          "Germany"
        ]
        
        

A list of available countries.

Properties

None

Rankings

{
          "regionRank": 6473,
          "category": [
            {
              "category": "Movies & TV",
              "rank": "11"
            }
          ],
          "final": {
            "grade": "C",
            "score": "38"
          },
          "ivt": {
            "grade": "B",
            "score": "62"
          },
          "popularity": {
            "grade": "C",
            "score": "44"
          },
          "userEngagement": {
            "grade": "A",
            "score": "99"
          },
          "adDensity": {
            "grade": "A",
            "score": "99"
          },
          "globalPopularityRank": "234"
        }
        
        

Ranking information about the app.

Properties

Name Type Required Restrictions Description
regionRank integer false none The rank of the app within the requested region.
category [object] false none The rankings by various categories for the app.
» category string false none A category.
» rank string false none The rank within the specific category for the app.
final object false none The final grade and score for the app.
» grade string false none The final grade for the app.
» score string false none The final score for the app.
ivt object false none The IVT grade and score for the app.
» grade string false none The IVT grade for the app.
» score string false none The IVT score for the app.
popularity object false none The popularity grade and score for the app.
» grade string false none The popularity grade for the app.
» score string false none The popularity score for the app.
userEngagement object false none The user engagement grade and score for the app.
» grade string false none The user engagement grade for the app.
» score string false none The user engagement score for the app.
adDensity object false none The ad density grade and score for the app.
» grade string false none The ad density grade for the app.
» score string false none The ad density score for the app.
globalPopularityRank string false none The overall global popularity ranking of the app.

RankingsByCountry

{
          "reach": [
            {
              "countryCode": "ZA",
              "countryName": "South Africa",
              "mauRank": "637",
              "mauRankChange": "-372"
            }
          ],
          "marketShare": [
            {
              "countryCode": "GE",
              "countryName": "Georgia",
              "impressionRank": "359",
              "impsRankChange": "N/A"
            }
          ]
        }
        
        

The reach and market share of the app broken down by country.

Properties

Name Type Required Restrictions Description
reach [object] false none The reach of the app broken down by country.
» countryCode string false none The ISO ALPHA-2 standard country code.
» countryName string false none The country name.
» mauRank string false none The current Monthly Active Users (MAU) ranking for the app for this country.
» mauRankChange string false none The change in Monthly Active Users (MAU) rank since last assessment.
marketShare [object] false none The market chare of the app broken down by country.
» countryCode string false none The ISO ALPHA-2 standard country code.
» countryName string false none The country name.
» impressionRank string false none The current impression ranking for the app for this country.
» impsRankChange string false none The change in impression ranking since last assessment.

Coppa

{
          "coppaAudience": "General Audience",
          "coppaAudienceReason": [
            "This app is likely directed to children (including mixed audience) based on manual review"
          ],
          "isReviewedManually": true,
          "parentalHint": "Guidance Suggested",
          "Categories": [
            "Movies & TV"
          ],
          "coppaViolationRisk": "low",
          "coppaViolationRiskReason": [
            "The COPPA risk is low because the app is likely not directed to children under 13."
          ],
          "privacyPolicyDetected": true,
          "transmitsResidentialIP": true,
          "passesLocation": true
        }
        
        

Children's Online Privacy Protection Act information.

Properties

Name Type Required Restrictions Description
coppaAudience string false none Assesses the likely intended audience of an app based on a variety of factors including app store categories, content ratings, and keywords, etc.
coppaAudienceReason [string] false none Describes the specific variables considered when making the audience assessment.
isReviewedManually boolean false none Flag 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.
parentalHint string false none The recommended age rating defined by Amazon’s app store or the Parental Hint provided by Roku store.
Categories [string] false none The associated categories of an app according to Roku and Amazon Stores.
coppaViolationRisk string false none Pixalate analyzes multiple signals and produces a risk score (low, medium, or high) that captures the potential COPPA risk.
coppaViolationRiskReason [string] false none Describes the specific variables considered when making the overall COPPA risk rating assessment.
privacyPolicyDetected boolean false none Pixalate 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.
transmitsResidentialIP boolean false none Pixalate 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.
passesLocation boolean false none Pixalate 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.

Enumerated Values

Property Value
coppaViolationRisk low
coppaViolationRisk medium
coppaViolationRisk high

Device

"roku"
        
        

The device.

Properties

Name Type Required Restrictions Description
anonymous string false none The device.

Enumerated Values

Property Value
anonymous roku
anonymous firetv

Region

"GLOBAL"
        
        

A geographic region. GLOBAL indicates an aggregate of all regions.

Properties

Name Type Required Restrictions Description
anonymous string false none A geographic region. GLOBAL indicates an aggregate of all regions.

Enumerated Values

Property Value
anonymous GLOBAL
anonymous NA
anonymous EMEA
anonymous LATAM
anonymous APAC

Status

"OK"
        
        

The returned status.

Properties

Name Type Required Restrictions Description
anonymous string false none The returned status.

Enumerated Values

Property Value
anonymous OK
anonymous ERR

Widget

"appOverview"
        
        

The identifier for a predefined subset of all the app information available. If not supplied, usually indicates all widgets.

Properties

Name Type Required Restrictions Description
anonymous string false none The identifier for a predefined subset of all the app information available. If not supplied, usually indicates all widgets.

Enumerated Values

Property Value
anonymous appOverview
anonymous riskOverview
anonymous pixalateAdvisories
anonymous appSpoofing
anonymous appDetails
anonymous developerOverview
anonymous channels
anonymous brandSafety
anonymous trafficOverlap
anonymous authorizedSellers
anonymous invalidTraffic
anonymous inventory
anonymous availableCountries
anonymous rankings
anonymous rankingsByCountry
anonymous coppa

RiskReasons

[
          "Significantly Elevated IVT Percentage",
          "Ad Traffic Shows Some Suspicious Characteristics"
        ]
        
        

A list of reasons that the app is at risk.

Properties

None