Run a Report
IQM’s REST API enables you to interact with most of our platform's applications.
Getting started running a first Reports with the following endpoints:
/api/v3/ua/login/api/v3/master/timezones
/api/v3/ra/report/dimension-metrics/detail
/api/v3/ra/report/execute
About IQM Reports
The IQM APIs provide access to all dimensions and KPIs of your ad-serving Reporting data in JSON format. You can use the APIs to connect to applications of your choice.
Reports can be either daily or aggregated. The daily Report will include the date as a dimension and provide the data breakdown by date. Reports provide five top-level dimensions of filtering support, and you can filter on multiple values for each dimension.
You can run a Report containing up to three months of data for any dimension combination or up to one year for the Campaign dimension. You must run multiple Reports if you need more than that amount of data.
Run a Report Using the IQM API
This quick start will cover how to run a basic IQM Report.
The minimum requirements to perform this task are: logging in with authentication credentials, selecting dimensions and metrics, choosing a timezone, and executing a Report. Once these steps are accomplished, more can be learned about IQM's API through the Guidelines pages.
- Log In
- Optional if you have already logged in and have a token
- Request Dimensions and Metrics
- Optional if you know supported/desired dimensions/metrics
- Request Timezones
- Optional if you already know supported/desired ID values
- Execute the Report
- Execute the Report with parameters from the previous steps
Step 1: Log In
POST /api/v3/ua/loginTo log in, the Authentication: Basic header is required. The Login API returns an OAuth-compliant response with an Organization Workspace ID (owId), which is a unique identifier for each organization. This ID will be used for any further API communications.
For further information see the complete Login API Documentation.
Headers | |
---|---|
Authentication string required | Authentication bearer token. See Authentication Guide |
X-IAA-HOST string required | Workspace URL |
Request Schema | |
---|---|
grantType string required | OAuth Grant Types |
email string required | User account email |
password string required | User account password |
- JSON
- TypeScript
{
"grantType": "password",
"email": "pratik.t+ihp@iqm.com",
"password": "123456"
}
{
"success": true,
"data":
{
"access_token": "106adb25-37b0-4cab-8381-d682fe7cc3c8",
"refresh_token": "eac4c1f6-781e-4b04-baff-9c2e415d1f64",
"scope": "read write",
"token_type": "bearer",
"expires_in": 35999,
"owId": 200001
}
}
More Response Samples
{
"success": false,
"data":
{
"status": "On Hold",
"reason": "The particular account is kept on hold due to missed payment dates for last 3 months.",
"supportEmail": "support@iqm.com"
},
"errorObjects":
[
{
"error": "User is not allowed to access provided customer",
"reason": "User is not associated with any active organization."
}
]
}
{
"success": false,
"errorObjects":
[
{
"error": "User doesn't exist or user is not allowed to provided workspace."
}
]
}
See TypeScript Prerequisites page for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
content: {
"application/json": {
success: boolean;
data: {
access_token: string;
refresh_token: string;
scope: string;
token_type: string;
expires_in: number;
owId: number;
};
};
};
};
400: {
content: {
"application/json": {
success: boolean;
data: {
status: string;
reason: string;
supportEmail: string;
};
errorObjects: {
error: string;
reason: string;
}[];
};
};
};
403: {
content: {
"application/json": {
success: boolean;
errorObjects: {
error: string;
}[];
};
};
};
};
function Login(): Promise < Responses > {
const options = {
method: 'POST',
url: 'https://app.iqm.com/api/v3/ua/login',
requestBody: {
content: {
"application/json": {
email: `string`,
password: `string`,
}
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Step 2: Request Dimensions and Metrics
GET /api/v3/ra/report/dimension-metrics/detailChoose the dimensions and metrics desired for the Report. This API offers Dimension and Metrics information grouped by category. See full documentation on Dimensions and Metrics IQM supports.
Reports will be in table format. The metrics comprise the columns, and the dimensions comprise the rows. Necessary information about Campaigns is found in the columns.
For more information see this Help Center article about Conversions and the complete Dimension and Metrics Details API Documentation.
Supported Dimensions
- Insertion Order specifics
- Insertion Order
- Insertion Order ID
- Insertion Order Start Date
- Insertion Order End Date
- Campaign specifics
- Campaign
- Campaign ID
- Campaign Start Date
- Campaign End Date
- Campaign Group
- Campaign Group ID
- Hour
- Day
- Creative specifics
- Creative
- Creative ID
- Creative Type
- Creative Group
- Playback Method
- Player Size
- Placement Type
- Roll Type
- Skippability
- Demographics
- Age group
- Gender
- Ethnicity
- Language
- Income Range
- Technologies
- Device Type
- Manufacturer
- Carrier
- Connection Type
- Operating System
- Deliveries
- Channel
- Site and app
- Exchange
- Site and app ID
- Private Deal
- Publisher Category
- Locations
- Country
- State
- City
- County (US-only)
- Zip Code (postal code)
- Congressional District (US-only)
- State Senate (US-only)
- State House (US-only)
- DMA (US-only)
- Customers
- Customer
- Customer ID
Supported Metrics
- Budget
- Daily budget
- IO budget
- Total budget
- Max bid
- Daily budget completion %
- Counts
- Impressions
- Clicks
- Reach
- Frequency
- Rates
- CTR
- Win rate
- VCR
- Viewability
- Spending
- Total spent
- Data cost
- Media spent
- Platform spent
- Workspace spent
- Earnings
- Platform earnings
- Workspace earnings
- Cost
- eCPM
- eCPC
- CPCV
- Video
- Video start
- Video 25%
- Video 50%
- Video 75%
- Video 100%
- Hours viewed
- Conversion
- Total Conversions
- Total Attributed Conversions
- Total Attributed View-Through Conversions
- Total Attributed Click-Through Conversions
- Cost Per Attributed Conversions
- Total Conversion Value
- Attributed Conversion Rate
- ROAS
Headers | |
---|---|
Authentication string required | Authentication Bearer Token. See Authentication Guide |
X-IAA-OW-ID string required | Organization Workspace ID Header |
- JSON
- TypeScript
{
"success": true,
"data": {
"metrics": [
{
"Budget": [
{
"id": 1,
"label": "Daily Budget",
"order": 1,
"fieldDataType": "currencyUSD",
"aggregationType": "sum",
"description": "Amount up to which you allow platform to spend on average each day",
"defaultEnabled": false,
"key": "dailyBudget",
"dependentDimensions": [
1,
2,
43,
44
]
},
{
"id": 2,
"label": "Total Budget",
"order": 2,
"defaultEnabled": false,
"key": "totalBudget",
"dependentDimensions": [
1,
2,
43,
44
]
}
]
},
{
"Counts": [
{
"id": 5,
"label": "Impressions",
"order": 1,
"defaultEnabled": true,
"key": "impressions",
"dependentDimensions": null
}
]
}
],
"dimensions": [
{
"Campaign Specifics": [
{
"id": 1,
"label": "Campaign",
"order": 1,
"isFilterSupported": true,
"isRowToColumn": false,
"isCustomerDependent": true,
"fieldDataType": "text",
"description": "Campaign Name",
"groupId": 1,
"key": "campaign"
},
{
"id": 2,
"label": "Campaign ID",
"order": 2,
"isFilterSupported": true,
"isRowToColumn": false,
"isCustomerDependent": true,
"fieldDataType": "text",
"description": "Unique system-generated number assigned to each Campaign",
"groupId": 1,
"key": "campaignId"
}
]
},
{
"Locations": [
{
"id": 34,
"label": "Country",
"order": 1,
"isFilterSupported": true,
"isRowToColumn": false,
"isCustomerDependent": false,
"fieldDataType": "country",
"description": "Country the ad ran in",
"groupId": 29,
"key": "country"
},
{
"id": 35,
"label": "State",
"order": 2,
"isFilterSupported": true,
"isRowToColumn": false,
"isCustomerDependent": false,
"fieldDataType": "regionCode",
"description": "State the ad ran in",
"groupId": 30,
"key": "state"
}
]
}
]
}
}
More Response Samples
{
"success": false,
"errorObjects":
[
{
"error": "Forbidden!"
}
]
}
{
"success": false,
"errorObjects":
[
{
"error": "server encountered an error !"
}
]
}
See TypeScript Prerequisites page for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: {
metrics: {
Budget: {
id: number;
label: string;
order: number;
fieldDataType: string;
aggregationType: string;
description: string;
defaultEnabled: boolean;
key: string;
dependentDimensions: number[];
}[];
Performance: {
id: number;
label: string;
order: number;
fieldDataType: string;
aggregationType: string;
description: string;
defaultEnabled: boolean;
key: string;
dependentDimensions: number[];
}[];
Spending: {
id: number;
label: string;
order: number;
fieldDataType: string;
aggregationType: string;
description: string;
defaultEnabled: boolean;
key: string;
dependentDimensions: number[];
}[];
Cost: {
id: number;
label: string;
order: number;
fieldDataType: string;
aggregationType: string;
description: string;
defaultEnabled: boolean;
key: string;
dependentDimensions: number[];
}[];
Video: {
id: number;
label: string;
order: number;
fieldDataType: string;
aggregationType: string;
description: string;
defaultEnabled: boolean;
key: string;
dependentDimensions: number[];
}[];
Conversion: {
id: number;
label: string;
order: number;
fieldDataType: string;
aggregationType: string;
description: string;
defaultEnabled: boolean;
key: string;
dependentDimensions: number[];
}[];
Counts: {
id: number;
label: string;
order: number;
fieldDataType: string;
aggregationType: string;
description: string;
defaultEnabled: boolean;
key: string;
dependentDimensions: number[];
}[];
}
dimensions: {
Insertion Order Specifics: {
id: number;
label: string;
order: number;
fieldDataType: string;
description: string;
groupId: string;
key: string;
isFilterSupported: boolean;
isCustomerDependent: boolean;
isRowToColumn: boolean;
}[];
Campaign Specifics: {
id: number;
label: string;
order: number;
fieldDataType: string;
description: string;
groupId: string;
key: string;
isFilterSupported: boolean;
isCustomerDependent: boolean;
isRowToColumn: boolean;
}[];
Creative Specifics: {
id: number;
label: string;
order: number;
fieldDataType: string;
description: string;
groupId: string;
key: string;
isFilterSupported: boolean;
isCustomerDependent: boolean;
isRowToColumn: boolean;
}[];
Demographics: {
id: number;
label: string;
order: number;
fieldDataType: string;
description: string;
groupId: string;
key: string;
isFilterSupported: boolean;
isCustomerDependent: boolean;
isRowToColumn: boolean;
}[];
Technologies: {
id: number;
label: string;
order: number;
fieldDataType: string;
description: string;
groupId: string;
key: string;
isFilterSupported: boolean;
isCustomerDependent: boolean;
isRowToColumn: boolean;
}[];
Deliveries: {
id: number;
label: string;
order: number;
fieldDataType: string;
description: string;
groupId: string;
key: string;
isFilterSupported: boolean;
isCustomerDependent: boolean;
isRowToColumn: boolean;
}[];
Locations: {
id: number;
label: string;
order: number;
fieldDataType: string;
description: string;
groupId: string;
key: string;
isFilterSupported: boolean;
isCustomerDependent: boolean;
isRowToColumn: boolean;
}[];
Conversion Specifics: {
id: number;
label: string;
order: number;
fieldDataType: string;
description: string;
groupId: string;
key: string;
isFilterSupported: boolean;
isCustomerDependent: boolean;
isRowToColumn: boolean;
} [];
}
}
}
};
};
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
errorObjects: {
error: string;
} [];
}
};
};
500: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
errorObjects: {
error: string;
} [];
}
};
};
};
function getDimensionAndMetricDetails(): Promise < Responses > {
const options = {
method: 'GET',
url: 'https://app.iqm.com/api/v3/ra/report/dimension-metrics/detail',
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Step 3: Select Timezones
GET /api/v3/master/timezonesOnce metrics and dimensions are chosen, choose a timezone to target. Only one timezone can be included per Report. Run multiple Reports to see results for multiple timezones.
Use the Master API to generate a list of timezone IDs to refer to in API calls. Use these IDs to target timezones in your Report.
For further information see the complete Timezone API documentation.
Headers | |
---|---|
Authentication string required | Authentication Bearer Token. See Authentication Guide |
X-IAA-OW-ID string required | Organization Workspace ID Header |
- JSON
- TypeScript
{
"success": true,
"data": {
"data": [
{
"name": "US/Central",
"id": 423,
"label": "US/Central"
},
{
"name": "US/Eastern",
"id": 29,
"label": "US/Eastern"
},
{
"name": "US/Mountain",
"id": 21,
"label": "US/Mountain"
}
...
]
}
}
See TypeScript Prerequisites page for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: {
data: {
name: string;
id: number;
label: string;
}[];
totalRecords: number;
filteredRecords: number;
}
}
};
};
};
function getTimezones(): Promise < Responses > {
const options = {
method: 'GET',
url: 'https://app.iqm.com/api/v3/master/timezones',
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Step 4: Execute a Report
POST /api/v3/ra/report/executeRun a Report based on Report data.
The Report will default to the previous three months if a start and end date are not included.
All columns are optional, but some must be included to run a Report.
At least one dimension is required.
For further information see the complete Execute Report Data API.
Headers | |
---|---|
X-IAA-API-TOKEN string required | Advertiser API Token |
Request Schema | |
---|---|
startDate integer | Unix epoch timestamp of start date, in milliseconds |
endDate integer | Unix epoch timestamp of end date, in milliseconds |
dimensions string | List of dimensions for the Report obtained from dimensions and metrics details API |
customerIds array of integers | List of customers IDs to include in the Report, leave empty array [ ] to include all, optional for workspace users only |
columns array of strings | List of metrics for the Report obtained from dimensions and metrics details API |
timezoneId integer | Timezone ID |
requestType integer | ID to identify if the Report request is Daily (1) or Aggregated (2). |
reportAggregated string | Field to identify if the first Report dimension is Aggregated (1) or not (0) |
timezoneName string | Timezone name |
filters | object |
pageNo integer | Page number for the data |
noOfEntries integer | Maximum number of entries returned |
sortBy string | Sorts by ascending (+) or descending (-), example: -impressions |
- JSON
- TypeScript
{
"customerIds":[
],
"startDate":1690550314033,
"endDate":1698326314033,
"dimensions":"[{\"filter\":\"ioName\"},{\"filter\":\"campaign\"}]",
"columns":[
"impressions",
"clicks",
"CTR",
"VCR",
"spent",
"dataCost",
"mediaSpent",
"eCPM"
],
"requestType":2,
"reportAggregated":"0",
"timezoneName":"US/Eastern",
"timezoneId":29,
"counter":1,
"pageNo":1,
"noOfEntries":20,
"sortBy":"-impressions"
}
{
"success":true,
"data":{
"total":{
"CTR":0.481871,
"totalRecords":12,
"VCR":95.481106,
"totalBudget":null,
"dataCost":0.0,
"budgetMappingDataCost":null,
"ioId":null,
"ioBudgetTypeId":null,
"campaignTimezone":null,
"eCPM":12.334902368021696,
"bidImpressions":2976779,
"mediaSpent":366.05056267341183,
"startCount":2567,
"campaignType":null,
"ioBudget":null,
"campaignId":null,
"spent":366.05056267341183,
"impressions":29676,
"completeCount":2451,
"budgetMappingSpent":null,
"dailyBudget":null,
"maxBid":null,
"clicks":143,
"campaign":null,
"ioName":null,
"budgetCompletion":null,
"status":null
},
"totalRecords":12,
"data":[
{
"CTR":0.178300,
"totalRecords":null,
"VCR":0.000000,
"totalBudget":40.0,
"dataCost":0.0,
"budgetMappingDataCost":0.0,
"ioId":1706,
"ioBudgetTypeId":1,
"campaignTimezone":"Asia/Kolkata",
"eCPM":6.999405681683113,
"bidImpressions":23581,
"mediaSpent":58.88600000000003,
"startCount":0,
"campaignType":"cpm",
"ioBudget":553523.7423799998,
"campaignId":22844,
"spent":58.88600000000003,
"impressions":8413,
"completeCount":0,
"budgetMappingSpent":58.88600000000002,
"dailyBudget":25.0,
"maxBid":7.0,
"clicks":15,
"campaign":"Bright Horizons: Illuminating Your Path",
"ioName":"Default Insertion Order",
"budgetCompletion":147.21500000000006,
"status":"expired"
},
{
"CTR":0.317100,
"totalRecords":null,
"VCR":0.000000,
"totalBudget":50.0,
"dataCost":0.0,
"budgetMappingDataCost":0.0,
"ioId":1706,
"ioBudgetTypeId":1,
"campaignTimezone":"Asia/Kolkata",
"eCPM":7.54409543944428,
"bidImpressions":779956,
"mediaSpent":49.95700000000002,
"startCount":0,
"campaignType":"cpm",
"ioBudget":553523.7423799998,
"campaignId":22950,
"spent":49.95700000000002,
"impressions":6622,
"completeCount":0,
"budgetMappingSpent":49.95700000000001,
"dailyBudget":5.0,
"maxBid":5.0,
"clicks":21,
"campaign":"Next Chapter: Unveiling Future Possibilities",
"ioName":"Default Insertion Order",
"budgetCompletion":99.91400000000002,
"status":"expired"
},
{
"CTR":0.270300,
"totalRecords":null,
"VCR":0.000000,
"totalBudget":80.0,
"dataCost":0.0,
"budgetMappingDataCost":0.0,
"ioId":1706,
"ioBudgetTypeId":1,
"campaignTimezone":"Asia/Kolkata",
"eCPM":17.49336347425682,
"bidImpressions":1023343,
"mediaSpent":71.19798934022526,
"startCount":0,
"campaignType":"cpm",
"ioBudget":553523.7423799998,
"campaignId":22843,
"spent":71.19798934022526,
"impressions":4070,
"completeCount":0,
"budgetMappingSpent":71.19798934022528,
"dailyBudget":10.0,
"maxBid":10.0,
"clicks":11,
"campaign":"Fresh Perspectives: A New View on Life",
"ioName":"Default Insertion Order",
"budgetCompletion":88.9974866752816,
"status":"expired"
},
{
"CTR":0.961200,
"totalRecords":null,
"VCR":0.000000,
"totalBudget":10.0,
"dataCost":0.0,
"budgetMappingDataCost":0.0,
"ioId":1706,
"ioBudgetTypeId":1,
"campaignTimezone":"America/Chicago",
"eCPM":2.9996703782638954,
"bidImpressions":48286,
"mediaSpent":9.985902689240508,
"startCount":0,
"campaignType":"cpm",
"ioBudget":553523.7423799998,
"campaignId":22875,
"spent":9.985902689240508,
"impressions":3329,
"completeCount":0,
"budgetMappingSpent":9.985902689240508,
"dailyBudget":5.0,
"maxBid":3.0,
"clicks":32,
"campaign":"Elevate Everyday: Lifting Life's Experience",
"ioName":"Default Insertion Order",
"budgetCompletion":99.85902689240508,
"status":"expired"
},
{
"CTR":0.229400,
"totalRecords":null,
"VCR":0.000000,
"totalBudget":60.0,
"dataCost":0.0,
"budgetMappingDataCost":0.0,
"ioId":1706,
"ioBudgetTypeId":1,
"campaignTimezone":"Asia/Kolkata",
"eCPM":24.865059716102436,
"bidImpressions":846787,
"mediaSpent":65.04699621732398,
"startCount":0,
"campaignType":"cpm",
"ioBudget":553523.7423799998,
"campaignId":23004,
"spent":65.04699621732398,
"impressions":2616,
"completeCount":0,
"budgetMappingSpent":65.04699621732398,
"dailyBudget":25.0,
"maxBid":25.0,
"clicks":6,
"campaign":"Pathfinders: Navigating Success",
"ioName":"Default Insertion Order",
"budgetCompletion":108.41166036220665,
"status":"expired"
},
{
"CTR":0.158600,
"totalRecords":null,
"VCR":95.398651,
"totalBudget":100.0,
"dataCost":0.0,
"budgetMappingDataCost":0.0,
"ioId":1686,
"ioBudgetTypeId":1,
"campaignTimezone":"Asia/Kolkata",
"eCPM":39.63124504361618,
"bidImpressions":87831,
"mediaSpent":99.95000000000002,
"startCount":2521,
"campaignType":"cpv",
"ioBudget":105.0,
"campaignId":22870,
"spent":99.95000000000002,
"impressions":2522,
"completeCount":2405,
"budgetMappingSpent":99.95000000000002,
"dailyBudget":50.0,
"maxBid":40.0,
"clicks":4,
"campaign":"Green Leap: Sustaining Tomorrow",
"ioName":"Momentum: Moving Forward Together",
"budgetCompletion":99.95000000000002,
"status":"expired"
},
{
"CTR":2.082300,
"totalRecords":null,
"VCR":0.000000,
"totalBudget":12.0,
"dataCost":0.0,
"budgetMappingDataCost":0.0,
"ioId":1706,
"ioBudgetTypeId":1,
"campaignTimezone":"Asia/Kolkata",
"eCPM":4.999841166878848,
"bidImpressions":13389,
"mediaSpent":10.084679633594636,
"startCount":0,
"campaignType":"cpm",
"ioBudget":553523.7423799998,
"campaignId":22999,
"spent":10.084679633594636,
"impressions":2017,
"completeCount":0,
"budgetMappingSpent":10.084679633594636,
"dailyBudget":10.0,
"maxBid":5.0,
"clicks":42,
"campaign":"Horizon Shift: Beyond the Now",
"ioName":"Default Insertion Order",
"budgetCompletion":84.03899694662196,
"status":"expired"
},
{
"CTR":20.588200,
"totalRecords":null,
"VCR":0.000000,
"totalBudget":10.0,
"dataCost":0.0,
"budgetMappingDataCost":0.0,
"ioId":1706,
"ioBudgetTypeId":1,
"campaignTimezone":"America/Chicago",
"eCPM":1.999846853748152,
"bidImpressions":128,
"mediaSpent":0.06799479302743718,
"startCount":0,
"campaignType":"cpm",
"ioBudget":553523.7423799998,
"campaignId":22718,
"spent":0.06799479302743718,
"impressions":34,
"completeCount":0,
"budgetMappingSpent":0.06799479302743719,
"dailyBudget":5.0,
"maxBid":2.0,
"clicks":7,
"campaign":"Spark Ignition: Fueling Passion",
"ioName":"Default Insertion Order",
"budgetCompletion":0.6799479302743718,
"status":"expired"
},
{
"CTR":0.000000,
"totalRecords":null,
"VCR":100.000000,
"totalBudget":100.0,
"dataCost":0.0,
"budgetMappingDataCost":0.0,
"ioId":1616,
"ioBudgetTypeId":1,
"campaignTimezone":"US/Eastern",
"eCPM":10.000000000000002,
"bidImpressions":153307,
"mediaSpent":0.26000000000000006,
"startCount":26,
"campaignType":"cpv",
"ioBudget":1810.0,
"campaignId":19870,
"spent":0.26000000000000006,
"impressions":26,
"completeCount":26,
"budgetMappingSpent":6.940000000000002,
"dailyBudget":5.0,
"maxBid":10.0,
"clicks":0,
"campaign":"Vista Vision: Broadening Your Scope",
"ioName":"Momentum: Moving Forward Together",
"budgetCompletion":6.940000000000001,
"status":"running"
},
{
"CTR":0.000000,
"totalRecords":null,
"VCR":100.000000,
"totalBudget":100.0,
"dataCost":0.0,
"budgetMappingDataCost":0.0,
"ioId":1706,
"ioBudgetTypeId":1,
"campaignTimezone":"Asia/Kolkata",
"eCPM":30.00000000000001,
"bidImpressions":164,
"mediaSpent":0.6000000000000002,
"startCount":20,
"campaignType":"cpv",
"ioBudget":553523.7423799998,
"campaignId":22951,
"spent":0.6000000000000002,
"impressions":20,
"completeCount":20,
"budgetMappingSpent":0.6000000000000002,
"dailyBudget":30.0,
"maxBid":30.0,
"clicks":0,
"campaign":"Life in HD: High Definition Living",
"ioName":"Default Insertion Order",
"budgetCompletion":0.6000000000000002,
"status":"expired"
},
{
"CTR":60.000000,
"totalRecords":null,
"VCR":0.000000,
"totalBudget":5.0,
"dataCost":0.0,
"budgetMappingDataCost":0.0,
"ioId":1686,
"ioBudgetTypeId":1,
"campaignTimezone":"America/Chicago",
"eCPM":2.0,
"bidImpressions":5,
"mediaSpent":0.01,
"startCount":0,
"campaignType":"cpm",
"ioBudget":105.0,
"campaignId":22873,
"spent":0.01,
"impressions":5,
"completeCount":0,
"budgetMappingSpent":0.01,
"dailyBudget":3.0,
"maxBid":2.0,
"clicks":3,
"campaign":"Momentum: Moving Forward Together",
"ioName":"Momentum: Moving Forward Together",
"budgetCompletion":0.2,
"status":"expired"
},
{
"CTR":100.000000,
"totalRecords":null,
"VCR":0.000000,
"totalBudget":5.0,
"dataCost":0.0,
"budgetMappingDataCost":0.0,
"ioId":1706,
"ioBudgetTypeId":1,
"campaignTimezone":"America/Chicago",
"eCPM":2.0,
"bidImpressions":2,
"mediaSpent":0.004,
"startCount":0,
"campaignType":"cpm",
"ioBudget":553523.7423799998,
"campaignId":22872,
"spent":0.004,
"impressions":2,
"completeCount":0,
"budgetMappingSpent":0.004,
"dailyBudget":3.0,
"maxBid":2.0,
"clicks":2,
"campaign":"Renaissance of Ideas: Crafting the Future",
"ioName":"Default Insertion Order",
"budgetCompletion":0.08,
"status":"expired"
}
],
"filteredRecords":12
}
}
See TypeScript Prerequisites page for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: {
total: {
CTR: number;
date: number;
deviceTypeId: number;
VCR: number;
budgetDay: string;
gender: string;
budgetPacing: boolean;
dataCost: number;
totalRecords: number;
campaignTimezone: string;
eCPM: number;
bidImpressions: number;
startTime: number;
mediaSpent: number;
eCPC: number;
deviceType: string;
startCount: number;
campaignType: string;
spent: number;
impressions: number;
eCPCV: number;
completeCount: number;
budgetTotal: number;
maxBid: number;
clicks: number;
endTime: number;
campaignName: string;
status: string;
};
data: {
CTR: number;
date: number;
deviceTypeId: number;
VCR: number;
budgetDay: string;
gender: string;
budgetPacing: boolean;
dataCost: number;
totalRecords: number;
campaignTimezone: string;
eCPM: number;
bidImpressions: number;
startTime: number;
mediaSpent: number;
eCPC: number;
deviceType: string;
startCount: number;
campaignType: string;
spent: number;
impressions: number;
eCPCV: number;
completeCount: number;
budgetTotal: number;
maxBid: number;
clicks: number;
endTime: number;
campaignName: string;
status: string;
}[];
totalRecords: number
}
}
};
};
};
function executeReportData(): Promise < Responses > {
const options = {
method: 'POST',
url: 'https://app.iqm.com/api/v3/ra/report/execute',
requestBody: {
content: {
"application/json": {
id?: `number`,
reportName?: `string`,
startDate?: `number`,
endDate?: `number`,
dimensions?: `string`,
customerIds?: `array of numbers`,
columns?: `array of strings`,
timezoneId?: `number`,
requestType?: `number`,
reportAggregated?: `string`,
owId?: `number`,
createdByUOWId?: `number`,
modifiedByUOWId?: `number`,
timezoneName?: `string`,
organizationName?: `string`,
resultType?: `string`,
fileType?: `number`,
pageNo?: `number`,
noOfEntries?: `number`,
sortBy?: `string`,
searchField?: `string`
}
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
FAQ
What are the most commonly used dimensions in Reports?
The most frequently used dimensions and combinations of dimensions are:
- Insertion Order
- Insertion Order & Campaign
- Campaign & Creative
- Campaign & Inventory
- Campaign & Age
- Campaign & Zip Code
- Campaign & Age & Gender
- Campaign & Device
- Campaign & City
- Campaign & Gender
- Campaign & Channel