Parse Advertising Requirements
Overview
Extract structured advertising campaign parameters from natural language input provided by advertisers. Supports creating new campaigns and updating existing campaigns with additional information. Identify missing information and provide helpful guidance for completing campaign requirements.
When to Use This Skill
Use this skill when:
- Analyzing advertising requirements or campaign briefs
- Converting natural language ad requests into structured data
- Creating a new advertising campaign from natural language input
- Updating an existing campaign with additional information
- Identifying missing or incomplete campaign information
- Validating that all necessary advertising parameters are provided
- Processing advertiser input for campaign setup
Workflow
When given a natural language campaign description, follow this step-by-step workflow:
Step 1: Extract Campaign Parameters
Analyze the input text and extract the following 12 fields:
product_or_service: The product, service, or brand being advertised
- Examples: "fitness app", "organic coffee brand", "SaaS platform"
product_or_service_url: Website or landing page URL for the product/service
campaign_name: A descriptive name for this campaign
- Examples: "Summer Fitness Launch", "Q4 Brand Awareness"
target_audience: Demographics, interests, or characteristics of the target audience
- Examples: "women aged 25-35", "tech-savvy millennials", "small business owners"
geography: Geographic targeting for the campaign
- Examples: "Southeast Asia", "United States", "Global", "New York City"
ad_format: Type of ad creative needed
- Examples: "video ad", "carousel ad", "static image", "story ad"
budget: Campaign budget amount and currency
- Examples: "$5,000", "€10,000", "5000 USD"
platform: Advertising platform(s) to use
- Examples: "TikTok", "Facebook", "Instagram", "Google Ads", "LinkedIn"
kpi: Key performance indicators or success metrics
- Examples: "CTR", "app installs", "conversions", "brand awareness", "engagement rate"
time_period: Campaign duration or timeline
- Examples: "2 weeks", "Q1 2024", "ongoing", "launch in March"
creative_direction: Style, tone, or creative requirements
- Examples: "energetic and motivating", "professional and trustworthy", "fun and playful"
other_details: Any additional requirements or context
- Examples: "must include testimonials", "competitor: BrandX", "seasonal theme"
Step 2: Identify Missing Fields
For each field:
- If the information is explicitly stated or can be reasonably inferred, populate the field
- If the information is not present or unclear, mark it as missing
Step 3: Return Structured Output
Return a JSON object with this structure:
{
"success": true/false,
"parameters": {
"product_or_service": "value or null",
"product_or_service_url": "value or null",
"campaign_name": "value or null",
"target_audience": "value or null",
"geography": "value or null",
"ad_format": "value or null",
"budget": "value or null",
"platform": "value or null",
"kpi": "value or null",
"time_period": "value or null",
"creative_direction": "value or null",
"other_details": "value or null"
},
"missingFields": ["field1", "field2"],
"suggestions": {
"field1": "Consider specifying...",
"field2": "You might want to include..."
}
}
- Set
success to true only if ALL fields are populated (no missing fields)
- Set
success to false if any fields are missing
- List all missing field names in the
missingFields array
- Optionally provide helpful suggestions for missing fields
Campaign Updates
When updating an existing campaign (indicated by context mentioning a campaign ID):
- Extract only the NEW information provided in the input
- Set fields to their extracted values if new information is provided
- Set fields to
null if no new information is provided for that field
- The system will automatically merge new values with existing campaign data
- Only newly provided fields will overwrite existing values; null fields preserve existing data
Extraction Rules
- Be Conservative: Only populate a field if the information is clearly stated or strongly implied
- Use Null for Missing: If a field is not mentioned, set it to
null rather than guessing
- Preserve Original Phrasing: When extracting, use the advertiser's own words when possible
- Infer Carefully: Some fields can be inferred (e.g., if they mention "TikTok video", ad_format is "video ad" and platform is "TikTok")
- Handle Ambiguity: If information is ambiguous, mark the field as missing and suggest clarification
Examples
Example 1: Partially Complete Input
Input: "Create a TikTok video ad for my fitness app targeting Southeast Asian women aged 25-35 with a $5,000 budget. The goal is to drive app installs with an energetic and motivating tone."
Output:
{
"success": false,
"parameters": {
"product_or_service": "fitness app",
"product_or_service_url": null,
"campaign_name": null,
"target_audience": "Southeast Asian women aged 25-35",
"geography": "Southeast Asia",
"ad_format": "video ad",
"budget": "$5,000",
"platform": "TikTok",
"kpi": "app installs",
"time_period": null,
"creative_direction": "energetic and motivating",
"other_details": null
},
"missingFields": ["product_or_service_url", "campaign_name", "time_period"],
"suggestions": {
"product_or_service_url": "Please provide the landing page or app store URL for your fitness app",
"campaign_name": "Consider providing a campaign name for tracking purposes (e.g., 'Q1 2024 Southeast Asia Launch')",
"time_period": "When should this campaign run? Specify duration or dates (e.g., '2 weeks', 'March 1-15')"
}
}
Example 2: Minimal Input
Input: "I need ads for my coffee brand"
Output:
{
"success": false,
"parameters": {
"product_or_service": "coffee brand",
"product_or_service_url": null,
"campaign_name": null,
"target_audience": null,
"geography": null,
"ad_format": null,
"budget": null,
"platform": null,
"kpi": null,
"time_period": null,
"creative_direction": null,
"other_details": null
},
"missingFields": [
"product_or_service_url",
"campaign_name",
"target_audience",
"geography",
"ad_format",
"budget",
"platform",
"kpi",
"time_period",
"creative_direction"
],
"suggestions": {
"target_audience": "Who is your ideal customer? (e.g., coffee enthusiasts aged 25-45, young professionals)",
"platform": "Where do you want to advertise? (e.g., Instagram, Facebook, Google, TikTok)",
"budget": "What is your advertising budget? Please include currency",
"geography": "Which geographic region should we target? (e.g., United States, Europe, specific cities)",
"ad_format": "What type of ad creative? (e.g., video ad, static image, carousel)",
"kpi": "What success metrics matter most? (e.g., brand awareness, website traffic, sales conversions)"
}
}
Example 3: Complete Input
Input: "Run an Instagram carousel ad campaign called 'Spring Coffee Collection' for our organic coffee brand at www.organicbrew.com. Target coffee enthusiasts aged 25-45 in the United States with a $10,000 budget. Campaign runs for 3 weeks starting March 1st. Focus on conversions (online purchases). Use a warm and inviting tone that emphasizes sustainability. Include customer testimonials in the creative."
Output:
{
"success": true,
"parameters": {
"product_or_service": "organic coffee brand",
"product_or_service_url": "www.organicbrew.com",
"campaign_name": "Spring Coffee Collection",
"target_audience": "coffee enthusiasts aged 25-45",
"geography": "United States",
"ad_format": "carousel ad",
"budget": "$10,000",
"platform": "Instagram",
"kpi": "conversions (online purchases)",
"time_period": "3 weeks starting March 1st",
"creative_direction": "warm and inviting tone that emphasizes sustainability",
"other_details": "Include customer testimonials in the creative"
},
"missingFields": [],
"suggestions": {}
}
Important Notes
- Always return valid JSON
- Ensure all 12 parameter fields are present in the output
- The
success field should reflect whether ALL required information is present
- Be helpful and specific in suggestions
- Maintain a professional, friendly tone when providing suggestions
- When updating campaigns, only extract NEW information from the input
- Null values in updates preserve existing campaign data (they don't delete it)
1---2name: parse-ad-requirements3description: Extract structured advertising campaign parameters from natural language input provided by advertisers. This skill should be used when analyzing advertising requirements, campaign briefs, or ad requests that need to be converted into structured data. Supports both creating new campaigns and updating existing campaigns with additional information. Identifies missing information and provides helpful guidance for completing campaign requirements.4---5
6# Parse Advertising Requirements
7
8## Overview
9
10Extract structured advertising campaign parameters from natural language input provided by advertisers. Supports creating new campaigns and updating existing campaigns with additional information. Identify missing information and provide helpful guidance for completing campaign requirements.
11
12## When to Use This Skill
13
14Use this skill when:
15- Analyzing advertising requirements or campaign briefs
16- Converting natural language ad requests into structured data
17- Creating a new advertising campaign from natural language input
18- Updating an existing campaign with additional information
19- Identifying missing or incomplete campaign information
20- Validating that all necessary advertising parameters are provided
21- Processing advertiser input for campaign setup
22
23## Workflow
24
25When given a natural language campaign description, follow this step-by-step workflow:
26
27### Step 1: Extract Campaign Parameters
28
29Analyze the input text and extract the following 12 fields:
30
311. **product_or_service**: The product, service, or brand being advertised
32 - Examples: "fitness app", "organic coffee brand", "SaaS platform"
33
342. **product_or_service_url**: Website or landing page URL for the product/service
35 - Examples: "https://myfitnessapp.com", "www.coffeebrand.com"
36
373. **campaign_name**: A descriptive name for this campaign
38 - Examples: "Summer Fitness Launch", "Q4 Brand Awareness"
39
404. **target_audience**: Demographics, interests, or characteristics of the target audience
41 - Examples: "women aged 25-35", "tech-savvy millennials", "small business owners"
42
435. **geography**: Geographic targeting for the campaign
44 - Examples: "Southeast Asia", "United States", "Global", "New York City"
45
466. **ad_format**: Type of ad creative needed
47 - Examples: "video ad", "carousel ad", "static image", "story ad"
48
497. **budget**: Campaign budget amount and currency
50 - Examples: "$5,000", "€10,000", "5000 USD"
51
528. **platform**: Advertising platform(s) to use
53 - Examples: "TikTok", "Facebook", "Instagram", "Google Ads", "LinkedIn"
54
559. **kpi**: Key performance indicators or success metrics
56 - Examples: "CTR", "app installs", "conversions", "brand awareness", "engagement rate"
57
5810. **time_period**: Campaign duration or timeline
59 - Examples: "2 weeks", "Q1 2024", "ongoing", "launch in March"
60
6111. **creative_direction**: Style, tone, or creative requirements
62 - Examples: "energetic and motivating", "professional and trustworthy", "fun and playful"
63
6412. **other_details**: Any additional requirements or context
65 - Examples: "must include testimonials", "competitor: BrandX", "seasonal theme"
66
67### Step 2: Identify Missing Fields
68
69For each field:
70- If the information is explicitly stated or can be reasonably inferred, populate the field
71- If the information is not present or unclear, mark it as missing
72
73### Step 3: Return Structured Output
74
75Return a JSON object with this structure:
76
77```json
78{
79 "success": true/false,
80 "parameters": {
81 "product_or_service": "value or null",
82 "product_or_service_url": "value or null",
83 "campaign_name": "value or null",
84 "target_audience": "value or null",
85 "geography": "value or null",
86 "ad_format": "value or null",
87 "budget": "value or null",
88 "platform": "value or null",
89 "kpi": "value or null",
90 "time_period": "value or null",
91 "creative_direction": "value or null",
92 "other_details": "value or null"
93 },
94 "missingFields": ["field1", "field2"],
95 "suggestions": {
96 "field1": "Consider specifying...",
97 "field2": "You might want to include..."
98 }
99}
100```
101
102- Set `success` to `true` only if ALL fields are populated (no missing fields)
103- Set `success` to `false` if any fields are missing
104- List all missing field names in the `missingFields` array
105- Optionally provide helpful suggestions for missing fields
106
107## Campaign Updates
108
109When updating an existing campaign (indicated by context mentioning a campaign ID):
110- Extract only the NEW information provided in the input
111- Set fields to their extracted values if new information is provided
112- Set fields to `null` if no new information is provided for that field
113- The system will automatically merge new values with existing campaign data
114- Only newly provided fields will overwrite existing values; null fields preserve existing data
115
116## Extraction Rules
117
1181. **Be Conservative**: Only populate a field if the information is clearly stated or strongly implied
1192. **Use Null for Missing**: If a field is not mentioned, set it to `null` rather than guessing
1203. **Preserve Original Phrasing**: When extracting, use the advertiser's own words when possible
1214. **Infer Carefully**: Some fields can be inferred (e.g., if they mention "TikTok video", ad_format is "video ad" and platform is "TikTok")
1225. **Handle Ambiguity**: If information is ambiguous, mark the field as missing and suggest clarification
123
124## Examples
125
126### Example 1: Partially Complete Input
127
128**Input**: "Create a TikTok video ad for my fitness app targeting Southeast Asian women aged 25-35 with a $5,000 budget. The goal is to drive app installs with an energetic and motivating tone."
129
130**Output**:
131```json
132{
133 "success": false,
134 "parameters": {
135 "product_or_service": "fitness app",
136 "product_or_service_url": null,
137 "campaign_name": null,
138 "target_audience": "Southeast Asian women aged 25-35",
139 "geography": "Southeast Asia",
140 "ad_format": "video ad",
141 "budget": "$5,000",
142 "platform": "TikTok",
143 "kpi": "app installs",
144 "time_period": null,
145 "creative_direction": "energetic and motivating",
146 "other_details": null
147 },
148 "missingFields": ["product_or_service_url", "campaign_name", "time_period"],
149 "suggestions": {
150 "product_or_service_url": "Please provide the landing page or app store URL for your fitness app",
151 "campaign_name": "Consider providing a campaign name for tracking purposes (e.g., 'Q1 2024 Southeast Asia Launch')",
152 "time_period": "When should this campaign run? Specify duration or dates (e.g., '2 weeks', 'March 1-15')"
153 }
154}
155```
156
157### Example 2: Minimal Input
158
159**Input**: "I need ads for my coffee brand"
160
161**Output**:
162```json
163{
164 "success": false,
165 "parameters": {
166 "product_or_service": "coffee brand",
167 "product_or_service_url": null,
168 "campaign_name": null,
169 "target_audience": null,
170 "geography": null,
171 "ad_format": null,
172 "budget": null,
173 "platform": null,
174 "kpi": null,
175 "time_period": null,
176 "creative_direction": null,
177 "other_details": null
178 },
179 "missingFields": [
180 "product_or_service_url",
181 "campaign_name",
182 "target_audience",
183 "geography",
184 "ad_format",
185 "budget",
186 "platform",
187 "kpi",
188 "time_period",
189 "creative_direction"
190 ],
191 "suggestions": {
192 "target_audience": "Who is your ideal customer? (e.g., coffee enthusiasts aged 25-45, young professionals)",
193 "platform": "Where do you want to advertise? (e.g., Instagram, Facebook, Google, TikTok)",
194 "budget": "What is your advertising budget? Please include currency",
195 "geography": "Which geographic region should we target? (e.g., United States, Europe, specific cities)",
196 "ad_format": "What type of ad creative? (e.g., video ad, static image, carousel)",
197 "kpi": "What success metrics matter most? (e.g., brand awareness, website traffic, sales conversions)"
198 }
199}
200```
201
202### Example 3: Complete Input
203
204**Input**: "Run an Instagram carousel ad campaign called 'Spring Coffee Collection' for our organic coffee brand at www.organicbrew.com. Target coffee enthusiasts aged 25-45 in the United States with a $10,000 budget. Campaign runs for 3 weeks starting March 1st. Focus on conversions (online purchases). Use a warm and inviting tone that emphasizes sustainability. Include customer testimonials in the creative."
205
206**Output**:
207```json
208{
209 "success": true,
210 "parameters": {
211 "product_or_service": "organic coffee brand",
212 "product_or_service_url": "www.organicbrew.com",
213 "campaign_name": "Spring Coffee Collection",
214 "target_audience": "coffee enthusiasts aged 25-45",
215 "geography": "United States",
216 "ad_format": "carousel ad",
217 "budget": "$10,000",
218 "platform": "Instagram",
219 "kpi": "conversions (online purchases)",
220 "time_period": "3 weeks starting March 1st",
221 "creative_direction": "warm and inviting tone that emphasizes sustainability",
222 "other_details": "Include customer testimonials in the creative"
223 },
224 "missingFields": [],
225 "suggestions": {}
226}
227```
228
229## Important Notes
230
231- Always return valid JSON
232- Ensure all 12 parameter fields are present in the output
233- The `success` field should reflect whether ALL required information is present
234- Be helpful and specific in suggestions
235- Maintain a professional, friendly tone when providing suggestions
236- When updating campaigns, only extract NEW information from the input
237- Null values in updates preserve existing campaign data (they don't delete it)