Back

A Suite of Google Ads Optimization Tasks

We benchmark AI agents on real Google Ads optimization workflows. 21 tasks across campaign builds, account audits, bid strategy, and performance diagnosis — each graded step-by-step against expert-sourced rubrics.

Difficulty levels

3

Three levels: single-fix, multi-step, and full workflows.

L1 — Single-fix tasks. One problem, one diagnosis, one action (~5 steps).

L2 — Multi-step workflows with dependencies between findings (5–9 steps).

L3 — Full-scope work: account audits, campaign builds, the kind of task that takes a marketer hours (25+ steps).

Judge

J

Autonomous LLM grading — each step verified against preloaded correct answers.

Grading is fully autonomous — an LLM with the preloaded correct answer verifies each step against the agent's transcript.

Every step is either required (objectively necessary — broken tracking, wrong settings) or bonus (expert insight — dayparting, naming conventions). Models aren't penalized for taking a different valid approach on bonus steps.

Realistic environment

E

Simulated Google Ads account with 28 tools. No hints, just a goal.

Agents interact with a simulated Google Ads account through 28 tools — the same data and actions a real practitioner would use. No multiple choice. No hints. Just a goal and an API.

Explore the environment →

Model performance overview

Percentage of tasks where the model scored 100% on all required steps.

Sonnet 4.6 Anthropic
52%
Opus 4.6 Anthropic
Pending
GPT-5.3 OpenAI
Pending
Gemini 3 Pro Google
Pending
Grok 4 xAI
Pending

Results analysis

Models handle isolated diagnostics well — most L1 tasks are solved perfectly. But as task complexity scales, performance drops significantly. On Level 3 workflows that mirror a marketer's full job — multi-hour audits, building accounts from scratch — no model fully automates the work end-to-end. They can reliably handle a meaningful portion of the workflow, but still require human oversight on the highest-judgment steps.

Tasks fully solved (100% of required steps)

Level 1 Single-fix

Sonnet 4.6
100%
Opus 4.6
Pending

Level 2 Multi-step workflows

Sonnet 4.6
50%
Opus 4.6
Pending

Level 3 Full-scope work

Sonnet 4.6
0%
Opus 4.6
Pending

Average step accuracy across tasks

Level 1 Single-fix

Sonnet 4.6
100%
Opus 4.6
Pending

Level 2 Multi-step workflows

Sonnet 4.6
87%
Opus 4.6
Pending

Level 3 Full-scope work

Sonnet 4.6
68%
Opus 4.6
Pending
Level 1

Single-fix tasks

One problem, one diagnosis, one action. The kind of thing a marketer knocks out in 15 minutes — but it still requires reading the right data and making the right call.

Fix Conversion Tracking

Sonnet: 5/5 (100%)
1
Call getConversionActions

Must retrieve conversion data before any diagnosis is possible.

1 pt · Required
2
Fix tag location to post-purchase page

The conversion tag is on /contact instead of the purchase confirmation page, overcounting conversions. This is the core fix.

2 pts · Required
3
Set attribution window >= 30 days

Current 7-day window misses conversions that take 11+ days to close, underreporting true performance.

2 pts · Required

Fix Conversion Counting

Sonnet: 6/6 (100%)
1
Call getConversionActions

Retrieve conversion setup to inspect counting model.

1 pt · Required
2
Diagnose counting='every' as inflation source

Each page reload counts as a separate conversion, inflating numbers.

2 pts · Required
3
Set counting to 'one'

Only count one conversion per click to get accurate purchase data.

2 pts · Required
4
Explain the mechanism

Must articulate how 'every' counting causes inflation — not just identify it.

1 pt · Required

Add Negative Keywords

Sonnet: 8/8 (100%)
1
Call getSearchTermsReport for camp_004

Need to see what queries are actually triggering ads before adding negatives.

1 pt · Required
2
Identify irrelevant term categories

Must find >=3 of: informational, DIY, job-seeking, or post-purchase queries wasting spend.

2 pts · Required
3
Add >= 4 negative keywords

Negatives must actually be added to the account, not just recommended.

1 pt · Required
4
Negatives cover the irrelevant patterns

