Skip to main content
Glama

create_campaign

[Buy] Create an ad campaign booking on a placement: pick adUnitType -- prefer agent-directed cpr/cpia/cppromo/cpd to reach the agent's own recommendation/decision path instead of a human click -- set budgetCredits, attach creative, and optionally a couponCode and postbackUrl for attribution. Debits advertiser credits into escrow. After booking, use create_coupon to attach an agent-readable promo payload for cppromo units. Aliases: buy_campaign, buy_placement.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
feedTypeNoOptional opaque product-feed type. Defaults from placement when omitted.
productIdNoOptional SKU id when booking a single product feed unit.
adUnitTypeNo
couponCodeNoOptional coupon/promo code end users redeem for this campaign (e.g. cpa/cpl/cpi offers).
creativeUrlNo
placementIdYes
postbackUrlNoOptional server-to-server postback URL fired on conversion (see register_postback).
creativeTextNo
durationDaysNo
budgetCreditsYesTotal campaign budget in credits, escrowed on creation.
productImageUrlNoOptional snapshot of product image.url at booking.
productImageWidthNo
productImageHeightNo
productPriceAmountNo
productPriceCurrencyNo
productDiscountPercentNo

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the burden of transparency. It discloses the key side effect: 'Debits advertiser credits into escrow,' and explains the purpose of couponCode and postbackUrl for attribution. It does not mention reversibility or failure behavior, but covers the most critical mutation.

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 concise at roughly three sentences and front-loads the main purpose. The '[Buy]' prefix and alias list add a bit of bulk, but overall no sentence is wasted; it packs essential guidance into a compact format.

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

Completeness3/5

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

For a tool with 16 parameters and no output schema, the description covers the core flow (booking, escrow, optional attribution, follow-up coupon) but omits many optional fields and does not indicate what the response contains. It is sufficient for basic use but leaves gaps for edge cases.

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

Parameters3/5

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

Schema description coverage is low at 38%, so the description must compensate. It adds meaning to adUnitType (prefer agent-directed types) and budgetCredits (escrow), and clarifies couponCode/postbackUrl roles. However, many parameters like feedType, productId, durationDays, and product snapshot fields are not explained in the description.

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 campaign booking on a placement,' a specific verb and resource, and distinguishes itself from create_coupon by noting it should be used after booking. It also lists aliases buy_campaign and buy_placement, clarifying sibling tool names.

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?

Explicit guidance is given on when to use this tool: 'prefer agent-directed cpr/cpia/cppromo/cpd to reach the agent's own recommendation/decision path instead of a human click.' It also tells the agent to 'use create_coupon to attach an agent-readable promo payload for cppromo units' after booking, providing a clear alternative for a related task.

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.

TDQS

C2.8/5.0
Disambiguation2/5

Multiple tools have overlapping or misleading purposes: buy_campaign and buy_placement are aliases of create_campaign, list_placement actually creates a placement, and get_attribution/get_campaign both provide campaign stats. The report_* tools are distinct but similarly named, increasing selection risk.

Naming Consistency3/5

Most tools follow a verb_noun snake_case pattern, but there are notable deviations: buy_campaign/buy_placement use 'buy' instead of 'create', list_placement is a creator not a lister, and simple nouns like 'wallet' and 'whoami' break the convention.

Tool Count2/5

At 31 tools, the server feels heavy. Several tools are redundant aliases (buy_campaign, buy_placement) or could be consolidated (multiple report_* and list_* variants), making the surface unnecessarily large for the ad marketplace domain.

Completeness3/5

The core lifecycle is covered: campaign/placement creation, delivery, reporting, attribution, refunds, and cashouts. However, there are gaps like no update_campaign, no true list_placements, and no get_placement, leaving some workflows incomplete.