# Meta Ads

Create and manage full Meta (Facebook & Instagram) ad campaigns: ad sets, ads, creatives, audiences and insights.

- Category: Marketing
- Connection: Sign in. Sign in with your Meta Ads account. No API key to copy.
- Plans: Free: Not included; MCP only ($9/mo): 2,000 calls a month; Pro: 20,000 calls a month; Max: 20,000 calls a month
- Consent: Ad spend consent (https://krypton.bot/terms/#publishing). Before Meta Ads connects, you confirm the ad spend consent: your bots can create and change campaigns that spend money from your ad account, billed to you by the ad platform.
- Vendor site: https://www.facebook.com/business/ads

## Tools

- Create campaign (`meta_ads_create_campaign`): Create a campaign. Created PAUSED unless status ACTIVE is set explicitly. Budgets in minor units (cents). special_ad_categories is required ([] when none apply).
- Create ad set (`meta_ads_create_ad_set`): Create an ad set: budget (minor units, unless the campaign has its own), schedule, optimization goal, billing event and targeting (geo_locations, age_min/max, genders, interests, custom_audiences, publisher_platforms...). Created PAUSED unless status ACTIVE is set explicitly.
- Create creative (`meta_ads_create_creative`): Create an ad creative. Simple link or video ad: give page_id, link, message and image_hash or video_id. Anything else (carousel, Advantage+ asset feeds, Instagram): pass object_story_spec / asset_feed_spec in fields.
- Create ad (`meta_ads_create_ad`): Create an ad in an ad set from a creative. Created PAUSED unless status ACTIVE is set explicitly.
- Create report (`meta_ads_create_report`): Start an asynchronous insights report for large date ranges or many rows. Poll it with meta_ads_get_report.
- Create audience (`meta_ads_create_audience`): Create a custom audience: a customer list (subtype CUSTOM, then add people with meta_ads_update_audience_users), website visitors or engagement (subtype WEBSITE/ENGAGEMENT with a rule).
- Create lookalike audience (`meta_ads_create_lookalike_audience`): Create a lookalike audience from a source custom audience, for one or more countries and a size ratio (0.01 = top 1%).
- Create pixel (`meta_ads_create_pixel`): Create a Meta Pixel (dataset) on an ad account for conversion tracking.
- Create custom conversion (`meta_ads_create_custom_conversion`): Create a custom conversion from pixel events matching a URL or event rule.
- Create label (`meta_ads_create_label`): Create an ad label on an ad account to organise campaigns, ad sets and ads.
- List ad accounts (`meta_ads_list_ad_accounts`): List the ad accounts this connection can manage, with currency, status, time zone and amount spent.
- List pages (`meta_ads_list_pages`): List the Facebook Pages (and linked Instagram accounts) this connection can advertise for; ads need a page_id.
- List (`meta_ads_list`): List objects under an ad account or another object: campaigns, adsets, ads, adcreatives, adimages, advideos, customaudiences, saved_audiences, adspixels, customconversions, adlabels, activities... Paginated with after.
- Update (`meta_ads_update`): Update fields on a campaign, ad set, ad, creative name, audience or other object, e.g. {name}, {targeting}, {end_time}, {bid_strategy}. Status ACTIVE makes it eligible to spend: only when the user explicitly asks.
- Update budget (`meta_ads_update_budget`): Change a campaign or ad set budget. Amounts in the account currency's minor units (cents: 2500 = 25.00).
- Update audience users (`meta_ads_update_audience_users`): Add or remove people on a customer list audience. Give plain values; they are normalised and SHA-256 hashed here before they leave Krypton (already-hashed values pass through).
- Get (`meta_ads_get`): Read one object (campaign, ad set, ad, creative, video upload status, audience, pixel...) with the fields asked for.
- Get report (`meta_ads_get_report`): Status of an asynchronous report, and its rows once it is complete. Paginated with after.
- Upload image (`meta_ads_upload_image`): Upload an ad image (at most 30 MB) from base64 or a public https URL. Returns its image_hash for creatives.
- Upload video (`meta_ads_upload_video`): Upload an ad video from a public https URL (Meta downloads it). Returns the video id; check processing with meta_ads_get fields ['status'] before using it in a creative.
- Apply labels (`meta_ads_apply_labels`): Apply ad labels to campaigns, ad sets or ads. Each id is reported separately.
- Copy (`meta_ads_copy`): Duplicate a campaign, ad set or ad (deep_copy includes children). The copy is created PAUSED.
- Delete (`meta_ads_delete`): Delete an object that has no status, such as a creative, custom audience, label or custom conversion. Cannot be undone.
- Estimate audience (`meta_ads_estimate_audience`): Estimate audience size and daily results for a targeting spec before creating an ad set.
- Insights (`meta_ads_insights`): Performance insights for an ad account, campaign, ad set or ad: spend, impressions, clicks, ctr, cpc, actions, purchase_roas... by level, date range and breakdowns. Paginated with after. For big reports use meta_ads_create_report.
- Preview (`meta_ads_preview`): Render a preview of an ad or creative in a placement; returns an iframe snippet.
- Search targeting (`meta_ads_search_targeting`): Find targeting ids: interests (adinterest), interest suggestions, locations (adgeolocation), locales, employers, job titles, schools, and behaviors/demographics (adTargetingCategory with class).
- Send conversion events (`meta_ads_send_conversion_events`): Send server-side conversion events (Conversions API) to a pixel. user_data values are hashed here before sending. Use test_event_code to see them in Events Manager without counting them.
- Set status (`meta_ads_set_status`): Pause, activate, archive or delete campaigns, ad sets and ads. ACTIVE makes them eligible to spend: use it only when the user explicitly asks to launch. Each id is reported separately.

## Skills included

- meta-ads-performance-report: Meta (Facebook and Instagram) ads report: spend, results, cost per result and the best and worst ads.
- meta-ads-creative-fatigue: Spot Meta ads whose frequency is rising and click rate is falling, and suggest which creatives to refresh.
- meta-ads-launch-checklist: Set up a new Meta campaign safely: everything is created paused and reviewed before it can spend.

## Questions

### How do I connect Meta Ads to Krypton?

Open Integrations in Krypton, find Meta Ads and choose Sign in. Every bot in the workspace can then use it, and you choose which bots get which apps.

### Which plan includes Meta Ads?

MCP only with 2,000 calls a month, Pro and Max with 20,000. Calls are shared by every catalog app in the workspace. Past the monthly number they keep working from AI credits at $0.90 per 1,000 calls; the count resets on the 1st (UTC) and a retried call counts once.

### Can I use Meta Ads from Claude or Cursor?

Yes. Connect it in your workspace, then add https://mcp.krypton.bot as a streamable HTTP MCP server with your kmcp_ workspace key. Calls count toward the same monthly number.

Back to the [MCP catalog](https://krypton.bot/mcp-catalog/).
