Skip to main content
Glama
AbnerZx

Meta Ads MCP

by AbnerZx

ads_create_adset

Create a targeted ad set under a campaign by defining budget, audience, optimization goal, and scheduling preferences.

Instructions

Create an ad set under a campaign.

Args: account_id: Parent ad account. campaign_id: Parent campaign. daily_budget_cents: Daily budget in cents (use this OR lifetime_budget_cents). lifetime_budget_cents: Total budget for the entire run (requires end_time). optimization_goal: REACH, IMPRESSIONS, LINK_CLICKS, OFFSITE_CONVERSIONS, LANDING_PAGE_VIEWS, MESSAGES, LEAD_GENERATION, CONVERSATIONS, etc. billing_event: IMPRESSIONS (most common), LINK_CLICKS, etc. targeting: Full targeting JSON (geo, age, interests, custom audiences). promoted_object: For conversion campaigns: {"pixel_id": ..., "custom_event_type": ...}. destination_type: WEBSITE, APP, MESSENGER, INSTAGRAM_DIRECT, ON_AD, etc. start_time / end_time: ISO 8601 timestamps. adset_schedule: Day-parting blocks. Each block: {"days": [0..6], "start_minute": 0..1440, "end_minute": 0..1440, "timezone_type": "USER"|"ADVERTISER"}. Requires pacing_type=["day_parting"] AND lifetime_budget_cents (not daily). Tip: use ads_set_adset_schedule for an ergonomic builder. pacing_type: ["standard"] (default) or ["day_parting"] when adset_schedule is set. attribution_spec: e.g. [{"event_type":"CLICK_THROUGH","window_days":7}]. frequency_control_specs: e.g. [{"event":"IMPRESSIONS","interval_days":7,"max_frequency":3}].

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYes
statusNoPAUSED
confirmNo
end_timeNo
targetingYes
account_idYes
start_timeNo
campaign_idYes
pacing_typeNo
bid_strategyNo
billing_eventYes
adset_scheduleNo
promoted_objectNo
attribution_specNo
bid_amount_centsNo
destination_typeNo
optimization_goalYes
daily_budget_centsNo
lifetime_budget_centsNo
frequency_control_specsNo
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears the full burden of behavioral disclosure. It explains important constraints such as lifetime budget requiring end_time and day-parting requiring a lifetime budget, but it does not mention the confirm parameter's side effects, the status default of PAUSED, or what the tool returns after creation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: it starts with a clear one-sentence purpose, followed by a bulleted list of parameters with concise, actionable explanations. Every sentence contributes value, and the format makes it easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex 20-parameter tool with nested objects and no output schema, the description covers the majority of parameters and key dependencies. It includes a helpful pointer to a sibling tool, but it misses a few parameters and does not describe the response or error behavior, so it is not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, and the description compensates well by explaining the meaning and constraints of most parameters, including enum-like values for optimization_goal and the detailed structure of adset_schedule and targeting. However, it omits several parameters (name, status, confirm, bid_strategy, bid_amount_cents), leaving some gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Create an ad set under a campaign,' which is a specific verb+resource statement that clearly distinguishes this tool from sibling tools like ads_create_campaign and ads_create_ad. It also clarifies the hierarchical relationship to parent objects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides practical usage context, including budget exclusivity rules and a tip recommending ads_set_adset_schedule for day-parting setup. However, it does not explicitly state when to use this tool versus alternatives (e.g., updating an ad set with ads_update_adset).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AbnerZx/meta-ads-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server