The platform was built as six interconnected subsystems, each with its own engineering challenges:
1. Admin Dashboard (Command Center): Campaign management with drag-and-drop scheduling across vehicle and static inventory. Real-time status monitoring — what ad was playing on which vehicle at any given moment. Vehicle assignment logic that considered route compatibility, advertiser preferences, and inventory availability simultaneously. Role-based access for administrators, sales teams, and operations staff.
2. Advertiser Portal (Self-Serve): A full self-serve interface where advertisers could create campaigns, set budgets, define target routes and time windows, upload creatives, and preview placement. The portal had to be intuitive enough for small local businesses (a restaurant in Park Street) while powerful enough for national brands running multi-city campaigns. Campaign approval workflows with automatic compliance checks against content guidelines.
3. Recommendation Engine: The most technically challenging subsystem. The engine had to simultaneously optimize for route patterns (which neighborhoods a vehicle passed through and when), time-of-day relevance (breakfast ads in the morning, dinner ads in the evening), advertiser priority (premium buyers got preference), and vehicle availability. We built a weighted scoring system that balanced these factors in real time, with manual override for high-value bookings. The engine processed route data across 200+ vehicles, mapping over 500 unique neighborhood zones to demographic profiles for targeted ad placements.
4. Dynamic Costing Engine: Advertising inventory is perishable — an empty slot on a moving vehicle that passes without an ad is revenue lost forever. The costing engine dynamically priced inventory based on demand, route value, time of day, and day of week. High-demand routes during peak hours commanded premium pricing; off-peak slots were discounted to maintain utilization. The pricing model was designed to maximize revenue per vehicle while keeping entry barriers low for small advertisers.
5. Analytics & Reporting: Advertisers needed proof that their ads ran and evidence of value. The analytics subsystem pulled spatial data from vehicle GPS logs and translated it into impressions, reach estimates, and demographic reach by neighborhood. Reports were generated in advertiser-friendly formats with maps showing route coverage and audience heatmaps.
6. Spatial Intelligence Integration: This was the differentiator. We integrated with mapping APIs to understand which neighborhoods each vehicle passed through, at what times, for how long, and at what speed. This data fed both the recommendation engine (match ads to relevant neighborhoods) and the analytics engine (show advertisers exactly where their ads appeared). The spatial layer also handled geofencing — triggering specific ads when vehicles entered predefined zones.