Skip to main content
Glama

Metadata MCP Connector

Launch Campaign

launch_campaign
Destructive

CRITICAL: LAUNCHES REAL MARKETING CAMPAIGNS WITH REAL BUDGET SPEND

            KEYWORDS: launch, start, activate, go live, campaign, begin, advertising, spend, marketing

            PREREQUISITE: Before running this tool, call get_integrations_status and verify at least one advertising channel is connected (FACEBOOK, INSTAGRAM, LINKEDIN, GOOGLE_ADS). If none are connected, tell the user to connect at least one channel before proceeding and stop.

            This tool takes a draft campaign and launches it as a LIVE, ACTIVE marketing campaign.
            Once launched, the campaign will immediately start:
            - SPENDING REAL MONEY from your marketing budget
            - SERVING ADS to real audiences across platforms (LinkedIn, Facebook, Instagram, Google)
            - GENERATING ACTUAL IMPRESSIONS, CLICKS, AND CONVERSIONS
            - COMPETING in real ad auctions with real bid amounts

            CRITICAL SAFETY REQUIREMENTS
            This tool will ALWAYS require explicit user confirmation before launching any campaign.
            The user must understand they are launching a real campaign with real budget implications.

            WHEN TO USE:
            - Launch a draft campaign to start real advertising and budget spend
            - Activate a campaign after final review, approval, and budget confirmation
            - Begin live ad serving across configured channels
            - Transition from campaign testing/setup phase to live marketing execution

            REQUIRED PARAMETERS:
            - campaign_id: The unique identifier of the draft campaign to launch (integer, required)

            MANDATORY CONFIRMATION PROCESS:
            Before launching any real campaign, this tool MUST:
            1. Display the campaign ID and retrieve campaign details if possible
            2. Show estimated daily/total budget that will be spent
            3. List all channels where ads will go live (LinkedIn, Facebook, Instagram, Google)
            4. Warn that this starts REAL BUDGET SPENDING immediately
            5. Require explicit "YES, LAUNCH REAL CAMPAIGN" confirmation
            6. Confirm the user understands this is not a test or simulation
            7. Only proceed after receiving unambiguous user approval
            8. Provide immediate launch status and live campaign monitoring URL

            CAMPAIGN ID SOURCES:
            Campaign IDs can be obtained from:
            - search_campaigns_by_names tool (recommended)
            - create_campaign tool response (returns campaign_id)
            - Campaign management interface URLs

            EXAMPLE CONFIRMATION FLOW:

            User: launch_campaign(campaign_id=159490)

            System Response:
            "CRITICAL: REAL CAMPAIGN LAUNCH REQUEST

            Campaign ID: 159490
            Campaign Name: 'Q1_2026_Multi_Channel_Campaign'
            Channels: LinkedIn, Facebook, Instagram, Google Ads
            Budget Group: 'BoFu'
            Estimated Daily Spend: $500-800
            Total Budget Allocation: $15,000

            WARNING: This will launch a REAL marketing campaign
            - Real money will be spent immediately
            - Ads will serve to real audiences
            - This is NOT a test or simulation

            Type 'YES, LAUNCH REAL CAMPAIGN' to confirm you want to proceed with live campaign launch:"

            Only after explicit confirmation will the campaign launch proceed.

            RESPONSE FORMAT:

            Success Response (launched — ONLY when "waitingAudiencesToLaunch" is false or absent):
            {
                "success": true,
                "campaign_id": 159490,
                "status": "LIVE - ACTIVELY SPENDING BUDGET",
                "campaign_url": "https://platform.metadata.io/hub/advertise/campaigns/159490",
                "launch_timestamp": "2026-01-15T12:00:00Z",
                "message": "REAL CAMPAIGN IS NOW LIVE - Budget spending has begun",
                "live_channels": ["LinkedIn", "Facebook", "Instagram", "Google Ads"],
                "budget_status": "Active - Real spend initiated",
                "immediate_actions_required": [
                    "CRITICAL: MONITOR SPEND IMMEDIATELY - Real money is being spent",
                    "Check live ad performance in dashboard",
                    "Set up budget alerts if not already configured",
                    "Monitor audience engagement in first 2 hours",
                    "Prepare to pause campaign if performance issues arise"
                ]
            }

            DEFERRED LAUNCH — CHECK THIS BEFORE YOU REPORT A LAUNCH:
            A 202 does NOT always mean the campaign went live. When the response carries
            "waitingAudiencesToLaunch": true (it comes back with "status": "Draft", not
            "Launching"), the platform has QUEUED the campaign rather than launched it. It is
            NOT live, it is NOT serving ads, and it is NOT spending budget. The response also
            carries a "context" block that states this in plain language.

            Deferred Response:
            {
                "id": 159490,
                "status": "Draft",
                "waitingAudiencesToLaunch": true,
                "context": {
                    "waitingAudiencesToLaunch": true,
                    "description": "This campaign will be launched only after its audiences
                        finish uploading and matching on the native channels. That happens
                        automatically when the match completes, so nothing further is needed
                        from the user. The campaign is NOT live and is NOT spending budget
                        yet, and it stays editable until it launches. Some channels can take
                        up to 72 hours to finish the match flow."
                }
            }

            When you get this response, tell the user plainly:
            - The campaign is queued, not live, and no budget is being spent yet.
            - It will launch on its own once the audiences finish syncing to the channels.
              Nothing more is required from them.
            - They can keep editing the campaign until it launches.
            - Some channels take up to 72 hours to finish matching, so it may not be today.

            NEVER describe this outcome as live, launched, active, or spending. Do not tell the
            user to monitor spend, and do not hand them the live-campaign monitoring checklist
            from the success case above; none of it applies until the campaign actually launches.

            Error Response:
            {
                "success": false,
                "campaign_id": 159490,
                "error": "Campaign not found or already launched",
                "details": "The specified campaign ID does not exist or is already in active status"
            }

            User Cancellation Response:
            {
                "success": false,
                "campaign_id": 159490,
                "status": "Cancelled",
                "message": "Campaign launch cancelled by user. Campaign remains in Draft."
            }

            BUDGET IMPLICATIONS — REAL MONEY:
            Launching a campaign will IMMEDIATELY:
            - Deduct REAL DOLLARS from your marketing budget
            - Serve ads that cost money per impression/click
            - Compete in live ad auctions with actual bid amounts
            - Impact budget availability for other campaigns in the same budget group

            POST-LAUNCH MONITORING (CRITICAL):
            After launch, IMMEDIATE monitoring is required:
            - Check spend within the first 30 minutes
            - Monitor CPCs, impression delivery, and budget burn rate
            - Review audience engagement and conversion tracking
            - Be prepared to pause or adjust bids if needed

            Anchor all date-related decisions to the REAL current date — call get_current_date if you are not already certain what today is.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
