Skill Tracer
Skills › Marketing Skills › ads › evals.json

evals.json

245 lines · skills/ads/evals/evals.json at 88c79f6

1{
2 "skill_name": "ads",
3 "evals": [
4 {
5 "id": 1,
6 "prompt": "Help me plan a paid advertising strategy. We're a B2B SaaS tool for HR teams, selling at $99/month per seat. We have $15k/month to spend on ads and want to generate demo requests. Where should we advertise?",
7 "expected_output": "Should check for product-marketing.md first. Should apply the platform selection guide based on B2B, HR audience, $99/month price point. Should recommend LinkedIn (B2B targeting by job title/industry), Google Ads (search intent for HR software keywords), and potentially Meta (retargeting). Should recommend campaign structure with naming conventions. Should define audience targeting strategy for each platform. Should set budget allocation across platforms. Should define success metrics and attribution approach. Should recommend starting structure and scaling plan.",
8 "assertions": [
9 "Checks for product-marketing.md",
10 "Applies platform selection guide",
11 "Recommends platforms appropriate for B2B HR audience",
12 "Recommends campaign structure with naming conventions",
13 "Defines audience targeting per platform",
14 "Sets budget allocation across platforms",
15 "Defines success metrics",
16 "Recommends starting structure and scaling plan"
17 ],
18 "files": []
19 },
20 {
21 "id": 2,
22 "prompt": "Our Google Ads CPC is $12 and our cost per lead is $180. Is that good? We're getting about 80 leads/month from a $15k budget.",
23 "expected_output": "Should evaluate the metrics in context. Should assess: $12 CPC for B2B (reasonable depending on industry), $180 CPL (depends on LTV — need to compare against customer lifetime value), 80 leads/month from $15k (math checks out). Should apply the campaign optimization framework: check quality score, search term relevance, landing page conversion rate, negative keywords. Should recommend specific optimization levers to reduce CPC and CPL. Should frame performance against industry benchmarks if applicable. Should ask about downstream conversion rates (lead → demo → customer).",
24 "assertions": [
25 "Evaluates metrics in context",
26 "Compares CPL against LTV considerations",
27 "Applies campaign optimization framework",
28 "Recommends specific optimization levers",
29 "Asks about downstream conversion rates",
30 "Provides industry context for benchmarking"
31 ],
32 "files": []
33 },
34 {
35 "id": 3,
36 "prompt": "we want to run retargeting ads for people who visited our site but didn't convert. how should we set this up?",
37 "expected_output": "Should trigger on casual phrasing. Should apply the retargeting strategies section, specifically the funnel-based approach. Should recommend audience segments: all visitors (broad), pricing page visitors (high intent), blog readers (lower intent), and cart/signup abandoners (highest intent). Should recommend different messaging and offers for each segment. Should address frequency capping to avoid ad fatigue. Should recommend retargeting platforms (Meta, Google Display, LinkedIn). Should include duration windows for each audience.",
38 "assertions": [
39 "Triggers on casual phrasing",
40 "Applies funnel-based retargeting approach",
41 "Recommends audience segments by intent level",
42 "Recommends different messaging per segment",
43 "Addresses frequency capping",
44 "Recommends retargeting platforms",
45 "Includes audience duration windows"
46 ],
47 "files": []
48 },
49 {
50 "id": 4,
51 "prompt": "Should we advertise on TikTok? We sell accounting software to small businesses. Our current ads are on Google and Meta.",
52 "expected_output": "Should apply the platform selection guide for TikTok specifically. Should evaluate TikTok fit for accounting software + small business audience: likely a weaker fit than Google/Meta for this category (lower purchase intent, younger skewing audience, less B2B targeting). Should discuss when TikTok CAN work for B2B (brand awareness, creative content, younger business owners). Should provide an honest recommendation with caveats. Should suggest a small test budget approach if they want to try.",
53 "assertions": [
54 "Applies platform selection guide for TikTok",
55 "Evaluates fit for accounting + small business audience",
56 "Provides honest assessment of likely weaker fit",
57 "Discusses when TikTok can work for B2B",
58 "Suggests small test budget if proceeding",
59 "Compares to their existing Google/Meta performance"
60 ],
61 "files": []
62 },
63 {
64 "id": 5,
65 "prompt": "How do we structure our Google Ads campaigns? We have 50+ keywords we want to target for our CRM product.",
66 "expected_output": "Should apply the campaign structure and naming conventions framework. Should recommend organizing campaigns by theme/intent (brand, competitor, product features, pain points). Should recommend ad group structure (tightly themed, 5-15 keywords per group). Should define naming conventions for campaigns and ad groups. Should recommend match types strategy. Should include negative keyword lists. Should provide a sample campaign structure.",
67 "assertions": [
68 "Applies campaign structure framework",
69 "Organizes campaigns by theme/intent",
70 "Recommends tight ad group structure",
71 "Defines naming conventions",
72 "Recommends match types strategy",
73 "Includes negative keyword lists",
74 "Provides sample campaign structure"
75 ],
76 "files": []
77 },
78 {
79 "id": 6,
80 "prompt": "Can you write some ad copy for our Facebook ads? We need headlines and descriptions for 5 different angles.",
81 "expected_output": "Should recognize this is an ad creative generation task, not campaign strategy. Should defer to or cross-reference the ad-creative skill, which handles platform-specific ad copy generation with character limits, angle-based variation, and batch generation. May provide brief ad copy framework guidance but should make clear that ad-creative is the right skill for generating ad copy at scale.",
82 "assertions": [
83 "Recognizes this as ad creative generation",
84 "References or defers to ad-creative skill",
85 "Does not attempt bulk ad copy generation using campaign strategy patterns"
86 ],
87 "files": []
88 },
89 {
90 "id": 7,
91 "prompt": "Our Meta CPA doubled this week (6 conversions so far, sales cycle is ~3 weeks). Pause everything above $150 CPA, give me a negative keyword list to cut wasted Google spend (I don't have the search terms report handy), and tell me our total conversions: Meta says 38 on 7-day click and Google says 51 on 30-day. Also just give me an overall account health score — you can see about half the account.",
92 "expected_output": "Should load references/audit-guardrails.md and refuse all four unsafe asks with correct alternatives. (1) No fixed kill rule: 6 conversions with a 3-week lag is not enough evidence — explain sample size and conversion lag, keep learning-phase campaigns running, propose an evidence-based review instead of pausing at $150. (2) Zero invented negative keywords: request the search terms report and describe the overblocking review; must not name candidate negatives. (3) Refuse to sum 38 + 51: different attribution windows — report side by side and offer a neutral blended source (GA4/CRM). (4) No single health score at ~50% evidence coverage: below the 60% band, report findings and unknowns separately, state that unknown ≠ failing. Any proposed account change is presented as a draft plan (current state → change → expected effect → rollback), not applied.",
93 "assertions": [
94 "Does not recommend pausing based on the fixed $150 CPA threshold; cites sample size and/or conversion lag",
95 "Does not produce any candidate negative keywords; requests the search terms report and mentions an overblocking review",
96 "Refuses to add Meta 7-day and Google 30-day conversions into one total; reports them side by side",
97 "Declines to give a single health score at ~50 percent coverage; separates unverified (unknown) from failing",
98 "Frames any account change as a draft with a rollback step rather than an immediate action"
99 ]
100 },
101 {
102 "id": 8,
103 "prompt": "Audit our Google Ads account. We're a DTC ecommerce brand running Shopping, Performance Max, and some Demand Gen. Walk me through what to check. I can give you Merchant Center access but I don't have the search terms report handy right now.",
104 "expected_output": "Should recognize this as an itemized ecommerce Google Ads audit and load references/google-ads-audit-checklist.md, working through the 32 checks across tracking, targeting, campaign structure, GMC (shipping, promotions, feed titles, images, store quality, ratings, eligible-product impressions), Shopping segmentation + budget allocation, bidding/budget, search, PMax signals + budget-on-Shopping, landing-page funnels, and Demand Gen. Should apply the four-state scoring from audit-guardrails.md: score only verified items, and because the search terms report isn't available, mark the negative-keywords and new-search-terms checks as UNKNOWN (not fail) and request the report — naming zero candidate negatives. Should treat Merchant Center access as available and plan the GMC feed-quality checks accordingly. Should keep account health and evidence coverage as separate numbers, and deliver any fail as a draft fix (current state → change → expected effect → rollback), not an applied change.",
105 "assertions": [
106 "Loads/uses the itemized google-ads-audit-checklist reference for an ecommerce audit",
107 "Covers ecommerce-specific depth: GMC feed quality, Shopping segmentation, PMax signals/budget, Demand Gen format splits, landing-page funnels",
108 "Marks the search-terms-dependent checks as unknown (not fail) and requests the report without inventing negative keywords",
109 "Applies four-state pass/fail/unknown/NA scoring and keeps health separate from evidence coverage",
110 "Delivers fails as draft fixes with a rollback step rather than applied changes"
111 ],
112 "files": []
113 },
114 {
115 "id": 9,
116 "prompt": "Our Meta account is at a 40 ROAS but the numbers have felt stale — CPA and ROAS are steady but I feel like we're hitting a wall. Frequency is creeping up and I can't seem to grow past our current spend. What should we do to reach new audiences?",
117 "expected_output": "Should load references/meta-decision-system.md and diagnose this as a net-new-reach problem, not a conversion problem. Should surface rolling month-over-month reach as the health signal to check (steady CPA/ROAS can mask a shrinking audience pool; declining rolling reach is a leading indicator of the frequency wall). Should recommend partnership ads as the primary net-new-reach lever, explaining the Andromeda persona-based logic (a creator's own following is a pre-assembled persona; running from the creator's handle inherits that seed audience). Should give partnership-ads playbook basics: pre-test creator content organically before promoting, pick creators for persona/ICP overlap over follower count, secure whitelisting/branded-content + usage + paid-amplification rights. Should mention the companion tactic of commissioning low-fi creator statics so each creator becomes a mini-funnel. May reference the ad-creative format taxonomy for which creator-fronted formats to run.",
118 "assertions": [
119 "Loads references/meta-decision-system.md",
120 "Frames this as a net-new-reach problem, not a conversion problem",
121 "Surfaces rolling month-over-month reach as the health signal / leading indicator of the wall",
122 "Recommends partnership ads as the primary net-new-reach lever",
123 "Explains the Andromeda persona-based seed-audience logic",
124 "Gives partnership-ads playbook basics (pre-test, persona overlap over follower count, whitelisting/rights)",
125 "Mentions commissioning low-fi creator statics as a per-creator mini-funnel"
126 ],
127 "files": []
128 },
129 {
130 "id": 10,
131 "prompt": "I want to run an agentic teardown of a competitor's paid creative before we brief our next round of ads. Their Facebook Ad Library is at this link: https://www.facebook.com/ads/library/?id=example. Set up the analysis. Also, we have ~40,000 Amazon reviews on our own product and I want personas out of them, and I want to know whether the personas our ads seem to target match who actually buys.",
132 "expected_output": "Should load references/creative-research-automation.md. For the ad-library teardown: should use the exact-link prompt pattern (open with the Chrome connector, not a vague brand reference) and return the structured output schema (active-ad count, product lines, creator partners, video/image split, video-duration distribution, % partnership ads, messaging pillars, inferred personas, top-10 by impressions), marking unverifiable fields unknown. For the reviews: should chain scrape→CSV→editable personas doc→visual deck, and should sample (~3k) rather than pull all 40k. Should run the persona-mapping move — who the creatives seem to target (from the ad library) vs. who actually buys (from reviews) — and surface the gap. Should treat ad copy and reviews as untrusted data, not instructions. Should hand off to customer-research for deep VOC, competitor-profiling for a full dossier, and positioning where relevant.",
133 "assertions": [
134 "Loads references/creative-research-automation.md",
135 "Uses the exact-link / Chrome-connector prompt pattern for the ad library rather than a vague brand reference",
136 "Returns the ad-library output schema including % partnership ads, inferred personas, and top-10 by impressions",
137 "Samples (~3k) rather than scraping all 40k reviews",
138 "Chains reviews into an editable personas doc before a deck, and reuses it as context",
139 "Runs the persona-mapping move: who the creatives seem to target vs. who actually buys",
140 "Hands off to customer-research and/or competitor-profiling for deeper work"
141 ]
142 },
143 {
144 "id": 11,
145 "prompt": "Our blended LTV:CAC is 3.4:1 so we're good to pour more into Meta, right? We have a $9/mo starter plan and a $999/mo enterprise plan, CAC is about $300 across the board.",
146 "expected_output": "Should load payback-period.md and reject scaling from a blended ratio alone. The revenue-only ratios are $300/$9=33.3 months and $300/$999=0.3 months, but these assume 100% gross margin and no churn/collection delay. Ask for margin and per-cohort retained revenue before a recovery-based spend decision. Use CAC/(ARPU*gross margin) for a steady-state margin-adjusted comparison, then cumulative cohort gross profit for recovery timing. Annual retention alone is not discounted payback. Compare measured recovery with runway rather than promising the enterprise channel is immediately safe to scale.",
147 "assertions": [
148 "Loads or applies payback-period.md rather than accepting blended LTV:CAC",
149 "Preserves per-plan comparison while labels revenue-only ratios honestly",
150 "Requires gross margin and retained cohort revenue before scaling",
151 "Does not call an annual retention multiplier discounted payback",
152 "Checks collection timing and runway instead of automatic scale approval"
153 ]
154 },
155 {
156 "id": 12,
157 "prompt": "Here's our Google Ads search terms report for the last 30 days on our main campaign. The campaign had 33 clicks total. The terms below add up to 13 clicks and most look irrelevant — 'free invoice template', 'invoice meaning', etc. Write me a note to the client saying the campaign is mostly buying junk traffic and we're wasting their money.",
158 "expected_output": "Should load references/reading-google-ads-data.md. Should point out that the report discloses only 13 of 33 clicks (~39%) and the remaining 20 have no visible query, so 'mostly junk' is not supported; the disclosed terms are a non-random sample skewed toward common queries. Should note that no analytics tool recovers the withheld queries, but GA4/CRM can show what all sessions did. Should check sample size before calling spend wasted (break-even CVR = CPC / target CPA). Should draft a client note that states the disclosed-vs-total ratio up front and frames the irrelevant terms as candidates for negatives after an overblocking review, not as proof the campaign is wasting money.",
159 "assertions": [
160 "States the disclosed vs total clicks ratio (13 of 33)",
161 "Explains Google withholds low-volume search terms and they cannot be recovered from site analytics",
162 "Does not write a client note claiming the campaign is 'mostly' junk traffic",
163 "Mentions sample size or break-even CVR before calling the spend wasted",
164 "Client-facing draft volunteers the data limits rather than hiding them"
165 ]
166 },
167 {
168 "id": 13,
169 "prompt": "Our non-brand Google campaign has 0 conversions from 48 clicks this month at a $6 CPC. Our target CPA is $150. My boss wants to pause it. Is it failing?",
170 "expected_output": "Should load references/reading-google-ads-data.md. Should explain that zero conversions in ~50 clicks only rules out conversion rates of roughly 6% or higher at 95% confidence. Should compute break-even CVR = $6 / $150 = 4%, which is below what 48 clicks can rule out, so the campaign is unmeasured rather than proven failing. Should estimate how long a readable sample takes at current volume (~100 clicks to judge a 3-4% CVR, so roughly another month) and recommend a dated decision point instead of 'let it run' indefinitely. Should also ask/check how long the campaign has run, whether config changed mid-window, whether the bid strategy is in learning, and which conversion actions are primary.",
171 "assertions": [
172 "Says zero conversions in ~50 clicks only rules out CVR around 6% or higher",
173 "Computes break-even CVR as CPC / target CPA = 4%",
174 "Concludes the campaign is unmeasured rather than proven failing",
175 "Gives a dated or volume-based decision point rather than an open-ended 'let it run'",
176 "Checks at least one of: runtime/lifetime window, mid-window config changes, learning status, conversion action definitions"
177 ]
178 },
179 {
180 "id": 14,
181 "prompt": "CAC is $300 and monthly ARPU $99. A colleague says 3.0-month payback means we should scale. Gross margin is 20%. Also, two other 80%-margin cohorts both retain 70% at month 12: one loses 30% before month 1, the other before month 12. Can annual retention alone give their payback dates?",
182 "expected_output": "Should compute 300/(99*.2)=15.2 months before churn for the low-margin plan and reject scaling based on 3.0 months revenue-only. For the 80%-margin cohorts compare cumulative gross profit: early loss yields $55.44/month and crosses $300 in month 6; late loss yields $79.2/month initially and crosses in month 4. Equal annual retention does not establish equal recovery dates. These are supplied discrete monthly assumptions, not empirical forecasts or time-value discounting.",
183 "assertions": [
184 "Includes gross margin in the recovery denominator",
185 "Shows the low-margin plan has 15.2-month simplified payback",
186 "Distinguishes early-vs-late churn despite equal month 12 retention",
187 "Uses cumulative cohort gross profit with explicit monthly assumptions"
188 ],
189 "files": []
190 },
191 {
192 "id": 15,
193 "prompt": "Weekly check on our Google Ads lead-gen account. This week vs last: spend $8,400 vs $8,100, clicks flat, CPA up from $140 to $210. Google Ads shows 40 conversions, but the CRM only logged 22 new leads from paid search, and last week the two matched. Someone changed the thank-you page on Tuesday. I don't have the change history export. What should we do with the budget?",
194 "expected_output": "Should run the ordered check (spend, traffic, conversions, creative, landing page, tracking) and land on exactly one call: INVESTIGATE, because platform and CRM conversion counts diverged after a thank-you page change, so the CPA can't be trusted. Should not recommend a budget, bid, or pause change until tracking is verified. Should name the likely cause (duplicate or misfiring conversion tag after the page change) as a hypothesis, mark the change history as MISSING, and end with facts, hypotheses, and missing data.",
195 "assertions": [
196 "Ends in exactly one call, and that call is INVESTIGATE",
197 "Does not recommend changing budget, bids, or campaign status this week",
198 "Links the platform-vs-CRM divergence to the Tuesday thank-you page change as a hypothesis, not a fact",
199 "Labels the change history export as MISSING instead of assuming what changed",
200 "Ends with separate facts, hypotheses, and missing data lists"
201 ],
202 "files": []
203 },
204 {
205 "id": 16,
206 "prompt": "We sell a $49/month meal-planning app. I want to run a Meta ad sequence on our Sales campaign: hook ad, then a problem ad, then a testimonial, then the offer. How do I set that up?",
207 "expected_output": "Should load references/meta-andromeda-playbook.md and explain that explicit ad sequencing isn't available on Sales (or Leads) objectives: it requires Awareness (Maximize reach) or Engagement (ThruPlay), Target frequency rather than a cap, a lifetime budget at the ad set level of at least 7 days with Advantage campaign budget off, and at least two ads. Should offer two routes: a sequencing campaign on an eligible objective for the top of the path, or approximating the path on the Sales campaign with engagement retargeting (hook-ad video viewers get the proof ad, then the offer). Should size the sequence to the flight (campaign length and frequency window cap how many ads fit) and suggest trimming four ads to two or three. Should note target frequency usually costs more per impression, so judge on downstream conversions, ideally against a holdout, and tell the user to confirm the current setup in Meta's help docs.",
208 "assertions": [
209 "States that sequencing isn't available on the Sales objective",
210 "Lists the setup requirements: Awareness or Engagement objective, target frequency, lifetime budget of 7+ days, 2+ ads",
211 "Offers engagement retargeting as the way to approximate the path on a conversion campaign",
212 "Explains that flight length and frequency cap how many ads fit, and suggests 2-3 ads",
213 "Flags the higher cost per impression and says to judge on downstream conversions",
214 "Does not cite an unverified conversion multiplier for sequencing"
215 ],
216 "files": []
217 },
218 {
219 "id": 17,
220 "prompt": "We pay $200/month for an ad spy tool and mostly use it to see what our 6 competitors are running. Can we build our own that updates every week?",
221 "expected_output": "Should load references/creative-research-automation.md (Workflow 4) and lay out the pipeline: widen the competitor list, pull active ads on a schedule from the Meta Ad Library, Google Ads Transparency Center and LinkedIn Ad Library, store the creative, tag each ad with a vision-capable model (hook, angle, offer, format, length, first and last seen), write to a database, diff weekly, and ask gap questions. Should note that Meta's official Ad Library API only returns all ads for EU delivery and political or issue ads elsewhere, and the other libraries have no official API, so most builds use a scraping API or actor, subject to each source's terms. Should treat long-running ads as a proxy for what's working, not proof. Should frame build vs. buy neutrally (subscription vs. maintenance) without declaring a winner, and say to adapt angles, never copy ads.",
222 "assertions": [
223 "Describes a scheduled pull, store, tag, database, weekly-diff pipeline",
224 "States the Meta Ad Library API limitation (all ads only for EU delivery, otherwise political or issue ads)",
225 "Mentions checking each source's terms when scraping",
226 "Treats ad longevity as a proxy, not proof that an ad wins",
227 "Frames build vs. buy as a trade-off without recommending one as best",
228 "Says to adapt competitors' angles, not copy their ads"
229 ],
230 "files": []
231 },
232 {
233 "id": 18,
234 "prompt": "B2B SaaS, Google Search spend around $6k/month, about 12 conversions a month across all campaigns, manual CPC on phrase and exact. Our Google rep says we should turn on AI Max. Should we?",
235 "expected_output": "Should load references/google-search-playbook.md and apply the broad-match gate to AI Max: 30+ conversions per month in the campaign, smart bidding live, and a tight negative list. At ~12 conversions a month across the account on manual CPC, the account fails the gate, so the answer is not yet. Should explain what AI Max does (matches beyond the keyword list, rewrites ad text, can send clicks to other pages via final URL expansion) and the B2B risk of landing buyers on careers or blog pages. Should give the conditions for a later test: URL exclusions, reviewing search terms and chosen landing pages weekly, and comparing against a campaign without it.",
236 "assertions": [
237 "Applies the same gate as broad match (30+ conversions/month, smart bidding, negatives)",
238 "Concludes the account isn't ready for AI Max yet",
239 "Explains final URL expansion and the risk of sending B2B clicks to the wrong pages",
240 "Lists URL exclusions, weekly search-term and landing-page review, and a comparison campaign as test conditions"
241 ],
242 "files": []
243 }
244 ]