At least 4 of 6 wasted query categories must be blocked by the negatives chosen.

2 pts · Required
5
No high-intent terms negated

Must not block commercial terms like "furniture" or "sofa" — only irrelevant traffic.

2 pts · Required

Diagnose Bid Cap Throttling

Sonnet: 6/6 (100%)
1
Call getPerformanceData for camp_004

Need impression share data to see where delivery is being lost.

1 pt · Required
2
Call getCampaignDetails for camp_004

Need to see the bid cap setting that's causing the throttle.

1 pt · Required
3
Identify IS_lost_rank as the throttle signal

~75% IS lost to rank, not budget — the bid cap is preventing competitive bids.

2 pts · Required
4
Remove or raise bid cap to >= $3.00

The $1.20 bid cap must be lifted to let the bidding strategy compete in auctions.

2 pts · Required

Diagnose tROAS Throttling

Sonnet: 6/6 (100%)
1
Call getPerformanceData for camp_004

Need to see actual ROAS vs target to diagnose the gap.

1 pt · Required
2
Call getCampaignDetails for camp_004

Retrieve the tROAS target setting to compare against reality.

1 pt · Required
3
Identify over-aggressive tROAS target

Target is 1500% (15x) vs actual ~380% (3.8x) — a 4x gap that throttles all delivery.

2 pts · Required
4
Reduce tROAS target to <= 6.0

Must bring target into realistic range so Smart Bidding can actually compete in auctions.

2 pts · Required

Pause Poor Ads & Create RSAs

Sonnet: 8/8 (100%)
1
Call getAds for >= 2 ad groups

Need to review ad quality across the account, not just one group.

1 pt · Required
2
Identify the Poor-strength ads

ad_009 and ad_011 have "Poor" ad strength — must be specifically named.

2 pts · Required
3
Pause both Poor ads

Both ad_009 and ad_011 must be paused, not just one.

2 pts · Required
4
Create at least 1 new RSA

Can't just pause ads — need replacements to maintain ad coverage.

1 pt · Required
5
New ads have stronger, specific copy

Replacement RSAs must actually improve on the generic copy that made the originals "Poor."

2 pts · Required

Reallocate Budget

Sonnet: 8/8 (100%)
1
Call getPerformanceData for >= 3 campaigns

Need comparative data across campaigns to identify the reallocation opportunity.

1 pt · Required
2
Identify camp_001 as IS-constrained high performer

54% IS lost to budget with 3.82 ROAS — best campaign is leaving money on the table.

2 pts · Required
3
Identify camp_002 as the donor campaign

2.09 ROAS with $8,600/month — lowest-performing campaign with the most budget to give.

2 pts · Required
4
Execute budget reallocation >= $500

Must actually move budget from camp_002 to camp_001, not just recommend it.

3 pts · Required
Level 2

Multi-step workflows

Findings depend on each other. The agent has to chain diagnostics — fixing one thing reveals the next problem, like a real account review. 5–9 steps.

tCPA Migration Readiness

Sonnet: 10/10 (100%)
1
Call getConversionActions

Must verify conversion tracking is healthy before migrating to Smart Bidding.

1 pt · Required
2
Fix tag location to post-purchase page

tCPA will optimize on wrong data if the tag is on the wrong page.

2 pts · Required
3
Call getPerformanceData for camp_001

Need conversion volume and CPA data to set an appropriate target.

1 pt · Required
4
Assess camp_001 as ready for tCPA

Sufficient volume + fixed tracking = green light for migration.

2 pts · Required
5
Set bidding strategy to target_cpa

Must actually make the change, not just recommend it.

2 pts · Required
6
Set target within 30% of actual CPA ($18–$34)

Setting target too far from reality causes learning failures or overspend.

2 pts · Required

tCPA Readiness (Low Volume)

Sonnet: 4/7 (57%)
1
Call getConversionActions

First check — is the conversion setup valid?

1 pt · Required
2
Call getPerformanceData for camp_001

Need to see conversion volume to assess tCPA readiness.

1 pt · Required
3
Identify insufficient conversion volume

Only 8 conversions in 90 days — far below the threshold for Smart Bidding to learn.

