analyzing-own-ads
Audits the ads a company is running itself — what's live now, what it has already stopped, and which have run longest.
Skill by SupercmoHQ
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/supercmohq-analyzing-own-ads
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: marketing, research
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/analyzing-own-ads
What's inside
- Skill name
analyzing-own-ads- Description
- Audits the ads a company is running itself — what's live now, what it has already stopped, and which have run longest. Watches the video ads and reads the image ads with a vision model, then maps what the account already covers — the angles, hooks, formats and offers — what was dropped and how fast, and which long-runners have nothing newer beside them. Read from the public ad library, so it carries run lengths rather than spend or results. Research only — nothing is generated or changed here. Use when the user wants their own ads audited, wants to know what they are running, which of their ads is holding, what they already cover, or whether anything is going stale.
- License
- Apache-2.0
- Metadata
- summary: Audits your own advertising the way you would a competitor's — pulling every ad you run from the public library and watching the creative the whole way through. You get the map of what you already cover: which angles, hooks and formats you run, which ads have held longest, what you quietly stopped and how fast, and which winners are still carrying the account with nothing newer built beside them. · version: 0.1.2 · category: creative
- Instructions
- 146 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (6)
- SKILL.md
- eval_cases.json · evals/
- pulling-own-ads.md · references/
- reading-one-ad.md · references/
- reading-own-ads.md · references/
- build_ledger.py · scripts/
SKILL.md (first lines)
# Own ads Audit what a company is advertising itself, work out what is holding, and map what it already covers. **Research only — nothing is generated, posted or planned here.** Not for competitors' ads — that is `researching-competitor-ads`; not for deciding what to make next — that is `planning-campaigns`. ## Workflow ### Step 1: Settle whose page this is You need **a brand name and a website**. - **Read them from the brand profile** in `./supercmo-company`, where one exists. Where it doesn't, move on. - **Ask the user** for whichever is missing. - **A website but no name** → take the brand name off the site and carry on. ### Step 2: Scope the run Ask once, bundled into a single message, always with a free-text way out. Skip any of these the brief already answers. | Ask | When | How | | --- | --- | --- | | **The country the ads run in** | The brief names no market and the user's own site implies none. | Offer the likely markets, and a way to type another. | | **How deep to go** | The brief doesn't say. | Offer the quick scan first and recommend it; say a detailed audit doubles what is watched, and costs accordingly. | | **What they want to learn** | Optional, and only where the brief says nothing at all about what the audit is for. | **One open field, no options to choose from.** Ask what they want to come away knowing. | **Take whatever the brief says about what they are after, in their own words, and don't ask again.** Carry those words through to the audit, which closes by answering them. Where nothing is given and nothing is answered, run it neutrally: a quick scan, the market the user's own site sells to, and an audit that says no goal was set. Say in one sentence what you took, and keep going. Step 4's script holds these numbers and enforces them — pass it the depth and don't re-count. | Depth | Ads kept, live / stopped | Ads watched, live / stopped | | --- | --- | --- | | Quick scan | 30 / 30 | 10 / 10 | | Detailed audit | 60 / 60 | 20 / 20 | ### Step 3: Pull the ads Read `references/pulling-own-ads.md` and follow it. Pull the live set and the stopped set separately, and keep them apart. Every pull is written to a response file, and the call returns its path in `saved.path`. All of a run's responses land in one directory — **note that directory**, it is Step 4's only input. Read `saved.cursor` for the next page. Don't take the ads apart yourself. ### Step 4: Build the ledger Run the script over the directory the responses were saved to: ```bash python3 <skill-dir>/scripts/build_ledger.py <responses-dir> --depth <quick|detailed> --out <saved.output_dir> ``` `--depth` is what Step 2 settled. `--out` is `saved.output_dir`, the same on every response of the run — the folder the tool set aside for it. Run the script by its full path rather than moving into the skill directory. **Every file this run produces goes in that folder.** **Read `ledger.md`.** It holds the counts and campaigns, the ads to watch with their media URLs, the copy every ad ran with — grouped so repeated wording shows as repeated — and the row behind every ad. Say in one line how many ads are in the ledger and how many are marked to watch, then carry on — don't stop for approval. The cap lines at the top of the file go into the audit's coverage section verbatim. ### Step 5: Watch the ads Read `references/reading-one-ad.md` and follow it. `ledger.md`'s **Watch these** section lists each ad's `ref` and its media URL, split into videos and stills. Send them in batches of at most ten — `video_analysis` for the videos, `image_analysis` for the stills. They are watched in parallel, so a batch takes about as long as its slowest ad. **Write each teardown to `per-ad-teardowns.md` in the run's folder, as its batch comes back** — the `ref` as a heading, then the teardown verbatim. Never watch the same `ref` twice, and never watch an ad the ledger didn't mark. ### Step 6: Read the set and write the audit Read `references/reading-own-ads.md` and follow it. It writes `own-ads-audit.md` into the run's folder. Name the patterns from the teardowns, then check them **against the ledger**, citing `ref`s and counts. A claim with no `ref`s behind it doesn't go in. **Audit the whole ledger, not only the ads you watched.** Every row carries run length, status, format, campaign and call-to-action, so the run-length distribution, the format mix and the campaign structure are drawn from all of them — including the rows marked `no (outside the watch allowance)` or `no (same creative as an ad already watched)`. Only findings about how an ad is built come from the teardowns, and those are counted over the ads actually read. The ads read are the longest-running, live and stopped taken separately. That is a sample of the long end, not of the whole set — so the newest ads are in the ledger but mostly unwatched, and any claim about what the account is trying now rests on metadata and copy. ### Step 7: Hand it over The run's folder holds `ledger.md`, `per-ad-teardowns.md` and `own-ads-audit.md`. **Open the reply by answering the user's question, in their words.** Use what they asked for in the brief, or what they said at Step 2. **If they never asked for anything specific, give what is covered** — the axes the account already runs, with counts, and the ones with nothing on them. Back the answer with the two or three findings from the audit it rests on, each with its count and `ref`s. Nothing else from the audit goes in the reply — it is on disk. Close with the folder. ## Edge cases - **`error: "no_provider_configured"`** on any tool → relay the tool's `hint` (the user must set their key). - **A pull comes back empty under the market filter** → record it as empty for that market. Don't re-pull without `country`.
From SupercmoHQ/superCMO-skills, Apache-2.0.
More from SupercmoHQ/superCMO-skills
- 0.796score
writing-video-prompts
SupercmoHQ
Writes the motion prompt for a video clip — what moves, how the camera behaves, the physics and the audio, in the shape the chosen model wants.
SkillAFreshness: A★ 206Claude Code +9 - 0.796score
planning-campaigns
SupercmoHQ
Decides what to make next — turns the brand, the product, your own running ads and competitor research into the concepts worth testing next.
SkillAFreshness: A★ 206Claude Code +9 - 0.796score
researching-competitor-ads
SupercmoHQ
Analyzes the ads competitors are running — the ones live now, the ones they have already stopped, and which have run longest.
SkillAFreshness: A★ 206Claude Code +9 - 0.796score
cloning-video-ads
SupercmoHQ
Clones an existing video ad — reads a supplied reference ad, keeps its structure, pacing, shots, camera and hook, and rebuilds it as a new video with the…
SkillAFreshness: A★ 206Claude Code +9 - 0.796score
writing-ad-copy
SupercmoHQ
Writes the words of an ad — the headline, primary text, description and call to action that go into the ad platform's own fields, shaped to the channel it…
SkillAFreshness: A★ 206Claude Code +9 - 0.796score
generating-ad-videos
SupercmoHQ
Makes a product ad video — a product showcase with no one on screen, or a story or lifestyle commercial where a presenter or actor plays a role in the brand's…
SkillAFreshness: A★ 206Claude Code +9 - 0.796score
adapting-formats
SupercmoHQ
Resizes an existing image ad into the other shapes it has to run in — reads the ad first, then regenerates it at each ratio with the original passed in as a…
SkillAFreshness: A★ 206Claude Code +9 - 0.796score
generating-audio
SupercmoHQ
ALWAYS read this skill before generating spoken audio or calling audio_generate — a voiceover, narration, an ad read, a character line, or any script read…
SkillAFreshness: A★ 206Claude Code +9 - 0.796score
generating-cartoon-videos
SupercmoHQ
Generates a cartoon video for a product — a drawn, animated, anime, illustrated or painted spot that holds one art style and the same characters across every…
SkillAFreshness: A★ 206Claude Code +9 - 0.796score
generating-image-ads
SupercmoHQ
Turns a product photo or URL into a static image ad — one image, or a set.
SkillAFreshness: A★ 206Claude Code +9 - 0.796score
generating-images
SupercmoHQ
ALWAYS read this skill before generating or editing any image, or calling image_generate — text-to-image or image-to-image, simple or complex.
SkillAFreshness: A★ 206Claude Code +9 - 0.796score
generating-product-photos
SupercmoHQ
ALWAYS read this skill before generating a product photography — before writing any prompt or calling image_generate.
SkillAFreshness: A★ 206Claude Code +9
Signals
- Stars
- 206
- Forks
- 23
- Open issues
- 9
- Contributors
- 4
- Last commit (this folder)
- Aug 28, 2026 (2 months ago)
- Last release
- Oct 21, 2026 (6 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 0.1.2
- License
- Apache-2.0
- Repository
- github.com/SupercmoHQ/superCMO-skills
- Website
- getsupercmo.ai
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from SupercmoHQ
- 0.796score
adapting-formats
SupercmoHQ
Resizes an existing image ad into the other shapes it has to run in — reads the ad first, then regenerates it at each ratio with the original passed in as a…
SkillAFreshness: A★ 206Claude Code +9 - 0.796score
analyzing-brand
SupercmoHQ
Analyzes a brand from its own website — its colours and fonts, the logo and imagery it uses, how it sounds, who it sells to, the claims it makes, and what it…
SkillAFreshness: A★ 206Claude Code +9 - 0.796score
analyzing-products
SupercmoHQ
Normalizes a product into generation-ready facts — from an e-commerce URL (a clean description plus curated product images) or from a photo alone (category…
SkillAFreshness: A★ 206Claude Code +9 - 0.796score
cloning-video-ads
SupercmoHQ
Clones an existing video ad — reads a supplied reference ad, keeps its structure, pacing, shots, camera and hook, and rebuilds it as a new video with the…
SkillAFreshness: A★ 206Claude Code +9 - 0.796score
generating-ad-videos
SupercmoHQ
Makes a product ad video — a product showcase with no one on screen, or a story or lifestyle commercial where a presenter or actor plays a role in the brand's…
SkillAFreshness: A★ 206Claude Code +9 - 0.796score
generating-audio
SupercmoHQ
ALWAYS read this skill before generating spoken audio or calling audio_generate — a voiceover, narration, an ad read, a character line, or any script read…
SkillAFreshness: A★ 206Claude Code +9
Cite this page
analyzing-own-ads skill. Agent Mart. https://agentmart.dev/skills/supercmohq-analyzing-own-ads (last updated 2026-10-24)