Skip to main content
Glama
JanNafta

PropellerAds MCP Server

by JanNafta

find_scaling_opportunities

Identify high-performing ad campaigns with sufficient ROI and conversion volume to allocate more budget for scaling.

Instructions

Find campaigns ready for scaling based on ROI and conversion volume.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
min_roiNoMinimum ROI percentage (default: 50)
min_conversionsNoMinimum conversions (default: 10)
date_fromNoStart date
date_toNoEnd date

Implementation Reference

  • The handler logic for 'find_scaling_opportunities' retrieves active campaigns, fetches statistics, calculates ROI/conversions, and filters campaigns based on the provided criteria.
    elif name == "find_scaling_opportunities":
        campaigns = client.list_campaigns(status="active")
        if not campaigns:
            return "No active campaigns found."
    
        min_roi = args.get("min_roi", 50)
        min_conv = args.get("min_conversions", 10)
    
        opportunities = []
        for c in campaigns:
            stats = client.get_campaign_statistics(
                c["id"],
                date_from=args.get("date_from"),
                date_to=args.get("date_to"),
            )
            if stats:
                metrics = calculate_metrics(stats)
                conv = metrics.get("conversions", 0) or 0
                roi = metrics.get("roi", 0) or 0
                if conv >= min_conv and roi >= min_roi:
                    opportunities.append({**c, **metrics})
    
        if not opportunities:
            return f"No scaling opportunities found (min ROI: {min_roi}%, min conversions: {min_conv})."
    
        opportunities.sort(key=lambda x: x.get("roi", 0), reverse=True)
    
        lines = ["# Scaling Opportunities\n\n"]
        lines.append(f"Criteria: ROI >= {min_roi}%, Conversions >= {min_conv}\n\n")
    
        for c in opportunities:
            lines.append(
                f"### {c.get('name')} (ID: {c.get('id')})\n"
                f"- ROI: {format_percentage(c.get('roi'))}\n"
                f"- Conversions: {c.get('conversions', 0)}\n"
  • The Tool definition and schema for 'find_scaling_opportunities' specifying input parameters (min_roi, min_conversions, date_from, date_to).
    Tool(
        name="find_scaling_opportunities",
        description="Find campaigns ready for scaling based on ROI and conversion volume.",
        inputSchema={
            "type": "object",
            "properties": {
                "min_roi": {
                    "type": "number",
                    "description": "Minimum ROI percentage (default: 50)",
                },
                "min_conversions": {
                    "type": "integer",
                    "description": "Minimum conversions (default: 10)",
                },
                "date_from": {"type": "string", "description": "Start date"},
                "date_to": {"type": "string", "description": "End date"},
            },
        },
    ),

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/JanNafta/propellerads-mcp'

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