google-ads-audit — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited google-ads-audit (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
google-ads Python client)Settings exist at account, campaign, ad group, AND criterion levels. NEVER report something as "missing" without checking all levels. Present findings as "API shows X at [level] -- verify in UI" when uncertain.
SELECT campaign.name, campaign.status, campaign.advertising_channel_type,
campaign.bidding_strategy_type,
campaign.maximize_conversions.target_cpa_micros,
campaign.maximize_conversion_value.target_roas,
campaign.geo_target_type_setting.positive_geo_target_type
FROM campaign ORDER BY campaign.status, campaign.nameSELECT campaign.name, campaign.status,
metrics.impressions, metrics.clicks, metrics.cost_micros,
metrics.conversions, metrics.conversions_value
FROM campaign
WHERE campaign.status = 'ENABLED'
AND segments.date DURING LAST_30_DAYS
ORDER BY metrics.cost_micros DESCSELECT campaign.name, ad_group.name,
ad_group_criterion.keyword.text,
ad_group_criterion.keyword.match_type,
ad_group_criterion.quality_info.quality_score,
ad_group_criterion.status, ad_group_criterion.negative,
metrics.impressions, metrics.clicks, metrics.cost_micros,
metrics.conversions
FROM keyword_view
WHERE campaign.status = 'ENABLED'
AND segments.date DURING LAST_30_DAYS
ORDER BY metrics.cost_micros DESCRun THREE separate queries for gender_view, age_range_view, and income_range_view. Pull bid_modifier, negative status, and performance metrics (impressions, clicks, cost, conversions) for each.
SELECT campaign.name, search_term_view.search_term,
metrics.impressions, metrics.clicks, metrics.cost_micros, metrics.conversions
FROM search_term_view
WHERE segments.date DURING LAST_30_DAYS AND campaign.status = 'ENABLED'
ORDER BY metrics.cost_micros DESC LIMIT 50SELECT conversion_action.name, conversion_action.type, conversion_action.status,
conversion_action.category, conversion_action.counting_type
FROM conversion_action WHERE conversion_action.status = 'ENABLED'SELECT campaign.name, ad_group.name,
ad_group_ad.ad.responsive_search_ad.headlines,
ad_group_ad.ad.responsive_search_ad.descriptions,
ad_group_ad.ad.final_urls, ad_group_ad.ad_strength,
metrics.impressions, metrics.clicks, metrics.conversions
FROM ad_group_ad
WHERE campaign.status = 'ENABLED' AND ad_group_ad.status = 'ENABLED'
AND segments.date DURING LAST_30_DAYSClassify each campaign by CPA performance:
For each keyword with spend:
For each demographic segment:
For each search term with spend:
For each campaign:
STEP-BY-STEP FIXES (numbered, specific, copy-pasteable):
KEYWORD LISTS (copy-paste ready):
BUDGET REALLOCATION TABLE:
| From | To | Amount | Rationale |
|---|
| Step | Expected | API Shows | Status |
|---|---|---|---|
| Campaign budget | $10/day | $X/day | pass/fail |
Built by PureBrain -- AI-powered marketing operations.
Want the full suite of 183+ production-tested skills? Start your trial ->
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.