Skip to main content
Glama

Create Ad Sets (batch)

adsap_create_ad_sets

Create one or more Meta ad sets under an existing campaign. Supports batch creation (max 20). Ad sets are created PAUSED by default. Leads campaigns take three destinations: ON_AD (Instant Forms), WEBSITE, and WEBSITE_AND_LEAD_FORM (Website and Instant Forms: OFFSITE_CONVERSIONS + pixel, ads then carry a link and a lead form). Not supported yet (say so and point the user to Meta Ads Manager, never substitute another destination): messaging ad sets (Messenger, WhatsApp, Instagram Direct), calls, event responses, reminders, shop destinations. ALWAYS call with dry_run: true first: it validates and renders a launch review card where the user confirms, creates (paused) and activates in-card — after it renders, reply with ONE short sentence and stop; do not call the real create from chat unless the user explicitly asks in a new message and the card's activity log shows nothing was created there. Prerequisites: call list_meta_assets for pages/pixels/Instagram accounts, list_pixel_events for conversion events. For App promotion (OUTCOME_APP_PROMOTION) campaigns: each ad set requires promoted_object.application_id + object_store_url, optimization_goal APP_INSTALLS (or OFFSITE_CONVERSIONS with custom_event_type for app-event optimization), and the promoted app must be in Live mode and advertisable by the ad account; OS targeting (user_os) is derived automatically from the store URL.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ad_setsYesArray of ad set definitions. Max 20 per call.
dry_runNoWhen true, validates without creating. Default false.
campaign_idYesParent campaign ID. Call list_campaigns first if needed.
ad_account_idNoTarget ad account. Defaults to user's primary account.
idempotency_keyNoUnique key to prevent duplicate creation from retries.
campaign_objectiveNoParent campaign's objective. Pass it (e.g. from adsap_create_campaign's response) when the campaign was created recently and may not be cached yet. If omitted, resolved from cache; an unresolvable objective fails with guidance.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and delivers: ad sets are created PAUSED by default, dry_run renders a launch review card and disallows the real create from chat unless conditions are met, and unsupported destinations must be redirected to Meta Ads Manager. It also discloses App promotion constraints such as Live mode, advertisability, and auto-derived user_os.

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?

Long but every sentence carries an actionable constraint: max 20, paused default, destination matrix, unsupported destinations, dry_run-first protocol, prereuisites, and App promotion rules. It is front-loaded with the core action and contains no filler or schema restatement.

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 batch-creation endpoint with no annotations and no output schema, the description covers all operational essentials: batch cap, default state, destination matrix, unsupported list, mandatory dry_run flow, prerequisites, and App promotion specifics. The only minor gap is an explicit description of the real-create return payload, though the card/activity-log workflow mitigates it.

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?

Schema coverage is 100%, so the baseline is 3. The description adds workflow-level meaning beyond the schema: ALWAYS call with dry_run true first, the App-promotion promoted_object + optimization_goal requirements, and unsupported destination handling. It does not repeat the schema's already-complete field documentation.

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?

States a specific verb+resource+scope: create one or more Meta ad sets under an existing campaign, with a batch max of 20. This clearly distinguishes it from sibling tools like adsap_create_campaign and adsap_create_ad by anchoring on 'ad sets' and 'existing campaign'.

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

Usage Guidelines5/5

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

Offers explicit usage rules: prerequisites (list_meta_assets, list_pixel_events), a mandatory dry_run-first workflow with a precise stop-after-render instruction, and a clear list of unsupported destinations with the directive never to substitute. Also prescribes App-promotion-specific requirements.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources