Skip to main content
Glama

Honeyfield Marketing MCP

Meta Ads: Create adset

meta_create_adset

Neues Meta-Adset anlegen (Default PAUSED) — hier liegen Budget und Zielgruppe.

daily_budget / lifetime_budget: EUR, genau eines davon (error=budget_conflict bei beiden); ohne CBO Pflicht (sonst error=budget_required), bei CBO-Kampagne wird das Adset-Budget ignoriert. lifetime_budget = Gesamtsumme bis end_time und braucht end_time (error=end_time_required). optimization_goal: z.B. LINK_CLICKS, LANDING_PAGE_VIEWS, REACH, OFFSITE_CONVERSIONS, LEAD_GENERATION. promoted_page_id: Page, deren Instant Forms das Adset bewirbt — Pflicht bei LEAD_GENERATION (sonst error=promoted_page_required; ID aus meta_list_pages). Wird als promoted_object={page_id} gesendet. pixel_id + custom_event_type: Pixel und Ereignis, auf das optimiert wird — Pflicht bei OFFSITE_CONVERSIONS und immer nur zusammen (sonst error=pixel_event_required; Pixel aus meta_list_pixels). Ereignisse laut Meta-Enum, z.B. LEAD, PURCHASE, COMPLETE_REGISTRATION, CONTACT, SUBMIT_APPLICATION, SUBSCRIBE, ADD_TO_CART, INITIATED_CHECKOUT (error=invalid_custom_event_type bei anderen Werten). Wird als promoted_object={pixel_id, custom_event_type} gesendet. destination_type: wohin die Anzeige führt, laut Meta-Enum — z.B. WEBSITE, ON_AD (Instant Form direkt in der Anzeige; Metas Lead-Ads-Beispiel), MESSENGER, WHATSAPP, INSTAGRAM_DIRECT, APP, FACEBOOK_PAGE (error=invalid_destination_type bei anderen Werten). Lead-Adset (Instant Form): optimization_goal='LEAD_GENERATION', promoted_page_id, destination_type='ON_AD'; Anzeige danach mit meta_create_ad(lead_gen_form_id=...). Voraussetzung: ein Page-Admin hat die Lead-Ads-Nutzungsbedingungen akzeptiert (meta_list_pages -> leadgen_tos_accepted); sonst lehnt Meta die Anzeige ab. Zurücklesen: meta_list_adsets zeigt promoted_object und destination_type. bid_strategy: Default LOWEST_COST_WITHOUT_CAP ('Highest Volume'); LOWEST_COST_WITH_BID_CAP/COST_CAP brauchen bid_amount (EUR); LOWEST_COST_WITH_MIN_ROAS braucht min_roas (error=min_roas_required), kennt KEIN bid_amount (error=bid_amount_not_applicable) und bei Meta optimization_goal='VALUE' plus ein für Wertoptimierung freigeschaltetes Konto. Bei einer CBO-Kampagne liegt die Strategie an der Kampagne und gilt für jedes Adset: bid_strategy hier weglassen (abweichende Angabe: error=bid_strategy_campaign_level) und je nach Kampagnenstrategie nur bid_amount (BID_CAP/COST_CAP, Pflicht) bzw. min_roas (MIN_ROAS, Pflicht) mitgeben — das Tool liest die Kampagnenstrategie und prüft dagegen. Zurücklesen: meta_list_adsets bid_strategy/bid_amount_eur/ min_roas (Strategie bei CBO via meta_list_campaigns). min_roas: Mindest-ROAS als Verhältnis (2.5 = 250 %, erlaubt 0.01–1000; error=invalid_min_roas), wird als bid_constraints.roas_average_floor (×10000) gesendet. Nur mit LOWEST_COST_WITH_MIN_ROAS (am Adset oder, bei CBO, an der Kampagne), sonst error=min_roas_not_applicable. countries: ISO-Codes. Default ['AT'] gilt NUR, wenn keine Geo-Verfeinerung (regions/cities/zips/custom_locations) übergeben wird; genders: nur 'male'/'female', Default alle — andere Werte werden still ignoriert; custom_audience_ids: IDs aus meta_list_audiences. Geo-Verfeinerung — Schlüssel immer via meta_targeting_search holen, nie raten. Formate: cities=[{'key': '2420605', 'radius_km': 17}] (Umkreis um eine Stadt 17–80 km, ohne radius_km nur das Stadtgebiet; error=invalid_city_radius), regions=['1234'] (Bundesland/Region), zips=['AT:5020'] (Landespräfix Pflicht, error=invalid_zip_key), custom_locations=[{'latitude': 47.8, 'longitude': 13.04, 'radius_km': 10}] oder [{'address_string': 'Getreidegasse 9, Salzburg', 'radius_km': 5, 'name': 'Altstadt'}] (Umkreis 1–80 km, error=invalid_custom_location). Städte/Umkreise aus meta_list_adsets ({'key', 'radius', 'distance_unit': 'kilometer', ...}) dürfen 1:1 übernommen werden; Meilen und unbekannte Felder werden abgelehnt (error=invalid_city_radius/invalid_cities). Leere Listen sind beim Anlegen keine Angabe. Konfliktregel von Meta (Subcode 1487756 "Some locations conflict with each other"): Orte, die ineinander liegen, dürfen nicht gemeinsam EINGESCHLOSSEN werden — countries=['AT'] + Stadt Salzburg, Region Salzburg + Stadt Salzburg oder Stadt-Umkreis + PLZ darin lehnt Meta ab; der Fehler kommt mit hint zurück. Deshalb: nur die Verfeinerung gemeint → countries weglassen (dann kein AT-Default). countries UND Verfeinerung zusammen nur länderübergreifend (z.B. DE komplett + Salzburg/AT). Ausschlüsse INNERHALB eines eingeschlossenen Gebiets sind erlaubt (excluded_geo_locations, z.B. Region Salzburg minus Stadt Salzburg). excluded_geo_locations: Gebiete AUSSCHLIESSEN, gleiche Struktur als Dict, z.B. {'zips': ['AT:5020']} oder {'cities': [{'key': '...', 'radius_km': 17}]} oder {'countries': ['CH']}; andere Schlüssel error=invalid_excluded_geo_locations. excluded_custom_audience_ids: Custom Audiences ausschließen (IDs aus meta_list_audiences, z.B. bestehende Kunden). interest_ids / behavior_ids: Interessen bzw. Behaviors (IDs aus meta_targeting_search kind='interest'/'behavior'). locales: Sprachen als Meta-Locale-Schlüssel (Ganzzahlen aus meta_targeting_search kind='locale'; error=invalid_locales sonst). Zurücklesen: meta_list_adsets zeigt Verfeinerungen, Ausschlüsse, Interessen, Behaviors und locales im targeting. dsa_beneficiary/dsa_payor: DSA-Pflichtangaben für EU-Ads — wer profitiert / wer bezahlt (Payor default = Beneficiary), z.B. 'Honeyfield GmbH'. Bei EU-/EWR-Targeting ohne dsa_beneficiary warnt das nicht-blockierende warnings-Feld. Erfasst werden Geo-Einträge mit Ländercode sowie country_groups; nicht auswertbare Geo-Listeneinträge erscheinen als UNKNOWN. advantage_audience: Metas KI-Zielgruppenerweiterung (Pflichtentscheidung; Default False = konfiguriertes Targeting gilt exakt). publisher_platforms: Plattformen, z.B. ['facebook','instagram']. OHNE Angabe laufen AUTOMATISCHE Platzierungen, also auch Audience Network. positions: Positionen je Plattform, z.B. {'facebook': ['feed','story'], 'instagram': ['stream','reels']}. Eine Plattform mit Positionen muss auch in publisher_platforms stehen. device_platforms: ['mobile'] und/oder ['desktop']. excluded_publisher_categories / excluded_publisher_list_ids: Brand Safety. start_time / end_time: Zeitplan des Adsets. end_time ist das Traffic-Enddatum (danach pausiert Meta die Auslieferung). Je als Datum '2026-09-30' (= Tagesende) oder ISO-Zeitstempel; ohne Offset wird die Zeitzone des Werbekontos angehängt (Meta würde sonst UTC annehmen). Pflicht bei lifetime_budget und bei Adsets in Kampagnen mit Laufzeitbudget (error=end_time_required), sonst optional. validate_only: True lässt Meta den Aufruf prüfen, ohne etwas zu ändern. Ein Erfolg heißt: Meta würde die Änderung annehmen. campaign_id muss zum Werbekonto des Workspace gehoeren — eine Kampagne eines anderen Kontos (auch wenn die Meta-Verbindung es sieht) → {'error': 'foreign_object'}. workspace: Slug des Kunden-Workspace (optional bei nur einem Workspace).

