Skip to main content
Glama

New paused campaign

create_campaign
Destructive

Create a paused campaign (no spend, no approval needed). Meta: objective and special_ad_categories (an empty array if none), special_ad_category_country (explicit ISO country codes when a category applies); budget_minor for a campaign budget, or no budget_minor and adset_budget_sharing (true recommended by Meta) for ad set budgets. Google: budget_minor and contains_eu_political_advertising; google_type SEARCH (default) creates the campaign only. PERFORMANCE_MAX, DEMAND_GEN and DISPLAY are created together with their asset group or ad group and ad, still paused: countries (ISO codes), final_url (https), headlines (up to 30 characters), descriptions (up to 90), business_name (up to 25) and images as public https links to PNG or JPEG files up to 5 MB — marketing_image_url (1.91:1, from 600×314), square_image_url (1:1, from 300×300), logo_image_url (1:1, from 128×128), landscape_logo_image_url (4:1, from 512×128). PERFORMANCE_MAX: 3–15 headlines, 1–5 long_headlines (up to 90), 2–5 descriptions (one up to 60), both images and the logo. DISPLAY: 1–5 headlines, exactly one long_headline, 1–5 descriptions, both images, optional logos. DEMAND_GEN: 1–5 headlines, 1–5 descriptions, the logo and at least one image; or a video ad — youtube_video (a YouTube link or id), the logo and 1–5 long_headlines instead of images. Optional bidding: MAXIMIZE_CONVERSIONS (target_cpa_minor) or MAXIMIZE_CONVERSION_VALUE (target_roas). The daily budget is limited by the client's policy cap. Microsoft: a Search campaign with budget_minor, all languages (Microsoft has no Russian or Ukrainian) and optional countries (ISO codes). LinkedIn: a DRAFT Sponsored Content campaign with budget_minor, linkedin_objective (WEBSITE_VISIT, WEBSITE_CONVERSION — needs LinkedIn lead feedback, ENGAGEMENT or BRAND_AWARENESS; automated bidding), linkedin_targeting (locations required, values from search_linkedin_targeting), contains_eu_political_advertising and optional linkedin_format — image (default), video, carousel or document (ENGAGEMENT or BRAND_AWARENESS only); LinkedIn fixes the format at creation; Audience Network off. Reddit: a PAUSED campaign with budget_minor (the ad group daily budget) and reddit — the ad group (targeting, bid) and the ad (a post with an image or a video by public https link) are created inside it; Reddit requires a pixel for every ad group and reviews the ad (up to 48 business hours). ChatGPT Ads: a PAUSED campaign with budget_minor (daily, or lifetime with openai.budget_type and end_date) and openai — bidding goal, places, dates, platforms; the ad group and the chat_card ad are added with create_ad_set and create_ad.

Input Schema

