Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add swan-gtm/gtm-skills --skill google-ads-pmax-asset-groupsgit clone --depth 1 https://github.com/swan-gtm/gtm-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/swan-gtm/gtm-skills/google-ads-pmax-asset-groups)<a href="https://agentmods.dev/skills/swan-gtm/gtm-skills/google-ads-pmax-asset-groups"><img src="https://agentmods.dev/badge/skills/swan-gtm/gtm-skills/google-ads-pmax-asset-groups/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/swan-gtm/gtm-skills/google-ads-pmax-asset-groups"><img src="https://agentmods.dev/badge/skills/swan-gtm/gtm-skills/google-ads-pmax-asset-groups.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to high
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- high Anti-Refusal · line 64 Skill instructs the agent to omit warnings, disclaimers, or ethical commentary. Stripping safety caveats hides risk from the user and is a common jailbreak preamble.Fix: Remove instructions that suppress warnings, disclaimers, or ethical commentary. Let the agent surface safety-relevant caveats to the user.
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00092 | $0.00775 |
| Opus 5.5 | $0.00037 | $0.00310 |
| Sonnet 5.5 | $0.00018 | $0.00155 |
| Haiku 4.5 | $0.00009 | $0.00077 |
Grade A, and why
google-ads-pmax-asset-groups scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 68 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Performance Max Asset Group Structure and Hygiene
Applies when a campaign is serving across the automated inventory Performance Max covers, and delivery quality depends on the inputs you gave it, not just its own targeting.
The play
- Split asset groups by product line or audience segment before doing anything else. One asset group trying to speak to every product or every buyer can't be coherent to any of them — that's a structural problem no amount of extra copy fixes.
- Fill every slot the platform gives you, not just the minimum required — headlines, long headlines, descriptions, and a real image and video mix across horizontal, square, and vertical orientations. Ad strength is a direct readout of how much of that room you've actually used, and a group short on assets or asset variety caps its own performance ceiling regardless of targeting quality.
- Upload real video. If a group has none, the platform will assemble one from your other assets automatically — treat that as a fallback you're accepting by default, not a feature, and replace it with something you'd choose deliberately.
- Give a new or heavily-changed asset group real time before judging it — check ad strength and asset performance again after a couple of weeks, not a couple of days, and don't restructure on day-three volatility.
- Watch for brand cannibalization specifically: if branded queries are converting through Performance Max at a worse cost than a dedicated brand search campaign already covering them, that's not incremental reach — it's the same demand at a worse price. Exclude your own brand once you can see that pattern.
- Read search term insights the same way you'd read a search terms report anywhere else — clicks with cost and no conversions are negative-keyword candidates, even though applying them here usually takes a different path than a standard search campaign.
What good looks like
- The best operators treat "Low" performance labels on individual assets as a standing queue to clear, not a one-time cleanup — replacing the weakest asset in a group is cheaper than restructuring the whole group later.
- The common mistake is judging a fresh asset group on its first few days of volatility and restructuring it before it's had a real chance to settle — that resets the very learning period the impatience was trying to fix.
- A good structure is legible from the outside: you can point to any asset group and say which product or segment it exists for, and every low performer in it has a named replacement candidate, not just a general sense that "creative could be better."
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 68 lines · 92 tokens per session scan A 21642bfa0424
google-ads-pmax-asset-groups is a skill published in the GitHub repository swan-gtm/gtm-skills (221 stars, last pushed 8d ago), licensed MIT. It adds 92 tokens to every session and 775 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
ad-campaign-analyzer
Analyze cross-channel campaign data, quantify uncertainty, and propose evidence-labeled budget tests without overstating causality.
paid-ad-copy-writer
Write paid ad copy for affiliate offers across ad platforms. Triggers on: "write ad copy", "Facebook ad for affiliate", "Google Ads copy", "TikTok ad script", "Pinterest ad", "paid traffic to affiliate", "create ad campaign", "ad headlines", "ad descriptions", "scale with paid ads", "run ads for my affiliate link"…
gooseworks
GooseWorks growth coworker and router for markets, competitors, audiences, creators, campaigns, ads, photos, graphics, video, content, email, SEO, social, leads and contacts. Use for brand facts or copy too, so offers, prices, rules, audience and bestsellers reach the brand's Marketing Brain.
adcp-advertising
Automate advertising campaigns with AI. Create ads, buy media, manage ad budgets, discover ad inventory, run display ads, video ads, CTV campaigns, and optimize ad performance. Perfect for marketing automation, programmatic advertising, media buying, ad management, campaign optimization, creative management, and…
yandex-direct
Skill "yandex-direct" from VKirill/claude-lane-stack, covering version requirements, usage, use this skill when, do not use this skill when and purpose.
yandex-direct-creatives
An advertising-writing guide for Yandex.Direct, a Russian online advertising platform. It turns keyword clusters from Key Collector, a keyword research tool, into campaigns, ad groups, and ads.