The Integral Ad Science (IAS) Reporting Application Programming Interface (Reporting API) is a RESTful API that exposes IAS viewability, fraud, and brand safety metrics.
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.
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
Coordinate with IAS on Client ID and Secret
Acquire Token
Make requests using the token
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.
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 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"}
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'
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: ..." }
`
This Java code gets the token (using a password grant_type), then uses the token for a report request.
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.
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());
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");
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>
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. |
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>
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 |
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.
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
IAS advises you to use these reports for your reporting needs.
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.
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 |
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 |
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. |
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.
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 |
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 |
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. |
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.
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 |
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 |
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. |
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:
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 |
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 |
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. |
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:
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 |
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 |
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. |
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:
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 |
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 |
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. |
Create an IAS case with details of your inquiry to receive help from our internal support team.