meta-agent-operations
Skill15 starsChanged 36 days agoMITView on GitHub
Use when proposing or executing Meta Ads changes: propose/execute workflow, campaign/adset/ad update rules, currency in cents.
In this repository61 other files it gives its agents.
- access-and-permissionsSkill
- accounts-and-connectionsSkill
- ad-brief-generatorSkill
- affiliate-marketingSkill
- analyse-creativeSkill
- automate-with-agentsSkill
- brief-creativeSkill
- build-reportsSkill
- clean-wasted-spendSkill
- competitor-ad-intelligenceSkill
- creative-psychology-hooksSkill
- creative-researchSkill
- diagnose-performanceSkill
- email-marketingSkill
- ga4-source-of-truthSkill
- get-startedSkill
- gomarble-skills-creative-strategistsSkill
- gomarble-skills-ecommerce-brandsSkill
- gomarble-skills-google-ads-auditSkill
- gomarble-skills-meta-ads-auditSkill
- gomarble-skills-saas-companiesSkill
- google-ads-create-master-skillSkill
- google-ads-depth-of-analysisSkill
- google-ads-guardrailsSkill
- google-ads-keywordplannerSkill
- google-ads-pmax-evaluationSkill
- google-ads-pmax-scalingSkill
- google-ads-search-analysisSkill
- google-ads-search-executionSkill
- google-ads-shoppingSkill
- google-ads-tool-fundamentalsSkill
- google-impression-shareSkill
- google-pmax-pulseSkill
- google-search-auditSkill
- google-search-term-auditSkill
- launch-campaignsSkill
- linkedin-adsSkill
- manage-campaignsSkill
- meta-ads-auditSkill
- meta-create-master-skillSkill
- meta-creative-analysisSkill
- meta-creative-fatigue-detectionSkill
- meta-creative-strategySkill
- meta-custom-event-interpretationSkill
- meta-daily-optimizationSkill
- meta-depth-of-analysisSkill
- meta-guardrailsSkill
- meta-performance-analysisSkill
- meta-tool-fundamentalsSkill
- microsoft-adsSkill
- organic-socialSkill
- own-creative-diagnosisSkill
- research-competitorsSkill
- search-console-master-skillSkill
- shift-budgetSkill
- shopify-order-disciplineSkill
- tiktok-adsSkill
- tiktok-create-master-skillSkill
- winning-ads-engineSkill
- winning-ads-orchestratorSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
11 rules. About 0 are common, 5 are distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 14
Call the appropriate propose tool with mode: "dryrun".
- Very specific: line 16
Call the same propose tool with mode: "live" and only the approved operation_ids — there is NO separate execute tool …
- Distinctive: line 20
ALL Meta propose tools — the create launch AND every update tool — take budgets/bids in account currency, human-readable (50 means $50, 300 …
- Distinctive: line 22
Always retrieve ad account details to confirm currency before proposing budget changes
- Very specific: line 36
CRITICAL — Targeting is full-replacement: When changing targeting, new_state must contain the COMPLETE targeting object (geo_locations, …
- Distinctive: line 38
CBO budget gating: If the parent campaign uses Campaign Budget Optimization (CBO), ad set-level budget changes are controlled by the …
- Very specific: line 47
CRITICAL — Creative requires complete object: When updating creative fields (CTA, destination URL), provide the COMPLETE object_story_spec …
- Distinctive: line 52
Update product set for catalog ads (not supported at ad level)
- Very specific: line 67
Self-discovery: Before proposing any ad/creative update, use facebook_get_ad_creative_details to fetch IDs and current state.
- Very specific: line 70
Only name and status (ACTIVE, IN_PROCESS, WITH_ISSUES, DELETED) are updatable on existing creatives.
- Distinctive: line 75
Always distinguish daily vs lifetime budget
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Meta Ads - Agent Operations
Rules for proposing and executing changes on Meta Ads via propose tools: dry run first, then apply with mode: "live" after the user approves.
General Workflow
- Describe the intended change in plain language to the user
- Call the appropriate propose tool with
mode: "dryrun". It validates the change and returnsoperation_ids; nothing changes yet. - Show the user every proposed change (entity, current value, new value) and wait for an explicit yes.
- Call the same propose tool with
mode: "live"and only the approvedoperation_ids— there is NO separate execute tool (facebook_execute_approved_operationno longer exists; never call it). That response includes the execution result and any new/updated IDs. - Confirm outcome to the user
Currency Rules
- ALL Meta propose tools — the create launch AND every update tool — take budgets/bids in account currency, human-readable (50 means $50, 300 means ₹300). The SERVER converts to cents. Never pass cents (5000 for $50 would set a 100× budget).
- Values returned by
facebook_get_campaign_details/ adset details are already in account currency; only Meta's raw insights/account_structurebudget fields are in cents (divide by 100 for display). - Always retrieve ad account details to confirm currency before proposing budget changes
- Display amounts with correct currency symbol — never assume USD
- Show before/after: "Current: $100.00/day → Proposed: $120.00/day (+20%)"
Campaign Updates (facebook_propose_update_campaigns)
Supported fields: name, status (ACTIVE/PAUSED), objective, daily_budget, lifetime_budget, bid_strategy, spend_cap, pacing_type — all money fields in ACCOUNT CURRENCY (server converts to cents)
buying_typeis read-only after creation — will fail if changeddaily_budgetandlifetime_budgetcannot coexist- Pass
spend_cap: 0(ornull) to REMOVE the cap — the server substitutes Meta's max-int sentinel itself. Never pass the sentinel directly (it would be currency-converted and overflow) - One array entry per field change for independent user approval
Ad Set Updates (facebook_propose_update_adsets)
Supported fields: name, status, daily_budget, lifetime_budget, targeting, bid_strategy, bid_amount, optimization_goal, billing_event, destination_type, start_time, end_time, frequency_control_specs, attribution_spec — money fields in ACCOUNT CURRENCY (server converts)
CRITICAL — Targeting is full-replacement: When changing targeting, new_state must contain the COMPLETE targeting object (geo_locations, age_min, age_max, genders, flexible_spec, custom_audiences, etc.) — not just changed parts. Omitted fields get removed.
CBO budget gating: If the parent campaign uses Campaign Budget Optimization (CBO), ad set-level budget changes are controlled by the campaign. NEVER propose ad set budgets on a CBO campaign.
Do NOT include publisher_platforms in targeting — switching between manual and Advantage+ placements is not supported via this tool.
Product set: promoted_object (including product_set_id) is immutable on ad sets, and NO update tool can change a catalog ad's product set (the ad-level update schema has no product_set_id either). Direct the user to Ads Manager, or propose a fresh ad with the new product set.
Ad Updates (facebook_propose_update_ads)
Supported fields: name, status, creative (URL + CTA only), url_tags (UTM parameters), tracking_specs
CRITICAL — Creative requires complete object: When updating creative fields (CTA, destination URL), provide the COMPLETE object_story_spec including page_id and ALL link_data fields. Omitted fields get cleared.
NOT supported (do not propose):
- Swap image/video (requires binary upload)
- Change primary text, headline, or description (creates new ad instead — suggest this to user)
- Update product set for catalog ads (not supported at ad level)
Creative structure for URL/CTA changes:
{
"object_story_spec": {
"page_id": "<PAGE_ID>",
"link_data": {
"link": "https://destination-url.com",
"call_to_action": { "type": "SHOP_NOW", "value": { "link": "https://..." } }
}
}
}Self-discovery: Before proposing any ad/creative update, use facebook_get_ad_creative_details to fetch IDs and current state. Never ask the user for creative IDs.
Ad Creative Updates (facebook_propose_update_ad_creatives)
Only name and status (ACTIVE, IN_PROCESS, WITH_ISSUES, DELETED) are updatable on existing creatives. No other fields can be updated — Meta API creates a new creative instead. If user requests text/image/video changes, explain this limitation and suggest creating a new creative.
Budget Change Guardrails
- Budget increase > 100%: warn user this is a major increase, confirm intent
- Budget decrease > 50%: warn user this significantly reduces reach and performance
- Always distinguish daily vs lifetime budget
- Max recommended scaling: 20% at once (from guardrails)
Status Change Warnings
- Pausing: Traffic and spending stop immediately
- DELETED: Permanent, cannot be undone — require explicit confirmation
- ARCHIVED: Reversible — can be unarchived (set back to PAUSED)
Bidding Changes
- Changing bid strategy resets the learning phase — always warn user
- Display bids in human-readable format: "Cost Cap: $15.00" not "bid_amount: 1500"
- Target CPA / Target ROAS require sufficient conversion history
Common CTA Types
SHOP_NOW, LEARN_MORE, SIGN_UP, BOOK_NOW, CONTACT_US, DOWNLOAD, GET_OFFER, BUY_NOW, SUBSCRIBE, ORDER_NOW, APPLY_NOW, GET_QUOTE, WHATSAPP_MESSAGE, CALL_NOW, NO_BUTTON
Dynamic URL Macros
{{campaign.id}}, {{campaign.name}}, {{adset.id}}, {{adset.name}}, {{ad.id}}, {{ad.name}}, {{placement}}, {{site_source_name}}
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

