{"id":14689,"date":"2026-09-01T16:24:10","date_gmt":"2026-09-01T16:24:10","guid":{"rendered":"https:\/\/wiki.pontiac.media\/?docs=api\/pontiac-bidder-api-campaign-tutorial\/uploading-a-creative"},"modified":"2026-09-01T18:59:31","modified_gmt":"2026-09-01T18:59:31","slug":"uploading-a-creative","status":"publish","type":"docs","link":"https:\/\/wiki.pontiac.media\/?docs=api\/pontiac-bidder-api-campaign-tutorial\/uploading-a-creative","title":{"rendered":"Uploading a Creative"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Creatives are created at the Advertiser level using: POST \/rtb\/creatives<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The required fields vary depending on the Creative type. In this example, we will create a 300 \u00d7 250 Display Creative using a third-party HTML\/JavaScript tag.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For a Display Creative, the full HTML or JavaScript tag is passed in the creativeData field.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Required Fields<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">All Creative types require:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>advertiserId: Parent Advertiser ID.<\/li>\n\n\n\n<li>name: Creative display name.<\/li>\n\n\n\n<li>status: Creative status. Use <code>1<\/code> for active or <code>0<\/code> for inactive.<\/li>\n\n\n\n<li>creativeType: Creative type. Supported values include Display, Video, Audio, FirstPartyVideo, and FirstPartyBanner.<\/li>\n\n\n\n<li>duration: Creative duration in seconds. Use <code>0<\/code> for display and banner Creatives.<\/li>\n\n\n\n<li>creativeSizes: Array containing at least one <code>{width, height}<\/code> object.<\/li>\n\n\n\n<li>autoSizeDetection: Determines whether automatic size detection is enabled.<\/li>\n\n\n\n<li>weight: Creative rotation weight from <code>1<\/code> to <code>10<\/code>.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Additional fields are required depending on the Creative type:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Video \/ Audio: <code>vastTag<\/code> containing the VAST XML URL.<\/li>\n\n\n\n<li>First-Party Video: <code>clickUrl<\/code> containing the click-through destination.<\/li>\n\n\n\n<li>First-Party Banner: <code>creativeData<\/code> containing the Base64 encoded image.<\/li>\n\n\n\n<li>Display: <code>creativeData<\/code> containing the HTML or JavaScript Creative tag.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Additional fields may also be included depending on the Creative setup, including clickUrl, MIME types, trackers, Creative flights, language, aspect ratio settings, and other Creative-level configuration.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Example Display Tag<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The following HTML\/JavaScript tag will be used for this example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;script type=\"text\/javascript\" src=\"https:\/\/static.adzerk.net\/ados.js\"&gt;&lt;\/script&gt;\n&lt;script type=\"text\/javascript\"&gt;\n  var ados = ados || {};\n  ados.run = ados.run || &#91;];\n  ados.run.push(function() {\n    ados_add_placement(11428, 1265459, \"azk650936\", 5)\n      .setFlightCreativeId(942090911);\n    ados_load();\n  });\n&lt;\/script&gt;\n&lt;div id=\"azk650936\"&gt;&lt;\/div&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">When the tag is included in a JSON request body, quotation marks within <code>creativeData<\/code> must be escaped.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Request<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -X 'POST' \\\n  'https:\/\/api.pontiac.media\/rtb\/creatives' \\\n  -H 'accept: application\/json' \\\n  -H 'auth: YOUR_AUTH_TOKEN' \\\n  -H 'Content-Type: application\/json' \\\n  -d '{\n    \"seatId\": 1000,\n    \"advertiserId\": 5943,\n    \"name\": \"API test upload\",\n    \"status\": 1,\n    \"creativeType\": \"display\",\n    \"duration\": 0,\n    \"creativeSizes\": &#91;\n      {\n        \"width\": 300,\n        \"height\": 250\n      }\n    ],\n    \"clickUrl\": \"https:\/\/pontiac.media\/\",\n    \"autoSizeDetection\": true,\n    \"weight\": 1,\n    \"creativeData\": \"&lt;script type=\\\"text\/javascript\\\" src=\\\"https:\/\/static.adzerk.net\/ados.js\\\"&gt;&lt;\/script&gt; &lt;script type=\\\"text\/javascript\\\"&gt; var ados = ados || {}; ados.run = ados.run || &#91;]; ados.run.push(function() { ados_add_placement(11428, 1265459, \\\"azk650936\\\", 5).setFlightCreativeId(942090911); ados_load(); }); &lt;\/script&gt; &lt;div id=\\\"azk650936\\\"&gt;&lt;\/div&gt;\"\n  }'<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Response<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A successful request returns the newly created Creative with its assigned <code>id<\/code> and stored Creative configuration.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"timestamp\": \"2026-09-01 16:38:48\",\n  \"response\": {\n    \"id\": 30336,\n    \"seatId\": 1000,\n    \"advertiserId\": 5943,\n    \"name\": \"API test upload\",\n    \"status\": 1,\n    \"creativeType\": \"display\",\n    \"mimes\": &#91;],\n    \"clickUrl\": \"https:\/\/pontiac.media\/\",\n    \"auditStatus\": \"pending\",\n    \"categories\": &#91;],\n    \"autoSizeDetection\": 0,\n    \"creativeSizes\": &#91;\n      {\n        \"width\": 300,\n        \"height\": 250\n      }\n    ],\n    \"weight\": 1,\n    \"controls\": &#91;],\n    \"trackers\": &#91;],\n    \"aspectRatioFiltering\": 0,\n    \"hasFlights\": 0,\n    \"dcmHosted\": 0,\n    \"language\": \"en\",\n    \"creativeData\": \"&lt;script type=\\\"text\/javascript\\\" src=\\\"https:\/\/static.adzerk.net\/ados.js\\\"&gt;&lt;\/script&gt; &lt;script type=\\\"text\/javascript\\\"&gt; var ados = ados || {}; ados.run = ados.run || &#91;]; ados.run.push(function() { ados_add_placement(11428, 1265459, \\\"azk650936\\\", 5).setFlightCreativeId(942090911); ados_load(); }); &lt;\/script&gt; &lt;div id=\\\"azk650936\\\"&gt;&lt;\/div&gt;\",\n    \"nativeData\": {},\n    \"publisherSpecs\": &#91;]\n  },\n  \"accountStatus\": 1,\n  \"seatId\": 1000\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">From the response, save the Creative <code>id<\/code>. This ID will be used later when associating the Creative with a Campaign or Line.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this example: Creative ID: 30336<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The response also shows the Creative&#8217;s current audit status: &#8220;auditStatus&#8221;: &#8220;pending&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">New Creatives are submitted for audit after creation. The audit status will update once the Creative has been reviewed. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Note that if you update any fields of the creative, this will trigger a reaudit.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Optional Creative Settings<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Depending on the Creative type and setup, additional fields may include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>mimes: Supported MIME types (e.g., [&#8216;video\/mp4&#8217;, &#8216;video\/webm&#8217;])<\/li>\n\n\n\n<li>trackers: Additional VAST trackers [{type, url}]<\/li>\n\n\n\n<li>aspectRatioFiltering: Enable aspect ratio filtering<\/li>\n\n\n\n<li>hasFlights: Enable creative flights\/scheduling<\/li>\n\n\n\n<li>flightsDates: Flight date ranges (when hasFlights=true)<\/li>\n\n\n\n<li>language: Creative language code<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Pontiac Bidder UI Validation<\/h4>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/09\/Screenshot-2026-09-01-095647-1024x640.png\" alt=\"\" class=\"wp-image-14694\" srcset=\"https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/09\/Screenshot-2026-09-01-095647-1024x640.png 1024w, https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/09\/Screenshot-2026-09-01-095647-300x187.png 300w, https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/09\/Screenshot-2026-09-01-095647-768x480.png 768w, https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/09\/Screenshot-2026-09-01-095647-1536x960.png 1536w, https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/09\/Screenshot-2026-09-01-095647.png 1962w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n","protected":false},"author":17,"featured_media":0,"parent":14675,"menu_order":3,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_is_vendor_doc":"0","footnotes":""},"doc_tag":[],"class_list":["post-14689","docs","type-docs","status-publish","hentry","no-post-thumbnail"],"comment_count":0,"_links":{"self":[{"href":"https:\/\/wiki.pontiac.media\/index.php?rest_route=\/wp\/v2\/docs\/14689","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wiki.pontiac.media\/index.php?rest_route=\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/wiki.pontiac.media\/index.php?rest_route=\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/wiki.pontiac.media\/index.php?rest_route=\/wp\/v2\/users\/17"}],"replies":[{"embeddable":true,"href":"https:\/\/wiki.pontiac.media\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=14689"}],"version-history":[{"count":2,"href":"https:\/\/wiki.pontiac.media\/index.php?rest_route=\/wp\/v2\/docs\/14689\/revisions"}],"predecessor-version":[{"id":14695,"href":"https:\/\/wiki.pontiac.media\/index.php?rest_route=\/wp\/v2\/docs\/14689\/revisions\/14695"}],"up":[{"embeddable":true,"href":"https:\/\/wiki.pontiac.media\/index.php?rest_route=\/wp\/v2\/docs\/14675"}],"next":[{"title":"Creating a Pixel","link":"https:\/\/wiki.pontiac.media\/?docs=api\/pontiac-bidder-api-campaign-tutorial\/creating-a-pixel","href":"https:\/\/wiki.pontiac.media\/index.php?rest_route=\/wp\/v2\/docs\/14692"}],"prev":[{"title":"Creating a New Advertiser","link":"https:\/\/wiki.pontiac.media\/?docs=api\/pontiac-bidder-api-campaign-tutorial\/creating-a-new-advertiser","href":"https:\/\/wiki.pontiac.media\/index.php?rest_route=\/wp\/v2\/docs\/14681"}],"wp:attachment":[{"href":"https:\/\/wiki.pontiac.media\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=14689"}],"wp:term":[{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/wiki.pontiac.media\/index.php?rest_route=%2Fwp%2Fv2%2Fdoc_tag&post=14689"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}