Input Schema

NameRequiredDescriptionDefault
nameYes
zipsNo
citiesNo
statusNoPAUSED
age_maxNo
age_minNo
gendersNo
localesNo
regionsNo
end_timeNo
min_roasNo
pixel_idNo
countriesNo
dsa_payorNo
positionsNo
workspaceNo
bid_amountNo
start_timeNo
campaign_idYes
behavior_idsNo
bid_strategyNo
daily_budgetNo
interest_idsNo
billing_eventNoIMPRESSIONS
validate_onlyNo
dsa_beneficiaryNo
lifetime_budgetNo
custom_locationsNo
destination_typeNo
device_platformsNo
promoted_page_idNo
custom_event_typeNo
optimization_goalNoLINK_CLICKS
advantage_audienceNo
custom_audience_idsNo
publisher_platformsNo
excluded_geo_locationsNo
excluded_publisher_list_idsNo
excluded_custom_audience_idsNo
excluded_publisher_categoriesNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

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

This tool provides exceptional behavioral transparency, disclosing complex operational logic beyond schema structure, such as budget conflict rules (error=budget_conflict), the interaction with CBO campaigns (where the budget is ignored), and detailed Geo-Targeting conflict resolution rules.

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?

While the description is extremely dense, it is logically structured, moving from budget/goal definitions to specific requirements (like Lead Ads) and then technical constraints (Geo-targeting, bid strategies). The density is high but necessary for the complexity.

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 immense complexity of the Meta Ads API, the description is contextually complete. It covers all necessary integration points, warning labels (non-blocking warnings vs. blocking errors), and cross-tool dependencies (e.g., where to retrieve Geo-targeting data).

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 description coverage, the description carries the entire burden of semantics. It thoroughly defines complex parameters like min_roas (ratio conversion), destination_type (Meta-Enum listing), and the required pairing of pixel_id and custom_event_type.

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 tool clearly states its purpose in German: 'Neues Meta-Adset anlegen' (Create new Meta Adset). It immediately identifies the core function and the parameters involved (budget and target group), distinguishing it from asset-level tools like ads_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 Guidelines5/5

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

The description provides extensive usage guidelines, such as the requirements for Lead Adsets (e.g., specific optimization_goal, promoted_page_id, destination_type='ON_AD') and critical preconditions like Meta Page-Admin accepting Lead Ads Terms of Service.

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