Reporting Service API Guide

The Integral Ad Science (IAS) Reporting Application Programming Interface (Reporting API) is a RESTful API that exposes IAS viewability, fraud, and brand safety metrics.

API Overview

The Integral Ad Science (IAS) Reporting Application Programming Interface (Reporting API) is a RESTful API that exposes IAS viewability, fraud, and brand safety metrics. It allows you to leverage IAS's data for your own internal business applications organized by "dimensions" of your choice such as specific campaigns and publishers. You can access all endpoints with the HTTP GET method.

Authentication

IAS uses the OAuth 2.0 Authorization Framework for stateless authentication. OAuth 2.0 provides enhanced security on restricted resources, adding an extra level of data security without sending a username and password in each request. Here is the token and reporting URI:

Category

URI

Token URI

https://api.integralplatform.com/uaa/oauth/token

Reporting URI

https://api.integralplatform.com/reportingservice/api/

Refer to the 'OAuth 2.0 Authentication Reporting API Quick Start' for more information.

Summary of steps

  1. Coordinate with IAS on Client ID and Secret

  2. Acquire Token

  3. Make requests using the token

Step 1. Coordinate Client ID and Secret

Consult with your IAS Technical Sales representative for a client ID and client secret which are used when you request the token and for each request of the reporting API.

Step 2. Get a token

curl --user {client ID}:{client Secret} --data 'username={userName}&password={userPassword}&grant_type=password' https://api.integralplatform.com/uaa/oauth/token

You must use the 'password' grant type to obtain a token. Once generated, you can re-use the token with multiple requests to the reporting service until the token expires (which is indicated with the error 'invalid_token' and an error description 'Access token expired').

You need to request a new token once it is expired.

An authentication example using the Unix curl utility:

Value

Description

{client ID}:{client Secret}

client ID and secret, separated by a colon

grant_type

set to password

username

the IAS Signal username

password

the password for the IAS Signal username

The token request returns JSON with the following values:

Value

description

access_token

token to use in the authorization header for requests to the reporting API

token_type

defines how the access_token was generated and how to make requests

expires_in

token expiration time in seconds

scope

reserved for future use

userId

ID associated with the IAS Signal

email

email associated with the IAS Signal username

jti

identifier used for IAS's internal diagnostics

Sample return:

{"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX25hbWUiOiJkc3VsbGl2YW4iLCJzY29wZSI6WyJuZW1vIl0sImV4cCI6MTQ5MTY3MzAyOSwidXNlcklkIjo2NzM2LCJhdXRob3JpdGllcyI6WyJST0xFX0FETUlOIiwiUk9MRV9TVVBFUiIsIlJPTEVfQ1NNQU5BR0VSIl0sImp0aSI6IjU2ZThlYmVhLTQ4MWYtNDI4Ny1hOTg4LTRhZDc0YjczZjkzNyIsImVtYWlsIjoiZHN1bGxpdmFuQGludGVncmFsYWRzLmNvbSIsImNsaWVudF9pZCI6ImludGVncmFsVWkifQ.9OUAlypA6t2fiojdb6ZCjAR3hm1KN5-17mKRjHcTPZc","token_type":"bearer","expires_in":863999,"scope":"","userId":1234,"email":"me@example.com","jti":"2be9c83b-1dcd-3e47-8166-c49a0cdba754"}

Step 3. Use the token

curl --request GET --url https://api.integralplatform.com/reportingservice/api/{path to report} --header 'authorization: Bearer {token}'

Once you have the token, you use it in an authorization header GET request to the reporting API:

For example:

curl --request GET --url https://api.integralplatform.com reportingservice/api/teams/123/fw/campaigns --header 'authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX25hbWUiOiJkc3VsbGl2YW4iLCJzY29wZSI6WyJuZW1vIl0sImV4cCI6MTQ5MTY3MzAyOSwidXNlcklkIjo2NzM2LCJhdXRob3JpdGllcyI6WyJST0xFX0FETUlOIiwiUk9MRV9TVVBFUiIsIlJPTEVfQ1NNQU5BR0VSIl0sImp0aSI6IjU2ZThlYmVhLTQ4MWYtNDI4Ny1hOTg4LTRhZDc0YjczZjkzNyIsImVtYWlsIjoiZHN1bGxpdmFuQGludGVncmFsYWRzLmNvbSIsImNsaWVudF9pZCI6ImludGVncmFsVWkifQ.9OUAlypA6t2fiojdb6ZCjAR3hm1KN5-17mKRjHcTPZc'

Sample response

See the response below:

{
"campaigns":
[
{
"id":"12345",
"salesforceOpportunityId":"1234",
"name":"1",
"status":"New",
...
"teMaskedFl":"0",
"teIndexFl":"0",
"mediaType":"mixed"
}
],
"recordCount":119,
"executionTimeMS":3198,
"path":"teams/123/fw/campaigns"
}

token expired: When a token is expired, the error is invalid_token and the error_description includes "Access token expired":

