Inspiration
Advertising campaign management involves launching campaigns, monitoring performance, and deciding how to allocate budgets effectively. We wanted to explore how an AI-assisted agent could simplify these tasks through natural-language interaction while keeping humans in control of important decisions. This inspired us to build AdPilot, an AI-assisted advertising operations agent.
What it does
AdPilot helps users manage simulated advertising campaigns through a chat interface. Its key features include:
- Campaign Launching: Create simulated advertising campaigns with configurable budgets.
- Performance Analysis: Simulate campaign activity and review impressions, clicks, click-through rate (CTR), and spend.
- AI-Assisted Recommendations: Analyze campaign performance and suggest potential optimizations.
- Human-in-the-Loop Approval: Require confirmation before applying supported optimization changes.
- Verified Results: Check whether an optimization was successfully applied before reporting completion.
How we built it
We built AdPilot using Python, Streamlit, FastAPI, and MCP (Model Context Protocol).
1.Streamlit provides the interactive chat interface. 2.Python agent logical handles campaign operations and optimization workflows. 3.MCP server exposes tools for launching campaigns, retrieving reports, simulating activity, and applying optimizations. 4.FastAPI mock Ads API provides simulated campaign data for testing and demonstration. 5.Confirmation guard and tests help prevent unapproved changes from being applied.
The prototype connects these components into a workflow that demonstrates how an AI-assisted agent can interact with advertising operations tools.
Challenges we ran into
One of our main challenges was connecting the user interface, agent logic, MCP tools, and simulated API into a reliable end-to-end workflow. We also needed to ensure that optimization actions required explicit confirmation and that the application verified results before reporting success.
We encountered AWS Bedrock authorization issues during development. To keep the project demonstrable, the current prototype uses a local language-model fallback while Bedrock access remains unresolved.
Accomplishments that we're proud of
We are proud to have built a working prototype that brings campaign operations, simulated performance analytics, and optimization recommendations into a single conversational interface.
We also implemented a confirmation safeguard for optimization actions and tested its behavior. Another accomplishment was integrating the application components into an end-to-end demonstration, from launching a campaign to reviewing and applying an approved change.
What we learned
We learned how to structure an AI-assisted agent workflow, connect Python services through APIs and MCP tools, and test safety checks around actions that change campaign settings.
We also learned the importance of verifying tool results, handling service authorization issues, and clearly distinguishing simulated performance data from real-world advertising data.
What's next for ADPILOT
Our future plans include:
- Integrating with a real advertising platform through authorized APIs.
- Adding persistent campaign storage and historical performance tracking.
- Improving recommendations with richer analytics and additional optimization strategies.
- Resolving AWS Bedrock authorization and enabling the intended hosted language model.
- Adding authentication, access controls, and more comprehensive testing.
- Developing a polished dashboard with campaign comparisons and performance trends.
Our long-term vision is to make advertising operations more accessible and efficient while maintaining transparency, verification, and human oversight.
Built With
- artificial
- fastapi
- large-language-models
- mcp
- python
- streamlit