Ad campaign setup & reporting (test accounts)
Build campaigns, audiences, budgets and reports in ad managers.
20 project-authored proposals · taxonomy v1.1 · 0 new benchmark runs. Verifiers and partial-credit rules below are designs, not executed results.
- Typical applications
- Google Ads · Meta Ads Manager · LinkedIn Campaign Manager
- Class GUI-need label
G2· GUI-essential
Task proposals · 20
Expand to inspect the complete original wording and proposed checks. Original proposal text remains English in both interfaces.
R05.07.01.01-T01 Duplicate an ad set with a narrower audience and manual placements in Meta
Original instruction
Meta Ads Manager, sandbox ad account (no delivery). Duplicate ad set 'Prospecting - Broad' into the same campaign as 'Prospecting - 25-44', set age 25-44, locations US and CA, turn off Advantage+ placements and choose only Facebook Feed and Instagram Feed, keep budget. Leave it paused.
- Platforms
web· Any OS (web)- Applications
- Meta Ads Manager
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & forms- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 2 / 5
Proposed verifier
Graph API read with admin token: new ad set in same campaign, targeting age_min/max, geo, publisher_platforms and positions equal spec; status PAUSED; original unchanged. Meta Marketing API tokens are withheld from the agent; Activity history must show the edits were made in Ads Manager.
Proposed partial credit
20% duplicated in place; 30% age/geo; 40% placements; 10% paused
R05.07.01.01-T02 Create a shared negative keyword list and apply it to two campaigns
Original instruction
Google Ads test account (manager-linked, no serving). In Tools > Shared library, create negative keyword list 'Brand exclusions' with the 12 terms in input/negatives.txt using the match types given (phrase/exact), and apply it to campaigns 'Search - Generic' and 'Search - Competitor' only.
- Platforms
web· Any OS (web)- Applications
- Google Ads
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & forms- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 2 / 5
Proposed verifier
Admin API read: shared set with 12 criteria and match types exact; campaign_shared_set links to exactly 2 campaigns. The Google Ads API developer token is withheld from the agent; Change history must show client type 'Google Ads web interface'.
Proposed partial credit
50% terms and match types; 30% applied to right campaigns; 20% no others
R05.07.01.01-T03 Export last month's campaign performance from LinkedIn Campaign Manager
Original instruction
LinkedIn Campaign Manager, sandbox ad account with seeded reporting. Export the campaign performance report for 2026-09-01 to 2026-09-30, breakdown by campaign, metrics impressions, clicks, spend, leads, CTR, CPL, as CSV to output/li_sept.csv, then write the campaign with the lowest CPL (min 10 leads) to output/answer.txt.
- Platforms
web· Any OS (web)- Applications
- LinkedIn Campaign Manager
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicknav· Pan/zoom/scroll- Work product
WP12· Answer/decision- Conditions
- None declared
- Proposed difficulty
- 1 / 5
Proposed verifier
CSV is the native export (header format) for the exact date range; answer equals key (a campaign with 3 leads has lower CPL as a decoy). LinkedIn Marketing API access is withheld from the agent, so the data is reachable only in Campaign Manager.
Proposed partial credit
50% correct export; 50% correct campaign
R05.07.01.01-T04 Build a paused three-ad-group search campaign with tCPA bidding
Original instruction
Google Ads test account. Create Search campaign 'Fall Promo 2026': daily budget 50 USD, Target CPA 25, locations US and Canada (presence only), English, start 2026-10-20, end 2026-11-30, 3 ad groups with keywords from input/fall_keywords.csv, one responsive search ad per group using input/rsa_copy.md (15 headlines, 4 descriptions), paused.
- Platforms
web· Any OS (web)- Applications
- Google Ads
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & forms- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
Admin API read: campaign settings, geo target type PRESENCE, dates, ad groups, keyword match types, RSA assets equal input; status PAUSED. The Google Ads API developer token is withheld from the agent; Change history must show client type 'Google Ads web interface'. Control pair: T12.
Proposed partial credit
25% campaign settings; 30% ad groups and keywords; 30% RSAs; 15% paused and dates
R05.07.01.01-T05 Set up a lead-generation campaign with an instant form in Meta
Original instruction
Meta Ads Manager, sandbox ad account and test Page. Create campaign 'Demo Leads Q4' (objective Leads, Advantage campaign budget 80/day), one ad set targeting US, ages 30-60, interest 'Supply chain management', schedule 2026-10-20 to 2026-11-20, and an instant form with fields from input/form_spec.md, privacy URL and a custom question. Leave paused.
- Platforms
web· Any OS (web)- Applications
- Meta Ads Manager
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & forms- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
Admin read: campaign objective and CBO, ad set targeting and schedule, lead form questions/privacy policy equal spec; all PAUSED. Meta Marketing API tokens are withheld from the agent; Activity history must show the edits were made in Ads Manager.
Proposed partial credit
25% campaign; 25% ad set targeting and schedule; 40% instant form; 10% paused
R05.07.01.01-T06 Launch-ready Sponsored Content campaign with a matched company list in LinkedIn
Original instruction
LinkedIn Campaign Manager sandbox. Upload input/target_accounts.csv as a company Matched Audience 'ABM Q4', then create Sponsored Content campaign 'ABM Q4 - Single image' targeting that audience AND job functions Operations or Supply Chain, seniority Manager+, excluding current customers list 'Customers 2026'; budget 60/day; paused.
- Platforms
web· Any OS (web)- Applications
- LinkedIn Campaign Manager
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & forms- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
Admin read: matched audience exists from file; campaign targeting facets (include AND/OR structure and exclusion) equal key; budget and status. LinkedIn Marketing API access is withheld from the agent; account change history must show web edits.
Proposed partial credit
25% audience upload; 45% targeting structure; 20% exclusion; 10% budget/paused
R05.07.01.01-T07 Import a Google Ads campaign into Microsoft Advertising and adjust bids
Original instruction
Microsoft Advertising test account. Use the Google Import tool to import campaign 'Search - Generic' from the linked Google Ads test account (no scheduled imports), then lower all keyword bids in the imported campaign by 15% and set the campaign's device bid adjustment for mobile to -20%. Leave paused.
- Platforms
web· Any OS (web)- Applications
- Microsoft Advertising · Google Ads
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & forms- Work product
WP08· App/system state- Conditions
multiapp· Multi-app- Proposed difficulty
- 3 / 5
Proposed verifier
Bing Ads read (admin): campaign imported with ad groups/keywords matching source; keyword bids = imported x 0.85 (rounded to 0.01); mobile modifier -20; no recurring import schedule. Agent has no API developer token.
Proposed partial credit
30% import complete; 40% bid changes; 20% device modifier; 10% no schedule
R05.07.01.01-T08 Set a dayparting schedule on the TikTok ad-group grid
Original instruction
TikTok Ads Manager sandbox account. In ad group 'Q4 Retargeting', switch dayparting to 'Select time slots' and paint the grid so ads run Mon-Fri 07:00-09:30 and 17:00-22:00 and Sat-Sun 10:00-23:00 (account timezone). Save without enabling the ad group.
- Platforms
web· Any OS (web)- Applications
- TikTok Ads Manager
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
drag· Drag & dropclick· Point & click- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
Admin read: dayparting bitmap (half-hour slots per day) equals key exactly; ad group still disabled. TikTok Marketing API tokens are withheld from the agent; the operation log must show the edit was made on the web.
Proposed partial credit
80% slot accuracy (proportional over 336 slots); 20% saved and still paused
R05.07.01.01-T09 Lower bids on high-CPA keywords using a filtered keyword view
Original instruction
AdsLab: AdsLab, a self-hosted replica of the Google Ads UI seeded with 90 days of deterministic stats. In campaign 'Search - Generic', filter keywords with Cost/conv. > 40 over the last 30 days (as of 2026-10-13) and at least 2 conversions, and lower their max CPC bids by 15% via bulk edit. Do not change keywords with fewer conversions.
- Platforms
web· Any OS (web)- Applications
- Google Ads (AdsLab replica)
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & forms- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
Replica DB: exactly the key's keywords have bid = old x 0.85; others unchanged; change log entries from UI bulk edit (replica has no API).
Proposed partial credit
60% exact keyword set; 30% bid values; 10% no collateral edits
R05.07.01.01-T10 Build a customer-list audience and a 1% lookalike in Meta
Original instruction
Meta Ads Manager sandbox. Create a Custom Audience 'Customers 2026' from input/customers_synthetic.csv (synthetic emails and phones) mapping columns correctly, then a 1% Lookalike in the US from it named 'LAL 1% US - Customers'. Exclude the custom audience from ad set 'Prospecting - Broad'.
- Platforms
web· Any OS (web)- Applications
- Meta Ads Manager
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & forms- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
Admin read: custom audience exists with mapped schema (EMAIL, PHONE, FN, LN), lookalike spec country US ratio 0.01, exclusion on the ad set. Meta Marketing API tokens are withheld from the agent; Activity history must show the edits were made in Ads Manager.
Proposed partial credit
30% custom audience mapping; 30% lookalike; 40% exclusion applied
R05.07.01.01-T11 Bulk-edit keyword match types and final URLs in Google Ads Editor
Original instruction
Google Ads Editor (macOS or Windows) with the test account downloaded. In campaign 'Search - Generic', convert all broad-match keywords in ad groups 'Pallets*' to phrase match (keep bids), replace final URL path '/products/old-pallets' with '/pallets' on all keywords and ads, check for policy errors, and post changes.
- Platforms
mac· macOSwin· Windows- Applications
- Google Ads Editor
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & formskey· Shortcuts- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
Admin API read after posting: affected keywords now phrase with same bids, no broad duplicates left; URLs replaced on all keywords and RSAs; change history client type 'Google Ads Editor'. The Google Ads API developer token is withheld from the agent, so changes posted by any other route show a different client type.
Proposed partial credit
40% match-type conversion; 40% URL replacement; 20% posted without errors
R05.07.01.01-T12 Create the same search campaign through the Google Ads API (control pair of T04)
Original instruction
Control pair of T04. A second test account with developer token and OAuth in env GADS_*. Use the google-ads Python client to create the identical 'Fall Promo 2026' campaign (settings, ad groups, keywords, RSAs), paused.
- Platforms
lin· Linuxmac· macOSwin· Windows- Applications
- Google Ads API · Python
- Interfaces
api· API/SDKterm· Terminal- GUI need · task setting
AP· API-sufficient- GUI need · ordinary access
AP· API-sufficient- Interaction primitives
code· Code & commands- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
Same checks as T04; compared to T04 to measure the GUI penalty.
Proposed partial credit
25% settings; 30% ad groups/keywords; 30% RSAs; 15% paused
R05.07.01.01-T13 Build a Performance Max asset group with correctly cropped images
Original instruction
Google Ads test account. Create Performance Max campaign 'PMax - Pallets' (budget 70/day, maximize conversion value, target ROAS 400%), one asset group with headlines/descriptions from input/pmax_copy.md, and images from input/images/ cropped in the built-in cropper to 1.91:1 and 1:1 keeping the product fully in frame; add logo and final URL; paused.
- Platforms
web· Any OS (web)- Applications
- Google Ads
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & formsgeom· Precise geometryvis· Visual judgment- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 4 / 5
Proposed verifier
Admin read: campaign bidding, tROAS, asset group texts; image assets with both aspect ratios exist; product bounding box (known per source image) fully inside each crop (IoU check). The Google Ads API developer token is withheld from the agent; Change history must show client type 'Google Ads web interface'.
Proposed partial credit
25% campaign settings; 25% text assets; 40% crops contain product; 10% paused
R05.07.01.01-T14 Set up a conversion action with enhanced conversions via Tag Manager
Original instruction
Google Ads test account plus Google Tag Manager test container for the demo shop. Create a 'Purchase' conversion action (value from data layer, count every, 30-day click window), enable enhanced conversions using GTM, add the Google Ads conversion tag firing on the 'purchase' event with user-provided data variable, preview in Tag Assistant and publish the container version 'ads-purchase-v1'.
- Platforms
web· Any OS (web)- Applications
- Google Ads · Google Tag Manager
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & formsmulti· Cross-app- Work product
WP06· Code/engineering- Conditions
multiapp· Multi-app- Proposed difficulty
- 4 / 5
Proposed verifier
Ads admin read: conversion action settings; GTM API (admin) read: tag, trigger, variable config and published version name; Tag Assistant debug log in output/ shows tag fired with hashed fields. The Google Ads API developer token and GTM API OAuth access are withheld from the agent; Change history must show client type 'Google Ads web interface'.
Proposed partial credit
30% conversion action; 40% GTM tag/trigger/variable; 20% published; 10% preview evidence
R05.07.01.01-T15 Configure a creative A/B test in Meta Experiments
Original instruction
Meta Ads Manager sandbox. Create an A/B test between two ads (creative A: input/creative_a.jpg, B: input/creative_b.mp4) in duplicate ad sets of 'Prospecting - 25-44', split 50/50, key metric cost per lead, schedule 2026-10-21 to 2026-11-04, 95% confidence target. Keep everything paused/scheduled, not running.
- Platforms
web· Any OS (web)- Applications
- Meta Ads Manager
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & forms- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 4 / 5
Proposed verifier
Admin read: ad study with 2 cells, split, objective metric, dates; each cell's ad uses the correct creative; no active delivery. Meta Marketing API tokens are withheld from the agent; Activity history must show the edits were made in Ads Manager.
Proposed partial credit
30% study config; 40% cells and creatives; 20% schedule; 10% not running
R05.07.01.01-T16 Build a ROAS report by campaign and device and export it
Original instruction
AdsLab: AdsLab, a self-hosted replica of the Google Ads UI seeded with 90 days of deterministic stats. Build a custom report for 2026-07-01 to 2026-09-30: rows campaign, columns device, metrics cost, conversion value, ROAS; filter network = Search; save it as 'Q3 ROAS by device', export CSV to output/q3_roas.csv, and write the campaign-device pair with the lowest ROAS (cost > 1,000) to output/answer.txt.
- Platforms
web· Any OS (web)- Applications
- Google Ads (AdsLab replica)
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clickdrag· Drag & droptype· Text & forms- Work product
WP12· Answer/decision- Conditions
- None declared
- Proposed difficulty
- 4 / 5
Proposed verifier
Saved report definition matches; CSV values equal replica DB aggregates; answer equals key. Replica has no API; report saved by UI session.
Proposed partial credit
30% saved report; 40% export values; 30% answer
R05.07.01.01-T17 Create a branching Conversation Ad in LinkedIn
Original instruction
LinkedIn Campaign Manager sandbox. Create a Conversation Ads campaign 'Demo Booking' with a sender (test member), an intro message and the branching flow in input/conversation_flow.md (3 levels, 5 CTAs incl. a lead-gen form branch and a 'not now' exit), paused.
- Platforms
web· Any OS (web)- Applications
- LinkedIn Campaign Manager
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & formsdrag· Drag & drop- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 4 / 5
Proposed verifier
Admin read: conversation tree nodes, texts and CTA destinations equal the spec graph (graph isomorphism); lead form attached; paused. LinkedIn Marketing API access is withheld from the agent; account change history must show web edits.
Proposed partial credit
50% tree structure; 30% texts/CTAs; 20% form and paused
R05.07.01.01-T18 Launch a cross-platform plan from a media plan across Google Ads and Meta
Original instruction
Google Ads and Meta Ads Manager test accounts. input/media_plan_q4.pdf specifies 6 campaigns across both platforms with budgets, flights, geos, audiences, bidding and UTM conventions. Build all of them paused, with UTM parameters on every final URL per the naming convention, and fill output/launch_log.xlsx with platform IDs.
- Platforms
web· Any OS (web)- Applications
- Google Ads · Meta Ads Manager · Excel
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & formsmulti· Cross-app- Work product
WP08· App/system state- Conditions
multiapp· Multi-applong· Long-horizon- Proposed difficulty
- 5 / 5
Proposed verifier
Admin reads: each campaign's settings equal plan; every URL has the exact UTM string; launch log IDs match; all paused. Google Ads developer token and Meta Marketing API tokens are withheld from the agent; Google change history must show client type 'Google Ads web interface' and Meta Activity history edits made in Ads Manager.
Proposed partial credit
50% campaign settings (per campaign); 25% UTMs; 15% launch log; 10% paused
R05.07.01.01-T19 Audit and fix ten planted issues in a thirty-campaign account
Original instruction
AdsLab: AdsLab, a self-hosted replica of the Google Ads UI seeded with 90 days of deterministic stats (30 campaigns). input/account_standards.pdf lists required standards. Find and fix the 10 planted issues (e.g. overlapping geo targeting, missing shared negative list, broken final URLs, disapproved ad, budget-limited campaign with wrong bidding, wrong conversion goal) and list each fix in output/audit.md.
- Platforms
web· Any OS (web)- Applications
- Google Ads (AdsLab replica)
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & formsnav· Pan/zoom/scroll- Work product
WP08· App/system state- Conditions
long· Long-horizonhidden· Hidden/stale state- Proposed difficulty
- 5 / 5
Proposed verifier
Replica DB: each of the 10 issues resolved per standard (checks per issue); no other entities changed beyond tolerance; audit.md names each issue's entity (parsed). Replica has no API and its DB is firewalled from the agent; change log entries must come from UI sessions.
Proposed partial credit
70% ten issues fixed (equal shares); 20% audit log; 10% no collateral changes
R05.07.01.01-T20 Structure Amazon Sponsored Products campaigns with search-term harvesting
Original instruction
Amazon Ads console sandbox (seeded search-term report). For ASIN B0TEST1234, create an auto campaign and a manual exact campaign; harvest search terms from the 60-day report with >= 3 orders and ACoS < 30% into the manual campaign as exact keywords, add them as negative exact in the auto campaign, add negative ASINs from input/neg_asins.txt, and set top-of-search placement +40%.
- Platforms
web· Any OS (web)- Applications
- Amazon Ads
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & formsnav· Pan/zoom/scroll- Work product
WP08· App/system state- Conditions
long· Long-horizon- Proposed difficulty
- 5 / 5
Proposed verifier
Sandbox read: campaigns, harvested keyword set equal key, negatives mirrored, negative ASINs, placement adjustment; all paused. Amazon Ads API credentials are withheld from the agent; the console's campaign History must show the edits were made on the web.
Proposed partial credit
20% campaign structure; 40% harvested keywords; 25% negatives; 15% placement
Mapped research references
No benchmark reference is assigned to this class in the current mapping.