2 pts · Required
4
Recommend alternative strategy

Should suggest maximize_conversions or deferred migration with justification.

2 pts · Required
5
Do NOT set tCPA

The correct answer is to not migrate. Setting tCPA on low volume will destabilize the campaign.

1 pt · Required

Fix Quality Score via Ad Relevance

Sonnet: 9/10 (90%)
1
Call getKeywords for camp_004

Need Quality Score breakdown to find the underperforming ad groups.

1 pt · Required
2
Identify Below Average ad relevance groups

ag_010 and/or ag_012 have ad relevance dragging down Quality Score.

2 pts · Required
3
Call getAds for the affected groups

Need to see the current ad copy to understand the mismatch.

1 pt · Required
4
Diagnose keyword-to-ad copy mismatch

Keywords are category-specific but ads use generic copy — that's the root cause.

2 pts · Required
5
Create new ad for affected group

Must take action, not just diagnose.

1 pt · Required
6
New headlines reflect keyword intent

Bedroom/kitchen-specific copy that matches the ad group's keyword theme.

3 pts · Required

Keyword Expansion

Sonnet: 8/8 (100%)
1
Call getSearchTermsReport for camp_004

Search terms reveal converting queries with no matching keyword.

1 pt · Required
2
Identify accent chair as converting unserved theme

Converting search terms for accent chairs have no dedicated keywords.

2 pts · Required
3
Call getKeywords for camp_004

Confirm the gap — verify no existing accent chair keywords.

1 pt · Required
4
Create accent-chair-themed keywords

Must add the keywords to the account, not just recommend them.

2 pts · Required
5
Keywords scoped to accent chair intent

Must be specific — not generic "furniture" keywords that would waste spend.

2 pts · Required

Diagnose Performance Drop

Sonnet: 5/8 (63%)
1
Call getChangeHistory for camp_003

Performance drops require checking what changed — this is the first diagnostic step.

1 pt · Required
2
Call getPerformanceData for camp_003

Need the performance timeline to correlate with changes.

1 pt · Required
3
Identify volatile CPA target changes

$18 → $28 → $18 in ~22 days — constant target changes prevent Smart Bidding from learning.

2 pts · Required
4
Connect volatility to learning reset

Must explain the mechanism: target changes → learning reset → limited_learning → poor delivery.

2 pts · Required
5
Set a stable bidding target ($18–$26)

Fix requires committing to a stable target and letting the algorithm learn.

2 pts · Required

Perf Drop (Budget Cut)

Sonnet: 2/7 (29%)
1
Call getChangeHistory

Need to see what changed to cause the performance drop.

1 pt · Required
2
Call getPerformanceData for camp_003

Correlate the performance timeline with the budget change.

1 pt · Required
3
Identify budget cut as root cause

Budget went from $2,000 to $600 — this is the cause, not a learning reset.

2 pts · Required
4
Restore budget above $600

Must increase budget back or reallocate from another campaign.

2 pts · Required
5
Explain the mechanism

Budget cut → fewer auctions → IS_lost_budget → CPA spike from lost efficiency.

1 pt · Required

Launch New Campaign

Sonnet: 15/15 (100%)
1
Call getConversionActions

Verify conversion tracking works before building a campaign around it.

1 pt · Required
2
Call getSearchTermsReport for camp_004

Find the unserved converting query theme to build around.

1 pt · Required
3
Identify accent chairs as unserved theme

Converting queries with no matching keywords = campaign opportunity.

2 pts · Required
4
Create new campaign

Must build the actual campaign structure in the account.

2 pts · Required
5
Create ad group

Campaign needs at least one ad group to serve.

2 pts · Required
6
Add accent-chair keywords

Keywords must match the identified theme.

2 pts · Required
7
Create ad

Need at least one RSA to serve in the new ad group.

1 pt · Required
8
Appropriate launch bidding strategy

manual_cpc or max_conversions — not tCPA/tROAS with no historical data.

2 pts · Required
9
RSA headlines specific to accent chairs

Ad copy must match the keyword theme, not be generic.

2 pts · Required

Fix Attribution + Bid Cap

