Skip to content

Commit a815072

Browse files
committed
Add line item update schema
1 parent 5b84252 commit a815072

File tree

1 file changed

+195
-0
lines changed

1 file changed

+195
-0
lines changed
Lines changed: 195 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,195 @@
1+
{
2+
"type": "object",
3+
"title": "New Line Item",
4+
"properties": {
5+
"extLineItemId": {
6+
"type": "string",
7+
"description": "A unique identifier for your Line Item"
8+
},
9+
"title": {
10+
"type": "string",
11+
"description": "A Line Item title of your choosing"
12+
},
13+
"countryISOCode": {
14+
"type": "string",
15+
"description": "2 letter ISO Country Code",
16+
"minLength": 2,
17+
"maxLength": 2
18+
},
19+
"languageISOCode": {
20+
"type": "string",
21+
"description": "2 letter ISO Language Code",
22+
"minLength": 2,
23+
"maxLength": 2
24+
},
25+
"surveyURL": {
26+
"type": "string",
27+
"description": "Survey URL to send panelist into. "
28+
},
29+
"surveyTestURL": {
30+
"type": "string",
31+
"description": "Survey Test URL. Required for survey verification"
32+
},
33+
"indicativeIncidence": {
34+
"type": "integer",
35+
"description": "Percent of panelists you expect to qualify for the survey after they go in"
36+
},
37+
"daysInField": {
38+
"type": "integer",
39+
"description": "Number of days the survey should be active in the field. We do not stop the survey after daysInField has expired"
40+
},
41+
"lengthOfInterview": {
42+
"type": "integer",
43+
"description": "Average number of minutes it takes a user to complete your survey"
44+
},
45+
"deliveryType": {
46+
"type": "string",
47+
"default": "BALANCED",
48+
"description": "The plan on how responses will flow into the survey.",
49+
"enum": [
50+
"SLOW",
51+
"BALANCED",
52+
"FAST"
53+
]
54+
},
55+
"sources": {
56+
"type": "array",
57+
"description": "The supplier source that you would like to buy sample from. You can get the list of sources available to your account using the [Get List of Sources](/demand-api-reference/data_endpoints/supplier-sources/get-sources) endpoint",
58+
"default": 100,
59+
"items": {
60+
"type": "object",
61+
"properties": {
62+
"id": {
63+
"type": "integer"
64+
}
65+
}
66+
}
67+
},
68+
"targets": {
69+
"type": "array",
70+
"description": "Total count of survey completes required for this line item",
71+
"items": {
72+
"type": "object",
73+
"properties": {
74+
"count": {
75+
"description": "Total number of counts required for this line item for the specified target type",
76+
"type": "integer"
77+
},
78+
"dailyLimit": {
79+
"description": "Total number of daily counts required for this line item",
80+
"type": "integer"
81+
},
82+
"type": {
83+
"type": "string",
84+
"description": "The type of counts required for this line item.",
85+
"enum": [
86+
"COMPLETE"
87+
]
88+
}
89+
}
90+
}
91+
},
92+
"quotaPlan": {
93+
"type": "object",
94+
"title": "Quota Plan",
95+
"description": "Defines the type of respondents you want to invite for the survey",
96+
"properties": {
97+
"filters": {
98+
"type": "array",
99+
"description": "Filters are minimum set of targeting that every respondent must have in order to qualify for the study. Only attributes that have `isAllowedInFilters = true` is allowed to be used in `filters`",
100+
"items": {
101+
"type": "object",
102+
"properties": {
103+
"attributeId": {
104+
"type": "string",
105+
"description": "The attribute you want to target respondents on"
106+
},
107+
"options": {
108+
"type": "array",
109+
"description": "The options of the attribute you want to target respondents on",
110+
"uniqueItems": true,
111+
"items": {
112+
"type": "string"
113+
}
114+
},
115+
"operator": {
116+
"type": "string",
117+
"enum": [
118+
"exclude",
119+
"include"
120+
],
121+
"default": "include",
122+
"description": "The operator to use for the attribute options."
123+
}
124+
}
125+
}
126+
},
127+
"quotaGroups": {
128+
"type": "array",
129+
"description": "Quota groups define the allocated targeting attributes for panelists within this line item. Only attributes that have `isAllowedInQuotas = true` is allowed in `quotaGroups`.",
130+
"items": {
131+
"type": "object",
132+
"properties": {
133+
"name": {
134+
"type": "string",
135+
"description": "A quota group name of your choosing"
136+
},
137+
"quotaCells": {
138+
"type": "array",
139+
"description": "Quota Cells define the percentage allocation for the required targeting. A quota cell is made up of a collection of quota Nodes",
140+
"items": {
141+
"type": "object",
142+
"properties": {
143+
"quotaNodes": {
144+
"type": "array",
145+
"description": "Quota Nodes define the collection of attributes and options being targeted.",
146+
"items": {
147+
"type": "object",
148+
"properties": {
149+
"attributeId": {
150+
"type": "string",
151+
"description": "The attribute you want to target respondents on"
152+
},
153+
"options": {
154+
"type": "array",
155+
"description": "The options of the attribute you want to target respondents on",
156+
"uniqueItems": true,
157+
"items": {
158+
"type": "string"
159+
}
160+
},
161+
"operator": {
162+
"type": "string",
163+
"enum": [
164+
"exclude",
165+
"include"
166+
],
167+
"default": "include",
168+
"description": "**Deprecated field** The operator to use for the attribute options."
169+
}
170+
}
171+
}
172+
},
173+
"count": {
174+
"type": "integer",
175+
"description": "The count of respondents you want to qualify for the defined quota cell"
176+
}
177+
}
178+
}
179+
}
180+
}
181+
}
182+
}
183+
}
184+
}
185+
},
186+
"required": [
187+
"extLineItemId",
188+
"countryISOCode",
189+
"languageISOCode",
190+
"indicativeIncidence",
191+
"daysInField",
192+
"lengthOfInterview",
193+
"targets"
194+
]
195+
}

0 commit comments

Comments
 (0)