{"id":15680,"date":"2026-10-05T16:14:34","date_gmt":"2026-10-05T16:14:34","guid":{"rendered":"https:\/\/wiki.pontiac.media\/?docs=ctv-documentation\/creative-specs\/bulk-upload"},"modified":"2026-10-05T17:12:27","modified_gmt":"2026-10-05T17:12:27","slug":"bulk-upload","status":"publish","type":"docs","link":"https:\/\/wiki.pontiac.media\/?docs=ctv-documentation\/creative-specs\/bulk-upload","title":{"rendered":"Bulk Upload"},"content":{"rendered":"\n<h4 class=\"wp-block-heading\">Bulk Upload Third Party Creatives with Pontiac Assistant<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Third party creatives can be uploaded in bulk through the <strong>Pontiac Assistant<\/strong> by providing a creative manifest in either <strong>JSON<\/strong> or <strong>CSV<\/strong> format. The manifest can include creatives across multiple Advertisers in a single upload.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Paste the JSON or CSV content directly into Pontiac Assistant. A separate file path is not required.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Required Fields<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Each creative should include the following:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Field<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>advertiserId<\/code><\/td><td>Advertiser ID the creative should be associated with. Different Advertiser IDs can be included in the same manifest.<\/td><\/tr><tr><td><code>name<\/code><\/td><td>Creative name.<\/td><\/tr><tr><td><code>creativeType<\/code><\/td><td>Use <code>video<\/code> or <code>audio<\/code> for VAST tags, or <code>display<\/code> for an HTML\/JavaScript ad tag.<\/td><\/tr><tr><td><code>creativeSizes<\/code><\/td><td>Creative dimensions. For video\/audio, this is typically the player size, such as <code>640x480<\/code>. For display, use the banner size, such as <code>300x250<\/code>.<\/td><\/tr><tr><td><code>duration<\/code><\/td><td>Required for all creative types. Enter the duration in seconds for video\/audio. Use <code>0<\/code> for display creatives.<\/td><\/tr><tr><td><code>vastTag<\/code><\/td><td>VAST XML URL. Required for video and audio third-party creatives.<\/td><\/tr><tr><td><code>creativeData<\/code><\/td><td>Raw HTML\/JavaScript ad tag. Required for display third-party creatives.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The following fields are optional:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>clickUrl<\/code><\/li>\n\n\n\n<li><code>weight<\/code> \u2014 value from 1\u201310<\/li>\n\n\n\n<li><code>status<\/code><\/li>\n\n\n\n<li><code>categories<\/code> \u2014 IAB category codes<\/li>\n\n\n\n<li><code>trackers<\/code> \u2014 VAST tracking pixels for video\/audio creatives<\/li>\n\n\n\n<li><code>code<\/code><\/li>\n\n\n\n<li><code>language<\/code><\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Upload Using JSON<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Paste a JSON array containing one object per creative into Pontiac Assistant.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[<br>{<br>&#8220;advertiserId&#8221;: 966,<br>&#8220;name&#8221;: &#8220;Brand Video 30s &#8211; VAST&#8221;,<br>&#8220;creativeType&#8221;: &#8220;video&#8221;,<br>&#8220;vastTag&#8221;: &#8220;<a href=\"https:\/\/example.com\/vast\/spot30.xml\">https:\/\/example.com\/vast\/spot30.xml<\/a>&#8220;,<br>&#8220;duration&#8221;: 30,<br>&#8220;creativeSizes&#8221;: [<br>{<br>&#8220;width&#8221;: 640,<br>&#8220;height&#8221;: 480<br>}<br>],<br>&#8220;weight&#8221;: 1<br>},<br>{<br>&#8220;advertiserId&#8221;: 966,<br>&#8220;name&#8221;: &#8220;Podcast Audio 15s&#8221;,<br>&#8220;creativeType&#8221;: &#8220;audio&#8221;,<br>&#8220;vastTag&#8221;: &#8220;<a href=\"https:\/\/example.com\/vast\/audio15.xml\">https:\/\/example.com\/vast\/audio15.xml<\/a>&#8220;,<br>&#8220;duration&#8221;: 15<br>},<br>{<br>&#8220;advertiserId&#8221;: 966,<br>&#8220;name&#8221;: &#8220;300&#215;250 Ad Tag&#8221;,<br>&#8220;creativeType&#8221;: &#8220;display&#8221;,<br>&#8220;creativeData&#8221;: &#8220;&#8221;,<br>&#8220;duration&#8221;: 0,<br>&#8220;creativeSizes&#8221;: [<br>{<br>&#8220;width&#8221;: 300,<br>&#8220;height&#8221;: 250<br>}<br>],<br>&#8220;clickUrl&#8221;: &#8220;<a href=\"https:\/\/example.com\/landing\">https:\/\/example.com\/landing<\/a>&#8220;<br>}<br>]<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">UI Walkthrough<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Assistant Prompt:<br>can you bulk upload these third party creatives to advertiser id 966:<br>JSON:<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">[<br>{&#8220;advertiserId&#8221;:966,&#8221;name&#8221;:&#8221;Brand Video 30s &#8211; VAST&#8221;,&#8221;creativeType&#8221;:&#8221;video&#8221;,&#8221;vastTag&#8221;:&#8221;<a href=\"https:\/\/example.com\/vast\/spot30.xml%22,%22duration%22:30,%22creativeSizes%22:%5B%7B%22width%22:640,%22height%22:480%7D%5D,%22weight%22:1%7D\">https:\/\/example.com\/vast\/spot30.xml&#8221;,&#8221;duration&#8221;:30,&#8221;creativeSizes&#8221;:[{&#8220;width&#8221;:640,&#8221;height&#8221;:480}],&#8221;weight&#8221;:1}<\/a>,<br>{&#8220;advertiserId&#8221;:966,&#8221;name&#8221;:&#8221;Podcast Audio 15s&#8221;,&#8221;creativeType&#8221;:&#8221;audio&#8221;,&#8221;vastTag&#8221;:&#8221;<a href=\"https:\/\/example.com\/vast\/audio15.xml%22,%22duration%22:15,%22creativeSizes%22:%5B%7B%22width%22:1,%22height%22:1%7D%5D%7D\">https:\/\/example.com\/vast\/audio15.xml&#8221;,&#8221;duration&#8221;:15,&#8221;creativeSizes&#8221;:[{&#8220;width&#8221;:1,&#8221;height&#8221;:1}]}<\/a><br>{&#8220;advertiserId&#8221;:966,&#8221;name&#8221;:&#8221;300&#215;250 Ad Tag&#8221;,&#8221;creativeType&#8221;:&#8221;display&#8221;,&#8221;creativeData&#8221;:&#8221;&#8221;,&#8221;duration&#8221;:0,&#8221;creativeSizes&#8221;:[{&#8220;width&#8221;:300,&#8221;height&#8221;:250}],&#8221;clickUrl&#8221;:&#8221;<a href=\"https:\/\/example.com\/landing%22%7D\">https:\/\/example.com\/landing&#8221;}<\/a><br>]<\/p>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>Assistant Response:<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"497\" height=\"724\" src=\"https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/10\/Screenshot-2026-10-05-094308.png\" alt=\"\" class=\"wp-image-15684\" srcset=\"https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/10\/Screenshot-2026-10-05-094308.png 497w, https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/10\/Screenshot-2026-10-05-094308-206x300.png 206w\" sizes=\"auto, (max-width: 497px) 100vw, 497px\" \/><\/figure>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>UI Verification<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"221\" src=\"https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/10\/Screenshot-2026-10-05-094419-1024x221.png\" alt=\"\" class=\"wp-image-15685\" srcset=\"https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/10\/Screenshot-2026-10-05-094419-1024x221.png 1024w, https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/10\/Screenshot-2026-10-05-094419-300x65.png 300w, https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/10\/Screenshot-2026-10-05-094419-765x165.png 765w, https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/10\/Screenshot-2026-10-05-094419-1536x331.png 1536w, https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/10\/Screenshot-2026-10-05-094419.png 1659w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The three creatives were successfully uploaded to the Advertiser. In the example shown, the creatives were rejected for testing purposes. In a standard upload, newly uploaded creatives will display a <strong>Pending<\/strong> status while they go through the normal creative audit process and will update once approved.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Upload Using CSV<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">CSV uploads must include a header row. Each creative should be entered as a separate row.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">advertiserId,name,creativeType,vastTag,creativeData,clickUrl,duration,creativeSizes,weight<br>966,Brand Video 30s &#8211; VAST,video,<a href=\"https:\/\/example.com\/vast\/spot30.xml,,,30,640x480,1\">https:\/\/example.com\/vast\/spot30.xml,,,30,640&#215;480,1<\/a><br>966,Podcast Audio 15s,audio,<a href=\"https:\/\/example.com\/vast\/audio15.xml,,,15\">https:\/\/example.com\/vast\/audio15.xml,,,15<\/a>,,<br>966,300&#215;250 Ad Tag,display,,&#8221;&#8221;,<a href=\"https:\/\/example.com\/landing,0,300x250\">https:\/\/example.com\/landing,0,300&#215;250<\/a>,<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">CSV Formatting<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">When including multiple values within a CSV field:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Creative Sizes:<\/strong> separate multiple sizes with semicolons.<br>Example: <code>640x480;300x250<\/code><\/li>\n\n\n\n<li><strong>Trackers:<\/strong> use <code>type|url<\/code> pairs separated by semicolons.<br>Example: <code>imps|https:\/\/track.example.com\/imp;clicks|https:\/\/track.example.com\/click<\/code><\/li>\n\n\n\n<li><strong>Categories:<\/strong> separate multiple IAB category codes with semicolons.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Once the manifest is ready, paste it into <strong>Pontiac Assistant<\/strong> and submit it to begin the bulk creative upload.<\/p>\n","protected":false},"author":17,"featured_media":0,"parent":9800,"menu_order":7,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_is_vendor_doc":"0","footnotes":""},"doc_tag":[],"class_list":["post-15680","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\/15680","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=15680"}],"version-history":[{"count":6,"href":"https:\/\/wiki.pontiac.media\/index.php?rest_route=\/wp\/v2\/docs\/15680\/revisions"}],"predecessor-version":[{"id":15698,"href":"https:\/\/wiki.pontiac.media\/index.php?rest_route=\/wp\/v2\/docs\/15680\/revisions\/15698"}],"up":[{"embeddable":true,"href":"https:\/\/wiki.pontiac.media\/index.php?rest_route=\/wp\/v2\/docs\/9800"}],"next":[{"title":"Creative Malicious Intent Test","link":"https:\/\/wiki.pontiac.media\/?docs=ctv-documentation\/creative-specs\/creative-malicious-intent-test","href":"https:\/\/wiki.pontiac.media\/index.php?rest_route=\/wp\/v2\/docs\/13178"}],"prev":[{"title":"Edit Creatives","link":"https:\/\/wiki.pontiac.media\/?docs=ctv-documentation\/creative-specs\/edit-creatives","href":"https:\/\/wiki.pontiac.media\/index.php?rest_route=\/wp\/v2\/docs\/10372"}],"wp:attachment":[{"href":"https:\/\/wiki.pontiac.media\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=15680"}],"wp:term":[{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/wiki.pontiac.media\/index.php?rest_route=%2Fwp%2Fv2%2Fdoc_tag&post=15680"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}