Sonnet: 11/12 (92%)
1
Call getConversionActions

Need attribution settings to diagnose the window mismatch.

1 pt · Required
2
Call getConversionLagReport

Need actual conversion lag data to compare against the attribution window.

1 pt · Required
3
Diagnose attribution window < conversion lag

7-day window vs 11.2-day average lag = systematically undercounting conversions.

3 pts · Required
4
Set attribution window >= 30 days

Must be wide enough to capture the full conversion cycle.

2 pts · Required
5
Call getPerformanceData for camp_004

Need impression share data to diagnose the bid cap issue.

1 pt · Required
6
Identify bid cap throttling camp_004

$1.20 bid cap with 75% IS lost to rank = bid cap is the bottleneck.

2 pts · Required
7
Remove or raise bid cap >= $3.00

Free the bidding strategy to compete in auctions.

2 pts · Required

Fix Retargeting Audience Mode

Sonnet: 10/10 (100%)
1
Call getAudienceSegments for camp_005

Need to inspect audience configuration on the retargeting campaign.

1 pt · Required
2
Identify observation mode as wrong

A dedicated retargeting campaign in observation mode serves to everyone — defeating the purpose.

2 pts · Required
3
Update audiences to targeting mode

At least 2 of 3 retargeting audiences must be switched.

2 pts · Required
4
Explain delivery and bidding consequence

Targeting mode changes delivery + bid_modifier=0 means no bid adjustment.

2 pts · Bonus
5
Call getPerformanceData for camp_005

Check performance data to assess impact of the misconfiguration.

1 pt · Required
6
Note historical metrics are invalid

Past performance was measured on untargeted traffic — can't use it as a retargeting benchmark.

2 pts · Bonus

Fix Brand Leakage

Sonnet: 10/10 (100%)
1
Call getSearchTermsReport for camp_004

See what queries are triggering ads in the non-brand campaign.

1 pt · Required
2
Identify branded queries as routing problem

Brand searches appearing in non-brand campaign = leakage that skews metrics.

2 pts · Required
3
Check search terms on other campaigns

Cross-campaign analysis to understand the full scope of leakage.

1 pt · Bonus
4
Explain ROAS and attribution skew

Brand traffic inflates non-brand ROAS and distorts attribution between campaigns.

2 pts · Required
5
Add brand negative keywords to camp_004

Must block brand terms from triggering non-brand ads.

2 pts · Required
6
Negatives are brand-specific, not overly broad

Block "brightnest" not "furniture" — precision matters.

2 pts · Required
Level 3

Full-scope work

The tasks that take a marketer hours — full account audits, building an account from scratch, Shopping and Performance Max deep dives. 25+ graded steps each.

Shopping Campaign Audit

Sonnet: 34/46 (74%) · Opus: 30/46 (65%)
1
Call getMerchantCenterStatus

Shopping campaigns start with the feed — must check Merchant Center first.

1 pt · Required
2
Identify disapprovals + feed staleness

67 price mismatches and feed 6 days stale — products can't serve.

2 pts · Required
3
Call getProductFeed

Need to see product-level data quality issues.

1 pt · Required
4
Identify GTIN gaps + generic titles

42% missing GTINs and 25% generic titles hurt match quality and eligibility.

2 pts · Required
5
Explain title → query matching chain

Generic titles → poor query matching → low CTR → wasted spend.

2 pts · Bonus
6
Call getProductGroups

Check how products are segmented for bidding.

1 pt · Required
7
Identify "All Products" as bid control loss

Undifferentiated group = same bid for high-margin and low-margin products.

3 pts · Required
8
Update product group bids (>= 2)

Must differentiate bids by performance tier.

2 pts · Required
9
Bids reflect performance tier

Higher-margin products get higher bids.

2 pts · Required
10
Call getSearchTermsReport for camp_006

Check what queries are triggering Shopping ads.

1 pt · Required
11
Identify non-commercial queries

>= 2 types of wasted query traffic in Shopping.

2 pts · Required
12
Add Shopping-specific negatives

>= 3 negative keywords targeting Shopping-specific wasted terms.

