Skip to content

jsharma1105/adpilot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AdPilot

Ad campaign monitoring platform for Meta, Google, and TikTok. Automatically evaluates campaign performance against configurable rules and pauses underperforming ads.

Architecture

adpilot/
├── src/AdPilot.Api/        # .NET 9 ASP.NET Minimal API
│   ├── Adapters/           # Platform adapters (Meta, Google, TikTok)
│   ├── Endpoints/          # HTTP endpoints (clients, campaigns, rules, auth)
│   ├── Infrastructure/     # Supabase repository
│   ├── Models/             # Domain models
│   └── Services/           # RulesEngine, MonitoringService, TokenService
├── adpilot-ui/             # Next.js 15 dashboard
│   ├── app/                # Pages (dashboard, logs, accounts, rules)
│   ├── components/         # KpiStrip, CampaignTable, PlatformTabs, Sidebar
│   └── lib/                # API client, Supabase client, types
├── supabase/migrations/    # Postgres schema
├── tests/AdPilot.Tests/    # xUnit tests for adapters and services
└── n8n/                    # Hourly monitoring workflow

Features

  • Multi-platform support — Meta, Google Ads, and TikTok integrations via OAuth
  • Rules engine — Define metric thresholds (CPC, CTR, ROAS) to trigger automated actions
  • Real-time dashboard — Live KPI strips, campaign tables, and action logs via Supabase subscriptions
  • Monitoring service — Evaluates active campaigns on a schedule and pauses violating ads

Getting Started

Prerequisites

  • .NET 9 SDK
  • Node.js 18+
  • Supabase project

Backend

# Configure environment
cp src/AdPilot.Api/appsettings.json src/AdPilot.Api/appsettings.Development.json
# Fill in Supabase URL, keys, and platform OAuth credentials

# Run migrations
# Apply supabase/migrations/20260328000001_initial_schema.sql to your Supabase project

# Start API
dotnet run --project src/AdPilot.Api

Frontend

cd adpilot-ui
cp .env.local.example .env.local
# Set NEXT_PUBLIC_API_URL and NEXT_PUBLIC_SUPABASE_* values

npm install
npm run dev

Tests

dotnet test

Environment Variables

API (appsettings.Development.json)

Key Description
Supabase:Url Supabase project URL
Supabase:ServiceKey Supabase service role key
Meta:AppId Meta app ID
Meta:AppSecret Meta app secret
Meta:RedirectUri OAuth callback URL
Google:ClientId Google OAuth client ID
Google:ClientSecret Google OAuth client secret
Google:RedirectUri OAuth callback URL
TikTok:AppId TikTok app ID
TikTok:AppSecret TikTok app secret
TikTok:RedirectUri OAuth callback URL

Dashboard (adpilot-ui/.env.local)

Key Description
NEXT_PUBLIC_API_URL AdPilot API base URL
NEXT_PUBLIC_SUPABASE_URL Supabase project URL
NEXT_PUBLIC_SUPABASE_ANON_KEY Supabase anonymous key

License

MIT

About

Ad campaign monitoring platform for Meta, Google, and TikTok

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages