Agent skill
paid-media-analysis
Analyze paid-media performance, compare periods or entities, diagnose issues, and make evidence-backed recommendations across connected ad platforms.
Filed under ABM and paid.
From langchain-ai/paid-media-agent · 8 skill entries · 61 · pushed 2026-09-14
What it does when it runs
Analyze paid-media performance, compare periods or entities, diagnose issues, and make evidence-backed recommendations across connected ad platforms.
Automated analysis of the skill and the 1 file bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.
- Keys and connectors you must supply
- None found.
- Hosts it reaches
- No third-party host appears in the skill or its bundled files.
- Tool permissions it declares
- No
allowed-toolsin the frontmatter. It only issues instructions, so there is nothing to bound. - Actions present in the files
- None. Instructions only.
Install it
View source on GitHub ↗git clone --depth 1 --filter=blob:none --sparse https://github.com/langchain-ai/paid-media-agent.git /tmp/paid-media-agent git -C /tmp/paid-media-agent sparse-checkout set "workspace/skills/paid-media-analysis" mkdir -p ~/.claude/skills/paid-media-analysis cp -R "/tmp/paid-media-agent/workspace/skills/paid-media-analysis/." ~/.claude/skills/paid-media-analysis/
Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗
The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.
The skill
Source on GitHub ↗Reproduced in full from langchain-ai/paid-media-agent/blob/0cc8109a1984377a573ed8d202b3b054db4d7b90/workspace/skills/paid-media-analysis/SKILL.md, which is licensed APACHE-2.0 (repository). 472 words, 1 heading.
Paid-media analysis
Use this skill for performance questions, audits, comparisons, diagnosis, budget reasoning, and recommendations.
- Read
/skills/company-context/SKILL.mdwhen present for this organization's goals, targets, conversions, and naming. Ask for missing facts the analysis needs; do not guess. Then read/skills/paid-media-wiki/decision-model.mdand the page the question calls for:benchmarks.mdfor "is this good",anomaly-and-significance.mdfor spikes and drops,bidding-and-budget.mdfor pacing or budget changes,platform-playbooks.mdfor a platform's grains and caveats, andanswer-style.mdbefore the final answer. - Establish goal, account scope, entity grain, date window, comparison, timezone, and currency.
Comparison windows must have the same day count;
compare_periodsrejects unequal windows. Resolve relative windows one way and say which: "last week" is the most recent complete Monday to Sunday week; "last N days" ends on the latest date the platform reports as complete (data_complete_through), not today; "this month" is the calendar month to date. When a platform's data ends inside the requested window, keep the requested window in the answer and name the missing days rather than silently shrinking it. - Call
list_accountsfor aliases, thendiscover_toolswith keywords. Never invent a tool name. Platform tools are named<platform>__<tool>and takeaccount_alias, never a provider id. Pipeboard loads all tools exposed by its eight configured MCP servers. Search the live catalog; availability depends on connected accounts and host policy. GA4 uses property aliases. - Pull the smallest complete data using the performance/report tool returned by discovery, for
the union of both windows.
get_campaign_performanceis a fixture tool, not a universal live name. Go one grain lower only when the question needs it:get_ad_group_performance(ad sets, line items) orget_creative_performancewhere the platform exposes it; rows carry the parent campaign id. Run independent platform reads in parallel. Each read returns a compactread_resultwith anartifact_id, row count, actual window, missing fields, and flags. Native analytics and platforms without verified spend-unit mappings stay asprovider_resultartifacts. Do not pass them to spend comparisons or treat GA4 conversions as ad-attributed conversions. - Validate source coverage with
references/validation-checklist.md. - For pacing, anomalies, top spenders, or per-entity efficiency inside one window, call
summarize_windowwith the performance artifacts (and thelist_campaignsartifacts for daily budgets); it returns per-entity totals, pacing, and a daily series with flagged days. For period-over-period change, callcompare_periodswith the artifact ids and both windows. List any failed read inunavailable_sourcesso it stays visible and suppresses the cross-platform total. - Read the
analysis_summary. Quote its values verbatim; never recompute from previews or rows.unavailablemeans missing, not zero. - Explain observation, business meaning, likely drivers, confidence, and next action separately.
- Include a measurement and reversal plan for any recommendation.
- Create a proposal only when the user asks to change provider state (see
paid-media-writes).
Do not use universal performance thresholds. Use configured goals or label the analysis as directional.
Files bundled with it
These load only when the skill asks for them, so they cost nothing until it runs.
Other skills for the same job
Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.
- paid-media-ops by shalintripathi · 14
- paid-media-audit by sidchaudhary · 1
- video-analysis by ericosiu · 3,558
- yt-competitive-analysis by ericosiu · 3,558
- competitor-analysis by OpenClaudia · 697
- content-gap-analysis by OpenClaudia · 697
- geo-analysis by OpenClaudia · 697
- video-ad-analysis by OpenClaudia · 697
Need help setting it up?
This page tells you what paid-media-analysis does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.
Book a call →The directory stays free. There is nothing gated behind this.