NameRequiredDescriptionDefault
nameYes
openaiNoChatGPT Ads campaign (the budget is budget_minor of the campaign): bidding_type clicks (default), impressions or conversions (only with conversion_event_setting_id of an active standard conversion event; it cannot change later); budget_type daily (default) or lifetime (needs end_date); optional start_date / end_date (YYYY-MM-DD in the account time zone); where to show — countries (ISO codes) and / or location_ids from search_openai_locations, optional excluded_countries / excluded_location_ids; optional platforms (ios_app, android_app, web, desktop_web, ios_web, android_web; omitted — all).
redditNoReddit campaign: objective CLICKS (traffic) or CONVERSIONS (leads on the site, optimized for the pixel's Lead event); special_ad_category NONE or HOUSING_EMPLOYMENT_CREDIT (jobs, housing, credit — Reddit restricts targeting); pixel_id when the account has several pixels; geolocations (Reddit codes from search_reddit_targeting, e.g. US); optional communities, interests, keywords, languages, devices, schedule; bid_minor — manual CPC bid (otherwise automatic); ad — headline, link, call_to_action, image_url or video_url with thumbnail_url, optional body.
biddingNo
countriesNoISO country codes
final_urlNo
headlinesNo
objectiveNo
account_idYes
google_typeNo
target_roasNo
budget_minorNo
descriptionsNo
business_nameNo
youtube_videoNoA YouTube video link or id (Demand Gen video ad)
logo_image_urlNoA public https link to a PNG or JPEG file up to 5 MB; the server downloads it; 1:1, at least 128×128
long_headlinesNo
linkedin_formatNo
square_image_urlNoA public https link to a PNG or JPEG file up to 5 MB; the server downloads it; 1:1, at least 300×300
target_cpa_minorNo
linkedin_objectiveNo
linkedin_targetingNoLinkedIn campaign_targeting: only the fields to change; each list is the whole new list
marketing_image_urlNoA public https link to a PNG or JPEG file up to 5 MB; the server downloads it; 1.91:1, at least 600×314
adset_budget_sharingNo
special_ad_categoriesNo
landscape_logo_image_urlNoA public https link to a PNG or JPEG file up to 5 MB; the server downloads it; 4:1, at least 512×128 (Display)
special_ad_category_countryNo
contains_eu_political_advertisingNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / openai
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "ChatGPT Ads campaign (the budget is budget_minor of the campaign): bidding_type clicks (default), impressions or conversions (only with conversion_event_setting_id of an active standard conversion event; it cannot change later); budget_type daily (default) or lifetime (needs end_date); optional start_date / end_date (YYYY-MM-DD in the account time zone); where to show — countries (ISO codes) and / or location_ids from search_openai_locations, optional excluded_countries / excluded_location_ids; optional platforms (ios_app, android_app, web, desktop_web, ios_web, android_web; omitted — all).",
      +  "properties": {
      +    "bidding_type": {
      +      "enum": [
      +        "clicks",
      +        "impressions",
      +        "conversions"
      +      ],
      +      "type": "string"
      +    },
      +    "budget_type": {
      +      "enum": [
      +        "daily",
      +        "lifetime"
      +      ],
      +      "type": "string"
      +    },
      +    "conversion_event_setting_id": {
      +      "type": "string"
      +    },
      +    "countries": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "end_date": {
      +      "description": "YYYY-MM-DD",
      +      "type": "string"
      +    },
      +    "excluded_countries": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "excluded_location_ids": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "location_ids": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "platforms": {
      +      "items": {
      +        "enum": [
      +          "ios_app",
      +          "android_app",
      +          "web",
      +          "desktop_web",
      +          "ios_web",
      +          "android_web"
      +        ],
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "start_date": {
      +      "description": "YYYY-MM-DD",
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the annotations: creation is paused with 'no spend, no approval needed', Reddit 'requires a pixel for every ad group and reviews the ad (up to 48 business hours)', LinkedIn 'fixes the format at creation' and turns Audience Network off, the daily budget is capped by the client's policy, and budget-sharing is 'true recommended by Meta'. These are exactly the side effects an agent needs on a mutation tool.

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

Conciseness3/5

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

Front-loads the core purpose in the first clause, which is good, but the rest is a single monolithic run-on paragraph with no per-platform separation, making it hard to scan. Nearly every sentence carries real constraints, so little is wasted, yet the structure works against easy retrieval.

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 28-param, multi-platform mutation with no output schema, it covers creation prerequisites, targeting sources, and per-platform constraints comprehensively. The notable gap is that it never says what is returned (e.g. campaign ids), which an agent needs since no output schema exists.

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 only 32% schema coverage across 28 params, the description carries the burden and does: character limits (headlines 30, descriptions 90/60, business_name 25), per-format counts (PERFORMANCE_MAX 3–15 headlines, DISPLAY exactly one long_headline, DEMAND_GEN video alternative), image aspect ratios and minimum pixel sizes, and bidding/budget interactions. It adds meaning far beyond the raw 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?

States a specific verb+resource (create a campaign) plus the crucial state qualifier: paused, no spend, no approval needed. It then enumerates four platform families with different creation semantics, making it unmistakable what the tool does versus siblings like create_ad_set or create_ad.

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?

Gives condition-based routing: PERFORMANCE_MAX/DEMAND_GEN/DISPLAY 'are created together with their asset group or ad group and ad', and ChatGPT Ads explicitly says the ad group and ad 'are added with create_ad_set and create_ad'. It also points to sibling lookups (search_linkedin_targeting, search_reddit_targeting, search_openai_locations). It never states a general when-not-to-use, so it stops short of a 5.

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