1"use strict";(self.webpackChunkreddit_ads_api_site=self.webpackChunkreddit_ads_api_site||[]).push([[7367],{3975:(e,a,n)=>{n.d(a,{N:()=>s,T:()=>r});n(96540);var i=n(71765),t=n(74848);function r({code:e,lineKeyPrefix:a}){return(0,t.jsx)(i.Highlight,{theme:i.themes.dracula,code:e,language:"json",children:({tokens:e,getTokenProps:n})=>(0,t.jsx)(t.Fragment,{children:e.map((i,r)=>(0,t.jsxs)("span",{children:[i.map((e,a)=>(0,t.jsx)("span",{...n({token:e})},a)),r<e.length-1?"\n":""]},`${a}-${r}`))})})}function s({code:e,lineKeyPrefix:a}){return e?(0,t.jsx)("span",{children:(0,t.jsx)(r,{code:e,lineKeyPrefix:a})}):null}},4865:(e,a,n)=>{n.d(a,{A:()=>p});n(96540);var i=n(34164),t=n(17559),r=n(47751),s=n(23104),o=n(92303);const l={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var c=n(74848);function d({className:e}){const{selectedValue:a,selectValue:n,tabValues:t,block:o}=(0,r.uc)(),d=[],{blockElementScrollPositionUntilNextRender:u}=(0,s.a_)(),m=e=>{const i=e.currentTarget,r=d.indexOf(i),s=t[r].value;s!==a&&(u(i),n(s))},p=e=>{let a=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=d.indexOf(e.currentTarget)+1;a=d[n]??d[0];break}case"ArrowLeft":{const n=d.indexOf(e.currentTarget)-1;a=d[n]??d[d.length-1];break}}a?.focus()};return(0,c.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.A)("tabs",{"tabs--block":o},e),children:t.map(({value:e,label:n,attributes:t})=>(0,c.jsx)("li",{role:"tab",tabIndex:a===e?0:-1,"aria-selected":a===e,ref:e=>{d.push(e)},onKeyDown:p,onClick:m,...t,className:(0,i.A)("tabs__item",l.tabItem,t?.className,{"tabs__item--active":a===e}),children:n??e},e))})}function u({children:e}){return(0,c.jsx)("div",{className:"margin-top--md",children:e})}function m({className:e,children:a}){return(0,c.jsxs)("div",{className:(0,i.A)(t.G.tabs.container,"tabs-container",l.tabList),
1children:[(0,c.jsx)(d,{className:e}),(0,c.jsx)(u,{children:a})]})}function p(e){const a=(0,o.default)(),n=(0,r.OC)(e);return(0,c.jsx)(r.O_,{value:n,children:(0,c.jsx)(m,{className:e.className,children:(0,r.vT)(e.children)})},String(a))}},12849:(e,a,n)=>{n.d(a,{Ay:()=>f});var i=n(96540),t=n(56555),r=n(26434);function s(e){let a=e;return a=a.replace(/\n\s*"screen_dimensions"\s*:\s*\{\s*\}\s*,?/g,"\n"),a=a.replace(/\n\s*"products"\s*:\s*\[\s*\{\s*\}\s*\]\s*,?/g,"\n"),a=a.replace(/\n\s*"user"\s*:\s*\{\s*\}\s*,?/g,"\n"),a=a.replace(/\n\s*"metadata"\s*:\s*\{\s*\}\s*,?/g,"\n"),a=a.replace(/\s*"destination"\s*:\s*\{\s*"url"\s*:\s*"",\s*"type"\s*:\s*"URL"\s*\}\s*,?/g,""),a=a.replace(/\s*"thumbnail"\s*:\s*\{\s*"media"\s*:\s*\{\s*"url"\s*:\s*"",\s*"type"\s*:\s*"URL"\s*\}\s*\}\s*,?/g,""),a=a.replace(/\n\s*"schedule"\s*:\s*\{\s*\}\s*,?/g,"\n"),a}function o(e,a){return a?.[e]?a[e]:e.charAt(0).toLowerCase()+e.slice(1)}var l=n(27774);function c(e){const{template:a,uniqueVariables:n,values:i,selectedOptions:t,variableOptions:r,optionalVariables:c,optionalVariableJsonKeys:d,allVariablesOptional:u,omitOptionalUnlessControllerAllows:m}=e;let p=a;n.forEach(e=>{let a;if(r[e.name]){const n=r[e.name];a=(0,l.sW)(n,t[e.name])}else a=i[e.name]||"";p=p.replaceAll(e.placeholder,a)}),m?.forEach(e=>{if(!(0,l._c)(e.controllerVariableName,e.allowValues,r,t,i)){const a=o(e.optionalVariableName,d);p=function(e,a){const n=a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");let i=e.replace(new RegExp(`,\\s*\\n\\s*"${n}"\\s*:\\s*"[^"]*"`,"g"),"");return i=i.replace(new RegExp(`\\n\\s*"${n}"\\s*:\\s*"[^"]*"\\s*,`,"g"),"\n"),i=i.replace(new RegExp(`\\n\\s*"${n}"\\s*:\\s*"[^"]*"\\s*\\n`,"g"),"\n"),i}(p,a)}});(u?n.map(e=>e.name):c).forEach(e=>{let a;if(a=r[e]?(0,l.sW)(r[e],t[e]):i[e]||"",!a.trim()){const a=o(e,d);p=function(e,a){const n=a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");let i=e.replace(new RegExp(`,\\s*\\n\\s*"${n}"\\s*:\\s*""`,"g"),"");return i=i.replace(new RegExp(`\\n\\s*"${n}"\\s*:\\s*""\\s*,`,"g"),"\n"),i=i.replace(new RegExp(`\\n\\s*"${n}"\\s*:\\s*""\\s*\\n`,"g"),"\n"),i=i.replace(new RegExp(`\\n\\s*"${n}"\\s*:\\s*,`,"g"),"\n"),i}(p,a)}});if(u||c.length>0||(m?.length??0)>0){for(let e=0;e<4;e+=1)p=s(p);p=function(e){let a=e,n="";for(;n!==a;)n=a,a=a.replace(/,(\s*[}\]])/g,"$1"),a=a.replace(/}(\s*),(\s*\r?\n\s*)(})/g,"}$1$2$3");return a}(p)}return p}var d=n(54233),u=n(71765);var m=n(31988),p=n(74848);function A(e,a,n){return e?(0,p.jsx)(u.Highlight,{theme:u.themes.dracula,code:e,language:n,children:({tokens:e,getTokenProps:n})=>(0,p.jsx)(p.Fragment,{children:e.map((i,t)=>(0,p.jsxs)("span",{children:[i.map((e,i)=>(0,p.jsx)("span",{...n({token:e})},`${a}-${t}-${i}`)),t<e.length-1&&"\n"]},`${a}-line-${t}`))})}):null}function h(e){const{template:a,variables:n,language:i,variableOptions:r,variableDescriptions:s,values:o,selectedOptions:c,activeDropdown:d,setActiveDropdown:u,dateTimeSet:h,listboxIdPrefix:f,triggerRefs:g,finishCloseDropdown:b,handleValueChange:x,handleOptionToggle:y,disableTextUnlessControllerAllows:v}=e,C=[];let j=0;if([...n].sort((e,a)=>e.start-a.start).forEach((e,n)=>{if(e.start>j){const r=a.slice(j,e.start);C.push((0,p.jsx)("span",{className:t.A.codeText,children:A(r,`seg-${n}`,i)},`text-${n}`))}const _=!!r[e.name],w=(0,l.On)(e.name,r,c),S=_?c[e.name]?.size>0:!!o[e.name]?.trim();if(_){const a=`${e.name}-${n}`,i=`${f}-lb-${n}`;C.push((0,p.jsxs)("span",{className:t.A.inlineFieldWrapper,children:[(0,p.jsxs)("button",{ref:e=>{g.current[a]=e},type:"button",className:`${t.A.inlineDropdownTrigger} ${S?t.A.filled:""}`,"aria-haspopup":"listbox","aria-expanded":d===a,"aria-controls":i,onClick:()=>u(d===a?null:a),children:[w,(0,p.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,p.jsx)("path",{d:"M2 4L5 7L8 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})]}),d===a&&(0,p.jsx)(m.b,{variable:e.name,config:r[e.name],variableDescriptions:s,selected:c[e.name]||new Set,onToggle:n=>y(e.name,n,a),onClose:()=>b(a),triggerRefKey:a,triggerRefs:g,listboxId:i})]},`var-${n}`))}else if(h.has(e.name)){const a=function(e){const a=new Date(e.trim());if(Number.isNaN(a.getTime()))return"";const n=e=>String(e).padStart(2,"0");return`${a.getFullYear()}-${n(a.getMonth()+1)}-${n(a.getDate())}T${n(a.getHours())}:${n(a.getMinutes())}:${n(a.getSeconds())}`}(o[e.name]||""),i=`cb-dt-cols-${n}`,r=(0,l.bY)(e.name,s,"Shown in your local time and date format; copied as UTC (ISO 8601 ending in Z). Calendar = date; the three columns are hour, minute, second (24-hour).");C.push((0,p.jsx)("span",{className:t.A.inlineFieldWrapper,children:(0,p.jsxs)("span",{className:t.A.inlineDatetimeStack,children:[(0,p.jsxs)("div",{id:i,className:t.A.datetimeLegendRow,children:[(0,p.jsx)("div",{className:t.A.datetimeLegendDateSlot,children:(0,p.jsx)("span",{className:t.A.datetimeNativeColumnLegend,children:"Date"})}),(0,p.jsx)("span",{className:t.A.datetimeNativeColumnLegend,children:"hh : min : s"})]}),(0,p.jsx)("input",{type:"datetime-local",step:1,className:`${t.A.inlineDatetimeInput} ${S?t.A.filled:""}`,value:a,onChange:a=>{const n=a.target.value;x(e.name,n?function(e){const a=new Date(e);return Number.isNaN(a.getTime())?"":a.toISOString().replace(/\.\d+Z$/,"Z")}(n):"")},title:r,"aria-label":r,"aria-describedby":i,autoComplete:"off","data-1p-ignore":!0,"data-lpignore":"true"})]})},`var-${n}`))}else{const a=(0,l.Z7)(e.name),i=(0,l.bY)(e.name,s),d=v?.find(a=>
1a.variableName===e.name),u=!!d&&!(0,l._c)(d.controllerVariableName,d.allowValues,r,c,o);C.push((0,p.jsx)("span",{className:t.A.inlineFieldWrapper,children:(0,p.jsx)("input",{type:"text",className:`${t.A.inlineInput} ${S?t.A.filled:""}`,value:o[e.name],onChange:a=>x(e.name,a.target.value),placeholder:a,title:i,"aria-label":i,disabled:u,style:{width:`${Math.max(a.length,o[e.name]?.length||0)+2}ch`},autoComplete:"off","data-1p-ignore":!0,"data-lpignore":"true"})},`var-${n}`))}j=e.end}),j<a.length){const e=a.slice(j);C.push((0,p.jsx)("span",{className:t.A.codeText,children:A(e,"seg-end",i)},"text-end"))}return C}function f({template:e,title:a="Command Builder",description:n,variableDescriptions:s={},defaultValues:o={},variableOptions:l={},language:u="bash",optionalVariables:m=[],optionalVariableJsonKeys:A,allVariablesOptional:f=!1,dateTimeVariables:g=[],omitOptionalUnlessControllerAllows:b,disableTextUnlessControllerAllows:x}){const y=(0,i.useMemo)(()=>new Set(m),[m]),v=(0,i.useMemo)(()=>new Set(g),[g]),C=(0,i.useMemo)(()=>{const a=/\{\{([^}]+)\}\}/g,n=[],i=new Set;let t;for(;null!==(t=a.exec(e));){const e=t[1].trim();i.has(e)||i.add(e),n.push({name:e,placeholder:t[0],start:t.index,end:t.index+t[0].length})}return n},[e]),j=(0,i.useMemo)(()=>{const e=new Set;return C.filter(a=>!e.has(a.name)&&(e.add(a.name),!0))},[C]),[_,w]=(0,i.useState)(()=>{const e={};return j.forEach(a=>{e[a.name]=o[a.name]||""}),e}),[S,E]=(0,i.useState)(()=>{const e={};return Object.keys(l).forEach(a=>{const n=o[a];if(n){const i=l[a].separator||",";e[a]=new Set(n.split(i).map(e=>e.trim()))}else e[a]=new Set}),e}),[k,N]=(0,i.useState)(null),[T,B]=(0,i.useState)(!1),[M,P]=(0,i.useState)(!1),D=(0,i.useRef)({}),L=(0,i.useId)(),I=(0,i.useCallback)(e=>{N(null),e&&requestAnimationFrame(()=>{D.current[e]?.focus()})},[]);(0,i.useEffect)(()=>{const e=e=>{"Escape"===e.key&&(k?I(k):P(!1))};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[k,I]);const F=(0,i.useMemo)(()=>!!f||j.every(e=>!!y.has(e.name)||(l[e.name]?S[e.name]?.size>0:_[e.name]?.trim())),[f,j,_,S,l,y]),R=(0,i.useCallback)(()=>{w(()=>{const e={};return j.forEach(a=>{e[a.name]=""}),e}),E(()=>{const e={};return Object.keys(l).forEach(a=>{e[a]=new Set}),e})},[j,l]),O=(0,i.useCallback)(()=>{w(()=>{const e={};return j.forEach(a=>{e[a.name]=o[a.name]||""}),e}),E(()=>{const e={};return Object.keys(l).forEach(a=>{const n=o[a];if(n){const i=l[a].separator||",";e[a]=new Set(n.split(i).map(e=>e.trim()))}else e[a]=new Set}),e})},[j,l,o]),G=(0,i.useCallback)((e,a)=>{w(n=>({...n,[e]:a}))},[]),U=(0,i.useCallback)((e,a,n)=>{const i=l[e],t=!1!==i?.multiSelect;E(n=>{if(t){const i=new Set(n[e]||[]);return i.has(a)?i.delete(a):i.add(a),{...n,[e]:i}}return{...n,[e]:new Set([a])}}),!t&&n&&I(n)},[l,I]),$=(0,i.useCallback)(async()=>{if(!F)return;const a=c({template:e,uniqueVariables:j,values:_,selectedOptions:S,variableOptions:l,optionalVariables:m,optionalVariableJsonKeys:A,allVariablesOptional:f,omitOptionalUnlessControllerAllows:b});await(0,d.l)(a),B(!0),setTimeout(()=>B(!1),2e3)},[e,j,_,S,l,F,m,A,f,b]);return(0,p.jsx)(r.Y,{title:a,description:n,language:u,warningBadge:F?null:(0,p.jsx)("span",{className:t.A.warningBadge,children:m.length>0?"Fill required fields":"Fill all fields"}),showClearReset:j.length>0,onClear:R,onReset:O,canCopy:F,copied:T,onCopy:$,isExpanded:M,onExpand:()=>P(!0),onCloseFullscreen:()=>P(!1),renderCode:()=>h({template:e,variables:C,language:u,variableOptions:l,variableDescriptions:s,values:_,selectedOptions:S,activeDropdown:k,setActiveDropdown:N,dateTimeSet:v,listboxIdPrefix:L,triggerRefs:D,finishCloseDropdown:I,handleValueChange:G,handleOptionToggle:U,disableTextUnlessControllerAllows:x})})}n(54690),n(27142),n(53963)},13856:(e,a,n)=>{n.d(a,{A:()=>c});var i=n(96540),t=n(26434),r=n(53963),s=n(54233),o=n(74848);const l=2e3;function c({copyText:e,canCopy:a,...n}){const[c,d]=(0,i.useState)(!1),[u,m]=(0,i.useState)(!1),p=(0,i.useCallback)(async()=>{a&&(await(0,s.l)(e),d(!0),setTimeout(()=>d(!1),l))},[a,e]);return(0,r.i)(u,()=>m(!1)),(0,o.jsx)(t.Y,{...n,extendedAssistLayout:!0,canCopy:a,copied:c,onCopy:p,isExpanded:u,onExpand:()=>m(!0),onCloseFullscreen:()=>m(!1)})}},26434:(e,a,n)=>{n.d(a,{Y:()=>m});var i=n(96540),t=n(86856),r=n(56555),s=n(54690),o=n(74848);const l={"aria-label":"Clear all fields",title:"Empty every field and dropdown so you can paste your own values"},c={"aria-label":"Restore default example values",title:"Restore the page\u2019s example defaults"};function d({canCopy:e,copied:a,onCopy:n,copyDisabledTitle:i,copyTitle:s="Copy to clipboard",copyAriaLabel:l}){const c=e?a?"Copied!":s:i??s,d=l??(a?"Copied":"Copy to clipboard");return(0,o.jsx)("button",{type:"button",className:`${r.A.copyButton} ${a?r.A.copied:""} ${e?"":r.A.disabled}`,onClick:n,disabled:!e,"aria-label":d,title:c,children:a?(0,o.jsx)(t.Ay,{glyph:"checkmark",label:"",size:"md",width:18,height:18}):(0,o.jsx)(t.Ay,{glyph:"duplicate",label:"",size:"md",width:18,height:18})})}function u({clearButton:e,resetButton:a,onClear:n,onReset:i}){return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("button",{type:"button",className:r.A.toolbarLinkButton,onClick:n,"aria-label":e["aria-label"],title:e.title,children:"Clear"}),(0,o.jsx)("button",{type:"button",className:r.A.toolbarLinkButton,onClick:i,"aria-label":a["aria-label"],title:a.title,children:"Reset"})]})}function m({title:e,description:a,language:n="bash",warningBadge:m,fullscreenWarningBadge:p,repeatWarningInFullscreen:A=!1,showClearReset:h=!0,onClear:f,onReset:g,clearButton:b=l,resetButton:x=c,canCopy:y,copied:v,onCopy:C,copyDisabledTitle:j,copyTitle:_="Copy to clipboard",copyAriaLabel:w,isExpanded:S,onExpand:E,onCloseFullscreen:k,fullscreenTitle:N,renderCode:T,afterInlineCode:B,afterFullscreenCode:M,betweenCodeAndAssist:P,children:D,extendedAssistLayout:L=!1}){const I=N??e,F=p??(A?m:null);return(0,i.useEffect)(()=>{const e=S?window.scrollY:0;return S&&Object.assign(document.body.style,{position:"fixed",top:`-${e}px`,left:"0",right:"0",width:"100%"}),()=>{S&&(Object.assign(document.body.style,{position:"",top:"",left:"",right:"",width:""}),window.scrollTo(0,e))}},[S]),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)("div",{className:r.A.container,children:[(0,o.jsx)("div",{className:r.A.header,children:(0,o.jsxs)("div",{className:r.A.headerLeft,children:[(0,o.jsx)("h3",{className:r.A.title,children:e}
1),a?(0,o.jsx)("div",{className:r.A.description,children:a}):null]})}),(0,o.jsxs)("div",{className:r.A.inlineCodeSection,children:[(0,o.jsxs)("div",{className:r.A.inlineToolbar,children:[(0,o.jsx)("span",{className:r.A.languageTag,children:n}),(0,o.jsxs)("div",{className:r.A.toolbarActions,children:[m,h&&(0,o.jsx)(u,{clearButton:b,resetButton:x,onClear:f,onReset:g}),(0,o.jsx)("button",{type:"button",className:r.A.expandButton,onClick:E,"aria-label":"Expand",title:"Expand",children:(0,o.jsx)(t.Ay,{glyph:"expandRight",label:"",size:"md",width:18,height:18})}),(0,o.jsx)(d,{canCopy:y,copied:v,onCopy:C,copyDisabledTitle:j,copyTitle:_,copyAriaLabel:w})]})]}),(0,o.jsxs)("div",{className:`${r.A.inlineCodeBlock} ${L?r.A.inlineCodeBlockJoinAssist:""}`,children:[(0,o.jsx)("pre",{className:r.A.inlinePre,children:(0,o.jsx)("code",{className:r.A.inlineCode,children:T("inline")})}),B]})]}),P,D]}),S&&(0,o.jsx)("div",{className:r.A.fullscreenOverlay,onClick:k,children:(0,o.jsxs)("div",{className:r.A.fullscreenContent,onClick:e=>e.stopPropagation(),children:[(0,o.jsxs)("div",{className:r.A.fullscreenHeader,children:[(0,o.jsx)("span",{className:r.A.fullscreenTitle,children:I}),(0,o.jsxs)("div",{className:r.A.toolbarActions,children:[F,h&&(0,o.jsx)(u,{clearButton:b,resetButton:x,onClear:f,onReset:g}),(0,o.jsx)(d,{canCopy:y,copied:v,onCopy:C,copyDisabledTitle:j,copyTitle:_,copyAriaLabel:w}),(0,o.jsx)("button",{type:"button",className:r.A.closeButton,onClick:k,"aria-label":"Close",children:(0,o.jsx)(s.M,{})})]})]}),(0,o.jsxs)("div",{className:r.A.fullscreenBody,children:[(0,o.jsxs)("div",{className:`${r.A.inlineCodeBlock} ${L?r.A.inlineCodeBlockJoinAssist:""}`,children:[(0,o.jsx)("pre",{className:r.A.inlinePre,children:(0,o.jsx)("code",{className:r.A.inlineCode,children:T("fullscreen")})}),M]}),P]})]})})]})}},27142:(e,a,n)=>{n.d(a,{y:()=>t});var i=n(96540);function t(e){(0,i.useEffect)(()=>{if(!e)return;const a=window.scrollY;return Object.assign(document.body.style,{position:"fixed",top:`-${a}px`,left:"0",right:"0",width:"100%"}),()=>{Object.assign(document.body.style,{position:"",top:"",left:"",right:"",width:""}),window.scrollTo(0,a)}},[e])}},27774:(e,a,n)=>{function i(e,a,n){const i=a[e];if(!i)return"";const t=n[e];if(t?.size>0){if(i.joinAsJsonStringLiterals)return Array.from(t).join(", ");const e=i.separator||",";return Array.from(t).join(e)}return e}function t(e,a){if(!a?.size)return"";const n=Array.from(a);if(e.joinAsJsonStringLiterals)return n.map(e=>JSON.stringify(e)).join(", ");const i=e.separator||",";return n.join(i)}function r(e,a,n,i,r){let s="";return s=n[e]?t(n[e],i[e]):r[e]||"",a.includes(s.trim())}function s(e,a){const n=(a[e]||"").trim(),i=/^\{\{\s*(.+?)\s*\}\}$/.exec(n);if(i){const a=i[1].trim();return a===e.trim()?"":a}return n}function o(e){return`{{${e}}}`}function l(e,a,n){const i=s(e,a),t=o(e),r=i?`${t} \u2014 ${i}`:t;return n?`${r}. ${n}`:r}n.d(a,{On:()=>i,Z7:()=>o,_c:()=>r,bY:()=>l,eo:()=>s,sW:()=>t})},31988:(e,a,n)=>{n.d(a,{b:()=>d});var i=n(96540),t=n(40961),r=n(56555),s=n(86856);function o(e){return e?Array.from(e.querySelectorAll("[data-cb-option]")):[]}var l=n(27774),c=n(74848);function d({variable:e,config:a,variableDescriptions:n,selected:d,onToggle:u,onClose:m,triggerRefKey:p,triggerRefs:A,listboxId:h}){const f=(0,i.useRef)(null),g=(0,i.useId)(),b=!1!==a.multiSelect,[x,y]=(0,i.useState)({top:0,left:0}),v=(0,i.useCallback)(()=>A.current[p]??null,[p,A]),C=(0,i.useCallback)(()=>{const e=v();if(!e)return;const a=e.getBoundingClientRect(),n=f.current,i=n?.offsetHeight??250,t=n?.offsetWidth??280;let r=window.innerHeight-a.bottom<i&&a.top>i?a.top-i-4:a.bottom+4,s=a.left;s+t>window.innerWidth-8&&(s=Math.max(8,window.innerWidth-t-8)),s<8&&(s=8),r+i>window.innerHeight-8&&(r=Math.max(8,window.innerHeight-i-8)),r<8&&(r=8),y({top:r,left:s})},[v]);(0,i.useLayoutEffect)(()=>{C();const e=requestAnimationFrame(()=>C());return()=>cancelAnimationFrame(e)},[C]),(0,i.useEffect)(()=>{const e=f.current;if(!e)return;let a=0;const n=new ResizeObserver(()=>{a&&cancelAnimationFrame(a),a=requestAnimationFrame(()=>{a=0,C()})});return n.observe(e),()=>{a&&cancelAnimationFrame(a),n.disconnect()}},[C]),(0,i.useEffect)(()=>{const e=v();if(!e)return;const a=()=>C(),n=function(e){const a=[];let n=e?.parentElement??null;for(;n;){const e=window.getComputedStyle(n),i=e.overflowY,t=e.overflowX;(/^(auto|scroll|overlay)$/.test(i)||/^(auto|scroll|overlay)$/.test(t))&&a.push(n),n=n.parentElement}return a}(e);for(const i of n)i.addEventListener("scroll",a,{passive:!0});return window.addEventListener("scroll",a,{passive:!0}),window.addEventListener("resize",a),()=>{for(const e of n)e.removeEventListener("scroll",a);window.removeEventListener("scroll",a),window.removeEventListener("resize",a)}},[C,v]),(0,i.useLayoutEffect)(()=>{const e=f.current;if(!e)return;const a=o(e),n=a.find(e=>d.has(e.dataset.cbOptionValue??""))??a[0];n?.focus()},[]),(0,i.useEffect)(()=>{const e=e=>{const a=e.target;f.current&&!f.current.contains(a)&&v()&&!v().contains(a)&&m()};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[m,v]),(0,i.useEffect)(()=>{const e=f.current;if(!e)return;const a=a=>{const n=o(e),i=e.querySelector("[data-cb-done]"),t=document.activeElement;if("Tab"===a.key){const e=b&&i?[...n,i]:n;
1if(0===e.length)return;const r=t?e.indexOf(t):-1;return void(a.shiftKey?r<=0&&(a.preventDefault(),v()?.focus()):r===e.length-1&&(a.preventDefault(),e[0]?.focus()))}if("ArrowDown"===a.key||"ArrowUp"===a.key){if(0===n.length)return;const e=t?n.indexOf(t):-1;if(e<0)return void(t===i&&(a.preventDefault(),"ArrowDown"===a.key?n[0]?.focus():n[n.length-1]?.focus()));a.preventDefault();const r=(e+("ArrowDown"===a.key?1:-1)+n.length)%n.length;return void n[r]?.focus()}if("Home"===a.key){if(0===n.length)return;return a.preventDefault(),void n[0]?.focus()}if("End"===a.key){if(0===n.length)return;a.preventDefault(),n[n.length-1]?.focus()}};return e.addEventListener("keydown",a),()=>e.removeEventListener("keydown",a)},[v,b]);const j=a.description&&a.description.trim()||(0,l.eo)(e,n),_=(0,c.jsxs)("div",{ref:f,id:h,role:"listbox","aria-multiselectable":b,"aria-labelledby":g,className:r.A.dropdown,style:{top:x.top,left:x.left},children:[(0,c.jsxs)("div",{className:r.A.dropdownHeader,children:[(0,c.jsx)("span",{id:g,className:r.A.dropdownTitle,children:e}),j?(0,c.jsx)("span",{className:r.A.dropdownDesc,children:j}):null]}),(0,c.jsx)("div",{className:r.A.dropdownOptions,children:a.options.map(e=>{const a=d.has(e);return(0,c.jsxs)("button",{type:"button","data-cb-option":!0,"data-cb-option-value":e,role:"option","aria-selected":a,className:`${r.A.dropdownOption} ${a?r.A.selected:""}`,onClick:()=>u(e),children:[(0,c.jsx)("span",{className:r.A.optionIcon,children:(0,c.jsx)(s.Ay,{label:"",size:"md",glyph:b?a?"checkboxFill":"checkbox":a?"radioButtonFill":"radioButton"})}),(0,c.jsx)("code",{children:e})]},e)})}),b&&(0,c.jsxs)("div",{className:r.A.dropdownFooter,children:[(0,c.jsx)("span",{className:r.A.dropdownHint,children:"Select multiple"}),(0,c.jsx)("button",{type:"button",className:r.A.dropdownDone,"data-cb-done":!0,onClick:m,children:"Done"})]})]});return"undefined"!=typeof document?(0,t.createPortal)(_,document.body):null}},34944:(e,a,n)=>{n.d(a,{Ii:()=>l,Sn:()=>s,pY:()=>o});n(96540);var i=n(56555),t=n(76003),r=n(74848);function s(e){return e?"Fill all required fields":"Fill all fields"}function o(e){return e?(0,r.jsx)("span",{className:i.A.warningBadge,children:e}):null}function l(e,a){return{afterInlineCode:e?(0,r.jsx)("span",{id:a.inline,className:t.A.srOnly,children:e}):null,afterFullscreenCode:e?(0,r.jsx)("span",{id:a.fullscreen,className:t.A.srOnly,children:e}):null}}},53963:(e,a,n)=>{n.d(a,{i:()=>t});var i=n(96540);function t(e,a){const n=(0,i.useRef)(a);n.current=a,(0,i.useEffect)(()=>{if(!e)return;const a=e=>{"Escape"===e.key&&n.current()};return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[e])}},54233:(e,a,n)=>{async function i(e){try{await navigator.clipboard.writeText(e)}catch{const a=document.createElement("textarea");a.value=e,document.body.appendChild(a),a.select(),document.execCommand("copy"),document.body.removeChild(a)}}n.d(a,{l:()=>i})},54690:(e,a,n)=>{n.d(a,{M:()=>t});n(96540);var i=n(74848);function t(){return(0,i.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":!0,children:(0,i.jsx)("path",{d:"M12 4L4 12M4 4L12 12",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})}},56555:(e,a,n)=>{n.d(a,{A:()=>i});const i={container:"container_hZmB",header:"header_sQI7",headerLeft:"headerLeft_VGxn",title:"title_U_Ew",description:"description_Wmmy",inlineCodeSection:"inlineCodeSection_a8nc",inlineToolbar:"inlineToolbar_aFW4",languageTag:"languageTag_PyKi",toolbarActions:"toolbarActions_FDab",toolbarLinkButton:"toolbarLinkButton_mQSt",warningBadge:"warningBadge_VXUW",expandButton:"expandButton_ZA06",copyButton:"copyButton_wn56",copied:"copied_tDqs",disabled:"disabled_Lb_g",inlineCodeBlock:"inlineCodeBlock__tPi",inlineCodeBlockJoinAssist:"inlineCodeBlockJoinAssist_AdVb",inlinePre:"inlinePre_SIvA",inlineCode:"inlineCode_BG5s",inlineFieldWrapper:"inlineFieldWrapper_eT5W",inlineInput:"inlineInput_ADrj",filled:"filled_G3JG",inlineSelect:"inlineSelect_FN4t",inlineDatetimeInput:"inlineDatetimeInput_v5SQ",inlineDatetimeStack:"inlineDatetimeStack_WaRd",datetimeLegendRow:"datetimeLegendRow_iUVS",datetimeLegendDateSlot:"datetimeLegendDateSlot_w7QF",datetimeNativeColumnLegend:"datetimeNativeColumnLegend_aQ25",inlineDropdownTrigger:"inlineDropdownTrigger_x4a0",dropdown:"dropdown_LiwR",dropdownIn:"dropdownIn_yZBQ",dropdownHeader:"dropdownHeader_VXXm",dropdownTitle:"dropdownTitle_WBVK",dropdownDesc:"dropdownDesc_J7Nv",dropdownOptions:"dropdownOptions_m4ii",dropdownOption:"dropdownOption_Klwx",selected:"selected_pUpI",optionIcon:"optionIcon_tSS2",dropdownFooter:"dropdownFooter_wfZN",dropdownHint:"dropdownHint_vBIa",dropdownDone:"dropdownDone_yz5m",fullscreenOverlay:"fullscreenOverlay_SzQp",fadeIn:"fadeIn_HxSH",fullscreenContent:"fullscreenContent_QawN",scaleIn:"scaleIn_Itn7",fullscreenHeader:"fullscreenHeader_dpby",fullscreenTitle:"fullscreenTitle_NJyI",closeButton:"closeButton_jGKn",fullscreenBody:"fullscreenBody_j6tM",slideUp:"slideUp_RIOt"}},63875:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>L,contentTitle:()=>D,default:()=>R,frontMatter:()=>P,metadata:()=>i,toc:()=>I});const i=JSON.parse('{"id":"guides/programs/product-catalogs/catalog-setup","title":"Set Up a Catalog","description":"Create a catalog to use for catalog sales campaigns. Products can either be added using a feed or manual upload.","source":"@site/docs/guides/programs/product-catalogs/catalog-setup.md","sourceDirName":"guides/programs/product-catalogs","slug":"/guides/programs/product-catalogs/catalog-setup","permalink":"/docs/v3/guides/programs/product-catalogs/catalog-setup","draft":false,"unlisted":false,"tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"Set Up a Catalog","sidebar_position":1,"description":"Create a catalog to use for catalog sales campaigns. Products can either be added using a feed or manual upload.","learn_more":{"defaultTab":"campaigns","tabs":[{"label":"Campaigns","value":"campaigns","path":"/docs/v3/guides/programs/campaign/","ids":["/docs/v3/guides/programs/campaign/campaign-setup"]},{"label":"Catalogs","value":"catalogs","path":"/docs/v3/api/product-catalogs","ids":["https://business.reddithelp.com/s/article/catalogs","https://business.reddithelp.com/s/article/dynamic-product-ads","https://business.reddithelp.com/s/article/Product-Ads","https://business.reddithelp.com/s/article/troubleshoot-catalogs"]}]}},"sidebar":"tutorialSidebar","previous":{"title":"Product Catalogs","permalink":"/docs/v3/guides/programs/product-catalogs/"},"next":{"title":"Filter Products","permalink":"/docs/v3/guides/programs/product-catalogs/filter-products"}}');var t=n(74848),r=n(28453),s=n(12849),o=n(96540),l=n(34164),c=n(56555),d=n(76003),u=n(13856),m=n(34944),p=n(3975
1),A=n(54690),h=n(27142),f=n(53963),g=n(86856);const b={modeToggle:"modeToggle_Fr_w",modeBtn:"modeBtn_S2JD",modeBtnActive:"modeBtnActive_f3T4",simpleAssist:"simpleAssist_UmP_",combineFieldset:"combineFieldset_fMeq",combineLegend:"combineLegend_iovB",combineToggle:"combineToggle_Xrfd",combineBtn:"combineBtn_m0rB",combineBtnActive:"combineBtnActive_RqK4",advancedBlock:"advancedBlock_vEUm",advancedLabelRow:"advancedLabelRow_cHaO",advancedLabelFlex:"advancedLabelFlex_YllM",innerFilterFullscreenOverlay:"innerFilterFullscreenOverlay_DeG3",innerFilterFullscreenBody:"innerFilterFullscreenBody_Vi0N",innerFilterFullscreenTextarea:"innerFilterFullscreenTextarea_Zw30",errorText:"errorText_AR9M"},x='{"and":[{"title":{"i_contains":"bowl"}}]}',y="My awesome products",v="{{Product set name}}",C=(0,m.Sn)(!1),j=["id","title","description","price","currency","sale_price","availability","brand","color","gender","product_type","item_group_id","condition","age_group","size","pattern","material","custom_label_0","custom_label_1","custom_label_2","custom_label_3","custom_label_4"],_=["contains","not_contains","i_contains","i_not_contains","starts_with","i_starts_with","is_any","is_not_any","i_is_any","i_is_not_any","eq","neq","lt","lte","gt","gte"];function w(e){return{id:`rule-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`,attribute:e?.attribute??"title",operator:e?.operator??"i_contains",value:e?.value??""}}function S(){return[w({value:"bowl"})]}function E(){const[e,a]=(0,o.useState)(y),[n,i]=(0,o.useState)("simple"),[r,s]=(0,o.useState)("and"),[E,k]=(0,o.useState)(()=>S()),[N,T]=(0,o.useState)(x),B=(0,o.useMemo)(()=>{if("advanced"===n)try{return JSON.parse(N)}catch{return null}const e=E.map(e=>({[e.attribute]:{[e.operator]:e.value}}));return{[r]:e}},[n,N,r,E]),M=(0,o.useMemo)(()=>null===B?'{\n "parse_error": true,\n "hint": "Fix the JSON in Advanced mode"\n}':JSON.stringify({data:{name:e,filter:JSON.stringify(B)}},null,2),[e,B]),[P,D]=(0,o.useState)(!1),L=e.trim().length>0,I=(0,o.useMemo)(()=>"simple"===n?E.every(e=>e.value.trim().length>0):function(e){if(null===e)return!1;const a=Object.keys(e);if(0===a.length)return!1;const n=a[0],i=e[n];return"and"!==n&&"or"!==n||Array.isArray(i)&&i.length>0}(B),[n,E,B]),F=null!==B&&L&&I,R=(0,o.useMemo)(()=>F?null:null===B?"Fix invalid JSON in Advanced mode":C,[F,B]),O=(0,o.useMemo)(()=>(0,m.pY)(R),[R]),G=(0,o.useMemo)(()=>{if(!F)return null===B?"Fix invalid JSON in Advanced mode":C},[F,B]),U=(0,o.useCallback)(()=>{a(""),k([w()]),s("and"),T('{"and":[]}'),i("simple")},[]),$=(0,o.useCallback)(()=>{a(y),k(S()),s("and"),T(x),i("simple")},[]),H=(0,o.useMemo)(()=>null===B?null:function(e,a){const n=' "name": ',i=e.indexOf(n);if(-1===i)return null;const t=i+12,r=JSON.stringify(a);if(e.slice(t,t+r.length)!==r)return null;const s=t+r.length,o=',\n "filter": ';if(!e.startsWith(o,s))return null;const l=t+r.length-1,c=s+16,d=e.lastIndexOf("\n }\n}");return-1===d||c>=d?null:{hlBefore:e.slice(0,t+1),hlMid:e.slice(l,c),filterToken:e.slice(c,d),tail:e.slice(d)}}(M,e),[M,e,B]),K=e=>{e!==n&&("advanced"===e&&"simple"===n&&null!==B&&T(JSON.stringify(B,null,2)),i(e))};return(0,h.y)(P),(0,f.i)(P,()=>D(!1)),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(u.A,{title:"Create product set",description:(0,t.jsx)(t.Fragment,{children:"Switch to Advanced for nested logic or anything beyond one boolean group."}),language:"json",copyText:M,warningBadge:O,repeatWarningInFullscreen:!0,showClearReset:!0,onClear:U,onReset:$,clearButton:{"aria-label":"Clear all fields",title:"Empty product set name and filters"},resetButton:{"aria-label":"Restore default example values",title:"Restore this page\u2019s example defaults"},canCopy:F,copyDisabledTitle:G,renderCode:n=>((n="")=>{if(!H)return(0,t.jsx)(p.T,{code:M,lineKeyPrefix:"psf-out"});const i=`psf-set-name-hint${n}`,r=(0,t.jsx)("span",{className:c.A.inlineFieldWrapper,children:(0,t.jsx)("input",{id:`psf-set-name${n}`,type:"text",className:(0,l.A)(c.A.inlineInput,L&&c.A.filled),value:e,onChange:e=>a(e.target.value),placeholder:v,"aria-label":"Product set name (required)","aria-invalid":!L,"aria-describedby":L?void 0:i,title:v,style:{width:`${Math.max(14,v.length,e.length)+2}ch`},autoComplete:"off","data-1p-ignore":!0,"data-lpignore":"true"})}),{hlBefore:s,hlMid:o,filterToken:u,tail:m}=H,A=e=>`${e}${n}`;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(p.N,{code:s,lineKeyPrefix:A("psf-a")}),r,(0,t.jsx)(p.N,{code:o,lineKeyPrefix:A("psf-b")}),(0,t.jsx)("span",{className:d.A.readonlyJsonFragment,"aria-hidden":"true",title:"Controlled by the filter section below",onMouseDown:e=>{e.preventDefault()},children:(0,t.jsx)(p.N,{code:u,lineKeyPrefix:A("psf-c")})}),(0,t.jsx)(p.N,{code:m,lineKeyPrefix:A("psf-d")})]})})("fullscreen"===n?"-fs":""),...(0,m.Ii)(R,{inline:"psf-copy-hint",fullscreen:"psf-copy-hint-fs"}),children:(0,t.jsxs)("div",{className:d.A.assistSection,children:[(0,t.jsxs)("div",{className:b.modeToggle,role:"group","aria-label":"Filter editing mode",children:[(0,t.jsx)("button",{type:"button",className:(0,l.A)(b.modeBtn,"simple"===n&&b.modeBtnActive),onClick:()=>K("simple"),children:"Simple"}),(0,t.jsx)("button",{type:"button",className:(0,l.A)(b.modeBtn,"advanced"===n&&b.modeBtnActive),onClick:()=>K("advanced"),children:"Advanced"})]}),"simple"===n?(0,t.jsxs)("div",{className:b.simpleAssist,children:[(0,t.jsxs)("fieldset",{className:b.combineFieldset,children:[(0,t.jsx)("legend",{className:b.combineLegend,children:"Match"}),(0,t.jsxs)("div",{className:b.combineToggle,role:"group","aria-label":"Combine rules with AND or OR",children:[(0,t.jsx)("button",{type:"button",className:(0,l.A)(b.combineBtn,"and"===r&&b.combineBtnActive),onClick:()=>s("and"),children:"All conditions (AND)"}),(0,t.jsx)("button",{type:"button",className:(0,l.A)(b.combineBtn,"or"===r&&b.combineBtnActive),onClick:()=>s("or"),children:"Any condition (OR)"})]})]}),(0,t.jsx)("ul",{className:d.A.rulesList,children:E.map((e,a)=>(0,t.jsxs)("li",{className:d.A.ruleCard,children:[(0,t.jsxs)("div",{className:d.A.ruleCardHeader,children:[(0,t.jsxs)("span",{className:d.A.ruleIndex,children:["Filter ",a+1]}),E.length>1&&(0,t.jsx)("button",{type:"button",className:d.A.removeRuleBtn,onClick:()=>k(a=>a.filter(a=>a.id!==e.id)),"aria-label":"Remove filter",children:(0,t.jsx)(A.M,{})})]}),(0,t.jsxs)("div",{className:d.A.assistFieldGrid,children:[(0,t.jsxs)("label",{className:d.A.label,children:["Attribute",(0,t.jsx)("select",{className:d.A.select,value:e.attribute,onChange:a=>k(n=>n.map(n=>n.id===e.id?{...n,attribute:a.target.value}:n)),children:j.map(e=>(0,t.jsx)("option",{value:e,children:e},e))})]}),(0,t.jsxs)("label",{className:d.A.label,children:["Operator",(0,t.jsx)("select",{className:d.A.select,value:e.operator,onChange:a=>k(n=>n.map(n=>n.id===e.id?{...n,operator:a.target.value}:n)),children:_.map(e=>(0,t.jsx)("option",{value:e,children:e},e))})]}),(0,t.jsxs)("label",{className:d.A.label,children:["Value",(0,t.jsx)("input",{type:"text",className:(0,l.A)(d.A.textInput,e.value.trim()?"":d.A.textInputNeedsValue),value:e.value,onChange:a=>k(n=>n.map(n=>n.id===e.id?{...n,value:a.target.value}:n)),placeholder:"e.g. bowl"})]})]})]},e.id))}),(0,t.jsx)("button",{type:"button",className:d.A.addRuleBtn,onClick:()=>k(e=>[...e,w()]),children:"+ Add filter"})]}):(0,t.jsxs)("div",{className:b.advancedBlock,children:[(0,t.jsxs)("div",{className:b.advancedLabelRow,children:[(0,t.jsx)("label",{className:(0,l.A)(d.A.label,b.advancedLabelFlex),htmlFor:"psf-inner-json",children:"Inner filter JSON"}),(0,t.jsx)("button",{type:"button",className:c.A.expandButton,onClick:()=>D(!0),"aria-label":"Expand inner filter editor",title:"Expand",children:(0,t.jsx)(g.Ay,{glyph:"expandRight",label:"",size:"md",width:18,height:18})})]}),(0,t.jsx)("textarea",{id:"psf-inner-json",className:d.A.textarea,value:N,onChange:e=>T(e.target.value),placeholder:"JSON object for the inner filter (required)",spell
1Check:!1,rows:6}),null===B&&(0,t.jsx)("p",{className:b.errorText,children:"Invalid JSON \u2014 check brackets and quotes."})]})]})}),P&&(0,t.jsx)("div",{className:(0,l.A)(c.A.fullscreenOverlay,b.innerFilterFullscreenOverlay),onClick:()=>D(!1),children:(0,t.jsxs)("div",{className:c.A.fullscreenContent,style:{maxWidth:"min(72rem, 100%)",maxHeight:"90vh"},onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("div",{className:c.A.fullscreenHeader,children:[(0,t.jsx)("span",{className:c.A.fullscreenTitle,children:"Inner filter JSON"}),(0,t.jsx)("button",{type:"button",className:c.A.closeButton,onClick:()=>D(!1),"aria-label":"Close",children:(0,t.jsx)(A.M,{})})]}),(0,t.jsxs)("div",{className:(0,l.A)(c.A.fullscreenBody,b.innerFilterFullscreenBody),children:[(0,t.jsx)("textarea",{id:"psf-inner-json-fs",className:(0,l.A)(d.A.textarea,b.innerFilterFullscreenTextarea),value:N,onChange:e=>T(e.target.value),placeholder:"JSON object for the inner filter (required)",spellCheck:!1,"aria-label":"Inner filter JSON",autoFocus:!0}),null===B&&(0,t.jsx)("p",{className:b.errorText,children:"Invalid JSON \u2014 check brackets and quotes."})]})]})})]})}const k={"Default language":{options:["en","de","es","fr","it","pt"],description:"Default language for the catalog",multiSelect:!1},"Default currency":{options:["USD","GBP","CAD","EUR","AUD","JPY","CHF","NZD","SEK","NOK"],description:"Default currency for the catalog",multiSelect:!1}},N=(e,a)=>Array.from({length:a-e+1},(a,n)=>String(e+n)),T={Mode:{options:["REPLACE","UPDATE"],description:"How incoming rows update the catalog.",multiSelect:!1},"Schedule interval":{options:["HOURLY","DAILY","WEEKLY","MONTHLY"],description:"How often to fetch the feed.",multiSelect:!1},"Schedule interval count":{options:N(1,24),description:"Number of intervals between each import.",multiSelect:!1},"Schedule day of month":{options:N(1,31),description:"Calendar day for monthly schedules.",multiSelect:!1},"Schedule hour":{options:N(0,23),description:"Hour to fetch the feed.",multiSelect:!1},"Schedule minute":{options:N(0,59),description:"Minute of the hour.",multiSelect:!1},Timezone:{options:["Africa/Abidjan","Africa/Accra","Africa/Addis_Ababa","Africa/Algiers","Africa/Asmara","Africa/Asmera","Africa/Bamako","Africa/Bangui","Africa/Banjul","Africa/Bissau","Africa/Blantyre","Africa/Brazzaville","Africa/Bujumbura","Africa/Cairo","Africa/Casablanca","Africa/Ceuta","Africa/Conakry","Africa/Dakar","Africa/Dar_es_Salaam","Africa/Djibouti","Africa/Douala","Africa/El_Aaiun","Africa/Freetown","Africa/Gaborone","Africa/Harare","Africa/Johannesburg","Africa/Juba","Africa/Kampala","Africa/Khartoum","Africa/Kigali","Africa/Kinshasa","Africa/Lagos","Africa/Libreville","Africa/Lome","Africa/Luanda","Africa/Lubumbashi","Africa/Lusaka","Africa/Malabo","Africa/Maputo","Africa/Maseru","Africa/Mbabane","Africa/Mogadishu","Africa/Monrovia","Africa/Nairobi","Africa/Ndjamena","Africa/Niamey","Africa/Nouakchott","Africa/Ouagadougou","Africa/Porto-Novo","Africa/Sao_Tome","Africa/Timbuktu","Africa/Tripoli","Africa/Tunis","Africa/Windhoek","America/Adak","America/Anchorage","America/Anguilla","America/Antigua","America/Araguaina","America/Argentina/Buenos_Aires","America/Argentina/Catamarca","America/Argentina/ComodRivadavia","America/Argentina/Cordoba","America/Argentina/Jujuy","America/Argentina/La_Rioja","America/Argentina/Mendoza","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Aruba","America/Asuncion","America/Atikokan","America/Atka","America/Bahia","America/Bahia_Banderas","America/Barbados","America/Belem","America/Belize","America/Blanc-Sablon","America/Boa_Vista","America/Bogota","America/Boise","America/Buenos_Aires","America/Cambridge_Bay","America/Campo_Grande","America/Cancun","America/Caracas","America/Catamarca","America/Cayenne","America/Cayman","America/Chicago","America/Chihuahua","America/Ciudad_Juarez","America/Coral_Harbour","America/Cordoba","America/Costa_Rica","America/Creston","America/Cuiaba","America/Curacao","America/Danmarkshavn","America/Dawson","America/Dawson_Creek","America/Denver","America/Detroit","America/Dominica","America/Edmonton","America/Eirunepe","America/El_Salvador","America/Ensenada","America/Fort_Nelson","America/Fort_Wayne","America/Fortaleza","America/Glace_Bay","America/Godthab","America/Goose_Bay","America/Grand_Turk","America/Grenada","America/Guadeloupe","America/Guatemala","America/Guayaquil","America/Guyana","America/Halifax","America/Havana","America/Hermosillo","America/Indiana/Indianapolis","America/Indiana/Knox","America/Indiana/Marengo","America/Indiana/Petersburg","America/Indiana/Tell_City","America/Indiana/Vevay","America/Indiana/Vincennes","America/Indiana/Winamac","America/Indianapolis","America/Inuvik","America/Iqaluit","America/Jamaica","America/Jujuy","America/Juneau","America/Kentucky/Louisville","America/Kentucky/Monticello","America/Knox_IN","America/Kralendijk","America/La_Paz","America/Lima","America/Los_Angeles","America/Louisville","America/Lower_Princes","America/Maceio","America/Managua","America/Manaus","America/Marigot","America/Martinique","America/Matamoros","America/Mazatlan","America/Mendoza","America/Menominee","America/Merida","America/Metlakatla","America/Mexico_City","America/Miquelon","America/Moncton","America/Monterrey","America/Montevideo","America/Montreal","America/Montserrat","America/Nassau","America/Ne
1w_York","America/Nipigon","America/Nome","America/Noronha","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Nuuk","America/Ojinaga","America/Panama","America/Pangnirtung","America/Paramaribo","America/Phoenix","America/Port-au-Prince","America/Port_of_Spain","America/Porto_Acre","America/Porto_Velho","America/Puerto_Rico","America/Punta_Arenas","America/Rainy_River","America/Rankin_Inlet","America/Recife","America/Regina","America/Resolute","America/Rio_Branco","America/Rosario","America/Santa_Isabel","America/Santarem","America/Santiago","America/Santo_Domingo","America/Sao_Paulo","America/Scoresbysund","America/Shiprock","America/Sitka","America/St_Barthelemy","America/St_Johns","America/St_Kitts","America/St_Lucia","America/St_Thomas","America/St_Vincent","America/Swift_Current","America/Tegucigalpa","America/Thule","America/Thunder_Bay","America/Tijuana","America/Toronto","America/Tortola","America/Vancouver","America/Virgin","America/Whitehorse","America/Winnipeg","America/Yakutat","America/Yellowknife","Antarctica/Casey","Antarctica/Davis","Antarctica/DumontDUrville","Antarctica/Macquarie","Antarctica/Mawson","Antarctica/McMurdo","Antarctica/Palmer","Antarctica/Rothera","Antarctica/South_Pole","Antarctica/Syowa","Antarctica/Troll","Antarctica/Vostok","Arctic/Longyearbyen","Asia/Aden","Asia/Almaty","Asia/Amman","Asia/Anadyr","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Ashkhabad","Asia/Atyrau","Asia/Baghdad","Asia/Bahrain","Asia/Baku","Asia/Bangkok","Asia/Barnaul","Asia/Beirut","Asia/Bishkek","Asia/Brunei","Asia/Calcutta","Asia/Chita","Asia/Choibalsan","Asia/Chongqing","Asia/Chungking","Asia/Colombo","Asia/Dacca","Asia/Damascus","Asia/Dhaka","Asia/Dili","Asia/Dubai","Asia/Dushanbe","Asia/Famagusta","Asia/Gaza","Asia/Harbin","Asia/Hebron","Asia/Ho_Chi_Minh","Asia/Hong_Kong","Asia/Hovd","Asia/Irkutsk","Asia/Istanbul","Asia/Jakarta","Asia/Jayapura","Asia/Jerusalem","Asia/Kabul","Asia/Kamchatka","Asia/Karachi","Asia/Kashgar","Asia/Kathmandu","Asia/Katmandu","Asia/Khandyga","Asia/Kolkata","Asia/Krasnoyarsk","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Kuwait","Asia/Macao","Asia/Macau","Asia/Magadan","Asia/Makassar","Asia/Manila","Asia/Muscat","Asia/Nicosia","Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk","Asia/Oral","Asia/Phnom_Penh","Asia/Pontianak","Asia/Pyongyang","Asia/Qatar","Asia/Qostanay","Asia/Qyzylorda","Asia/Rangoon","Asia/Riyadh","Asia/Saigon","Asia/Sakhalin","Asia/Samarkand","Asia/Seoul","Asia/Shanghai","Asia/Singapore","Asia/Srednekolymsk","Asia/Taipei","Asia/Tashkent","Asia/Tbilisi","Asia/Tehran","Asia/Tel_Aviv","Asia/Thimbu","Asia/Thimphu","Asia/Tokyo","Asia/Tomsk","Asia/Ujung_Pandang","Asia/Ulaanbaatar","Asia/Ulan_Bator","Asia/Urumqi","Asia/Ust-Nera","Asia/Vientiane","Asia/Vladivostok","Asia/Yakutsk","Asia/Yangon","Asia/Yekaterinburg","Asia/Yerevan","Atlantic/Azores","Atlantic/Bermuda","Atlantic/Canary","Atlantic/Cape_Verde","Atlantic/Faeroe","Atlantic/Faroe","Atlantic/Jan_Mayen","Atlantic/Madeira","Atlantic/Reykjavik","Atlantic/South_Georgia","Atlantic/St_Helena","Atlantic/Stanley","Australia/ACT","Australia/Adelaide","Australia/Brisbane","Australia/Broken_Hill","Australia/Canberra","Australia/Currie","Australia/Darwin","Australia/Eucla","Australia/Hobart","Australia/LHI","Australia/Lindeman","Australia/Lord_Howe","Australia/Melbourne","Australia/NSW","Australia/North","Australia/Perth","Australia/Queensland","Australia/South","Australia/Sydney","Australia/Tasmania","Australia/Victoria","Australia/West","Australia/Yancowinna","Brazil/Acre","Brazil/DeNoronha","Brazil/East","Brazil/West","CET","CST6CDT","Canada/Atlantic","Canada/Central","Canada/Eastern","Canada/Mountain","Canada/Newfoundland","Canada/Pacific","Canada/Saskatchewan","Canada/Yukon","Chile/Continental","Chile/EasterIsland","Cuba","EET","EST","EST5EDT","Egypt","Eire","Etc/GMT","Etc/GMT+0","Etc/GMT+1","Etc/GMT+10","Etc/GMT+11","Etc/GMT+12","Etc/GMT+2","Etc/GMT+3","Etc/GMT+4","Etc/GMT+5","Etc/GMT+6","Etc/GMT+7","Etc/GMT+8","Etc/GMT+9","Etc/GMT-0","Etc/GMT-1","Etc/GMT-10","Etc/GMT-11","Etc/GMT-12","Etc/GMT-13","Etc/GMT-14","Etc/GMT-2","Etc/GMT-3","Etc
1/GMT-4","Etc/GMT-5","Etc/GMT-6","Etc/GMT-7","Etc/GMT-8","Etc/GMT-9","Etc/GMT0","Etc/Greenwich","Etc/UCT","Etc/UTC","Etc/Universal","Etc/Zulu","Europe/Amsterdam","Europe/Andorra","Europe/Astrakhan","Europe/Athens","Europe/Belfast","Europe/Belgrade","Europe/Berlin","Europe/Bratislava","Europe/Brussels","Europe/Bucharest","Europe/Budapest","Europe/Busingen","Europe/Chisinau","Europe/Copenhagen","Europe/Dublin","Europe/Gibraltar","Europe/Guernsey","Europe/Helsinki","Europe/Isle_of_Man","Europe/Istanbul","Europe/Jersey","Europe/Kaliningrad","Europe/Kiev","Europe/Kirov","Europe/Kyiv","Europe/Lisbon","Europe/Ljubljana","Europe/London","Europe/Luxembourg","Europe/Madrid","Europe/Malta","Europe/Mariehamn","Europe/Minsk","Europe/Monaco","Europe/Moscow","Europe/Nicosia","Europe/Oslo","Europe/Paris","Europe/Podgorica","Europe/Prague","Europe/Riga","Europe/Rome","Europe/Samara","Europe/San_Marino","Europe/Sarajevo","Europe/Saratov","Europe/Simferopol","Europe/Skopje","Europe/Sofia","Europe/Stockholm","Europe/Tallinn","Europe/Tirane","Europe/Tiraspol","Europe/Ulyanovsk","Europe/Uzhgorod","Europe/Vaduz","Europe/Vatican","Europe/Vienna","Europe/Vilnius","Europe/Volgograd","Europe/Warsaw","Europe/Zagreb","Europe/Zaporozhye","Europe/Zurich","GB","GB-Eire","GMT","GMT+0","GMT-0","GMT0","Greenwich","HST","Hongkong","Iceland","Indian/Antananarivo","Indian/Chagos","Indian/Christmas","Indian/Cocos","Indian/Comoro","Indian/Kerguelen","Indian/Mahe","Indian/Maldives","Indian/Mauritius","Indian/Mayotte","Indian/Reunion","Iran","Israel","Jamaica","Japan","Kwajalein","Libya","MET","MST","MST7MDT","Mexico/BajaNorte","Mexico/BajaSur","Mexico/General","NZ","NZ-CHAT","Navajo","PRC","PST8PDT","Pacific/Apia","Pacific/Auckland","Pacific/Bougainville","Pacific/Chatham","Pacific/Chuuk","Pacific/Easter","Pacific/Efate","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Fiji","Pacific/Funafuti","Pacific/Galapagos","Pacific/Gambier","Pacific/Guadalcanal","Pacific/Guam","Pacific/Honolulu","Pacific/Johnston","Pacific/Kanton","Pacific/Kiritimati","Pacific/Kosrae","Pacific/Kwajalein","Pacific/Majuro","Pacific/Marquesas","Pacific/Midway","Pacific/Nauru","Pacific/Niue","Pacific/Norfolk","Pacific/Noumea","Pacific/Pago_Pago","Pacific/Palau","Pacific/Pitcairn","Pacific/Pohnpei","Pacific/Ponape","Pacific/Port_Moresby","Pacific/Rarotonga","Pacific/Saipan","Pacific/Samoa","Pacific/Tahiti","Pacific/Tarawa","Pacific/Tongatapu","Pacific/Truk","Pacific/Wake","Pacific/Wallis","Pacific/Yap","Poland","Portugal","ROC","ROK","Singapore","Turkey","UCT","US/Alaska","US/Aleutian","US/Arizona","US/Central","US/East-Indiana","US/Eastern","US/Hawaii","US/Indiana-Starke","US/Michigan","US/Mountain","US/Pacific","US/Samoa","UTC","Universal","W-SU","WET","Zulu"],description:"IANA time zone for the schedule.",multiSelect:!1},"Schedule day of week":{options:["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"],description:"Day of week for WEEKLY schedules.",multiSelect:!1}};var B=n(4865),M=n(19365);const P={title:"Set Up a Catalog",sidebar_position:1,description:"Create a catalog to use for catalog sales campaigns. Products can either be added using a feed or manual upload.",learn_more:{defaultTab:"campaigns",tabs:[{label:"Campaigns",value:"campaigns",path:"/docs/v3/guides/programs/campaign/",ids:["/docs/v3/guides/programs/campaign/campaign-setup"]},{label:"Catalogs",value:"catalogs",path:"/docs/v3/api/product-catalogs",ids:["https://business.reddithelp.com/s/article/catalogs","https://business.reddithelp.com/s/article/dynamic-product-ads","https://business.reddithelp.com/s/article/Product-Ads","https://business.reddithelp.com/s/article/troubleshoot-catalogs"]}]}},D=void 0,L={},I=[{value:"Before you start",id:"before-you-start",level:2},{value:"1. Create your catalog",id:"1-create-your-catalog",level:2},{value:"2. Create products",id:"2-create-products",level:2},{value:"3. (Optional) Organize your products",id:"3-optional-organize-your-products",level:2}];function F(e){const a={a:"a",code:"code",em:"em",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(a.p,{children:["A ",(0,t.jsx)(a.em,{children:"catalog"})," contains the items sold on your website. These are used to run ",(0,t.jsx)(a.a,{href:"https://business.reddithelp.com/s/article/Product-Ads",children:"static"})," or ",(0,t.jsx)(a.a,{href:"https://business.reddithelp.com/s/article/dynamic-product-ads",children:"dynamic product ads"}),"."]}),"\n",(0,t.jsx)(a.h2,{id:"before-you-start",children:"Before you start"}),"\n",(0,t.jsxs)(a.ul,{children:["\n",(0,t.jsxs)(a.li,{children:[(0,t.jsx)(a.a,{href:"https://business.reddithelp.com/s/article/Create-and-manage-your-Reddit-Ads-account",children:"Set up a Reddit Ads account"}),"."]}),"\n",(0,t.jsxs)(a.li,{children:[(0,t.jsx)(a.a,{href:"https://ads.reddit.com/accounts",children:"Find your business ID"}),"."]}),"\n",(0,t.jsxs)(a.li,{children:[(0,t.jsx)(a.strong,{children:"(Optional)"})," ",(0,t.jsx)(a.a,{href:"/docs/v3/api/list-pixels-by-business",children:"Find your Pixel ID"}),"."]}),"\n"]}),"\n",(0,t.jsx)(a.h2,{id:"1-create-your-catalog",children:"1. Create your catalog"}),"\n",(0,t.jsxs)(a.p,{children:["Set up your catalog with ",(0,t.jsx)(a.a,{href:"/docs/v3/api/create-product-catalog",children:(0,t.jsx)(a.code,{children:"Create Product Catalog"})}),"."]}),"\n",(0,t.jsx)(s.Ay,{title:"Create product catalog",language:"json",template:'{\n "data": {\n "name": "{{Catalog name}}",\n "default_language": "{{Default language}}",\n "default_currency": "{{Default currency}}",\n "event_sources": [\n "{{Pixel ID}}"\n ]\n }\n}',defaultValues:{"Catalog name":"My awesome catalog","Default language":"en","Default currency":"USD","P
1ixel ID":"a2_xxxxxxxxxxxx"},variableOptions:{...k}}),"\n",(0,t.jsxs)(a.p,{children:["Save the ",(0,t.jsx)(a.code,{children:"id"})," in the response."]}),"\n",(0,t.jsx)(a.h2,{id:"2-create-products",children:"2. Create products"}),"\n",(0,t.jsxs)(B.A,{children:[(0,t.jsxs)(M.default,{value:"feed",label:"Feed",default:!0,children:[(0,t.jsxs)(a.p,{children:["Use ",(0,t.jsx)(a.a,{href:"/docs/v3/api/create-product-feed",children:(0,t.jsx)(a.code,{children:"Create Product Feed"})})," to manage products. Choose a mode:"]}),(0,t.jsxs)(a.ul,{children:["\n",(0,t.jsxs)(a.li,{children:[(0,t.jsx)(a.code,{children:"replace"}),": Match your catalog with the feed. ",(0,t.jsx)(a.strong,{children:"All other products will be removed."})]}),"\n",(0,t.jsxs)(a.li,{children:[(0,t.jsx)(a.code,{children:"update"}),": Add missing products and update those that map another product. ",(0,t.jsx)(a.strong,{children:"All other products will be ignored."})]}),"\n"]}),(0,t.jsxs)(a.p,{children:["Add a ",(0,t.jsx)(a.code,{children:"schedule"})," to periodically update your products."]}),(0,t.jsx)(s.Ay,{title:"Add product feed",language:"json",template:'{\n "data": {\n "name": "{{Feed name}}",\n "url": "{{Feed URL}}",\n "username": "{{Username}}",\n "password": "{{Password}}",\n "mode": "{{Mode}}",\n "schedule": {\n "interval": "{{Schedule interval}}",\n "interval_count": "{{Schedule interval count}}",\n "day_of_month": "{{Schedule day of month}}",\n "hour": "{{Schedule hour}}",\n "minute": "{{Schedule minute}}",\n "timezone": "{{Timezone}}",\n "day_of_week": "{{Schedule day of week}}"\n }\n }\n}',defaultValues:{"Feed name":"Primary feed","Feed URL":"http://example.com/catalog.csv",Username:"admin",Password:"123456",Mode:"REPLACE"},variableOptions:{...T},optionalVariables:["Username","Password","Schedule interval","Schedule interval count","Schedule day of month","Schedule hour","Schedule minute","Timezone","Schedule day of week"],optionalVariableJsonKeys:{"Schedule interval":"interval","Schedule interval count":"interval_count","Schedule day of month":"day_of_month","Schedule hour":"hour","Schedule minute":"minute",Timezone:"timezone","Schedule day of week":"day_of_week"}})]}),(0,t.jsxs)(M.default,{value:"manual",label:"Manual",default:!0,children:[(0,t.jsxs)(a.p,{children:["Add products to your catalog with ",(0,t.jsx)(a.a,{href:"/docs/v3/api/batch-create-products",children:(0,t.jsx)(a.code,{children:"Batch Create Products"})}),"."]}),(0,t.jsx)(s.Ay,{title:"Batch create products",language:"json",template:'{\n "data": [\n {\n "id": "{{Product ID}}",\n "title": "{{Title}}",\n "description": "{{Description}}",\n "link": "{{Product URL}}",\n "image_link": "{{Image URL}}",\n "price": "{{Price}}"\n }\n ]\n}',defaultValues:{"Product ID":"ramen-123",Title:"Ruby crisp ramen",Description:"Details on my product","Product URL":"https://notarealbrand.myshopify.com/products/ruby-crisp-ramen","Image URL":"https://notarealbrand.myshopify.com/cdn/shop/files/AMA_2.png",Price:"1.00 USD"}})]})]}),"\n",(0,t.jsx)(a.h2,{id:"3-optional-organize-your-products",children:"3. (Optional) Organize your products"}),"\n",(0,t.jsxs)(a.p,{children:["Create sets with ",(0,t.jsx)(a.a,{href:"/docs/v3/api/create-product-set",children:(0,t.jsx)(a.code,{children:"Create Product Set"})}),". Bucket products using ",(0,t.jsx)(a.a,{href:"/docs/v3/guides/programs/product-catalogs/filter-products",children:"filter rules"}),"."]}),"\n",(0,t.jsx)(E,{}),"\n",(0,t.jsxs)(a.p,{children:["Use ",(0,t.jsx)(a.a,{href:"/docs/v3/api/list-products-in-product-set",children:(0,t.jsx)(a.code,{children:"List Products in Product Set"})})," to validate the right products are in your set."]})]})}function R(e={}){const{wrapper:a}={...(0,r.R)(),...e.components};return a?(0,t.jsx)(a,{...e,children:(0,t.jsx)(F,{...e})}):F(e)}},76003:(e,a,n)=>{n.d(a,{A:()=>i});const i={assistSection:"assistSection_W9mb",readonlyJsonFragment:"readonlyJsonFragment_QPHJ",srOnly:"srOnly_DNVJ",label:"label_crCX",fieldHint:"fieldHint_HVSN",textInput:"textInput_qBPr",select:"select_HPTW",textarea:"textarea_ytdO",textInputNeedsValue:"textInputNeedsValue_UFTH",assistControlsGrid:"assistControlsGrid_JsGN",assistFieldGrid:"assistFieldGrid_Gxv3",rulesList:"rulesList_fPdK",ruleCard:"ruleCard_USBX",ruleCardHeader:"ruleCardHeader_yQuI",ruleIndex:"ruleIndex_ItdW",removeRuleBtn:"removeRuleBtn_JLhx",addRuleBtn:"addRuleBtn_ab5j",assistCapHint:"assistCapHint_hJne"}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.