44
Blobbo score

Northwind Analytics

A playful, explainable read of 30 days of example delivery, bids, hints, and creative. Squeeze the waste first — then the easy bid and hint fixes.

16 Oct 2026–14 Nov 2026Audit window (example)
$3,600.00Spend
818Clicks
$4.40Avg CPC
0.42%CTR
42Conversions
78
Account structure
42
Context hints
56
Bids & CPC
44
Wasted spend
0
Creative
34
Budget pacing

Overall score is a weighted average: structure 15, context hints 20, bids 20, wasted spend 20, creative 15, budget pacing 10. Each check is listed below with the exact change. The $3–$5 CPC starting range is OpenAI Help Center guidance, not an API field, and is not applied to impression (CPM) or conversion (CPA) bids.

Prioritized recommendations

1
high Budget pacing

Campaign “Brand reach — Impressions” is far behind its lifetime budget

Why

Lifetime cap is $5,000.00 but this 30-day window only shows $200.00 spent (4% of the cap in-window).

Expected impact

High — likely a material change in wasted spend, delivery, or efficiency.

Exact change

Diagnose delivery on cmpn_102 (bids, hints, approved ads, targeting) before raising the lifetime cap.

2
high Wasted spend

Ad “Reach variant A” spent $140.00 with 0 clicks

Why

In the last 30 days this ad recorded $140.00 spend and 90000 impressions, but no clicks. That spend did not produce an engagement.

Expected impact

High — likely a material change in wasted spend, delivery, or efficiency.

Exact change

Pause ad_506 (or its parent if the whole group is wasted), then fix creative and context hints before reactivating. This audit will not pause it for you.

3
high Wasted spend

Ad “June webinar card” spent $120.00 with 0 clicks

Why

In the last 30 days this ad recorded $120.00 spend and 15000 impressions, but no clicks. That spend did not produce an engagement.

Expected impact

High — likely a material change in wasted spend, delivery, or efficiency.

Exact change

Pause ad_510 (or its parent if the whole group is wasted), then fix creative and context hints before reactivating. This audit will not pause it for you.

4
high Budget pacing

Campaign “Legacy webinar — leftover” is under-pacing its daily budget

Why

Daily cap is $40.00 (40000000 micros). Over 30 day(s) the expected spend is about $1,200.00, but Insights show $120.00 (10%).

Expected impact

High — likely a material change in wasted spend, delivery, or efficiency.

Exact change

On cmpn_104, check bids, context hints, creative review status, and targeting. If delivery is constrained, raise the click bid toward the $3–$5 starting band or add approved ads — do not only raise the daily cap.

5
high Budget pacing

Campaign “Qualified demos — Conversions” is far behind its lifetime budget

Why

Lifetime cap is $8,000.00 but this 30-day window only shows $80.00 spent (1% of the cap in-window).

Expected impact

High — likely a material change in wasted spend, delivery, or efficiency.

Exact change

Diagnose delivery on cmpn_103 (bids, hints, approved ads, targeting) before raising the lifetime cap.

6
high Account structure

Active campaign “Empty shell — Q4 idea” has no ad groups

Why

cmpn_105 is status=active but GET /ad_groups?campaign_id=cmpn_105 returned no groups, so the campaign cannot serve.

Expected impact

High — likely a material change in wasted spend, delivery, or efficiency.

Exact change

Create at least one ad group under cmpn_105, or pause the campaign if it should not spend.

7
high Context hints

“Trial — generic catch-all” has no context hints

Why

Context hints on the ad group tell ChatGPT when the ad may be useful. They are not exact-match keywords, but an empty list gives the auction no placement guidance from you.

Expected impact

High — likely a material change in wasted spend, delivery, or efficiency.

Exact change

Set context_hints on adgrp_302 to 3–8 specific descriptions of prompts or jobs-to-be-done (short sentences, not single generic words).

8
high Bids & CPC

“Trial — generic catch-all” max CPC bid is below OpenAI’s $3–$5 starting guidance

Why

max_bid_micros is 1200000 ($1.20 CPC). OpenAI’s Help Center starting range for CPC is $3.00–$5.00. A bid under $3 often under-competes in this auction.

Expected impact

High — likely a material change in wasted spend, delivery, or efficiency.

Exact change

On ad group adgrp_302, raise bidding_config.max_bid_micros from 1200000 ($1.20) to at least 3000000 ($3.00), then watch actual CPC.

9
high Bids & CPC

“Webinar — leftover group” max CPC bid is below OpenAI’s $3–$5 starting guidance

Why

max_bid_micros is 2500000 ($2.50 CPC). OpenAI’s Help Center starting range for CPC is $3.00–$5.00. A bid under $3 often under-competes in this auction.

Expected impact

High — likely a material change in wasted spend, delivery, or efficiency.

Exact change

On ad group adgrp_306, raise bidding_config.max_bid_micros from 2500000 ($2.50) to at least 3000000 ($3.00), then watch actual CPC.

10
high Creative

“Reach — short keywords” has 0 approved active ad variants

Why

Ad groups with a single (or zero) approved variant cannot test titles, bodies, or images against each other, so weak creative keeps all of the spend.

Expected impact

High — likely a material change in wasted spend, delivery, or efficiency.

Exact change

Get at least one ad in adgrp_303 to review_status=approved (edit rejected ads so they can be re-reviewed), and add a second distinct variant.

11
high Creative

