{"id":14271,"date":"2026-08-07T17:37:17","date_gmt":"2026-08-07T17:37:17","guid":{"rendered":"https:\/\/wiki.pontiac.media\/?docs=analytics-documentation\/user-defined-models\/new-udm-set-up"},"modified":"2026-08-07T22:43:03","modified_gmt":"2026-08-07T22:43:03","slug":"new-udm-set-up","status":"publish","type":"docs","link":"https:\/\/wiki.pontiac.media\/?docs=analytics-documentation\/user-defined-models\/new-udm-set-up","title":{"rendered":"New UDM Set Up"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">To upload your UDM file, follow the following steps:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"294\" src=\"https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-07-at-10.35.04-AM-1024x294.png\" alt=\"\" class=\"wp-image-14274\" srcset=\"https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-07-at-10.35.04-AM-1024x294.png 1024w, https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-07-at-10.35.04-AM-300x86.png 300w, https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-07-at-10.35.04-AM-768x220.png 768w, https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-07-at-10.35.04-AM-1536x441.png 1536w, https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-07-at-10.35.04-AM-2048x587.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Navigate to the <strong>UDM<\/strong> tab and click <strong>New Model<\/strong>.<\/li>\n\n\n\n<li>Enter the model&#8217;s name and then click Create.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"554\" src=\"https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-07-at-10.42.16-AM-1024x554.png\" alt=\"\" class=\"wp-image-14276\" srcset=\"https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-07-at-10.42.16-AM-1024x554.png 1024w, https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-07-at-10.42.16-AM-300x162.png 300w, https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-07-at-10.42.16-AM-768x416.png 768w, https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-07-at-10.42.16-AM-1536x831.png 1536w, https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-07-at-10.42.16-AM-370x200.png 370w, https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-07-at-10.42.16-AM.png 1840w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>Upload a file that meet&#8217;s the following conditions:\n<ul class=\"wp-block-list\">\n<li>File Type: JSON or CSV<\/li>\n\n\n\n<li>Limit: 15,000 entries.<\/li>\n\n\n\n<li>File Detection: A first character of <code>[<\/code> or <code>{<\/code> is read as JSON. Anything else is read as CSV. The file extension is ignored.<\/li>\n\n\n\n<li>Scores:\u00a0Must be between <code>-1<\/code> and <code>1<\/code>. Scores are relative, not absolute. Reserve values near \u00b11 for the strongest signals. <\/li>\n\n\n\n<li>Score of 0: Valid and not ignored. It counts as a match and pulls the combined result toward the neutral midpoint. If no influence is intended, omit the entry instead.<\/li>\n\n\n\n<li>Formatting Entries: Values are lowercased and trimmed on both sides, so casing and surrounding spaces never matter. Nothing else is normalised \u2014 the comparison is otherwise exact.<\/li>\n\n\n\n<li>Missing Entries: Entries whose value is&nbsp;&#8220;_missing_&#8221;, &#8220;missing&#8221;, &#8220;nan&#8221;, &#8220;none&#8221;, &#8220;null&#8221;&nbsp;or empty are dropped \u2014 the bidder never sends those, so they could never match.<\/li>\n\n\n\n<li>Field Weights: Optional. JSON models may include a <code>field_weights<\/code> map. CSV models may include field-weight rows using the <code>weight<\/code> column.<\/li>\n\n\n\n<li>See the sections above for accepted fields and model-entry formats.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\">JSON Example<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Without custom field weights, the existing JSON array format remains unchanged:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">[\n  {\n    \"feature\": \"geo_zip\",\n    \"value\": \"10025\",\n    \"score\": 0.95\n  },\n  {\n    \"feature\": \"device_type\",\n    \"value\": \"4\",\n    \"score\": 0.3\n  },\n  {\n    \"feature\": \"publisher_name\",\n    \"value\": \"iheartmedia\",\n    \"score\": 0.4\n  },\n  {\n    \"feature1\": \"geo_zip\",\n    \"feature2\": \"device_type\",\n    \"combination\": \"10025 \u00d7 4\",\n    \"score\": 0.9\n  },\n  {\n    \"feature1\": \"geo_zip\",\n    \"feature2\": \"publisher_name\",\n    \"feature3\": \"device_type\",\n    \"combination\": \"10025 \u00d7 iheartmedia \u00d7 4\",\n    \"score\": 0.85\n  }\n]<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Notes<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Combination values are separated by <code>x<\/code> and must appear in the same order as the feature keys.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">CSV Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\">feature,value,feature1,feature2,feature3,combination,score\ngeo_zip,10025,,,,,0.95\ndevice_type,4,,,,,0.30\npublisher_name,iheartmedia,,,,,0.40\n,,geo_zip,device_type,,10025 \u00d7 4,0.90\n,,geo_zip,publisher_name,device_type,10025 \u00d7 iheartmedia \u00d7 4,0.85<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Notes<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Extra columns are ignored, so a value_rankings or 2way_combinations export from any report can be edited and uploaded as-is \u2014 add a &#8216;feature&#8217; column to a value_rankings file to say which field its values belong to.<\/li>\n\n\n\n<li>Combination values are separated by <code>x<\/code> and must appear in the same order as the feature keys.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Field Groups and Values<\/h4>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Field<\/th><th class=\"has-text-align-left\" data-align=\"left\">Group<\/th><th class=\"has-text-align-left\" data-align=\"left\">How to write the value<\/th><\/tr><\/thead><tbody><tr><td><code>geo_region<\/code><\/td><td>Geography<\/td><td>Lowercase, exactly as it appears in the logs.<\/td><\/tr><tr><td><code>geo_zip<\/code><\/td><td>Geography<\/td><td>Postal code as it appears in the logs. US ZIPs must keep their leading zero (&#8216;04501&#8217;). Non-US formats are fine (&#8216;1000-001&#8217;, &#8216;SW1A 1AA&#8217;).<\/td><\/tr><tr><td><code>publisher_name<\/code><\/td><td>Inventory<\/td><td>Lowercase, exactly as it appears in the logs.<\/td><\/tr><tr><td><code>site_domain<\/code><\/td><td>Inventory<\/td><td>Lowercase, exactly as it appears in the logs.<\/td><\/tr><tr><td><code>app_bundle<\/code><\/td><td>Inventory<\/td><td>Lowercase, exactly as it appears in the logs.<\/td><\/tr><tr><td><code>exchange<\/code><\/td><td>Inventory<\/td><td>Lowercase, exactly as it appears in the logs.<\/td><\/tr><tr><td><code>deal_id<\/code><\/td><td>Inventory<\/td><td>Lowercase, exactly as it appears in the logs.<\/td><\/tr><tr><td><code>content_channel<\/code><\/td><td>Content<\/td><td>Lowercase, exactly as it appears in the logs.<\/td><\/tr><tr><td><code>content_network<\/code><\/td><td>Content<\/td><td>Lowercase, exactly as it appears in the logs.<\/td><\/tr><tr><td><code>content_series<\/code><\/td><td>Content<\/td><td>Lowercase, exactly as it appears in the logs.<\/td><\/tr><tr><td><code>content_title<\/code><\/td><td>Content<\/td><td>Lowercase, exactly as it appears in the logs.<\/td><\/tr><tr><td><code>content_genre<\/code><\/td><td>Content<\/td><td>Lowercase, exactly as it appears in the logs.<\/td><\/tr><tr><td><code>content_livestream<\/code><\/td><td>Content<\/td><td>&#8216;0&#8217; or &#8216;1&#8217;.<\/td><\/tr><tr><td><code>device_type<\/code><\/td><td>Device<\/td><td>IAB code as a whole number \u2014 &#8216;3&#8217;, never &#8216;3.0&#8217; and never &#8216;Connected TV&#8217;.<\/td><\/tr><tr><td><code>day<\/code><\/td><td>Time<\/td><td>Lowercase three-letter code (mon, tue, wed, thu, fri, sat, sun), in UTC.<\/td><\/tr><tr><td><code>hour<\/code><\/td><td>Time<\/td><td>Whole number 0-23, in the user&#8217;s LOCAL time.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>Click the Validate &amp; upload button.<\/li>\n\n\n\n<li>Confirm upload was valid and accepted.\n<ul class=\"wp-block-list\">\n<li>Success Message: Uploaded. Tells the user how many records and how many 1-field, 2-field, and 3-field records the file contains. The model is now live wherever it is already in use.<\/li>\n\n\n\n<li>Replace file: Users can upload a new model that will replace the model everywhere it is already in use. Nothing needs to be re-attached, and a file that fails validation leaves the current one running.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"182\" src=\"https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-07-at-11.04.39-AM-1024x182.png\" alt=\"\" class=\"wp-image-14288\" srcset=\"https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-07-at-11.04.39-AM-1024x182.png 1024w, https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-07-at-11.04.39-AM-300x53.png 300w, https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-07-at-11.04.39-AM-768x137.png 768w, https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-07-at-11.04.39-AM-1536x273.png 1536w, https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-07-at-11.04.39-AM.png 1786w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ol start=\"6\" class=\"wp-block-list\">\n<li>Associate the uploaded model with the desired Campaign or Line by following: <a href=\"https:\/\/wiki.pontiac.media\/?docs=analytics-documentation\/analytics-model-association\">Model Association<\/a><\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"380\" src=\"https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-07-at-11.08.21-AM-1024x380.png\" alt=\"\" class=\"wp-image-14294\" srcset=\"https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-07-at-11.08.21-AM-1024x380.png 1024w, https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-07-at-11.08.21-AM-300x111.png 300w, https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-07-at-11.08.21-AM-768x285.png 768w, https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-07-at-11.08.21-AM-1536x571.png 1536w, https:\/\/wiki.pontiac.media\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-07-at-11.08.21-AM-2048x761.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"author":17,"featured_media":0,"parent":13913,"menu_order":1,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_is_vendor_doc":"0","footnotes":""},"doc_tag":[],"class_list":["post-14271","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\/14271","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=14271"}],"version-history":[{"count":13,"href":"https:\/\/wiki.pontiac.media\/index.php?rest_route=\/wp\/v2\/docs\/14271\/revisions"}],"predecessor-version":[{"id":14334,"href":"https:\/\/wiki.pontiac.media\/index.php?rest_route=\/wp\/v2\/docs\/14271\/revisions\/14334"}],"up":[{"embeddable":true,"href":"https:\/\/wiki.pontiac.media\/index.php?rest_route=\/wp\/v2\/docs\/13913"}],"prev":[{"title":"Overview","link":"https:\/\/wiki.pontiac.media\/?docs=analytics-documentation\/user-defined-models\/overview","href":"https:\/\/wiki.pontiac.media\/index.php?rest_route=\/wp\/v2\/docs\/14269"}],"wp:attachment":[{"href":"https:\/\/wiki.pontiac.media\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=14271"}],"wp:term":[{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/wiki.pontiac.media\/index.php?rest_route=%2Fwp%2Fv2%2Fdoc_tag&post=14271"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}