GP3MixMedia TrailMix Platform Overview
GP3MixMedia TrailMix is a comprehensive campaign media tracking and reconciliation platform designed to help political campaign teams track, reconcile, and analyze media spending across multiple channels.
What This Platform Does
Automated Data Collection
The platform automatically collects media spend data from 15+ external sources:
- FCC Political Files: Broadcast advertising disclosures (every 6 hours)
- AdImpact: Industry advertising intelligence with dual-feed support (hourly)
- OpenFEC / FEC 24-Hour: Federal campaign finance data (every 4 hours)
- Meta Ads Library: Facebook and Instagram political ads (every 8 hours)
- Google Political Ads: Google/YouTube political ads via BigQuery (3x daily)
- Email Newsletters: Gmail API polling with confidence scoring (continuous)
- Rep Comp Emails: Station rep competitive comparison sheets via email (continuous)
Smart Deduplication
When the same ad buy appears in multiple sources, the system:
- Groups likely duplicates together using AI-powered field-level matching
- Shows differences between records with confidence scores
- Lets you choose which version to keep or merge them
- Tracks history so you can undo mistakes with undo tokens
Comprehensive Dashboards
View your campaign data organized by:
- Market (DMA - Designated Market Area)
- Media type (TV, radio, digital, OTT/CTV, etc.)
- Station or network
- Week or time period (booked, projected, future only)
- Export to Excel, CSV, or PDF
Notifications & Alerts
Stay informed with:
- Email alerts: Gmail API with delivery tracking and MJML templates
- Push notifications: Browser push via Web Push API (VAPID)
- In-app notifications: Bell icon with unread count
- Pre-buy alerts: Early detection of upcoming ad buys
Key Features
For Campaign Analysts
- Track All Media Spending: Monitor TV, radio, digital, OTT/CTV, mail, and phone advertising in one place
- Resolve Duplicates: Smart tools help identify and merge duplicate records from different sources
- Generate Reports: Export comprehensive spending reports and dashboards in multiple formats
- Set Up Alerts: Get notified when spending patterns change or data issues arise
For Campaign Managers
- High-Level Overview: See total spending across all media types and markets at a glance
- Performance Tracking: Monitor GRPs (Gross Rating Points) and impressions by week and station
- Compliance Support: Ensure accurate records for FEC reporting requirements
- Competitive Intelligence: Track opponent spending when data is available
External Dependencies
Infrastructure
| Service | Purpose | Notes |
|---|---|---|
| Fly.io | Application hosting | Web server, background workers, MySQL database |
| MySQL 8+ | Primary database | With ProxySQL connection multiplexing |
| Upstash Redis | Rate limiting & caching | REST-based; falls back to in-memory in dev |
| AWS S3 / Tigris | File storage | Uploads, creatives, PDFs, exports |
| Docker | Containerization | Multi-stage build for production |
| Gmail API | Email sending & mailbox polling | OAuth 2.0 authentication |
Data Source APIs
| Service | Purpose | Schedule |
|---|---|---|
| Meta Ad Library API | Facebook/Instagram political ads | Every 8 hours |
| Google BigQuery | Google/YouTube political ads | 3x daily |
| AdImpact API | Industry ad intelligence | Hourly |
| OpenFEC API | Federal campaign finance | Every 4 hours |
| FCC Public Files | Broadcast ad disclosures | Every 6 hours (HTML scraping) |
User Roles
Viewer (Read Only)
- View dashboards and reports
- Export data
- Cannot edit or resolve duplicates
Analyst (Standard User)
- Everything Viewers can do, plus:
- Edit matrix data
- Resolve duplicate groups
- Upload and process files
Admin (Full Access)
- Everything Analysts can do, plus:
- Create campaigns
- Configure data sources and ingestion
- Send emails and alerts
- Manage user access
- Access archives and restore data
Platform Statistics
| Metric | Count |
|---|---|
| Database Models | 221 (Prisma schema) |
| API Endpoints | 286 |
| Frontend Pages | 42+ |
| External Integrations | 15+ |
| Scheduled Jobs | 25 |
| Feed Sources | 9 |
Technology Stack
| Component | Technology | Version |
|---|---|---|
| Frontend | Next.js + React | 15.5.9 / 19.2 |
| Backend | Node.js | 22.14.0 |
| Database | MySQL + Prisma ORM | 8+ / 7.2.0 |
| Language | TypeScript | 5.9 |
| File Storage | AWS S3 / Tigris | - |
| Gmail API (OAuth) | - | |
| Cache | Upstash Redis (REST) | - |
| Error Tracking | Sentry + OpenTelemetry | 10.23.0 |
| Testing | Vitest | 4.0.16 |
| Deployment | Fly.io (Docker) | - |
Data Security
The platform includes comprehensive security features:
- Role-based access control with per-campaign permissions
- Google Workspace SSO for enterprise authentication
- CSRF protection with signed tokens
- Optional 2FA (TOTP authenticator apps)
- All delete operations are archived (data can be recovered)
- AES-256-GCM encryption for stored API tokens
- Comprehensive audit trails for all operations
- API rate limiting to prevent abuse
- Circuit breaker pattern for external API resilience
- Sentry error tracking and monitoring
Getting Started
- Getting Started Guide - Quick start for new users
- User Guide - Complete guide to using the platform
- FAQ - Answers to common questions
- Glossary - Definitions of campaign media terms
- Troubleshooting - Solutions to common issues
Additional Resources
- Ingestion Control Guide - Manage data collection, pause/resume, rate limiting
- Feed Configuration Guide - Configure data feeds (Meta Ads, FCC, AdImpact, etc.)
- Developer Quick Reference - Environment variables, crons, and setup guide
Last Updated: March 2026
Was this helpful? If you have feedback or questions, please contact your administrator.