Ad “Brand reach card — rejected” was rejected

Why

review_status=rejected means the ad violated ads policy and will not serve until it is edited and re-reviewed.

Expected impact

High — likely a material change in wasted spend, delivery, or efficiency.

Exact change

Edit the creative on ad_505 to comply with ads policies and resubmit. Blobbo will not edit the ad.

12
medium Wasted spend

Ad “Reach variant A copy” spent $60.00 with 0 clicks

Why

In the last 30 days this ad recorded $60.00 spend and 40000 impressions, but no clicks. That spend did not produce an engagement.

Expected impact

Medium — a meaningful efficiency, coverage, or structure improvement.

Exact change

Pause ad_507 (or its parent if the whole group is wasted), then fix creative and context hints before reactivating. This audit will not pause it for you.

13
medium Context hints

“Reach — short keywords” only has short keyword-like hints

Why

All 2 hint(s) are under 3 words / 18 characters (“saas”, “tools”). Official docs allow descriptions or keywords; single generic tokens usually under-specify when the ad is useful.

Expected impact

Medium — a meaningful efficiency, coverage, or structure improvement.

Exact change

Replace the hints on adgrp_303 with fuller descriptions, e.g. turn “saas” into a sentence about the situation or prompt in which this product should appear.

14
medium Context hints

“Webinar — leftover group” only has short keyword-like hints

Why

All 1 hint(s) are under 3 words / 18 characters (“webinar”). Official docs allow descriptions or keywords; single generic tokens usually under-specify when the ad is useful.

Expected impact

Medium — a meaningful efficiency, coverage, or structure improvement.

Exact change

Replace the hints on adgrp_306 with fuller descriptions, e.g. turn “webinar” into a sentence about the situation or prompt in which this product should appear.

15
medium Context hints

Context hints overlap across ad groups in the same campaign

Why

These hints appear in more than one group: “saas”. Overlapping hints make groups compete for the same prompts instead of covering distinct situations.

Expected impact

Medium — a meaningful efficiency, coverage, or structure improvement.

Exact change

Give each overlapping group in adgrp_303, adgrp_304 a distinct hint set. Keep shared themes only where the offer is truly identical, otherwise split or merge the groups.

16
medium Creative

“Trial — generic catch-all” has 1 approved active ad variant

Why

Ad groups with a single (or zero) approved variant cannot test titles, bodies, or images against each other, so weak creative keeps all of the spend.

Expected impact

Medium — a meaningful efficiency, coverage, or structure improvement.

Exact change

Add at least one more distinct chat_card in adgrp_302 (different title/body or image) so you have 2–4 approved variants.

17
medium Creative

Duplicate creative in “Reach — overlapping tools”

Why

Ads ad_506, ad_507 share the same title and body, so they are not useful variants.

Expected impact

Medium — a meaningful efficiency, coverage, or structure improvement.

Exact change

Keep one of ad_506 / ad_507 and change the title, body, or image on the others — or pause the duplicates.

18
medium Creative

“Demos — finance ops leads” has 1 approved active ad variant

Why

Ad groups with a single (or zero) approved variant cannot test titles, bodies, or images against each other, so weak creative keeps all of the spend.

Expected impact

Medium — a meaningful efficiency, coverage, or structure improvement.

Exact change

Add at least one more distinct chat_card in adgrp_305 (different title/body or image) so you have 2–4 approved variants.

19
medium Creative

“Webinar — leftover group” has 1 approved active ad variant

Why

Ad groups with a single (or zero) approved variant cannot test titles, bodies, or images against each other, so weak creative keeps all of the spend.

Expected impact

Medium — a meaningful efficiency, coverage, or structure improvement.

Exact change

Add at least one more distinct chat_card in adgrp_306 (different title/body or image) so you have 2–4 approved variants.

20
medium Creative

Ad “Generic catch-all card” has not been updated in 65 days

Why

The API does not expose a last-served timestamp. This check uses updated_at/created_at plus weak or thin performance in the audit window as a stale-creative signal.

Expected impact

Medium — a meaningful efficiency, coverage, or structure improvement.

Exact change

Create a new variant alongside ad_504 (new title, body, or image) and keep the original paused if the new one wins.

21
low Creative

Ad “Generic catch-all card” has a very short title

Why

Title “Try it” is 6 characters (API allow 3–50). Short titles often under-explain the offer in a chat card.

Expected impact

Low — incremental hygiene; useful, but smaller than the items above.

Exact change

Rewrite the title on ad_504 to a clearer 15–50 character offer.

22
low Creative

Ad “Generic catch-all card” has a very short body

Why

Body is 19 characters (API max 100). That leaves little room to explain why someone should click.

Expected impact

Low — incremental hygiene; useful, but smaller than the items above.

Exact change

Expand the body on ad_504 toward 40–100 characters with a concrete benefit.

Campaign snapshot

CampaignAd groupsAdsSpendClicksConv.
Product trials — Clicks
cmpn_101 · clicks · active
2 4 $3,200.00 800 40
Brand reach — Impressions
cmpn_102 · impressions · active
2 3 $200.00 0 0
Qualified demos — Conversions
cmpn_103 · conversions · active
1 2 $80.00 18 2
Legacy webinar — leftover
cmpn_104 · clicks · active
1 1 $120.00 0 0
Empty shell — Q4 idea
cmpn_105 · clicks · active
0 0 $0.00 0 0