2 pts · Required
13
Call getPerformanceData for camp_006

Need performance metrics to assess bidding strategy.

1 pt · Required
14
Identify tROAS vs actual ROAS mismatch

Target 3.0x vs actual 1.78x — target is throttling delivery.

2 pts · Required
15
Diagnose IS_lost_rank as primary loss

48% IS lost to rank vs 7% to budget — bidding issue, not budget.

2 pts · Bonus
16
Adjust bidding for camp_006

Lower tROAS or change strategy to improve delivery.

2 pts · Required
17
Call getAudienceSegments for camp_006

Check if retargeting is layered on Shopping.

1 pt · Required
18
Recommend RLSA overlay

No retargeting on Shopping — missing high-intent repeat visitors.

2 pts · Bonus
19
Cross-channel search terms check

Check Search campaign terms to find overlap with Shopping.

1 pt · Bonus
20
Identify brand overlap

Brand queries appearing in both Shopping and Search.

2 pts · Bonus
21
Call getConversionActions

Verify conversion setup is correct for Shopping.

1 pt · Required
22
Prioritize MC/feed fixes first

Correct ordering: fix the feed before tuning bids.

2 pts · Bonus
23
Explain two-system ownership

Merchant Center vs Google Ads — different systems, different fix paths.

2 pts · Bonus
24
Synthesize compounding issues

Broken feed → wasted bids → bad IS → aggressive target. 3+ issues chained.

3 pts · Bonus
25
Recommend ROAS re-baselining

After fixes, the old ROAS target is meaningless — needs a new baseline.

2 pts · Required
26
Distinguish Shopping-specific failures

Feed-as-ad model creates failure modes that don't exist in Search.

2 pts · Bonus

Build Account from Scratch

Sonnet: 21/46 (46%) · Opus: 41/46 (89%)
1
Create purchase conversion action

Account needs conversion tracking before anything else.

2 pts · Required
2
Set counting=one, window>=30d

Correct conversion settings from the start.

2 pts · Bonus
3
Call getKeywordIdeas

Research keyword opportunities before building campaigns.

1 pt · Required
4
Keywords cover >= 2 commercial themes

Diversified keyword strategy with phrase/exact match.

2 pts · Required
5
No broad match without justification

Broad match at launch wastes budget on an unproven account.

2 pts · Required
6
Create brand campaign

Brand traffic needs its own campaign for attribution clarity.

2 pts · Required
7
Create non-brand campaign

At least one campaign targeting category/product terms.

2 pts · Required
8
Explain brand/non-brand separation

Attribution isolation rationale — brand inflates non-brand metrics if mixed.

2 pts · Bonus
9
Appropriate launch bidding strategy

maximize_clicks or max_conversions — no targets without conversion history.

2 pts · Required
10
Create >= 2 ad groups

Campaign structure needs themed ad groups.

1 pt · Required
11
Create keywords with phrase/exact match

Keywords added to the account with proper match types.

1 pt · Required
12
Add >= 3 negative keywords

Proactive negatives at launch to prevent wasted spend.

2 pts · Required
13
Create brand campaign ad

RSA for the brand ad group.

2 pts · Required
14
Create ads for >= 2 ad groups

Both brand and non-brand need ad coverage.

2 pts · Required
15
Ad copy matches keyword themes

Brand RSAs have brand name; non-brand are category-specific.

2 pts · Required
16
Create >= 4 sitelinks

Extensions improve ad real estate and CTR.

1 pt · Required
17
Add callout or structured snippet extensions

Additional extension types for comprehensive coverage.

1 pt · Required
18
Explain observation mode rationale

Why no bid modifier on audiences at launch.

2 pts · Bonus
19
Explain bidding strategy choice

No tCPA/tROAS justified by zero conversion history.

2 pts · Bonus
20
Budget allocation with reasoning

Brand vs non-brand split justified, ~$8K total.

2 pts · Required
21
Smart Bidding migration trigger

Recommend "2-3 conversions in 30-45 days" before switching.

2 pts · Bonus
22
Verify conversion setup

Double-check conversion tracking works at the end.

1 pt · Bonus
23
Keyword-to-ad alignment verified

