Skip to main content
Glama
DatalisHQ

ZuckerBot

by DatalisHQ

zuckerbot_create_ad

Add a new image or video ad to an existing ad set. Preview the exact ad plan first, then execute to create the ad paused.

Instructions

Create ONE new ad (a new creative built from a declared asset) in an EXISTING ad set of the connected ad account — the way to add a brand-new image or video into a campaign that is already running, including ZuckerBot-external campaigns. Dry-run by default: returns the exact object plan (1 new creative + 1 new ad) without creating anything; pass execute: true plus an idempotency_key to build it. The ad is ALWAYS created PAUSED — activating it is a separate deliberate action. Asset: IMAGE (image_hash from zuckerbot_upload_ad_asset, or image_url — uploaded to the library automatically) or VIDEO (video_id from zuckerbot_upload_ad_asset, which must be processed/ready; thumbnail auto-derived, thumbnail_url overridable). Destination: exactly one of final_url (website) or lead_form_id (instant form — requires cta). VIDEO ads carry their link in the call_to_action, so VIDEO + final_url also requires cta. To clone an ad that already exists in the account instead, use zuckerbot_duplicate_ad.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ctaNoUppercase Meta CTA type, e.g. LEARN_MORE or SIGN_UP (required for VIDEO ads and instant-form destinations)
nameYesName for the new ad
executeNoDefault false (dry-run). Set true to actually create the PAUSED ad — requires idempotency_key
headlineNoHeadline
video_idNoVIDEO: Meta video id (from zuckerbot_upload_ad_asset; must be processed/ready)
final_urlNoWebsite destination URL (exactly one of final_url or lead_form_id)
image_urlNoIMAGE: https URL — uploaded to the ad-account library automatically on execution
asset_typeYesIMAGE (image_hash or image_url) or VIDEO (video_id)
image_hashNoIMAGE: 32-char Meta library image hash (from zuckerbot_upload_ad_asset)
business_idNoOptional business ID override for the authenticated API key
descriptionNoDescription
lead_form_idNoMeta instant-form id on the connected Page (exactly one of final_url or lead_form_id; see zuckerbot_lead_forms)
primary_textNoPrimary text / body copy
thumbnail_urlNoVIDEO: optional https thumbnail override (default: derived from the processed video)
thumbnail_hashNoVIDEO: optional library image hash to use as the thumbnail
idempotency_keyNoRequired when execute is true. Generate once per logical operation (UUIDv4 recommended); reuse the identical value only when retrying the identical request
target_adset_idYesNumeric Meta ad set id to create the ad in (must be an EXISTING ad set in the connected ad account)
Behavior5/5

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

With no annotations present, the description fully compensates. It discloses dry-run-by-default behavior, the need for `execute: true` plus an idempotency key, that ads are always created PAUSED, that `image_url` assets are uploaded automatically, and that VIDEO assets must be processed/ready before use.

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 dense and front-loaded with the core purpose, and every sentence carries necessary information. It is longer than ideal due to overlapping asset and destination rules, but the structure remains readable and each clause earns its place.

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

Completeness5/5

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

Given the tool's high complexity, 17 parameters, no output schema, and no annotations, the description covers the essential operational context: dry-run flow, execution requirements, pause-by-default, asset input paths, destination exclusivity, and cloning alternative. An agent has enough context to select and invoke 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?

Although schema coverage is 100%, the description adds meaningful constraints beyond the schema: exactly one of `final_url` or `lead_form_id`, VIDEO ads require a `cta`, VIDEO + `final_url` requires `cta`, and `image_hash` comes from `zuckerbot_upload_ad_asset`. This converts a flat parameter list into usable decision rules.

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 a specific verb and resource: 'Create ONE new ad' in an 'EXISTING ad set,' and explicitly distinguishes itself from cloning via `zuckerbot_duplicate_ad`. It clearly establishes what this tool is for versus other campaign/ad-creation tools.

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?

It tells the agent precisely when to use this tool: adding a brand-new image or video into an already-running campaign, including externally-created campaigns. It also provides an explicit exclusion: if the goal is to clone an existing ad, use `zuckerbot_duplicate_ad` instead.

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/DatalisHQ/zuckerbot'

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