Not in the top 1,000 by GitHub stars
Synero/meta-ads-analyzer
Native Agent skill for analyzing Meta (Facebook/Instagram) Ads campaigns in real-time. Connects directly to Meta Marketing API without MCP infrastructure. Features campaign data, performance metrics, and conversion tracking.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
2a52280619c7 → 2a52280619c7
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 2a52280619c7
No earlier version was observed for comparison.
Heat
0.3- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
How it works
meta-ads-analyzer
When your agent uses it
Analyze Facebook/Instagram Ads campaigns via the Meta Marketing API from any AI agent or shell automation.
What it loads into context
Frontmatter
52 tokensAlways available to the agent
SKILL.md
850 tokensWhen the skill is activated
Reference documents
3,381 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Setup
- API version
- Commands
- Intent mapping
- Output handling
- Metrics reference
- Troubleshooting
- Files
Scripts executed separately
meta-ads-cli.jsmeta-ads.shpackage.jsonsetup.shtest/cli.test.jstest/helpers/mock-meta-server.jstest/helpers/run-cli.jstest/unit.test.js
Files
.env.exampleasset231 bytes.github/ISSUE_TEMPLATE/bug_report.mddoc326 bytes.github/ISSUE_TEMPLATE/feature_request.mddoc279 bytes.github/pull_request_template.mddoc299 bytes.github/workflows/ci.ymlasset663 bytes.gitignoreasset307 bytesCHANGELOG.mddoc1,250 bytesCONTRIBUTING.mddoc1,579 bytesLICENSEasset1,085 bytesREADME.mddoc8,322 bytesROADMAP.mddoc1,362 bytesSECURITY.mddoc824 bytesSKILL.mdcore3,548 bytesSKILL.mdcore3,548 bytesSKILL.mdcore3,548 bytesSKILL.mdcore3,548 bytesSKILL.mdcore3,548 bytesSKILL.mdcore3,548 bytesSKILL.mdcore3,548 bytesSKILL.mdcore3,548 bytesSKILL.mdcore3,548 bytesSKILL.mdcore3,548 bytesSKILL.mdcore3,548 bytesmeta-ads-cli.jsruns8,882 bytesmeta-ads.shruns1,242 bytespackage.jsonruns941 bytessetup.shruns1,394 bytestest/cli.test.jsruns7,757 bytestest/fixtures/campaigns.jsonasset751 bytestest/fixtures/error-oauth.jsonasset211 bytestest/fixtures/insights.jsonasset695 bytestest/helpers/mock-meta-server.jsruns1,566 bytestest/helpers/run-cli.jsruns1,410 bytestest/unit.test.jsruns3,467 bytes
Read SKILL.md
# Meta Ads Analyzer
Use this skill when a user asks an AI agent to inspect Facebook/Instagram Ads campaign performance, active campaigns, spend, CTR, CPC, CPM, leads, or messaging conversations.
The project is read-only. It does not create, edit, pause, or delete campaigns.
## Setup
```bash
git clone https://github.com/Synero/meta-ads-analyzer.git
cd meta-ads-analyzer
[Credential-related source omitted]
export META_ACCOUNT_ID="act_123456789"View the complete source on GitHubSkills included
- meta-ads-analyzer
Repository facts
- License
- MIT
- Created
- Feb 27, 2026
- Last pushed
- Sep 16, 2026
- Forks
- 0
- Open issues
- 0
- Project activity
- Active
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 7, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 10 notes
SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- No dangerous shell commands
- 38 network referencesin 8 files: README.md:3 package.json:29 test/helpers/mock-meta-server.js:20 and 5 more
- No hidden or obfuscated text
- No instruction overrides
- 8 executable scriptsin 8 files: meta-ads-cli.js:1 meta-ads.sh:1 package.json:1 and 5 more
- 27 references to secretsin 10 files: setup.sh:26 test/cli.test.js:23 meta-ads-cli.js:31 and 7 more
- No requests to vote in Hot
Show all 73 signals by file
.env.example
- Access to secretsline 1
[Credential-related source omitted] - Access to secretsline 2
[Credential-related source omitted] - Network accessline 3
META_ACCOUNT_ID=act_123456789 META_API_VERSION=v26.0 # META_API_BASE_URL=https://graph.facebook.com - Network accessline 4
META_API_VERSION=v26.0 # META_API_BASE_URL=https://graph.facebook.com # META_API_TIMEOUT_MS=10000 - Network accessline 5
# META_API_BASE_URL=https://graph.facebook.com
.gitignore
- Access to secretsline 1
[Credential-related source omitted]
CONTRIBUTING.md
- Network accessline 8
git clone https://github.com/Synero/meta-ads-analyzer.git
README.md
- Network accessline 3
 - Network accessline 4
 - Network accessline 5
 - Network accessline 6
 - Network accessline 7
 - Network accessline 8
 - Network accessline 43
git clone https://github.com/Synero/meta-ads-analyzer.git - Access to secretsline 51
[Credential-related source omitted] - Access to secretsline 161
[Credential-related source omitted] - Network accessline 168
META_API_VERSION=v26.0 # pin a Graph API version META_API_BASE_URL=https://graph.facebook.com # override for proxies, local runs, and tests - Network accessline 169
META_API_BASE_URL=https://graph.facebook.com # override for proxies, local runs, and tests - Access to secretsline 182
[Credential-related source omitted] - Network accessline 269
Inspired by [mathiaschu/meta-ads-analyzer-claude](https://github.com/mathiaschu/meta-ads-analyzer-claude). This repository removes the MCP dependency and keeps a standalone, agent-agnostic CLI/skill interface.
SECURITY.md
- Access to secretsline 22
[Credential-related source omitted]
SKILL.md
meta-ads-cli.js
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 12
const DEFAULT_API_VERSION = 'v26.0'; const DEFAULT_BASE_URL = 'https://graph.facebook.com'; - Network accessline 13
const DEFAULT_BASE_URL = 'https://graph.facebook.com'; - Access to secretsline 31
[Credential-related source omitted] - Access to secretsline 65
[Credential-related source omitted] - Access to secretsline 80
[Credential-related source omitted] - Access to secretsline 93
[Credential-related source omitted]
meta-ads.sh
package.json
- Executable scriptline 1
Executable file - Network accessline 29
"repository": { "type": "git", "url": "git+https://github.com/Synero/meta-ads-analyzer.git" - Network accessline 30
"type": "git", "url": "git+https://github.com/Synero/meta-ads-analyzer.git" }, - Network accessline 31
"url": "git+https://github.com/Synero/meta-ads-analyzer.git" - Network accessline 32
}, "bugs": { "url": "https://github.com/Synero/meta-ads-analyzer/issues" - Network accessline 33
"bugs": { "url": "https://github.com/Synero/meta-ads-analyzer/issues" }, - Network accessline 34
"url": "https://github.com/Synero/meta-ads-analyzer/issues" - Network accessline 35
}, "homepage": "https://github.com/Synero/meta-ads-analyzer#readme" } - Network accessline 36
"homepage": "https://github.com/Synero/meta-ads-analyzer#readme"
setup.sh
- Executable scriptline 1
#!/usr/bin/env bash - Access to secretsline 26
[Credential-related source omitted] - Access to secretsline 27
[Credential-related source omitted] - Access to secretsline 28
[Credential-related source omitted] - Access to secretsline 30
[Credential-related source omitted] - Access to secretsline 52
[Credential-related source omitted] - Access to secretsline 56
[Credential-related source omitted]
test/cli.test.js
- Executable scriptline 1
Executable file - Access to secretsline 23
[Credential-related source omitted] - Access to secretsline 47
[Credential-related source omitted] - Access to secretsline 49
[Credential-related source omitted] - Access to secretsline 67
[Credential-related source omitted] - Access to secretsline 104
[Credential-related source omitted]
test/helpers/mock-meta-server.js
- Executable scriptline 1
Executable file - Network accessline 20
const server = http.createServer((req, res) => { const url = new URL(req.url, 'http://127.0.0.1'); - Network accessline 21
const url = new URL(req.url, 'http://127.0.0.1'); - Network accessline 25
query: Object.fromEntries(url.searchParams.entries()), }; requests.push(request); - Network accessline 27
requests.push(request); - Network accessline 42
const { port } = server.address(); resolve({ url: `http://127.0.0.1:${port}`, - Network accessline 43
resolve({ url: `http://127.0.0.1:${port}`, requests, - Network accessline 44
url: `http://127.0.0.1:${port}`, requests, fixture: FIXTURES,
test/helpers/run-cli.js
- Executable scriptline 1
Executable file
test/unit.test.js
- Executable scriptline 1
Executable file - Access to secretsline 55
[Credential-related source omitted] - Network accessline 68
'/act_1/campaigns', { limit: 100, date_preset: undefined, cursor: null }, { accessToken: 'tok', apiVersion: 'v26.0', baseUrl: 'https://graph.facebook.com' }, - Network accessline 69
{ limit: 100, date_preset: undefined, cursor: null }, { accessToken: 'tok', apiVersion: 'v26.0', baseUrl: 'https://graph.facebook.com' }, ); - Network accessline 70
{ accessToken: 'tok', apiVersion: 'v26.0', baseUrl: 'https://graph.facebook.com' }, - Access to secretsline 74
[Credential-related source omitted] - Network accessline 80
test('buildUrl honours a custom base url for local and proxied runs', () => { const url = cli.buildUrl('/me', { fields: 'id,name' }, { accessToken: 'tok', apiVersion: 'v23.0', baseUrl: 'http://127.0.0.1:8080/' }); - Network accessline 81
const url = cli.buildUrl('/me', { fields: 'id,name' }, { accessToken: 'tok', apiVersion: 'v23.0', baseUrl: 'http://127.0.0.1:8080/' }); - Network accessline 82
assert.equal(url.origin, 'http://127.0.0.1:8080');
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 67 facts
- Network access in code of documentationCONTRIBUTING.md:8Low confidence
- Network access in prose of documentationREADME.md:3Low confidence
- Network access in prose of documentationREADME.md:4Low confidence
- Network access in prose of documentationREADME.md:5Low confidence
- Network access in prose of documentationREADME.md:6Low confidence
- Network access in prose of documentationREADME.md:7Low confidence
- Network access in prose of documentationREADME.md:8Low confidence
- Network access in code of documentationREADME.md:43Low confidence
- Access to secrets in code of documentationREADME.md:51Low confidence
- Access to secrets in code of documentationREADME.md:161Low confidence
- Network access in code of documentationREADME.md:168Low confidence
- Network access in code of documentationREADME.md:169Low confidence
- Access to secrets in code of documentationREADME.md:182Low confidence
- Network access in prose of documentationREADME.md:269Low confidence
- Access to secrets in prose of documentationSECURITY.md:22Low confidence
- Network access in code of the SKILL.mdSKILL.md:17High confidence
- Access to secrets in code of the SKILL.mdSKILL.md:20High confidence
- Access to secrets in prose of the SKILL.mdSKILL.md:93Low confidence
- Executable script in code of a file that runsmeta-ads-cli.js:1High confidence
- Network access in code of a file that runsmeta-ads-cli.js:12High confidence
- Network access in code of a file that runsmeta-ads-cli.js:13High confidence
- Access to secrets in code of a file that runsmeta-ads-cli.js:31High confidence
- Access to secrets in code of a file that runsmeta-ads-cli.js:65High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuemeta-ads-cli.js:80Low confidence
- Access to secrets in code of a file that runsmeta-ads-cli.js:93High confidence
- Executable script in code of a file that runsmeta-ads.sh:1High confidence
- Access to secrets in code of a file that runsmeta-ads.sh:46High confidence
- Executable script in code of a file that runspackage.json:1High confidence
- Network access in code of a file that runspackage.json:29High confidence
- Network access in code of a file that runspackage.json:30High confidence
- Network access in code of a file that runspackage.json:31High confidence
- Network access in code of a file that runspackage.json:32High confidence
- Network access in code of a file that runspackage.json:33High confidence
- Network access in code of a file that runspackage.json:34High confidence
- Network access in code of a file that runspackage.json:35High confidence
- Network access in code of a file that runspackage.json:36High confidence
- Executable script in code of a file that runssetup.sh:1High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuesetup.sh:26Low confidence
- Access to secrets in code of a file that runssetup.sh:27High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuesetup.sh:28Low confidence
- Access to secrets in code of a file that runssetup.sh:30High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuesetup.sh:52Low confidence
- Access to secrets in code of a file that runssetup.sh:56High confidence
- Executable script in code of a testtest/cli.test.js:1Low confidence
- Access to secrets in code of a testtest/cli.test.js:23Low confidence
- Access to secrets in code of a test: a variable, placeholder or call, not a stored valuetest/cli.test.js:47Low confidence
- Access to secrets in code of a test: a variable, placeholder or call, not a stored valuetest/cli.test.js:49Low confidence
- Access to secrets in code of a test: a variable, placeholder or call, not a stored valuetest/cli.test.js:67Low confidence
- Access to secrets in code of a test: a variable, placeholder or call, not a stored valuetest/cli.test.js:104Low confidence
- Executable script in code of a testtest/helpers/mock-meta-server.js:1Low confidence
and 17 more
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.