No theme mismatch between keywords and ad copy.

2 pts · Required
24
No duplicate keywords

Structural hygiene — no keyword overlap between ad groups.

2 pts · Required
25
Document complete account structure

Report covers campaigns, ad groups, budgets, bid strategy.

2 pts · Required
26
Launch-to-optimization transition plan

Phased timeline for moving from launch to optimization.

2 pts · Bonus

Performance Max Audit

Sonnet: 43/48 (90%)
1
Call getCampaignDetails for camp_002

Start by understanding the PMax campaign configuration.

1 pt · Required
2
Call getConversionActions

Verify conversion tracking for PMax optimization.

1 pt · Required
3
Call getAssetGroups

Inspect PMax asset group configuration.

1 pt · Required
4
Identify "Low" rated assets

ast_003, ast_004, ast_007 — specific assets dragging performance.

2 pts · Required
5
Call getAssetPerformance

Get detailed performance data for assets.

1 pt · Required
6
Identify missing video assets

No video = can't serve on YouTube/Discover — losing cross-channel reach.

2 pts · Required
7
Identify asset count below minimum

Only 2 descriptions vs 4 recommended — limits ad variation.

2 pts · Bonus
8
Call getAudienceSegments for PMax

Check audience signal configuration.

1 pt · Required
9
Identify missing Customer Match + RLSA

Both first-party signal types are absent.

2 pts · Required
10
Explain audience signal mechanism

Signals = starting point for PMax's targeting, not a hard filter.

3 pts · Required
11
Add audience signal or brand exclusions

Take action to improve signal quality.

2 pts · Required
12
Call getPMaxInsights

PMax-specific reporting data.

1 pt · Required
13
Identify brand queries in PMax

18% of impressions, 31% of conversions — brand inflating PMax metrics.

2 pts · Required
14
Explain brand cannibalization

PMax stealing brand conversions from Search, distorting attribution.

2 pts · Required
15
Add brand exclusions

Exclude brand terms from PMax to fix attribution.

2 pts · Required
16
Identify URL expansion misconfiguration

final_url_expansion=true sends traffic to wrong landing pages.

2 pts · Required
17
Disable URL expansion

Must actually turn it off.

2 pts · Required
18
Explain URL expansion impact

Wrong landing page → CVR drop → wasted spend.

2 pts · Required
19
Call getPerformanceData for camp_002

Check PMax campaign performance metrics.

1 pt · Required
20
Identify PMax ROAS below target

2.09x actual vs 3.0x target — quantify the gap.

2 pts · Required
21
Note channel distribution context

PMax serving on display-heavy channels without video assets.

2 pts · Bonus
22
Synthesize compound effects

Brand cannibalization + URL expansion + weak signals interact and compound.

3 pts · Bonus
23
Prioritize brand exclusions first

Correct fix ordering among all the issues found.

2 pts · Bonus
24
Explain PMax black-box trade-off

Less control = more upstream configuration required.

2 pts · Bonus
25
Document all issues with data

Report covers 4+ issue categories with supporting evidence.

2 pts · Required
26
Post-fix monitoring plan

30-day re-baseline period after implementing fixes.

2 pts · Bonus
27
Use writeNotes during episode

Agent should track findings as it goes — evidence of structured work.

1 pt · Required

Full Account Audit

Sonnet: 52/80 (65%) · Opus: 55/80 (69%)

Phase 1 — Tracking (6 steps, 12 pts)

1
Identify conversion tag on wrong page

Tag on /contact overcounts purchases — name the consequence.

2 pts · Required
2
Fix tag to post-purchase page

Move conversion tracking to the correct page.

2 pts · Required
3
Check conversion lag report

Must use >= 30 day date range to see the full picture.

2 pts · Required
4
Identify attribution window mismatch

7-day window vs 11.2-day lag = missing conversions.

2 pts · Required
5
Fix attribution window >= 30 days

Widen window to capture full conversion cycle.

2 pts · Required
6
Identify Smart Bidding signal corruption

PMax/tCPA have been optimizing on wrong data for 8 months.

2 pts · Required

Phase 2 — Campaign Settings (12 steps, 24 pts)

