IQM’s REST API enables you to interact with most of IQM’s offerings.
Use the following endpoints to start uploading your first Creative:
POST
/api/v3/ua/loginGET
/api/v3/master/creativeTypesPOST
/api/v2/crt/add/image/banner/creativeGET
/api/v2/crt/creatives/details?creativeIds={creativeId}POST
/api/v2/cmp/campaigns/addGET
/api/v2/cmp/campaign/{campaignId}
The IQM APIs provide access to create Campaigns and upload Creative in Image, Video, Audio, HTML, XLSX, or CSV formats. You can use the APIs to connect to applications of your choice.
Once uploaded and processed, Creative can be used for creating and running advertising Campaigns.
To upload a Creative and create a Campaign, you must have the following:
- An Account On the IQM platform
- Image, Video, Audio, HTML, VAST, DAAST, CSV, or XLSX file to upload Creative
If you do not have any of the above, please follow the steps below:
- See Before You Begin section to create an account and request a Client ID and Client Secret
- File requirements for creative file:
- 2MB for JPG, JPEG, PNG
- 750KB for GIF
- 400MB for MOV, MP4
- 100MB for MP3, WAV, OGG, MPEG
For more information on VAST and DAAST XML format specifications, please see:
Sample CSV file: https://app.iqm.com/creatives/u/0/sample.CSV
This quick start will help you to create a Campaign and upload Creative. At a minimum, you must log in, upload creative, and create a campaign. Once you have accomplished these basics, you can continue learning more about our API through the documentation.
- Log In
- Optional if you have already logged in and have a token
- Request Creative Types
- Optional if you know what you need or have already requested before
- Upload Creative
- Optional if you have already uploaded before
- Check the Creative Status
- Check if Creative was approved to use, processing and approval is required
- Create a Campaign
- Create a Campaign using Creative, provide necessary targeting parameters
- Check the Campaign Status
- Check if the Campaign is running, you can check the KPI in the report
To log in, the Authorization: Basic
header is required. The Login API returns an OAuth-compliant response with an Organization Workspace ID (owId
), a unique identifier for each organization. This ID will be used for any further API communications.
POST
/api/v3/ua/login
Header Parameters
Property | Type | Description |
---|---|---|
Authorization |
string [required] | Authorization bearer token See Authentication Guide |
X-IAA-HOST |
string [required] | Workspace URL |
Request Body Schema: application/json
Property | Type | Description |
---|---|---|
grantType |
string [required] | OAuth Grant Types |
email |
string [required] | Your user account email |
password |
string [required] | Your user accout password |
Request Sample
{
"grantType": "password",
"email": "pratik.t+ihp@iqm.com",
"password": "123456"
}
Response 200
{
"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
Response 400
{
"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."
}
]
}
Response 403
{
"success": false,
"errorObjects":
[
{
"error": "User doesn't exist or user is not allowed to provided workspace."
}
]
}
For further information see the complete Login API Documentation.
To upload a creative, you must provide a creative type. Use the creative type list endpoint to request a full list of allowed creative types.
GET
/api/v3/master/creativeTypes
Header Parameters
Property | Type | Description |
---|---|---|
Authorization |
string | Authorization Bearer Token See Authentication Guide |
X-IAA-OW-ID |
string | Organization Workspace ID Header |
Response 200
{
"success": true,
"data": [
{
"id": 1,
"label": "Raw",
"keyName": "Raw"
},
{
"id": 2,
"label": "Hashed (MD5)",
"keyName": "MD5"
},
{
"id": 3,
"label": "Hashed (SHA1)",
"keyName": "SHA1"
},
{
"id": 4,
"label": "Hashed (SHA256)",
"keyName": "SHA256"
},
{
"id": 5,
"label": "Hashed (SHA512)",
"keyName": "SHA512"
},
{
"id": 6,
"label": "Hashed (other)",
"keyName": "Other"
}
]
}
More Response Samples
Response 500
{
"statusCode": 500,
"responseObject": {
"errorMsg": "Internal server error",
"errorCode": 500
}
}
For further information see the complete Creative Types API Documentation
When uploading a creative, you can provide a file and creative parameters like tracking pixel and click URL
POST
/api/v2/crt/add/image/banner/creative
Header Parameters
Property | Type | Description |
---|---|---|
Authorization |
string [required] | Authorization bearer token See Authentication Guide |
X-IAA-OW-ID |
integer [required] | Organization Worskpace ID Header |
content-type |
string [required] | Media type of the resource |
Request Body Schema: application/x-www-form-urlencoded
Property | Type | Definition |
---|---|---|
creativeFiles |
string [required] | File - image file as multipart form data |
creativeImageMetadata |
object [required] | (creativeImageMetadata) |
Please refer to MDN documentation on form data format.
Request Sample (Form Data)
------WebKitFormBoundaryyTwoz48E2hTuXZoX
Content-Disposition: form-data; name="dspId"
------WebKitFormBoundaryyTwoz48E2hTuXZoX
Content-Disposition: form-data; name="advertiserId"
------WebKitFormBoundaryyTwoz48E2hTuXZoX
Content-Disposition: form-data; name="creativeImageMetadata"
{"8a9ab848-b302-40a6-bea1-17f7aca6f362":{"originalFileName":"Screenshot 2023-12-28 at 2.51.28 PM.png","creativeName":"Creative","clickUrl":"https://iqm.com","width":408,"height":364}}
------WebKitFormBoundaryyTwoz48E2hTuXZoX
Content-Disposition: form-data; name="creativeFiles"; filename="8a9ab848-b302-40a6-bea1-17f7aca6f362.png"
Content-Type: image/png
�PNG
IHDR�lñ8¯Z
±iCCPICC ProfileH���Té�ÿ�ô�Ð�NèM�"@J-té *! J)Ø�Å\
*" ¬èRDÁFµcÁ¢ØûYDÔu±`Cå
p»ûÎ{ï¼{Î�û�;÷¿÷þsæ�s²[(Ì��ÈHDþÞ´¸øn�� g±9b!#<< 2mÿ.îhÂÞ´�Èõï÷ÿ«¨pybP8ÂÉ\1'
ác�¾çEPõ�ßh�D8Á=«���Mpê¿�àäIFã'c¢"�ë�'±Ù¢THæ���ËIEò�¶pù�óöÈÊÊæ"Ü�°9#Dx"?=ù/yRÿ�3Y��ÍN�óÔ^&ïÃ
3Ùùÿçãøß��)�®a�()M�X¤/è^Fv��É¡aÓÌçNÆOr�4 z�9bfÂ4sÙ>Aòµ�¡ÁÓ�Â÷cÉóHXQÓÌûFN³(;B^+EÄdL3[4SW�-÷§ñXòüiQ±Ó�Ë� �fqFdÐLSîI#äýóþÞ3uýä{Ïÿe¿|�|$-*@¾wöLÿ<c&§8NÞ�çã;-�J¼åµ��áòx^¦¿Ü/Î��¯� /äÌÚpù3Lg�O3� \ÀÙ�|+B� Ø _ÂË�Ll��-ÌñSÓ$4rÒx4��c3�fokïÀĹ�z-ÞQ'Ï#D½2ã[Û�{Çøøøñ_àu'@l�ñ�/@y�K'8RQî�=qÁ _%ä� ô�0ÖÀ87à|A Q ,�²�,ËÀjPJÀf°T�j°Ô��àh'ÀYp\×ÁmðÈÀ x FÀ0A"CHÒ�L +È¢C�/E@ñP�
)´Z
�@¥P´j�CÐYè2ÔÝ�ú¡aè-ôFÁ$X
Ö�Má90fÀAp¼N�sà¸Þ�Ã5ð¸>
_�oÃ2ø%<�(e�²FÑQLT*��¡V �Qe¨TªÕ�º��¡^¡>£±h
��¶F»¡ÐÑh:½½]�®G·¢Ï£o¢ûÑ#èï2Fc�qÅ°0q�TÌL¦S�iÁ\ÀÜÆb>`±X*Öë�
ÀÆcÓ±K±°»°ÍØ3Ø>ìv�Ãiâ¬pî¸0'ÁávâàNãnàq�ð
x}¼=Þ��à×àËðûñ§ð7ðCø1�2Á�àJ#p ù�M�}�NÂ5 a�¨B4#º£�éÄÕÄrbñññ����¡��Â|¾Â*�r�C
�ú>�TI�$&)�$%m$Õ�Î�î�Þ�ÉdS²9�,!o$7�Ï���?)RmY�\Å�����7_+�L�J��
�Ê��*]Sz¥LP6Uf*³�W(W*w(ßUU¡¨Ø©�©d©lPÙ¯rYå¹*NÕTÕW�«Z¨ºWõ�êE1¢0)ÊZÊ>ÊÊ VÍL�¥�®V¢vPWmD]U}®z�z�z¥úIuE5¥²¨�ÔMÔ#Ô;Ô/³tg1fñf�Õ4ëƬ�Ú^<�b�f�Û_4i�¾��[4Û4k¡µ,µæk-ÑÚuAë�¶�¶�6G»Xû�öXÇR'Bg©Î^��Q]=]�]¡îNÝsº¯ô¨z^zézÛôNé
ëSô=ôùúÛôOë¿ ©Ó´LZ9í<mÄ@Ç À@j°Ç ×`ÌÐÌ0Úp�a³ác#¢Ý(Åh�Q�Ñ�±¾q�ñ2ãFã&ºI�É�n��¦f¦±¦ëLÛL��i�±Ì
ÌÍ��Í=ÍsÌkÌoY`-è»,®[Â���i���׬`+'+¾Õ.«¾Ù�Ù.³³kfßµ&Y3¬sûm¨6Á6klÚl^Ï1��0gË�î9ßmm3m÷Ù>´Sµ
´[c×i÷ÖÞÒ�c_i�Ë�ìàç°Ò¡ÝáÍ\«¹¼¹»çÞs¤8�8®sìrüæäì$rjrv6vNr®r¾KW£�Ó7Ð/¹`\¼]Vº�pùìêä*q=âú§�µ[�Û~·çóÌæñæí�7ànèÎvßã.ó y$yüì!ó4ðd{Öx>õ2òâzÕz
1,é��×Þ¶Þ"ïï�LWæræ��¿O±O¯¯ªo´o�ï?C¿T¿F¿�Gÿ¥þg0A[î²tYVk$Ð9pyàù RPdPEÐÓ`Ë`Qpg²5äQ¨I¨ ´-�±Â¶�=7
Ï ?>;?|~åügvË"º#)��#÷G~�ò�Úõ0Ú<ZÝ£�Óó1Ö'¶4V7'nyÜÕxx~|{.!&¡6at�ï�í
�ï,4[�·ðò"E��N.VZÌ^|4 ��´?é+;�]ÃMf%W%�p����\/î6î0Ï�WÊJqO)My�ê�º5u8Í3,í�ɯà¿IH¯Nÿ��Q�1��Ù��ÏJÊê¨
2ç³õ²ó²û�VÂ"¡,Ç5g{Î�(HT+�Ä
Åí5d@ê��K��öçzäVæ~Z³äh�J� ¯'ß2�}þP�_Á/KÑK9K»�,[½¬�9cù�Ð�ä]+�V®\忪~5quÆê_×Ø®)]ó~mìÚÎBÝÂU�?øÿÐX¤X$*º»Îm]õ�èù?ö®wX¿sý÷bnñ�Û�²�¯8®üd÷SùOãS6önrÚ´{3v³`ó�-�[êKUJ
J¶�lmÝFÛV¼íýöÅÛ/�Í-«ÞAÜ!Ý!+.oßi¼sóίi·+½+�«tªÖW}ÜÅÝuc·×î¦jÝê�ê/?ó�¾·Ç�Ok�iMÙ^ìÞܽÏöÅìëþ�þKCVmIí·:A�¬>¢þ|�sCÃ~�ý�áFiãð�Ä×úlo²nÚÓLm.9IShow more
Response 201
{
"statusCode": 201,
"responseObject": {
"data": [148971],
"message": "Image Creative(s) Added successfully"
}
}
For further information see the complete API Documentation:
To create a campaign, creative must be processed and approved, check for status updates using:
GET
/api/v2/crt/creatives/details?creativeIds={creativeId}
Path Parameters
Property | Type | Definition |
---|---|---|
creative_id |
string [required] | Unique ID of Creative |
Header Parameters
Property | Type | Description |
---|---|---|
Authorization |
string [required] | Authorization bearer token See Authentication Guide |
X-IAA-OW-ID |
integer [required] | Organization Worskpace ID Header |
Response 200
{
"statusCode": 200,
"responseObject": [
{
"creativeName": "DO NOT DELETE - TEST VAST 4.0 creative",
"status": "running",
"creativeId": 148246,
"height": null,
"width": null,
"duration": 16,
"creativeTypeId": 14,
"creativeType": "video",
"clickUrl": "https://iabtechlab.com",
"creativeCardSource": "https://cdn-cfy-p0.iqm.com/Screenshots/1/278x220/TkkErlS_1701954192846.jpg",
"creativeSource": "<VAST xmlns="http://www.iab.com/VAST" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="4.0"> <Ad conditionalAd="false" id="{IAA_CREATIVE_ID}" sequence="1"> <InLine> <AdSystem version="4.0">4.0</AdSystem> <Error><![CDATA[http://example.com/error]]></Error> <Extensions> <Extension type="iab-Count"> <total_available> <![CDATA[ 2 ]]> </total_available> </Extension> </Extensions> <Impression id="Impression-ID"><![CDATA[http://example.com/track/impression]]></Impression> <Pricing currency="USD" model="cpm"> <![CDATA[ 25.00 ]]> </Pricing> <AdTitle>iabtechlab video ad</AdTitle> <Category authority="http://www.iabtechlab.com/categoryauthority">AD CONTENT description category</Category> <Creatives> <Creative adId="2447226" apiFramework="VAST" id="5480" sequence="1"> <UniversalAdId idRegistry="Ad-ID" idValue="8465">8465</UniversalAdId> <Linear> <TrackingEvents> <Tracking event="start"><![CDATA[http://example.com/tracking/start]]></Tracking> <Tracking event="firstQuartile"><![CDATA[http://example.com/tracking/firstQuartile]]></Tracking> <Tracking event="midpoint"><![CDATA[http://example.com/tracking/midpoint]]></Tracking> <Tracking event="thirdQuartile"><![CDATA[http://example.com/tracking/thirdQuartile]]></Tracking> <Tracking event="complete"><![CDATA[http://example.com/tracking/complete]]></Tracking> <Tracking event="progress" offset="00:00:10"><![CDATA[http://example.com/tracking/progress-10]]></Tracking> <Tracking event="start"><![CDATA[https://postback.iqm.com/api/v1/iqm?event=impr&camp_id={IAA_CAMPAIGN_ID}&devid={IAA_DEVICE_ID}&app_id={IAA_APP_ID}&app_nm={IAA_APP_NAME}&ip={IAA_USER_IP}&clkid={IAA_EXCH_REQ_ID}&crid={IAA_CREATIVE_ID}&impid={IAA_IMPRESSION_ID}&devua={IAA_DEVICE_UA}&pubid={IAA_PUBLISHER_ID}&exch_nm={IAA_EXCHANGE_NAME}&l1={IAA_GPS_LAT}&l2={IAA_GPS_LON}&st={IAA_STATE_NAME}&conv_type=preview&event_type=start]]></Tracking><Tracking event="firstQuartile"><![CDATA[https://postback.iqm.com/api/v1/iqm?event=impr&camp_id={IAA_CAMPAIGN_ID}&devid={IAA_DEVICE_ID}&app_id={IAA_APP_ID}&app_nm={IAA_APP_NAME}&ip={IAA_USER_IP}&clkid={IAA_EXCH_REQ_ID}&crid={IAA_CREATIVE_ID}&impid={IAA_IMPRESSION_ID}&devua={IAA_DEVICE_UA}&pubid={IAA_PUBLISHER_ID}&exch_nm={IAA_EXCHANGE_NAME}&l1={IAA_GPS_LAT}&l2={IAA_GPS_LON}&st={IAA_STATE_NAME}&conv_type=preview&event_type=firstQuartile]]></Tracking><Tracking event="midpoint"><![CDATA[https://postback.iqm.com/api/v1/iqm?event=impr&camp_id={IAA_CAMPAIGN_ID}&devid={IAA_DEVICE_ID}&app_id={IAA_APP_ID}&app_nm={IAA_APP_NAME}&ip={IAA_USER_IP}&clkid={IAA_EXCH_REQ_ID}&crid={IAA_CREATIVE_ID}&impid={IAA_IMPRESSION_ID}&devua={IAA_DEVICE_UA}&pubid={IAA_PUBLISHER_ID}&exch_nm={IAA_EXCHANGE_NAME}&l1={IAA_GPS_LAT}&l2={IAA_GPS_LON}&st={IAA_STATE_NAME}&conv_type=preview&event_type=midpoint]]></Tracking><Tracking event="thirdQuartile"><![CDATA[https://postback.iqm.com/api/v1/iqm?event=impr&camp_id={IAA_CAMPAIGN_ID}&devid={IAA_DEVICE_ID}&app_id={IAA_APP_ID}&app_nm={IAA_APP_NAME}&ip={IAA_USER_IP}&clkid={IAA_EXCH_REQ_ID}&crid={IAA_CREATIVE_ID}&impid={IAA_IMPRESSION_ID}&devua={IAA_DEVICE_UA}&pubid={IAA_PUBLISHER_ID}&exch_nm={IAA_EXCHANGE_NAME}&l1={IAA_GPS_LAT}&l2={IAA_GPS_LON}&st={IAA_STATE_NAME}&conv_type=preview&event_type=thirdQuartile]]></Tracking><Tracking event="complete"><![CDATA[https://postback.iqm.com/api/v1/iqm?event=impr&camp_id={IAA_CAMPAIGN_ID}&devid={IAA_DEVICE_ID}&app_id={IAA_APP_ID}&app_nm={IAA_APP_NAME}&ip={IAA_USER_IP}&clkid={IAA_EXCH_REQ_ID}&crid={IAA_CREATIVE_ID}&impid={IAA_IMPRESSION_ID}&devua={IAA_DEVICE_UA}&pubid={IAA_PUBLISHER_ID}&exch_nm={IAA_EXCHANGE_NAME}&l1={IAA_GPS_LAT}&l2={IAA_GPS_LON}&st={IAA_STATE_NAME}&conv_type=preview&event_type=complete]]></Tracking><Tracking event="pause"><![CDATA[https://postback.iqm.com/api/v1/iqm?event=impr&camp_id={IAA_CAMPAIGN_ID}&devid={IAA_DEVICE_ID}&app_id={IAA_APP_ID}&app_nm={IAA_APP_NAME}&ip={IAA_USER_IP}&clkid={IAA_EXCH_REQ_ID}&crid={IAA_CREATIVE_ID}&impid={IAA_IMPRESSION_ID}&devua={IAA_DEVICE_UA}&pubid={IAA_PUBLISHER_ID}&exch_nm={IAA_EXCHANGE_NAME}&l1={IAA_GPS_LAT}&l2={IAA_GPS_LON}&st={IAA_STATE_NAME}&conv_type=preview&event_type=pause]]></Tracking><Tracking event="resume"><![CDATA[https://postback.iqm.com/api/v1/iqm?event=impr&camp_id={IAA_CAMPAIGN_ID}&devid={IAA_DEVICE_ID}&app_id={IAA_APP_ID}&app_nm={IAA_APP_NAME}&ip={IAA_USER_IP}&clkid={IAA_EXCH_REQ_ID}&crid={IAA_CREATIVE_ID}&impid={IAA_IMPRESSION_ID}&devua={IAA_DEVICE_UA}&pubid={IAA_PUBLISHER_ID}&exch_nm={IAA_EXCHANGE_NAME}&l1={IAA_GPS_LAT}&l2={IAA_GPS_LON}&st={IAA_STATE_NAME}&conv_type=preview&event_type=resume]]></Tracking><Tracking event="mute"><![CDATA[https://postback.iqm.com/api/v1/iqm?event=impr&camp_id={IAA_CAMPAIGN_ID}&devid={IAA_DEVICE_ID}&app_id={IAA_APP_ID}&app_nm={IAA_APP_NAME}&ip={IAA_USER_IP}&clkid={IAA_EXCH_REQ_ID}&crid={IAA_CREATIVE_ID}&impid={IAA_IMPRESSION_ID}&devua={IAA_DEVICE_UA}&pubid={IAA_PUBLISHER_ID}&exch_nm={IAA_EXCHANGE_NAME}&l1={IAA_GPS_LAT}&l2={IAA_GPS_LON}&st={IAA_STATE_NAME}&conv_type=preview&event_type=mute]]></Tracking><Tracking event="unmute"><![CDATA[https://postback.iqm.com/api/v1/iqm?event=impr&camp_id={IAA_CAMPAIGN_ID}&devid={IAA_DEVICE_ID}&app_id={IAA_APP_ID}&app_nm={IAA_APP_NAME}&ip={IAA_USER_IP}&clkid={IAA_EXCH_REQ_ID}&crid={IAA_CREATIVE_ID}&impid={IAA_IMPRESSION_ID}&devua={IAA_DEVICE_UA}&pubid={IAA_PUBLISHER_ID}&exch_nm={IAA_EXCHANGE_NAME}&l1={IAA_GPS_LAT}&l2={IAA_GPS_LON}&st={IAA_STATE_NAME}&conv_type=preview&event_type=unmute]]></Tracking><Tracking event="fullscreen"><![CDATA[https://postback.iqm.com/api/v1/iqm?event=impr&camp_id={IAA_CAMPAIGN_ID}&devid={IAA_DEVICE_ID}&app_id={IAA_APP_ID}&app_nm={IAA_APP_NAME}&ip={IAA_USER_IP}&clkid={IAA_EXCH_REQ_ID}&crid={IAA_CREATIVE_ID}&impid={IAA_IMPRESSION_ID}&devua={IAA_DEVICE_UA}&pubid={IAA_PUBLISHER_ID}&exch_nm={IAA_EXCHANGE_NAME}&l1={IAA_GPS_LAT}&l2={IAA_GPS_LON}&st={IAA_STATE_NAME}&conv_type=preview&event_type=fullscreen]]></Tracking></TrackingEvents> <Duration>00:00:16</Duration> <MediaFiles> <MediaFile bitrate="600" codec="H.264" delivery="progressive" height="360" id="5246" maintainAspectRatio="1" maxBitrate="700" minBitrate="500" scalable="1" type="video/mp4" width="640"><![CDATA[https://cdn-cfy-p0.iqm.com/wreckathon/Videos/iqm-video-202206-30s-480p.mp4]]></MediaFile> </MediaFiles> <VideoClicks> <ClickThrough id="blog"><![CDATA[https://iabtechlab.com]]></ClickThrough> </VideoClicks> </Linear> </Creative> </Creatives> <Impression id="{IAA_IMPRESSION_ID}"><![CDATA[{IAA_WIN_URL}]]></Impression><Error><![CDATA[https://postback.iqm.com/api/v1/iqm?event=error&camp_id={IAA_CAMPAIGN_ID}&devid={IAA_DEVICE_ID}&app_id={IAA_APP_ID}&app_nm={IAA_APP_NAME}&ip={IAA_USER_IP}&clkid={IAA_EXCH_REQ_ID}&crid={IAA_CREATIVE_ID}&impid={IAA_IMPRESSION_ID}&devua={IAA_DEVICE_UA}&pubid={IAA_PUBLISHER_ID}&exch_nm={IAA_EXCHANGE_NAME}&l1={IAA_GPS_LAT}&l2={IAA_GPS_LON}&st={IAA_STATE_NAME}&conv_type=preview]]></Error></InLine> </Ad></VAST>",
"creativeSourceURL": null,
"pixelUrls": null,
"createdOn": 1701954192,
"modifiedDate": 1701955047,
"uowId": 6942,
"owId": 1,
"userName": "Meera Vyas",
"adPlacement": null,
"remarks": null,
"xmlType": "inline",
"xmlVersion": "4.0,4.1",
"rejectionReason": null,
"userEmail": "meera.v@iqm.com",
"organizationName": "IQM Corporation 1",
"campaigns": [
{
"campaignName": "DO NOT DELETE - Test campaign for VAST 4.0",
"campaignId": 25721,
"campaignStatus": "deleted"
},
{
"campaignName": "Test Campaign",
"campaignId": 25834,
"campaignStatus": "deleted"
},
{
"campaignName": "Test Campaign copy",
"campaignId": 25835,
"campaignStatus": "deleted"
}
],
"previewFlag": 1,
"nativeCreativeAttributes": null,
"isEditAccess": true,
"isApprovalAccess": false
}
]
}
For further information see the complete Creative Details API Documentation
To create a campaign, specify the creative and targeting parameters using the API:
POST
/api/v2/cmp/campaigns/add
Header Parameters
Property | Type | Description |
---|---|---|
Authorization |
string [required] | Authorization bearer token See Authentication Guide |
X-IAA-OW-ID |
integer [required] | Organization Worskpace ID Header |
Request Body Schema: application/json
Field | Type | Description |
---|---|---|
advertiserDomain |
string | add domain |
budgetDay |
integer | Daily budget |
budgetTotal |
integer | Total budget |
campaignName |
string | name of campaign |
campaignType |
integer | Campaign type ID |
creativeIds |
string | Comma separated creative IDs |
creativeType |
integer | Creative type ID |
isAgreementChecked |
boolean | agreement check |
maxBid |
integer | max bid |
startTime |
integer | campaign start time |
timezone |
integer | timezone ID |
bidOptimization [optional] |
boolean | Optimize bid price based on analysis |
bidPacing [optional] |
boolean | Budget is spent equally every hour |
impressionCapping [optional] |
integer | Maximum impressions in one inventory |
maxDayClicks [optional] |
integer | Maximum daily clicks |
totalClicks [optional] |
integer | Total clicks |
maxDayImpressions [optional] |
integer | Maximum daily impressions |
totalImpressions [optional] |
integer | Total impressions |
maxDayConversions [optional] |
integer | Maximum daily conversions |
totalConversions [optional] |
integer | Total conversions |
conversionType [optional] |
string | User conversion type. Allowed values: 'install', 'non-install' |
appURL [optional] |
string | If conversion type is install, specify URL of inventory |
targetCPI [optional] |
integer | Cost per install if conversion type is install. |
carriers [optional] |
string | Carrier targeting. Value in form of string of comma separated IDs of targeted carrier(s) |
networkType [optional] |
string | Network targeting. Value in form of string of comma separated IDs of targeted network(s) |
deviceType [optional] |
string | Device targeting. Value in form of string of comma separated IDs of targeted device type(s) |
trafficType [optional] |
string | Traffic type targeting. Value in form of string of comma separated IDs of targeted traffic type(s) |
manufacturer [optional] |
string | Manufacturer targeting. Value in form of string of comma separated IDs of targeted manufacturer type(s) |
os [optional] |
string | OS targeting. Value in form of string of comma separated IDs of targeted OS |
osVersion [optional] |
string | OS version targeting. Value in form of string of comma separated IDs of targeted OS version based on targeted OS |
exchanges [optional] |
string | Targeted exchanges. Value in form of string of comma separated IDs of exchanges |
prebidAudienceSegmentIdList [optional] |
array | Prebid Audience Segment IDs to attach campaign to segment IDs |
publisherAdCategory [optional] |
string | Target Publisher ad category. Value in form of string of comma separated IDs |
ioId |
integer | Target Insertion OrderId in which this campaign belongs |
userDealId [optional] |
string | User specific deal IDs. Value in form of string of comma separated deal IDs |
groupDealId [optional] |
string | Group of selected deals. Value in form of string of comma separated deal IDs |
politicalAdvertiserClientId [optional] |
integer | ID of political advertiser in case of campaign is political campaign |
stateIds [optional] |
string | State Target. Value in form of string of comma separated IDs |
countryId |
string | Country Target |
dmaIds [optional] deprecated |
string | DMA Target. Value in form of string of comma separated IDs |
senateDistrictIds [optional] deprecated |
string | Senate districts Target. Value in form of string of comma separated IDs |
congressionalDistrictIds [optional] deprecated |
string | Congressional districts Target. Value in form of string of comma separated IDs |
houseDistrictIds [optional] deprecated |
string | House districts Target. Value in form of string of comma separated IDs |
geoRadiusDetails [optional] deprecated |
string | To target custom ares in circle or polygon. Value in form of JSON |
zipcodes [optional] deprecated |
string | ZipCode Target. Value in form of string of comma separated IDs |
locationFileIds [optional] |
string | Target location by uploading file. Value in form of string of comma separated csv file ids.(pre uploaded) |
ageRangeIds [optional] |
string | Target age range. Value in form of string of comma separated IDs |
genderIds [optional] |
string | Target gender. Value in form of string of comma-separated IDs |
interestIds [optional] |
string | Target user interest. Value in form of a string of comma-separated IDs |
incomeRangeIds [optional] |
string | Target user income range. Value in form of a string of comma-separated IDs |
languageIds [optional] |
string | Target user language. Value in form of a string of comma-separated IDs |
ethnicityIds [optional] |
string | Target user ethnicity. Value in form of a string of comma-separated ID |
schedule [optional] |
string[][] | key as [0 to 6] maps to [Monday to Sunday] & values [['hh:mm:ss','hh:mm:ss'], ...] |
conversionIds [optional] |
string | Target pixel conversions. Value in form of a string of comma-separated ID |
isAdvanceAudioVideoTargeted |
boolean | To indicate if the advance targeting is enabled if this is true, 'creativeAdvanceTargeting' is optional and it is assumed that every video creative segment is targeted |
isBidPacing |
boolean | To indicate whether the bid shading is enabled. |
creativeAdvanceTargeting |
JSON Map: string to integer | Map of Creative advanced targeting group to list of creative advance targeting segment IDs |
campaignEstimatorMetaData |
JSON | Campaign Estimator data with reachMeta, landScapeMeta and sliderMeta |
Scheduling Example
"scheduling": {
"0": [
[
"03:00:00",
"05:00:00"
],
[
"06:00:00",
"11:00:00"
]
]
}
GeoRadiusDetails example (below is the common format for whitelist and blacklist both)
"whiteListedGeoRadiusDetails" : [
{
"unit": "mile",
"address": "Denver, CO 80202, USA",
"latitude": 39.739235,
"radius": 2,
"type": "circle",
"longitude": -104.99025,
"sid": "4666",
"cid": "246"
},
{
"unit": "mile",
"address": "Grand Lake, CO 80447, USA",
"latitude": 40.19427,
"radius": 1,
"type": "circle",
"longitude": -105.84889,
"sid": "4666",
"cid": "246"
},
{
"unit": "mile",
"address": "Yonkers, NY 10710, USA",
"latitude": 40.95017,
"radius": 3,
"type": "circle",
"longitude": -73.84669,
"sid": "4694",
"cid": "246"
},
{
"polypath": [
{
"lng": -112.05635319323119,
"lat": 40.80285757668772
},
{
"lng": -111.44111881823119,
"lat": 38.15773779255543
},
{
"lng": -108.45283756823119,
"lat": 39.25508137287102
},
{
"lng": -109.15596256823119,
"lat": 41.266931755469045
}
],
"unit": "mile",
"address": "Dry Creek Rd, Utah, USA",
"latitude": 39.712334774012234,
"type": "custom",
"radius": 164.41,
"longitude": -110.25459538073119,
"sid": "4709",
"cid": "246"
},
{
"polypath": [
{
"lng": -98.60998217413051,
"lat": 39.527470270360105
},
{
"lng": -93.16076342413051,
"lat": 41.662771525199084
}
],
"unit": "mile",
"address": "Nebraska City, NE 68410, USA",
"latitude": 40.595120897779594,
"type": "square",
"radius": 259.09,
"longitude": -95.88537279913051,
"sid": "4689",
"cid": "246"
}
]
Request Sample
{
"campaignName": "Test Campaign",
"maxBid": 10,
"budgetTotal": 100,
"startTime": 1703794800,
"endTime": 1704614400,
"timezone": 433,
"budgetDay": 10,
"creativeType": 11,
"isAgreementChecked": true,
"ioId": 2695,
"countryId": "30100001",
"creativeIds": "148971",
"isAdvanceAudioVideoTargeted": false,
"advertiserDomain": "https://iqm.com",
"totalBudgetPacing": false,
"deviceType": "13,15,11,12",
"trafficType": "11,12",
"isTvAd": false,
"bidOptimization": true,
"bidPacing": true,
"publisherAdCategory": "",
"impressionCapping": 0,
"exchanges": "55,61,58,41,39,47,59,1,54,56,45,16,11,37,57,50,46,53,60",
"maxDayImpressions": 0,
"budgetTypeId": 1,
"totalImpressions": 0,
"maxDayClicks": 0,
"totalClicks": 0,
"maxDayConversions": 0,
"totalConversions": 0,
"prebidAudienceSegmentIdList": []
}
Response 201
{
"statusCode": 201,
"responseObject": {
"data": 25859,
"message": "Campaign saved successfully.",
"status": "pending"
}
}
Response 400
{
"statusCode": 412,
"responseObject": {
"errorMsg": "Invalid arguments audience ids!",
"errorCode": 412
}
}
Response 500
{
"statusCode": 500,
"responseObject": {
"errorMsg": "Internal server error",
"errorCode": 500
}
}
For further information see the complete Campaign Creation API Documentation
To run a campaign, it must be approved, check for status updates using:
GET
/api/v2/cmp/campaign/{campaignId}
Path Parameters
Property | Type | Definition |
---|---|---|
campaign_id |
string [required] | Unique ID of Campaign |
Header Parameters
Property | Type | Description |
---|---|---|
Authorization |
string | Authorization Bearer Token See Authentication Guide |
X-IAA-OW-ID |
string | Organization Workspace ID Header |
Response 200
{
"statusCode": 200,
"responseObject": {
"owId": 1,
"parentOrganizationName": "IQM Corporation",
"id": 25859,
"uowId": 9216,
"campaignName": "Test Campaign",
"advertiserDomain": "https://iqm.com",
"creativeType": 11,
"campaignType": 1,
"totalBudgetPacing": false,
"isTvAd": false,
"budgetDay": 10.0,
"budgetTotal": 100.0,
"maxBid": 10.0,
"timezone": 433,
"startTime": 1703794800,
"endTime": 1704614400,
"status": "pending",
"dspMargin": 0,
"platformMargin": 0,
"userDealMargin": 0,
"spentScale": false,
"creativeIds": "148971",
"conversionType": "None",
"bidOptimization": true,
"bidPacing": true,
"impressionCapping": 0,
"maxDayImpressions": 0,
"maxDayClicks": 0,
"maxDayConversions": 0,
"totalImpressions": 0,
"totalClicks": 0,
"totalConversions": 0,
"deviceType": "13,15,11,12",
"trafficType": "11,12",
"exchanges": "55,61,58,41,39,47,59,1,54,56,45,16,11,37,57,50,46,53,60",
"isLocationWithOrFilter": true,
"countryId": "30100001",
"locationDetails": {},
"isCampaignFromNewPlatform": true,
"organizationName": "IQM Corporation 1",
"userEmail": "domo@iqm.com",
"userName": "Domo Integration",
"conversionTypeId": 0,
"isUnapprovedAudienceTargeted": false,
"isAllAudienceUnapproved": false,
"createDate": 1703794110,
"ioId": 2695,
"ioName": "Sanity test Io",
"prebidAudienceSegmentIdList": [],
"budgetTypeId": 1,
"isAdvanceAudioVideoTargeted": false,
"isEstimatorAvailable": true,
"isEditAccess": true,
"isApprovalAccess": false,
"isMarginSet": true,
"isParentInvoiceTemplateSet": true
}
}
For further information see the complete Campaign Details API Documentation
The message rate limit is 20 requests per minute. Exceeding this limit will cause a 429 (too many requests) error.
API access token expiry is 24 hours after generation. Generate a refresh token for uninterrupted access to data.
The maximum data size per page is 1K rows.