Skip to main content
Glama

create_ad_from_manifest

Creates a paused Facebook or Instagram ad from a manifest entry, with support for video assets, manual or auto-generated copy, and placement mode control.

Instructions

Create an ad from a manifest entry (always PAUSED, manifest-driven, no exceptions).

Loads the manifest entry, detects creative mode, resolves identity, checks for duplicates, validates pre-write, creates the ad, and verifies post-write.

INSTAGRAM GATE: Enforced via placement_mode parameter.

  • full_meta (default): requires IG identity, BLOCKS if unavailable

  • facebook_only: explicit FB-only, no IG placements

  • instagram_only: requires IG identity, BLOCKS if unavailable

For video ads: provide meta_video_id from upload_video_asset + poll_video_processing. The video must be in 'ready' state before calling this tool.

Args: account_id: Ad account ID (e.g., 'act_123456789'). adset_id: Target ad set ID. logical_creative_id: ID of the creative entry in the manifest (e.g., 'lc_example_brand_001'). manifest_json: JSON string containing the manifest or a single creative entry. Must include the logical_creative_id entry with variants, CTA, etc. ad_name: Name for the ad. Greek text validated. page_id: Facebook Page ID for the ad identity. destination_url: Primary destination URL for the ad CTA. primary_text: Primary text / message body. Required for manual mode, optional for auto/hybrid. cta_type: Call to action type (default 'SHOP_NOW'). See VALID_CTA_TYPES. headline: Optional headline text. Auto-generated if copy_mode='auto' and not provided. description: Optional description text. Auto-generated if copy_mode='auto' and not provided. instagram_user_id: Optional IG user ID. If not provided, attempts resolution from account. destination_url_override: If set, overrides manifest URL. Logged explicitly. cta_override: If set, overrides manifest CTA. Logged explicitly. primary_text_override: If set, overrides manifest primary text. Logged explicitly. headline_override: If set, overrides manifest headline. Logged explicitly. copy_mode: 'manual' (default), 'auto' (generate from vault), 'hybrid' (fill gaps). angle_name: Marketing angle for auto/hybrid copy generation. icp_name: Target ICP for auto/hybrid copy generation. funnel_stage: 'tofu', 'mofu', 'bofu' for copy tone/structure. dry_run: If true, runs all validation but does not create the ad. Returns what would be created.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
account_idYes
adset_idYes
logical_creative_idYes
manifest_jsonYes
ad_nameYes
page_idYes
destination_urlYes
primary_textNo
cta_typeNoSHOP_NOW
headlineNo
descriptionNo
instagram_user_idNo
meta_video_idNo
destination_url_overrideNo
cta_overrideNo
primary_text_overrideNo
headline_overrideNo
copy_modeNomanual
angle_nameNo
icp_nameNo
funnel_stageNotofu
dry_runNo
placement_modeNofull_meta
Behavior4/5

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

Describes internal steps: loads manifest, detects mode, resolves identity, checks duplicates, validates, creates, verifies. States ad is always PAUSED. With no annotations, this provides adequate transparency, though it does not detail permissions or side effects.

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

Conciseness4/5

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

The description is lengthy but well-structured with clear sections (Instagram gate, video ads, Args list). It front-loads the main purpose. Minor redundancy could be trimmed, but overall it's organized and informative.

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?

Given 23 parameters and no output schema, the description covers prerequisites, behavior, and all parameters. Missing return value explanation, but acceptable. Provides sufficient context for an AI agent to use the tool correctly.

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

Parameters5/5

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

With 0% schema coverage, the description compensates fully by explaining each parameter's purpose, defaults, and conditions (e.g., copy_mode values, overrides, dry_run). Even required and optional parameters are well-described, adding significant value beyond the schema.

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 clearly states the tool creates an ad from a manifest entry, always PAUSED, with manifest-driven behavior and no exceptions. It distinguishes itself from siblings like create_ad_creative by specifying the manifest-driven nature and the always-paused state.

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?

Provides explicit guidance on when to use different placement modes (full_meta, facebook_only, instagram_only) and prerequisites for video ads (need meta_video_id from upload_video_asset and poll_video_processing). Does not explicitly mention when not to use this tool, but context is clear.

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/brandu-mos/konquest-meta-ads-mcp'

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