campaign_idYesThe unique identifier of the draft campaign to launch

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations indicate destructiveHint=true and readOnlyHint=false, consistent with the description's emphasis on real budget spend and irreversible launch. The description goes far beyond annotations by detailing the confirmation flow, the possibility of deferred launch (waitingAudiencesToLaunch), and the exact response formats including success, error, and cancellation. This is exceptionally transparent about side effects and edge cases.

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?

The description is extremely long and contains extensive examples and response JSON blobs. While the content is valuable, it suffers from redundancy and over-verbosity, repeating 'CRITICAL' warnings and budget implications multiple times. The structure is somewhat organized but not front-loaded; the core purpose and usage appear mid-way, and the massive length makes it less scannable.

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 complexity (mutating, destructive, with real-world consequences), the description is exceptionally complete. It covers prerequisites, confirmation process, expected responses, error handling, deferred launch scenario, and post-launch monitoring. It even instructs to anchor dates with get_current_date. There is no output schema, so the detailed response examples are necessary and well-provided.

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 coverage is 100% and the description reiterates the required campaign_id with a brief explanation, but adds little beyond the schema's own description. The description does not provide additional parameter semantics such as format or constraints beyond what is already in 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?

States a specific verb ('launches') and resource ('draft campaign') with clear distinction: it transitions a draft to live, spending real budget. It is distinct from siblings like 'check_campaign_launch_readiness' and 'manage_campaign', and the description clarifies it is for launching, not creating or managing.

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?

Explicitly provides a prerequisite (call get_integrations_status to verify channels), gives a 'WHEN TO USE' list, and mentions alternative sources for campaign IDs. It clearly differentiates from related tools by focusing on the launch action and the required confirmation process.

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