7
Inspect Brand Search campaign

getCampaignDetails for camp_001.

2 pts · Required
8
Inspect Competitor campaign — notice limited_learning

camp_003 is in limited_learning status.

2 pts · Required
9
Respond to data quality flag

camp_003 performance data has a quality flag — must acknowledge it.

2 pts · Required
10
Identify Brand Search IS lost to budget (~54%)

Best campaign is budget-constrained.

2 pts · Required
11
Compare PMax ROAS (2.09 vs 3.82)

PMax underperforming vs Brand Search.

2 pts · Required
12
Interpret budget allocation problem

Both IS loss and ROAS gap must be named as joint cause.

2 pts · Required
13
Execute budget reallocation

Move $1K-$4K from camp_002 to camp_001.

2 pts · Required
14
Interpret tCPA + low volume on camp_003

~9 conv/month — not enough for Smart Bidding.

2 pts · Required
15
Switch camp_003 to manual_cpc

Appropriate for low-volume campaign.

2 pts · Bonus
16
Request hourly performance data

For dayparting analysis.

2 pts · Bonus
17
Identify dayparting opportunity

Interpret hourly performance patterns.

2 pts · Bonus
18
Actionable dayparting recommendation

Specific, data-backed schedule change.

2 pts · Bonus

Phase 3 — Ad Group & Ad Review (4 steps, 8 pts)

19
Find RSA gap on ag_001

Brand Search ad group has 0 RSAs.

2 pts · Required
20
Review ad groups across campaigns

Check >= 2 non-brand campaigns for coverage.

2 pts · Required
21
Identify generic headlines in ad_001

Ad copy quality issue — headlines are too generic.

2 pts · Required
22
Create brand-specific RSA

New RSA on ag_001 with brand-relevant copy.

2 pts · Required

Phase 4 — Keyword Review (4 steps, 8 pts)

23
Identify all-broad match type issue

Brand keywords are all broad — no exact or phrase match.

2 pts · Required
24
Explain why broad-only is insufficient

Broad match on brand terms bleeds into non-brand queries.

2 pts · Required
25
Add exact and phrase match brand keywords

Must add tighter match types to ag_001.

2 pts · Required
26
Broad match compounds budget-cap problem

Broad match inflates CPCs on a budget-constrained campaign.

2 pts · Required

Phase 5 — Audience Review (4 steps, 8 pts)

27
Identify observation mode on retargeting

camp_005 retargeting audiences are in observation mode.

2 pts · Required
28
Explain observation vs targeting consequence

Observation mode means ads serve to everyone, not just retargeting list.

2 pts · Required
29
Switch all 3 audiences to targeting mode

aud_001, aud_002, aud_003 must all be updated.

2 pts · Required
30
Invalidate camp_005 performance metrics

Historical metrics are meaningless — they measured untargeted traffic.

2 pts · Required

Phase 6 — Extensions Review (3 steps, 6 pts)

31
Identify only 2 callout extensions

Account-level extensions are sparse.

2 pts · Required
32
Explain why more callouts needed

Rotation mechanism and ad real estate benefits.

2 pts · Bonus
33
Add >= 4 brand-relevant callouts

New callout extensions at account level.

2 pts · Required

Phase 7 — Change History (2 steps, 4 pts)

34
Investigate limited_learning via change history

Scope getChangeHistory to camp_003.

2 pts · Required
35
Identify tCPA overcorrection pattern

$28→$18 caused learning reset. Must explain increment guideline.

2 pts · Required

Phase 8 — Naming Convention (2 steps, 4 pts)

36
Identify inconsistent naming

Campaign names follow no convention.

2 pts · Bonus
37
Rename at least one campaign

Apply a consistent naming convention.

2 pts · Bonus

Phase 9 — Report Quality (3 steps, 6 pts)

38
Report covers all 7 objective issues

Completeness — nothing major missed.

2 pts · Required
39
Forward-looking: data reset warning

After tracking/attribution fixes, historical data needs re-baselining.

2 pts · Required
40
No hallucinated findings

Report must be internally consistent — no made-up issues or fixes.

2 pts · Required