{ "error": "invalid_token", "error_description": "Access token expired: ..." } `

Java sample

This Java code gets the token (using a password grant_type), then uses the token for a report request.

Step 1. Coordinate Client ID and Secret

Consult with your IAS Technical Sales representative for a client ID and client secret which are used when you request the token and for each request of the reporting API.

Step 2: Get the token

See the response below:

String tokenURI = "https://api.integralplatform.com/uaa/oauth/token";
uri = URI.create(tokenURI);
String clientCredential = clientId + ":" + clientSecret;
String encodedCredential = Base64.getEncoder().encodeToString
(clientCredential.getBytes());

Step 3: Use the token

Insert the token in the header for each report request.

String reportRequest="https://api.integralplatform." +
"com/reportingservice/api/" +
"teams/123/fw/campaigns";
uri = URI.create(reportRequest);
HttpGetgetRequest = newHttpGet(uri);
getRequest.setHeader("Content-Type","application/json");
getRequest.setHeader("Authorization","bearer"+token);
response = httpClient.execute(getRequest);
List<NameValuePair> params = new ArrayList<NameValuePair>(3);
params.add(new BasicNameValuePair("grant_type", "password"));
params.add(new BasicNameValuePair("username", username));
params.add(new BasicNameValuePair("password", password));
HttpPost httppost = new HttpPost(uri);
httppost.setHeader("Authorization",
"Basic " + encodedCredential);
httppost.setEntity(new UrlEncodedFormEntity(params));
response = httpClient.execute(httppost);
responseAsString = EntityUtils.toString(response.getEntity());
JSONParser parser = new JSONParser();
Object obj = parser.parse(responseAsString);
JSONObject jsonObject = (JSONObject) obj;
token = (String) jsonObject.get("access_token");

POM dependencies

This code uses Apache HttpComponents (HttpClient and HttpMime) to make requests and com.googlecode JSON.simple to parse the response.

<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.4.1</version>
</dependency>
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1</version>
</dependency>

Status & Error Codes

All JSON reports use the following return codes.

Code

Description

200 OK

Successful query

401 Unauthorized

User does not have access to this resource.

400 Bad Request

Invalid arguments passed in parameters.

500 Internal Server Error

An error occurred during processing - please contact your IAS representative.

Base URL Templates

Open Web

You can access all endpoints with the HTTP GET method. The following is a base URL template for the IAS Reporting API:

https://api.integralplatform.com/reportingservice/api/teams/<team_id>/FW/<dimension>/<dimension_params>/<report_ name>?<query_params>

Required Path Parameters

The <team_id>, <dimension>, <dimension_params>, and <report_name> parts are the only required parameters:

Required Path Parameter

Description

Type

team_id

Chooses which team's data to query. A team_id is a numeric value assigned to you. You can be granted permission to see any number of teams' data.

Integer

dimension

Possible values include: campaigns and publishers

String

dimension_params

Your IAS Open Web macro name, colon-delimited. For example:

/id1:id2:etc/

/name1:name2:etc/

Integer or string if your macro is a string type.

report_name

Chooses which report to generate.

String

Report Resources

In these sections below, you can see a description of each resource, tables with the endpoints for each dimension (which allows you to filter by campaign or publisher), and a subsequent table for all the query parameters available for those endpoints.

Use Endpoints

All API endpoints in the following sections are relative to the base URL. For example, assuming the base URL of:

https://api.integralplatform.com/reportingservice/api/teams/<team_id>/FW/

the "/campaigns/{campaign_ids}/dashboard/overview" endpoint in the first table below refers to:

https://api.integralplatform.com/reportingservice/api/teams/<team_id>/FW/campaigns/{campaign_ ids}/dashboard/overview

Reports

IAS advises you to use these reports for your reporting needs.

Overview

Request:

GET https://api.integralplatform.com/reportingservice/api/teams/123/platform/fw/dashboard/overview

Response:

{
"overview" : [
{
"grossImps" : 2,
"totalEligibleForBrandSafety" : 2,
"passedImps" : 2,
"passedPct" : 100.0,
"totalNetEligibleImps" : 2,
"totalNetMeasuredImps" : 0,
"totalNetMeasuredPct" : 0.0,
"totalNetInViewImps" : 0,
"fraudulentImps" : 0,
"fraudulentPct" : 0.00,
"eligibleForQualifiedAds" : 7570602,
"qualifiedAds" : 5067183,
"qualifiedPct" : 66.93,
"campaignId" : 123,
"campaignName" : "Campaign Name",
"publisherId" : 1234,
"publisherName" : "PubName.com"
}, ...
],
"recordCount" : 153,
"executionTimeMS" : 4325
}

Returns popular metrics from all viewability, invalid traffic, and brand safety resources, organized by your choice of dimensions. You can access all endpoints with the HTTP GET method.

FW

Dimensions

Endpoint

Function

Campaigns

/campaigns/{campaign_ids}/dashboard/overview

Filter metrics by specific campaign

Publishers

/publishers/{publisher_ids}/dashboard/overview

Filter metrics by specific publishers

Campaigns and Publishers

/campaigns/{campaign_ids}/publishers/{publisher_ ids}/dashboard/overview

Filter metrics by specific campaigns and publishers

Query parameters

Param

Description

Variable Type and Example

Default Value

qualifiedAdsCriteria

Allows user to define/restrict Qualified Ads™ to within some or all of the Qualified Ads criteria categories: viewability, invalid traffic (fraud), geo, and brand safety.

Array. Colon delimited for groups:

qualifiedAdsCriteria=[viewability:fraud:geo:brandsafety]






customMetricsId

ID of the organization which defines the custom metrics. Note: Contact your Customer Service representative for details on which customMetricsId to use.

Integer:

?customMetricsId=2


period

You can specify a named keyword or dates to define the report period. Options include:

Named keywords: yesterday, today, latestDay, twoDaysAgo, last7days, last30days, thisWeek, lastWeek, lastMonth, thisMonth, thisQuarter, lastQuarter.

Date: you can use a range or a specific date.

String:

period=yesterday

period=twodaysago

Array:

period=[2011-02-01..2011-02-15] (elipses delimited for a date range)

period=[2011-02-01,2011-03-04] (comma delimited for specific dates)

last7days

groups

Granularity of grouping for result set. Options:

camp - the campaign

pub - the publisher (Primary seller); using pub returns the properties publisherId and publisherName. The reporting service then groups the output data by each publisher ID.

plac - the placement (ad unit). Groups results via an external placement ID, extPlacementId, defined when the campaign is configured. If an IAS generated ID is present (iasPlacementID) then the IAS generated ID is used. Since not all clients pass in an external placement ID, the extPlacementId might be missing.

date or daily

weekly

monthly

mediaApplicationAndFormat

mediaChannel

mediaFormat

site - returns metrics grouped at a domain/URL level

app - returns metrics grouped at the app level

Array. Colon delimited for groups:

groups=[camp:pub:daily] - the result set contains one record for each campaign, publisher and date combination.

groups=[camp] - the result set contains one record per campaign

[camp:pub]

rows

Limits the number of records returned per page in the result set to this number.


When "app" or "site" default = '5000' Else = '200000'

cutoff

Omits records from the result set that have totalImpressions < cutoff. Note that cutoff is applied after grouping the results.

Array:

when groups=[camp:pub:daily] the result set will contain records that have totalImpressions >= cutoff for each day, publisher and campaign combination.

When groups=[camp] the result set will contain records that have totalImpressions >= cutoff for each campaign.


sortIndex

Sorts results by the given column. Any column in the result set can be specified here.

String:

sortIndex=totalImpressions


sortOrder

Sorts records in the ascending or descending order of the sortIndex.

asc - for ascending order

desc - for descending order

String:

sortOrder=asc

sortOrder=desc


Response Schema

Objects and Keys

Description

overview

overview is a JSONArray with one JSONObject for each overview in the result set, with the following properties listed in the cells immediately below.

grossImps

The number of tracked ads which includes sophisticated and general invalid traffic.

totalEligibleForBrandSafety

The number of eligible ads for brand safety which includes sophisticated and general invalid traffic.

passedImps

The number of ads that passed brand safety checks.

passedPct

The percentage of passed ads out of total tracked ads.

totalNetEligibleImps

The total number of in-view ads with all invalid traffic removed that were not blocked.

totalNetMeasuredImps

The total number of in-view and out-of-view ads with general invalid traffic removed, where IAS was able to collect viewability data.

totalNetMeasuredPct

The percentage of measured ads out of total tracked ads with all invalid traffic removed.

totalNetInViewImps

The number of viewable ads including flagged ads.

fraudulentImps

The total invalid traffic, which includes sophisticated and general invalid traffic, but does not include incentivized browsing traffic.

fraudulentPct

The percentage of invalid traffic out of total tracked ads, which includes sophisticated and general invalid traffic, but does not include reduced-value inventory (for example incentivized browsing traffic).

eligibleForQualifiedAds

When Qualified Ads criteria excludes viewability: Total Tracked Ads The total number of ads processed by IAS. When Qualified Ads criteria includes viewability: The number of ads that were measured for viewability or failed another selected criteria (such as brand safety, invalid traffic, or geo).

qualifiedAds

The number of ads that passed all selected Qualified Ads criteria. Note: For Proprietary Platforms, ads can fail only for metrics covered by each integration. Some Proprietary Platforms may not cover geo and/or brand safety.

qualifiedPct

The percentage of ads that passed all selected Qualified Ads criteria (out of Eligible for Qualified Ads). Note: For Proprietary Platforms, ads can fail only for metrics covered by each integration. Some Proprietary Platforms may not cover geo and/or brand safety.

mediaChannel

The viewability by device type which is displayed only when groups includes 'mediaChannel'. Possible values are: - 1 (Desktop) - 2 (Mobile) - 3 (Tablet) - 0 (Unknown, when the media channel is not known) Any value other than 1, 2, or 3 is an unknown media channel (0).

mediaFormat

The viewability by format which is displayed only when groups includes 'mediaFormat'. Possible Values: - 1 (Display) - 2 (Video)

mediaApplicationAndFormat

The viewability by environment and format which is displayed only when groups contains 'mediaApplicationAndFormat'. The value is a concatenation of the media application and format, where AF: A = 0 (Unknown), 1 (Browser), 2 (In-app) F = 0 (Unknown), 1 (Display), 2 (Video) Possible values: 11 (Browser Display) 12 (Browser Video) 21 (In-app Display) 22 (In-app Video) 01 (Unknown Display when the media app is unknown) 02 (Unknown Video when the media app is unknown) 10 (Browser Unknown when the format is unknown) 20 (In-app Unknown when the format is unknown) 00 (Unknown Unknown when both the app and format is unknown)

customMetricsId[id]totalNetInViewImps

The number of display in view ads as defined by the organization identified by the input parameter customMetricsId.

customMetricsId[id]totalNetInViewPct

The percentage of display in view ads as defined by the organization identified by the input parameter customMetricsId.

site

When site is set in the groups query parameter, site is the domain/URL which the metrics apply.

app

When app is set in the groups query parameter, app is the name of the app which the metrics apply.

renderedImps

IAS confirmed number of rendered impressions which excludes general invalid traffic.

renderedPct

Percent of rendered impressions out of all all tracked ads.

campaignId

The ID for the campaign displayed only if groups includes 'camp'.

campaignName

The name for the campaign displayed only if groups includes 'camp'.

publisherId

Displays the publisher ID; this field is only outputed when 'pub' is added as a groups input parameter value.

publisherName

The name of the publisher; this field is only outputed when 'pub' is added as a groups input parameter value.

placementId

The placement ID which is displayed only when groups includes 'plac'.

placementName

The placement name ID which is displayed only when groups includes 'plac'.

recordCount

The number of results.

executionTimeMS

The time, in milliseconds, the query took.

Brand Safety

Request:

GET https://api.integralplatform.com/reportingservice/api/teams/123/platform/fw/campaigns/12345/publishers/12345/brandsafety?includeChangeRate=true&period=%5B2017-10-25..2017-10-31%5D

Response:

{
"brandsafety" : [
{
"totalEligibleForBrandSafetyImps" : 22045529,
"passedImps" : 20542494,
"passedPct" : 93.18,
"failedImps" : 1503035,
"failedPct" : 6.82,
"seeThroughImps" : 19680898,
"seeThroughPct" : 89.27,
"blockedImps" : 1390231,
"blockedPct" : 92.49,
"failedByLanguageImps" : 0,
"failedByLanguagePct" : 0.00,
"failedByContentImps" : 158048,
"failedByContentPct" : 0.72,
"failedByKeywordImps" : 810424,
"failedByKeywordPct" : 3.68,
"failedByUrlImps" : 3219,
"failedByUrlPct" : 0.01,
"failedByGeoImps" : 291398,
"failedByGeoPct" : 1.32,
"failedByFraudImps" : 248399,
"failedByFraudPct" : 1.13,
"failedByVisibilityImps" : 0,
"failedByVisibilityPct" : 0.00,
"riskCategoryAdultImps" : 11050,
"riskCategoryAlcoholImps" : 1257,
"riskCategoryHateSpeechImps" : 16656,
"riskCategoryIllegalDownloadsImps" : 47013,
"riskCategoryDrugsImps" : 18140,
"riskCategoryOffensiveLanguageImps" : 38320,
"riskCategoryViolenceImps" : 25612,
"unblockableImps" : 0,
"publisherId" : 5563,
"publisherName" : "Site.com"
}
],
"recordCount" : 1,
"executionTimeMS" : 7284,
"path" : "teams/94/platform/fw/campaigns/123/publishers/12345/brandsafety",
"query" : "{period=[[2017-10-25..2017-10-31]],includeChangeRat}"
}

Returns all IAS brand safety metrics, organized by your choice of dimensions. You can access all endpoints with the HTTP GET method.

FW

Dimensions

Endpoint

Function

Campaigns

/campaigns/{campaign_ids}/dashboard/brandsafety

Filter metrics by specific campaign

Publishers

/publishers/{publisher_ids}/dashboard/brandsafety

Filter metrics by specific publishers

Campaigns and Publishers

/campaigns/{campaign_ids}/publishers/{publisher_ids}/dashboard/brandsafety

Filter metrics by specific campaigns and publishers

Query parameters

Param

Description

Variable Type and Example

Default Value

period

You can specify a named keyword or dates to define the report period. Options include:

Named keywords: yesterday, today, latestDay, twoDaysAgo, last7days, last30days, thisWeek, lastWeek, lastMonth, thisMonth, thisQuarter, lastQuarter.

Date: you can use a range or a specific date.

String:

period=yesterday

period=twodaysago

Array:

period=[2011-02-01..2011-02-15] (elipses delimited for a date range)

period=[2011-02-01,2011-03-04] (comma delimited for specific dates)

last7days

groups

Granularity of grouping for result set. Options:

camp - the campaign

pub - the publisher (Primary seller); using pub returns the properties publisherId and publisherName. The reporting service then groups the output data by each publisher ID.

plac - the placement (ad unit). Groups results via an external placement ID, extPlacementId, defined when the campaign is configured. If an IAS generated ID is present (iasPlacementID) then the IAS generated ID is used. Since not all clients pass in an external placement ID, the extPlacementId might be missing.

date or daily

weekly

monthly

mediaApplicationAndFormat

mediaChannel

mediaFormat

site - returns metrics grouped at a domain/URL level

app - returns metrics grouped at the app level

Array. Colon delimited for groups:

groups=[camp:pub:daily] - the result set contains one record for each campaign, publisher and date combination.

groups=[camp] - the result set contains one record per campaign


cutoff

Omits records from the result set that have totalImpressions < cutoff. Note that cutoff is applied after grouping the results.

Integer:

when groups=[camp:pub:daily] the result set will contain records that have totalImpressions >= cutoff for each day, publisher and campaign combination.

When groups=[camp] the result set will contain records that have totalImpressions >= cutoff for each campaign.


sortIndex

Sorts results by the given column. Any column in the result set can be specified here.

String:

sortIndex=totalImpressions

totalEligibleForBrandSafetyImps

sortOrder

Sorts records in the ascending or descending order of the sortIndex.

asc - for ascending order

desc - for descending order

String:

sortOrder=asc

sortOrder=desc

desc

rows

Limits the number of records returned per page in the result set to this number.


When "app" or "site" default = '5000' Else = '200000'

page

Shows a specific page of records. rows and pages parameters can be used in combination to retrieve result sets in smaller chunks. In order to receive all records, increase the page number until you don't receive any additional results for that page.

Integer If a report is supposed to return 12,500 records, then rows=5000&page=1, returns the first 5,000 rows rows=5000&page=2, returns the next 5,000 rows rows=5000&page=3, returns the last 2,500 rows.

1

includeChangeRate

Allows the response to include the percentage change rate for a specified period compared to the value of the metric from the previous period. includeChangeRate is not supported with 'daily' or 'date' group. Similarly, it does not work for individual dates if specified in 'period'. includeChangeRate works for a named period or a date range.

Boolean (true/false): includeChangeRate=true

false

Response Schema

Objects and Keys

Description

brandsafety

brandsafety is a JSONArray with one JSONObject for each bandsafety contained in the result set, with the following properties listed in the cells immediately below.

totalEligibleForBrandSafetyImps

The number of eligible ads for brand safety which includes sophisticated and general invalid traffic.

passedImps

The number of ads that passed brand safety checks.

passedPct

The percentage of passed ads with regard to the total eligible ads.

failedImps

The number of ads that failed brand safety checks.

failedPct

The percentage of failed ads with regard to the total number of eligible ads.

blockedImps

The number of ads that were blocked by IAS.

blockedPct

The percentage of blocked ads with regard to the failed ads.

failedByContentImps

The number of ads that were failed for content reasons.

failedByContentPct

The percentage of failed by content ads with regard to the total eligible ads.

failedByKeywordImps

The number of ads that were failed because of keywords.

failedByKeywordPct

The percentage of failed because of keywords ads with regard to the total eligible ads.

failedByUrlImps

The number of ads that were failed because of a URL being in an exclusion list.

failedByUrlPct

The percentage of failed by URL ads because of a URL being in an exclusion list with regard to the total eligible ads.

failedByGeoImps

The number of ads that failed because of geography checks.

failedByGeoPct

The percentage of 'failed because of geography' ads with regard to the total eligible ads.

failedByFraudImps

The number of ads that failed for invalid traffic.

failedByFraudPct

The percentage of 'failed because of invalid traffic' ads with regard to total eligible ads.

failedByVisibilityImps

The number of ads that failed for visibility.

failedByVisibilityPct

The percentage of failed by visibility ads with regard to the total eligible ads.

failedByLanguageImps

The number of ads that failed for language reasons.

failedByLanguagePct

The percentage of 'failed because of language' ads with regard to the total eligible ads.

site

When site is set in the groups query parameter, site is the domain/URL which the metrics apply.

app

When app is set in the groups query parameter, app is the name of the app which the metrics apply.

unblockableImps

Number of video ads which were meant to be blocked due to brand safety, but couldn't be blocked.

blockingStatus

Returns a string to indicate how a placement, campaign, or media partner is set up. The blockingStatus is useful with identifying potential issues with the campaign performance or tag setup. Possible values are:

Monitoring

Blocking

Mixed

campaignId

The ID for the campaign displayed only if groups includes 'camp'.

campaignName

The name for the campaign displayed only if groups includes 'camp'.

publisherId

Displays the publisher ID; this field is only outputed when 'pub' is added as a groups input parameter value.

publisherName

The name of the publisher; this field is only outputed when 'pub' is added as a groups input parameter value.

placementId

The placement ID which is displayed only when groups includes 'plac'.

placementName

The placement name ID which is displayed only when groups includes 'plac'.

mediaChannel

The viewability by device type and is displayed only when groups includes 'mediaChannel'. Possible values are: - 1 (Desktop) - 2 (Mobile) - 3 (Tablet) - 0 (Unknown, when the media channel is not known) Any value other than 1, 2, or 3 is an unknown media channel (0).

mediaFormat

The viewability by format which is displayed only when groups includes mediaFormat. Possible Values: - 1 (Display) - 2 (Video)

mediaApplicationAndFormat

The viewability by environment and format which is displayed only when groups contains 'mediaApplicationAndFormat'. The value is a concatenation of the media application and format, where AF: A = 0 (Unknown), 1 (Browser), 2 (In-app) F = 0 (Unknown), 1 (Display), 2 (Video) Possible values: 11 (Browser Display) 12 (Browser Video) 21 (In-app Display) 22 (In-app Video) 01 (Unknown Display when the media app is unknown) 02 (Unknown Video when the media app is unknown) 10 (Browser Unknown when the format is unknown) 20 (In-app Unknown when the format is unknown) 00 (Unknown Unknown when both the app and format is unknown)

hitDate

The date in which IAS pulled the data and is displayed only when groups includes 'date' or 'daily'.

recordCount

The number of results.

executionTimeMS

The time, in milliseconds, the query took.

path

The path of the query.

query

The query parameters used to generate the report.

Invalid Traffic

Request:

GET https://api.integralplatform.com/reportingservice/api/teams/123/platform/fw/campaigns/12345/publishers/12345/fraud?includeChangeRate=true&period=last7days

Response:

{
"fraud" : [
{
"totalImps" : 2727188,
"dsDomainSpoofingTotalImps" : 2,
"dsDomainSpoofingTotalPct" : 0,
"fraudulentImps" : 32575,
"fraudulentPct" : 1.19,
"nonFraudulentImps" : 2694613,
"nonFraudulentPct" : 98.81,
"nonHumanTrafficImps" : 30619,
"nonHumanTrafficPct" : 1.12,
"nhtSittingDuckBotImps" : 28,
"nhtSittingDuckBotPct" : 0.00,
"nhtStandardBotImps" : 20,
"nhtStandardBotPct" : 0.00,
"nhtVolunteerBotImps" : 33,
"nhtVolunteerBotPct" : 0.00,
"nhtProfileBotImps" : 215,
"nhtProfileBotPct" : 0.01,
"nhtMaskedBotImps" : 124,
"nhtMaskedBotPct" : 0.00,
"nhtNomadicBotImps" : 1,
"nhtNomadicBotPct" : 0.00,
"nhtOtherBotImps" : 30198,
"nhtOtherBotPct" : 1.11,
"fraudulentUnblockedImps" : 3989,
"fraudulentUnblockedPct" : 12.25,
"fraudulentBlockedImps" : 28586,
"fraudulentBlockedPct" : 87.75,
"unblockedImps" : 2523849,
"unblockedPct" : 92.54,
"blockedImps" : 203339,
"blockedPct" : 7.46,
"givtImps" : 1956,
"givtPct" : 0.07,
"hiddenAdsImps" : 0,
"hiddenAdsPct" : 0.00,
"locationSpoofingImps" : 779,
"locationSpoofingPct" : 0.03,
"lsProxyServerImps" : 779,
"lsProxyServerPct" : 0.03,
"incentivizedBrowsingImps" : 1374,
"incentivizedBrowsingPct" : 0.05,
"sivtImps" : 30619,
"sivtPct" : 1.12,
"rviImps" : 2153,
"rviPct" : 0.08,
"hitDate" : "2019-01-20"
} ],
"recordCount" : 1,
"executionTimeMS" : 8285,
"path" : "teams/123/platform/fw/campaigns/12345/publishers/12345/fraud",
"query" : "{period=[[2017-10-25..2017-10-31]],includeChangeRate=[true]}"
}

Returns all IAS invalid traffic metrics, organized by your choice of dimensions. You can access all endpoints with the HTTP GET method.

FW

Dimensions

Endpoint

Function

Campaigns

/campaigns/{campaign_ids}/dashboard/fraud

Filter metrics by specific campaign

Publishers

/publishers/{publisher_ids}/dashboard/fraud

Filter metrics by specific publishers

Campaigns and Publishers

/campaigns/{campaign_ids}/publishers/{publisher_ids}/dashboard/fraud

Filter metrics by specific campaigns and publishers

Query parameters

Param

Description

Variable Type and Example

Default Value

period

You can specify a named keyword or dates to define the report period. Options include:

Named keywords: yesterday, today, latestDay, twoDaysAgo, last7days, last30days, thisWeek, lastWeek, lastMonth, thisMonth, thisQuarter, lastQuarter.

Date: you can use a range or a specific date.

String:

period=yesterday

period=twodaysago

Array:

period=[2011-02-01..2011-02-15] (elipses delimited for a date range)

period=[2011-02-01,2011-03-04] (comma delimited for specific dates)

last7days

groups

Granularity of grouping for result set. Options:

camp - the campaign

pub - the publisher (Primary seller); using pub returns the properties publisherId and publisherName. The reporting service then groups the output data by each publisher ID.

plac - the placement (ad unit). Groups results via an external placement ID, extPlacementId, defined when the campaign is configured. If an IAS generated ID is present (iasPlacementID) then the IAS generated ID is used. Since not all clients pass in an external placement ID, the extPlacementId might be missing.

date or daily

weekly

monthly

mediaApplicationAndFormat

mediaChannel

mediaFormat

site - returns metrics grouped at a domain/URL level

app - returns metrics grouped at the app level

Array. Colon delimited for groups:

groups=[camp:pub:daily] - the result set contains one record for each campaign, publisher and date combination.

groups=[camp] - the result set contains one record per campaign


cutoff

Omits records from the result set that have totalImpressions < cutoff. Note that cutoff is applied after grouping the results.

Integer:

when groups=[camp:pub:daily] the result set will contain records that have totalImpressions >= cutoff for each day, publisher and campaign combination.

When groups=[camp] the result set will contain records that have totalImpressions >= cutoff for each campaign.


sortIndex

Sorts results by the given column. Any column in the result set can be specified here.

String:

sortIndex=totalImpressions

fraudulentImps

sortOrder

Sorts records in the ascending or descending order of the sortIndex.

asc - for ascending order

desc - for descending order

String:

sortOrder=asc

sortOrder=desc

desc

rows

Limits the number of records returned per page in the result set to this number.


When "app" or "site" default = '5000' Else = '200000'

page

Shows a specific page of records. rows and pages parameters can be used in combination to retrieve result sets in smaller chunks. In order to receive all records, increase the page number until you don't receive any additional results for that page.

Integer If a report is supposed to return 12,500 records, then rows=5000&page=1, returns the first 5,000 rows rows=5000&page=2, returns the next 5,000 rows rows=5000&page=3, returns the last 2,500 rows.

1

includeChangeRate

Allows the response to include the percentage change rate for a specified period compared to the value of the metric from the previous period. includeChangeRate is not supported with 'daily' or 'date' group. Similarly, it does not work for individual dates if specified in 'period'. includeChangeRate works for a named period or a date range.

Boolean (true/false): includeChangeRate=true

false

Response Schema

Objects and Keys

Description

fraud

fraud is a JSONArray with one JSONObject for each fraud contained in the result set, with the following properties listed in the cells immediately below.

totalImps

The gross total number of ads which includes general invalid traffic.

dsDomainSpoofingTotal Impressions

The number of impressions that are low quality inventory disguised as high-quality legitimate-sites, or send incorrect referrer information to hide their identity.

dsDomainSpoofing TotalPct

The percentage of impressions that are low quality inventory disguised as high-quality legitimate-sites, or send incorrect referrer information to hide their identity.

fraudulentImps

The total invalid traffic which includes sophisticated and general invalid traffic but does not include incentivized browsing traffic.

fraudulentPct

Percentage of invalid traffic which includes sophisticated and general invalid traffic but does not include reduced value inventory (for example incentivized browsing traffic).

nonFraudulentImps

The total valid traffic.

nonFraudulentPct

The percentage of invalid traffic.

fraudulentUnblockedImps

The total unblocked invalid traffic.

fraudulentUnblockedPct

The percentage of unblocked invalid traffic.

fraudulentBlockedImps

The total blocked invalid traffic.

fraudulentBlockedPct

The percentage of blocked invalid traffic.

unblockedImps

The total number of ads that were not blocked. This includes general and sophisticated invalid traffic.

unblockedImpsPct

The percentage of ads that were not blocked. This includes general and sophisticated invalid traffic.

blockedImps

The total number of ads that were blocked.

blockedPct

The percentage of ads that were blocked.

nonHumanTrafficImps

The total number of non-human traffic ads.

nonHumanTrafficPct

The percentage of non-human traffic ads.

nhtSittingDuckBotImps

The total number of non human traffic (NHT) which resides on end-user devices (sitting duck). Detection avoidance pursued through aggressive use of traffic-filtering services falsely claiming to defeat invalid traffic prevention services.

nhtSittingDuckBotPct

The percentage of sitting duck bot ads.

nhtStandardBotImps

The total number of NHT standard bot ads which includes common strains of Internet Explorer-based malware, primarily on residential computers. The bot's focus is on scale rather than compiling cookies or evading detection.

nhtStandardBotPct

The percentage of standard bot ads.

nhtVolunteerBotImps

The total number of NHT volunteer bot ads which resides in cloud services, allowing 24/7 operations and eliminating load on the machine. Volunteer bots implement basic detection-evasion measures such as user agent spoofing.

nhtVolunteerBotPct

The percentage of volunteer bot ads.

nhtProfileBotImps

The total number of NHT profile bot ads. Profile bots focus on developing valuable user profiles by spending time on premium sites and evade detection through user agent spoofing and use of public proxy servers.

nhtProfileBotPct

The percentage of profile bot ads.

nhtMaskedBotImps

The total number of NHT masked bot ads. Masked bots go to great lengths to evade detection and obscure activity. Numerous aspects of the browser environment are manipulated.

nhtMaskedBotPct

The percentage of masked bot ads.

nhtNomadicBotImps

The total number of NHT nomadic bot ads. Nomadic bots use proxy servers or VPNs to hide their network location and are difficult to track with typical user identification techniques.

nhtNomadicBotPct

The percentage of nomadic bot ads.

nhtOtherBotImps

The number of other bot ads which includes other invalid traffic, including uncommon types of non-human traffic.

nhtOtherBotPct

The percentage of other bot ads.

hiddenAdsImps

The number of ads for hidden ads.

hiddenAdsPct

The percentage of hidden ads.

locationSpoofingImps

The number of ads from location spoofing.

locationSpoofingPct

The percentage of location spoofing ads.

lsProxyServerImps

The number of location spoofing proxy server ads.

lsProxyServerPct

The percentage of location spoofing proxy server ads.

incentivizedBrowsingImps

The number of incentivized browsing ads. This is traffic which is not strictly speaking invalid but which is generated in a way counter to the advertiser's interests and which the advertiser likely would not have bought if there had been full transparency.

incentivizedBrowsingPct

The percentage of incentivized browsing ads.

givtImps

The number of general invalid traffic (GIVT) ads identified through basic means which all ad tech companies should be capable of implementing, including matching against a standard user agent list.

givtPct

The percentage of GIVT ads.

sivtImps

The number of sophisticated invalid traffic (SIVT); this is traffic which falsifies user, page, or delivery characteristics in such a way as to require specially developed techniques to detect it.

rviImps

The number of reduced value inventory, RVI, (for example incentivized browsing traffic) ads. This is traffic which is not strictly speaking invalid but which is generated in a way counter to the advertiser's interests and which the advertiser likely would not have bought if there had been full transparency.

rviPct

The percentage of reduced value inventory ads.

totalImpsChangeRate

The percentage change rate in total ads compared with the previous period.

fraudulentImpsChangeRate

The percentage change rate in invalid traffic compared with the previous period.

fraudulentPctChangeRate

The percentage change rate in invalid traffic percentage compared with the previous period.

nonFraudulentImpsChangeRate

The percentage change rate in valid traffic compared with the previous period.

fraudulentUnblockedImpsChangeRate

The percentage change rate in unblocked invalid traffic compared with the previous period.

fraudulentBlockedImpsChangeRate

The percentage change rate in blocked invalid traffic compared with the previous period.

unblockedImpsChangeRate

The percentage change rate in unblocked ads compared with the previous period.

givtImpsChangeRate

The percentage change rate in general invalid traffic ads compared with the previous period.

sivtPctChangeRate

The percentage change rate in sophisticated invalid traffic ads percentage compared with the previous period.

rviPctChangeRate

The percentage change rate in RVI percentage compared with the previous period.

nonHumanTrafficImpsChangeRate

The percentage change rate in non-human traffic ads compared with the previous period.

hiddenAdsImpsChangeRate

The percentage change rate in hidden ads compared with the previous period.

locationSpoofingImpsChangeRate

The percentage change rate in location spoofing ads compared with the previous period.

lsProxyServerImpsChangeRate

The percentage change rate in proxy server ads compared with the previous period.

incentivizedBrowsingImpsChangeRate

The percentage change rate in incentivized browsing ads compared with the previous period.

site

When site is set in the groups query parameter, site is the domain/URL which the metrics apply.

app

When app is set in the groups query parameter, app is the name of the app which the metrics apply.

campaignId

The ID for the campaign displayed only if groups includes 'camp'.

campaignName

The name for the campaign displayed only if groups includes 'camp'.

publisherId

Displays the publisher ID; this field is only outputed when 'pub' is added as a groups input parameter value.

publisherName

The name of the publisher; this field is only outputed when 'pub' is added as a groups input parameter value.

placementId

The placement ID which is displayed only when groups includes 'plac'.

placementName

The placement name ID which is displayed only when groups includes 'plac'.

mediaChannel

The viewability by device type and is displayed only when groups includes 'mediaChannel'. Possible values are: - 1 (Desktop) - 2 (Mobile) - 3 (Tablet) - 0 (Unknown, when the media channel is not known) Any value other than 1, 2, or 3 is an unknown media channel (0).

mediaFormat

The viewability by format which is displayed only when groups includes mediaFormat. Possible Values: - 1 (Display) - 2 (Video)

mediaApplicationAndFormat

The viewability by environment and format which is displayed only when groups contains 'mediaApplicationAndFormat'. The value is a concatenation of the media application and format, where AF: A = 0 (Unknown), 1 (Browser), 2 (In-app) F = 0 (Unknown), 1 (Display), 2 (Video) Possible values: 11 (Browser Display) 12 (Browser Video) 21 (In-app Display) 22 (In-app Video) 01 (Unknown Display when the media app is unknown) 02 (Unknown Video when the media app is unknown) 10 (Browser Unknown when the format is unknown) 20 (In-app Unknown when the format is unknown) 00 (Unknown Unknown when both the app and format is unknown)

hitDate

The date in which IAS pulled the data and is displayed only when groups includes 'date' or 'daily'.

recordCount

The number of results.

executionTimeMS

The time, in milliseconds, the query took.

path

The path of the query.

query

The query parameters used to generate the report.

Viewability

Request

GET https://api.integralplatform.com/reportingservice/api/teams/123/platform/fw/campaigns/12345/publishers/12345/viewability?includeChangeRate=true&period=%5B2017-10-25..2017-10-31%5D

Response:

{
"viewability" : [
{
"totalNetEligibleImps" : 4321916,
"totalNetMeasuredImps" : 4295111,
"totalNetMeasuredPct" : 99.38,
"totalNetInViewImps" : 1502703,
"totalNetInViewPct" : 34.99,
"totalNetOutOfViewImps" : 2792408,
"totalNetOutOfViewPct" : 65.01,
"totalNetEligibleImpsChangeRate" : 19.31,
"totalNetMeasuredImpsChangeRate" : 18.60,
"totalNetMeasuredPctChangeRate" : 0.88,
"totalNetInViewImpsChangeRate" : 15.96,
"totalNetInViewPctChangeRate" : 42.47,
"totalNetOutOfViewImpsChangeRate" : 29.85,
"totalNetOutOfViewPctChangeRate" : 13.83
} ],
"recordCount" : 1,
"executionTimeMS" : 7505,
"path" : "teams/123/platform/fw/campaigns/12345/publishers/ 12345/viewability",
"query" : "{period=[[2017-10-25..2017-10-31]],includeChangeRate=[true]}"
}

Returns all IAS viewability metrics, organized by your choice of dimensions. You can access all endpoints with the HTTP GET method:

FW

Dimensions

Endpoint

Function

Campaigns

/campaigns/{campaign_ids}/dashboard/viewability

Filter metrics by specific campaign

Publishers

/publishers/{publisher_ids}/dashboard/viewability

Filter metrics by specific publishers

Campaigns and Publishers

/campaigns/{campaign_ids}/publishers/{publisher_ids}/dashboard/viewability

Filter metrics by specific campaigns and publishers

Query parameters

Param

Description

Variable Type and Example

Default Value

customMetricsId

ID of the custom viewability methodology. Note: Contact your Customer Service representative for details on which customMetricsId to use.

Integer

?customMetricsId=2


period

You can specify a named keyword or dates to define the report period. Options include:

Named keywords: yesterday, today, latestDay, twoDaysAgo, last7days, last30days, thisWeek, lastWeek, lastMonth, thisMonth, thisQuarter, lastQuarter.

Date: you can use a range or a specific date.

String:

period=yesterday

period=twodaysago

Array:

period=[2011-02-01..2011-02-15] (elipses delimited for a date range)

period=[2011-02-01,2011-03-04] (comma delimited for specific dates)

last7days

groups

Granularity of grouping for result set. Options:

camp - the campaign

pub - the publisher (Primary seller); using pub returns the properties publisherId and publisherName. The reporting service then groups the output data by each publisher ID.

plac - the placement (ad unit). Groups results via an external placement ID, extPlacementId, defined when the campaign is configured. If an IAS generated ID is present (iasPlacementID) then the IAS generated ID is used. Since not all clients pass in an external placement ID, the extPlacementId might be missing.

date or daily

weekly

monthly

mediaApplicationAndFormat

mediaChannel

mediaFormat

site - returns metrics grouped at a domain/URL level

app - returns metrics grouped at the app level

Array. Colon delimited for groups:

groups=[camp:pub:daily] - the result set contains one record for each campaign, publisher and date combination.

groups=[camp] - the result set contains one record per campaign


cutoff

Omits records from the result set that have totalImpressions < cutoff. Note that cutoff is applied after grouping the results.

Integer:

when groups=[camp:pub:daily] the result set will contain records that have totalImpressions >= cutoff for each day, publisher and campaign combination.

When groups=[camp] the result set will contain records that have totalImpressions >= cutoff for each campaign.


sortIndex

Sorts results by the given column. Any column in the result set can be specified here.

String:

sortIndex=totalImpressions

totalNetEligibleImps

sortOrder

Sorts records in the ascending or descending order of the sortIndex.

asc - for ascending order

desc - for descending order

String:

sortOrder=asc

sortOrder=desc

desc

rows

Limits the number of records returned per page in the result set to this number.


When "app" or "site" default = '5000' Else = '200000'

page

Shows a specific page of records. rows and pages parameters can be used in combination to retrieve result sets in smaller chunks. In order to receive all records, increase the page number until you don't receive any additional results for that page.

Integer If a report is supposed to return 12,500 records, then rows=5000&page=1, returns the first 5,000 rows rows=5000&page=2, returns the next 5,000 rows rows=5000&page=3, returns the last 2,500 rows.

1

includeChangeRate

Allows the response to include the percentage change rate for a specified period compared to the value of the metric from the previous period. includeChangeRate is not supported with 'daily' or 'date' group. Similarly, it does not work for individual dates if specified in 'period'. includeChangeRate works for a named period or a date range.

Boolean (true/false): includeChangeRate=true

false

Response Schema

Objects and Keys

Description

viewability

viewability is a JSONArray with one JSONObject for each viewability contained in the result set, with the following properties listed in the cells immediately below.

totalNetMeasuredImps

The total number of in view and out of view ads with general invalid traffic removed, where IAS was able to collect viewability data.

totalNetInViewImps

The number of viewable ads including flagged ads.

totalNetInViewPct

Percentage of in-view ads over measured ads.

totalNetOutOfViewImps

The number of out of viewable ads including flagged ads not in view.

totalNetOutOfViewPct

Percentage of out of view ads over measured ads.

totalNetEligibleImps

The total number of in view ads with all invalid traffic removed that were not blocked.

totalNetMeasuredPct

Measured ads as a percentage of total eligible ads with all invalid traffic removed.

totalNetEligibleImpsChangeRate

Percentage change rate in total ( valid traffic) ads compared with the previous period.

totalNetMeasuredImpsChangeRate

Percentage change rate in measured (valid traffic) ads compared with the previous period.

totalNetMeasuredPctChangeRate

Percentage change rate in measured (valid traffic) ads percentage compared with the previous period.

totalNetInViewImpsChangeRate

Percentage change rate in in-view ads compared with the previous period.

totalNetInViewPctChangeRate

Percentage change rate in in-view ads percentage compared with the previous period.

totalNetOutOfViewImpsChangeRate

Percentage change rate in out-of-view ads compared with the previous period.

totalNetOutOfViewPctChangeRate

Percentage change rate in out-of-view ads percentage compared with the previous period.

customMetricsId[id]totalNetInViewImps

The number of display in view ads as defined by the organization identified by the input parameter customMetricsId.

customMetricsId[id]totalNetInViewPct

The percentage of display in view ads as defined by the organization identified by the input parameter customMetricsId.

site

When site is set in the groups query parameter, site is the domain/URL which the metrics apply.

app

When app is set in the groups query parameter, app is the name of the app which the metrics apply.

campaignId

The ID for the campaign displayed only if groups includes 'camp'.

campaignName

The name for the campaign displayed only if groups includes 'camp'.

publisherId

Displays the publisher ID; this field is only outputed when 'pub' is added as a groups input parameter value.

publisherName

The name of the publisher; this field is only outputed when 'pub' is added as a groups input parameter value.

placementId

The placement ID which is displayed only when groups includes 'plac'.

placementName

The placement name ID which is displayed only when groups includes 'plac'.

mediaChannel

The viewability by device type which is displayed only when groups includes 'mediaChannel'. Possible values are: - 1 (Desktop) - 2 (Mobile) - 3 (Tablet) - 0 (Unknown, when the media channel is not known) Any value other than 1, 2, or 3 is an unknown media channel (0).

mediaFormat

The viewability by format which is displayed only when groups includes mediaFormat. Possible Values: - 1 (Display) - 2 (Video)

mediaApplicationAndFormat

The viewability by environment and format which is displayed only when groups contains 'mediaApplicationAndFormat'. The value is a concatenation of the media application and format, where AF: A = 0 (Unknown), 1 (Browser), 2 (In-app) F = 0 (Unknown), 1 (Display), 2 (Video) Possible values: 11 (Browser Display) 12 (Browser Video) 21 (In-app Display) 22 (In-app Video) 01 (Unknown Display when the media app is unknown) 02 (Unknown Video when the media app is unknown) 10 (Browser Unknown when the format is unknown) 20 (In-app Unknown when the format is unknown) 00 (Unknown Unknown when both the app and format is unknown)

hitDate

The date in which IAS pulled the data and is displayed only when groups includes 'date' or 'daily'.

recordCount

The number of results.

executionTimeMS

The time, in milliseconds, the query took.

path

The path of the query.

query

The query parameters used to generate the report.

Viewability (Rendered Impressions)

Request:

GET https://api.integralplatform.com/reportingservice/api/teams/123/platform/fw/campaigns/12345/publishers/12345/viewabilityRendered?includeChangeRate=true&period=%5B2017-10-25..2017-10-31%5D

Response:

{
"viewabilityRendered"
{
"totalNetRenderedImps" : 4295111,
"totalNetEligibleRenderedImps" : 99.38,
"totalNetMeasuredRenderedImps" : 1502703,
"totalNetMeasuredRenderedPct" : 34.99,
"totalNetUnmeasuredRenderedImps" : 2792408,
"totalNetUnmeasuredRenderedPct" : 65.01,
"totalNetInViewRenderedImps" : 19.31,
"totalNetInViewRenderedPct" : 18.60,
"totalNetOutOfViewRenderedImps" : 0.88,
"totalNetOutOfViewRenderedPct" : 15.96,
"totalNetImpressionDistributionInViewRenderedPct" : 42.47,
"totalNetImpressionDistributionOutOfViewRenderedPct" : 29.85,
"netRenderedImps" : 13.83,
"netEligibleRenderedImps" : 4321916,
"netMeasuredRenderedImps" : 4295111,
"netMeasuredRenderedPct" : 99.38,
"netUnmeasuredRenderedImps" : 1502703,
"netUnmeasuredRenderedPct" : 34.99,
"netInViewRenderedImps" : 2792408,
"netInViewRenderedPct" : 65.01,
"netOutOfViewRenderedImps" : 19.31,
"netOutOfViewRenderedPct" : 18.60,
"netImpressionDistributionInViewRenderedPct" : 0.88,
"netImpressionDistributionOutofViewRenderedPct" : 15.96
}
],
"recordCount" : 1,
"executionTimeMS" : 7505,
"path" : "teams/123/platform/fw/campaigns/12345/publishers/12345/viewabilityrendered",
"query" : "{period=[[2017-10-25..2017-10-31]],includeChangeRate=[true]}"
}

Returns rendered impressions viewability metrics, organized by your choice of dimensions. You can access all endpoints with the HTTP GET method:

FW

Dimensions

Endpoint

Function

Campaigns

/campaigns/{campaign_ids}/dashboard/viewabilityrendered

Filter metrics by specific campaign

Publishers

/publishers/{publisher_ids}/dashboard/viewabilityrendered

Filter metrics by specific publishers

Campaigns and Publishers

/campaigns/{campaign_ids}/publishers/{publisher_ids}/dashboard/viewabilityrendered

Filter metrics by specific campaigns and publishers

Query parameters

Param

Description

Variable Type and Example

Default Value

period

You can specify a named keyword or dates to define the report period. Options include:

Named keywords: yesterday, today, latestDay, twoDaysAgo, last7days, last30days, thisWeek, lastWeek, lastMonth, thisMonth, thisQuarter, lastQuarter.

Date: you can use a range or a specific date.

String:

period=yesterday

period=twodaysago

Array:

period=[2011-02-01..2011-02-15] (elipses delimited for a date range)

period=[2011-02-01,2011-03-04] (comma delimited for specific dates)

last7days

groups

Granularity of grouping for result set. Options:

camp - the campaign

pub - the publisher (Primary seller); using pub returns the properties publisherId and publisherName. The reporting service then groups the output data by each publisher ID.

plac - the placement (ad unit). Groups results via an external placement ID, extPlacementId, defined when the campaign is configured. If an IAS generated ID is present (iasPlacementID) then the IAS generated ID is used. Since not all clients pass in an external placement ID, the extPlacementId might be missing.

date or daily

weekly

monthly

mediaApplicationAndFormat

mediaChannel

mediaFormat

site - returns metrics grouped at a domain/URL level

app - returns metrics grouped at the app level

Array. Colon delimited for groups:

groups=[camp:pub:daily] - the result set contains one record for each campaign, publisher and date combination.

groups=[camp] - the result set contains one record per campaign


cutoff

Omits records from the result set that have totalImpressions < cutoff. Note that cutoff is applied after grouping the results.

Integer:

when groups=[camp:pub:daily] the result set will contain records that have totalImpressions >= cutoff for each day, publisher and campaign combination.

When groups=[camp] the result set will contain records that have totalImpressions >= cutoff for each campaign.


sortIndex

Sorts results by the given column. Any column in the result set can be specified here.

String:

sortIndex=totalImpressions

totalNetEligibleImps

sortOrder

Sorts records in the ascending or descending order of the sortIndex.

asc - for ascending order

desc - for descending order

String:

sortOrder=asc

sortOrder=desc

desc

rows

Limits the number of records returned per page in the result set to this number.


When "app" or "site" default = '5000' Else = '200000'

page

Shows a specific page of records. rows and pages parameters can be used in combination to retrieve result sets in smaller chunks. In order to receive all records, increase the page number until you don't receive any additional results for that page.

Integer If a report is supposed to return 12,500 records, then rows=5000&page=1, returns the first 5,000 rows rows=5000&page=2, returns the next 5,000 rows rows=5000&page=3, returns the last 2,500 rows.

1

includeChangeRate

Allows the response to include the percentage change rate for a specified period compared to the value of the metric from the previous period. includeChangeRate is not supported with 'daily' or 'date' group. Similarly, it does not work for individual dates if specified in 'period'. includeChangeRate works for a named period or a date range.

Boolean (true/false): includeChangeRate=true

false

Response Schema

Objects and Keys

Description

viewabilityRendered

viewabilityRendered is a JSONArray with one JSONObject for each viewability contained in the result set, with the following properties listed in the cells immediately below.

totalNetRenderedImps

Rendered impressions with SIVT and GIVT removed.

totalNetEligibleRenderedImps

Rendered impressions eligible for viewability with SIVT and GIVT removed. NOTE: This metric is currently same as totalNetRenderedImps, but in the future it will account for unmeasurable impressions (Impressions that ignore non-JavaScript and non-measureable video environments).

totalNetMeasuredRenderedImps

Measured, rendered impressions with SIVT and GIVT are removed.

totalNetMeasuredRenderedPct

Percentage of measured rendered impressions with SIVT and GIVT removed.

totalNetUnmeasuredRenderedImps

Unmeasured rendered impressions with SIVT and GIVT removed.

totalNetUnmeasuredRenderedPct

Percentage of unmeasured rendered impressions with SIVT and GIVT removed.

totalNetInViewRenderedImps

In view rendered impressions with SIVT and GIVT removed.

totalNetInViewRenderedPct

Percentage of in view rendered impressions with SIVT and GIVT removed.

totalNetOutOfViewRenderedImps

Out of view rendered impressions with SIVT and GIVT removed.

totalNetOutOfVIewRenderedPct

Percentage of out of view rendered impressions with SIVT and GIVT removed.

totalNetImpressionDistributionInViewRenderedPct

Percentage of in view rendered impressions with GIVT and SIVT removed, out of all eligible impressions whether they were measured or not.

totalNetImpressionDistributionOutOfViewRenderedPct

Percentage of out of view rendered impressions where GIVT and SIVT are removed, out of all eligible impressions whether they were measured or not.

netRenderedImps

Rendered impressions with GIVT removed.

netMeasuredRenderedImps

Measured, rendered impressions with GIVT are removed.

netMeasuredRenderedPct

Percentage of measured rendered impressions with GIVT removed.

netUnmeasuredRenderedImps

Unmeasured rendered impressions with GIVT removed.

netUnmeasuredRenderedPct

Percentage of unmeasured rendered impressions with GIVT removed.

netInViewRenderedImps

In view rendered impressions with GIVT removed.

netInViewRenderedPct

Percentage of in view rendered impressions with GIVT removed.

netOutOfViewRenderedImps

Out of view rendered impressions with GIVT removed.

netOutOfViewRenderedPct

Percentage of out of view rendered impressions with GIVT removed.

netImpressionDistributionInViewRenderedPct

Percentage of in view rendered impressions with GIVT removed, out of all eligible impressions whether they were measured or not.

netImpressionDistributionOutofViewRenderedPct

Percentage of out of view rendered impressions where GIVT are removed, out of all eligible impressions whether they were measured or not.

site

When site is set in the groups query parameter, site is the domain/URL which the metrics apply.

app

When app is set in the groups query parameter, app is the name of the app which the metrics apply.

campaignId

The ID for the campaign displayed only if groups includes 'camp'.

campaignName

The name for the campaign displayed only if groups includes 'camp'.

publisherId

Displays the publisher ID; this field is only outputed when 'pub' is added as a groups input parameter value.

publisherName

The name of the publisher; this field is only outputed when 'pub' is added as a groups input parameter value.

placementId

The placement ID which is displayed only when groups includes 'plac'.

placementName

The placement name ID which is displayed only when groups includes 'plac'.

mediaChannel

The viewability by device type which is displayed only when groups includes 'mediaChannel'. Possible values are: - 1 (Desktop) - 2 (Mobile) - 3 (Tablet) - 0 (Unknown, when the media channel is not known) Any value other than 1, 2, or 3 is an unknown media channel (0).

mediaFormat

The viewability by format which is displayed only when groups includes mediaFormat. Possible Values: - 1 (Display) - 2 (Video)

mediaApplicationAndFormat

The viewability by environment and format which is displayed only when groups contains 'mediaApplicationAndFormat'. The value is a concatenation of the media application and format, where AF: A = 0 (Unknown), 1 (Browser), 2 (In-app) F = 0 (Unknown), 1 (Display), 2 (Video) Possible values: 11 (Browser Display) 12 (Browser Video) 21 (In-app Display) 22 (In-app Video) 01 (Unknown Display when the media app is unknown) 02 (Unknown Video when the media app is unknown) 10 (Browser Unknown when the format is unknown) 20 (In-app Unknown when the format is unknown) 00 (Unknown Unknown when both the app and format is unknown)

hitDate

The date in which IAS pulled the data and is displayed only when groups includes 'date' or 'daily'.

recordCount

The number of results.

executionTimeMS

The time, in milliseconds, the query took.

path

The path of the query.

query

The query parameters used to generate the report.

Qualified Ads™

Request:

GET https://api.integralplatform.com/reportingservice/api/teams/123/platform/fw/campaigns/12345/publishers/12345/qualifiedads?includeChangeRate=true&period=%5B2017-10-25..2017-10-31%5D

Response:

{
"qualifiedAds" : [
{
"totalTrackedAds" : 10000000,
"eligibleForQualifiedAds":1000000,
"eligibleForQualifiePct" : 95.48,
"qualifiedAds" : 400000,
"qualifiedPct" : 45,
"nonQualifiedAds" : 600000,
"nonQualifiedPct" : 60,
"nonQualifiedForViewabilityAds" : 700000,
"nonQualifiedForViewabilityPct" : 4.5,
"nonQualifiedForBrandSafetyAds" : 500000,
"nonQualifiedForBrandSafetyPct" : 18.02,
"nonQualifiedForFraudAds" : 340000,
"nonQualifiedForFraudPct" : 5.0,
"nonQualifiedForGeoAds" : 400000,
"nonQualifiedForGeoPct" : 5.0,
"blockableNonQualifiedAds" : 400000,
"blockedNonQualifiedAds" : 1000,
"blockednonQualifiedPct" : 96.0,
"totalTrackedAdsChangeRate" : 0.33,
"eligibleForQualifiedAdsChangeRate" : 1,
"eligibleForQualifiedPctChangeRate" : 0.22,
"qualifiedAdsChangeRate" : 3,
"qualifiedPctChangeRate" : 2,
"nonQualifiedAdsChangeRate" : 32.65,
"nonQualifiedPctChangeRate" : 1.20,
"nonQualifiedForViewabilityAdsChangeRate" : -50.88,
"nonQualifiedForViewabilityPctChangeRate" : -65.28,
"nonQualifiedForFraudAdsChangeRate" : -30.01,
"nonQualifiedForFraudPctChangeRate" : -47.31,
"nonQualifiedForGeoAdsChangeRate" : 120.05,
"nonQualifiedForGeoPctChangeRate" : 72.85,
"blockableNonQualifiedAdsChangeRate" : 40.55,
"blockedNonQualifiedAdsChangeRate" : 77.44,
"blockedNonQualifiedPctChangeRate" : 30.00,
} ],
}
}

Qualified Ads™ is a unified media quality metric that provides insight into campaign performance based on the criteria you set across viewability, invalid traffic, brand safety and geo targeting (with brand safety and invalid traffic checks as the initial minimum criteria). This API returns all Qualified Ads metrics, organized by your choice of dimensions. You can access all endpoints with the HTTP GET method:

FW

Dimensions

Endpoint

Function

Campaigns

/campaigns/{campaign_ids}/qualifiedads

Filter metrics by specific campaign

Publishers

/publishers/{publisher_ids}/qualifiedads

Filter metrics by specific publishers

Campaigns and Publishers

/campaigns/{campaign_ids}/publishers/{publisher_ids}/qualifiedads

Filter metrics by specific campaigns and publishers

Query parameters

Param

Description

Variable Type and Example

Default Value

qualifiedAdsCriteria

Allows user to customize Qualified Ads criteria based on viewability, invalid traffic, geo, and brand safety.

Array. Colon delimited for groups:

qualifiedAdsCriteria=[viewability:fraud:geo:brandsafety]


qualifiedAdsCustomMetricsId

ID of the custom viewability methodology. Note: Contact your Customer Service representative for details on which qualifiedAdscustomMetricsId to use.

Integer:

Example: for a GroupM team: qualifiedAdsCustomMetricsId=2


period

You can specify a named keyword or dates to define the report period. Options include:

Named keywords: yesterday, today, latestDay, twoDaysAgo, last7days, last30days, thisWeek, lastWeek, lastMonth, thisMonth, thisQuarter, lastQuarter.

Date: you can use a range or a specific date.

String:

period=yesterday

period=twodaysago

Array:

period=[2011-02-01..2011-02-15] (elipses delimited for a date range)

period=[2011-02-01,2011-03-04] (comma delimited for specific dates)

last7days

groups

Granularity of grouping for result set. Options:

camp - the campaign

pub - the publisher (Primary seller); using pub returns the properties publisherId and publisherName. The reporting service then groups the output data by each publisher ID.

plac - the placement (ad unit). Groups results via an external placement ID, extPlacementId, defined when the campaign is configured. If an IAS generated ID is present (iasPlacementID) then the IAS generated ID is used. Since not all clients pass in an external placement ID, the extPlacementId might be missing.

date or daily

weekly

monthly

mediaApplicationAndFormat

mediaChannel

mediaFormat

site - returns metrics grouped at a domain/URL level

app - returns metrics grouped at the app level

Array. Colon delimited for groups:

groups=[camp:pub:daily] - the result set contains one record for each campaign, publisher and date combination.

groups=[camp] - the result set contains one record per campaign


deliveryEnvironment

Filters result by the specified delivery environments. By default all delivery environments will be included. Possible values include: 'desktop', 'mobileweb', and 'mobileapp'.

Array. Colon delimited for groups:

deliveryEnvironment=[mobileweb:mobileapp]

[desktop:mobileweb:mobileapp]

cutoff

Omits records from the result set that have totalImpressions < cutoff. Note that cutoff is applied after grouping the results.

Integer:

when groups=[camp:pub:daily] the result set will contain records that have totalImpressions >= cutoff for each day, publisher and campaign combination.

When groups=[camp] the result set will contain records that have totalImpressions >= cutoff for each campaign.


sortIndex

Sorts results by the given column. Any column in the result set can be specified here.

String:

sortIndex=totalImpressions

eligibleForQualifiedAds

sortOrder

Sorts records in the ascending or descending order of the sortIndex.

asc - for ascending order

desc - for descending order

String:

sortOrder=asc

sortOrder=desc

desc

rows

Limits the number of records returned per page in the result set to this number.


When "app" or "site" default = '5000' Else = '200000'

page

Shows a specific page of records. rows and pages parameters can be used in combination to retrieve result sets in smaller chunks. In order to receive all records, increase the page number until you don't receive any additional results for that page.

Integer If a report is supposed to return 12,500 records, then rows=5000&page=1, returns the first 5,000 rows rows=5000&page=2, returns the next 5,000 rows rows=5000&page=3, returns the last 2,500 rows.

1

includeChangeRate

Allows the response to include the percentage change rate for a specified period compared to the value of the metric from the previous period. includeChangeRate is not supported with 'daily' or 'date' group. Similarly, it does not work for individual dates if specified in 'period'. includeChangeRate works for a named period or a date range.

Boolean (true/false): includeChangeRate=true

false

Response Schema

Objects and Keys

Description

totalTrackedAds

The total number of ads processed by IAS.

eligibleForQualifiedAds

When Qualified Ads criteria excludes viewability: The total number of ads processed by IAS. When Qualified Ads criteria includes viewability: The number of ads that were measured for viewability or failed another selected criteria (such as brand safety, invalid traffic, or geo) out of all ads.

eligibleForQualifiedPct

When Qualified Ads criteria excludes viewability: The percentage of total tracked ads out of all ads. When Qualified Ads criteria includes viewability: The percentage of ads that were measured for viewability or failed another selected criteria (such as brand safety, invalid traffic, or geo).

qualifiedAds

The number of ads that passed all selected Qualified Ads criteria.

Note: For Proprietary Platforms, ads can fail only for metrics covered by each integration. Some Proprietary Platforms may not cover geo and/or brand safety.


qualifiedPct

The percentage of ads that passed all selected Qualified Ads criteria (out of Eligible for Qualified Ads).

Note: For Proprietary Platforms, ads can fail only for metrics covered by each integration. Some Proprietary Platforms may not cover geo and/or brand safety.


nonQualifiedPct

The percentage of Eligible for Qualified Ads that failed for Qualified Ads (failed at least one of the selected Qualified Ads criteria).

nonQualifiedAds

The number of Eligible for Qualified Ads that failed for Qualified Ads (failed at least one of the selected Qualified Ads criteria).

nonQualifiedForViewabilityAds

The number of Not Qualified Ads that failed for Viewability.

nonQualifiedForViewabilityPct

The percentage of Not Qualified Ads that failed for Viewability.

nonQualifiedForBrandSafetyAds

The number of Not Qualified Ads that failed for Brand Safety.

nonQualifiedForBrandSafetyPct

The percentage of Not Qualified Ads that failed for Brand Safety.

nonQualifiedForFraudAds

The number of Not Qualified Ads that failed for Invalid Traffic.

nonQualifiedForFraudPct

The percentage of Not Qualified Ads that failed for Invalid Traffic.

nonQualifiedForGeoAds

The number of Not Qualified Ads that failed for Geo.

nonQualifiedForGeoPct

The percentage of Not Qualified Ads that failed for Geo.

blockableNonQualifiedAds

Not Qualified Ads that are eligible for blocking.

blockedNonQualifiedAds

Number of blockable Not Qualified Ads that were actually blocked.

blockedNonQualifiedPct

Percentage of blockable Not Qualified Ads that were actually blocked.

totalTrackedAdsChangeRate

The percentage change rate in Total Tracked Ads compared with the previous period.

eligibleForQualifiedAdsChangeRate

The percentage change rate in Eligible For Qualified Ads compared with the previous period.

eligibleForQualifiedPctChangeRate

The percentage change rate in the percentage of Eligible for Qualified Ads out of all ads, compared with the previous period.

qualifiedAdsChangeRate

The percentage change rate in Qualified Ads compared with the previous period.

qualifiedPctChangeRate

The percentage change rate in the percentage of Qualified Ads out of Eligible for Qualified Ads, compared with the previous period.

nonQualifiedAdsChangeRate

The percentage change rate in Not Qualified Ads compared with the previous period.

nonQualifiedPctChangeRate

The percentage change rate in the percentage of Not Qualified Ads out of Eligible for Qualified Ads, compared with the previous period.

nonQualifiedForViewabilityAdsChangeRate

The percentage change rate in Not Qualified Ads that failed for viewability compared with the previous period.

nonQualifiedForViewabilityPctChangeRate

The percentage change rate in the percentage of Not Qualified Ads that failed for viewability out of all Not Qualified Ads, compared with the previous period.

nonQualifiedForFraudAdsChangeRate

The percentage change rate in Not Qualified Ads that failed for invalid traffic compared with the previous period.

nonQualifiedForFraudPctChangeRate

The percentage change rate in the percentage of Not Qualified Ads that failed for invalid traffic out of all Not Qualified Ads, compared with the previous period.

nonQualifiedForGeoAdsChangeRate

The percentage change rate in Not Qualified Ads that failed for geo compared with the previous period.

nonQualifiedForGeoPctChangeRate

The percentage change rate in the percentage of Not Qualified Ads that failed for geo out of all Not Qualified Ads, compared with the previous period.

blockableNonQualifiedAdsChangeRate

The percentage change rate in Not Qualified Ads that are eligible for blocking compared with the previous period.

blockedNonQualifiedAdsChangeRate

The percentage change rate in blockable Not Qualified Ads that were actually blocked compared with the previous period.

blockedNonQualifiedPctChangeRate

The percentage change rate in the percentage of blockable Not Qualified Ads that were actually blocked, compared with the previous period.


Was this article helpful?

Need further help?

Create an IAS case with details of your inquiry to receive help from our internal support team.