Inspiration
- We wanted to create an app that can generate revenue using INRIX and other external APIs in a viable and data-driven manner.
- We envisioned the idea to be dynamic and economical.
- We stumbled upon the idea to study traffic data patterns and dynamically rank and price billboards.
Use cases
Business (mainly Ad agencies)
- provide new billboard suggestions around the city based on traffic data.
- seasonal and event-based campaigns
- provide a bidding-type booking model for interested billboard customers
- real-time analytics
Customers (people with their own businesses or products that want to put up advertisements renting them out from agencies)
- dynamic pricing for billboards
- competitive analysis from different billboard providers
- budget optimization for individuals
- best prices based on time and traffic data
How we built it
Our Approaches 1. We collected billboard locations using an online service called AdQuick by webscrapping their data.
2. USING INRIX AND GOOGLE API
- use Google Road API to get snapped points for the latitude and longitude (billboard locations) / Snapped location means nearest road segments
- use INRIX segment speed API at those road segments to retrieve TTM (time to travel) in minutes
- rank all billboard locations based on time to travel (more time to travel = more traffic!)
- based on ranking, surcharge or discount the base prices of billboards
3. USING TOM TOM and INRIX API
- We tried to optimize this approach by looking for more real-time segment speed data and generating better pricing
- TOM TOM API: gives granular real-time data for travel time in seconds for the closest street segments which it automatically figures out
- We use INRIX segment speed API travel time values as a more generalized over the hour/day value.
- We use both these values to calculate the dynamic pricing in our algorithm
4. Dynamic pricing:
- We calculate segment speeds using both TOM TOM and INRIX API.
- We use Tom Tom travel time as the real-time value and inrix api travel time as the value generalized over a time frame (a few hours or a day)
- simple calculate approach: (a) if the real-time time to travel exceeds the generalized value by 20%, the traffic is more than usual and hence the base price is surcharged by 10%. (b) if the real-time time to travel is less than the generalized value by 20%, the traffic is less than usual and hence the base price is reduced by 10%. (c) if within the range then no change to the base price.
- the method is a basic one and can be improved at a later stage.
Challenges we ran into
- Finding the best API to get real-time data related to billboards and segment speeds.
- Didn't get a real-time sense of traffic data since developed over a weekend and overnight.
- Validating coordinates from the scrapped dataset to match INRIX input parameters and requirements.
Accomplishments that we're proud of
- Implemented pricing algorithm optimally.
- Analyzed and used data from multiple sources.
- We have come up with viable and profitable business ideas to leverage the app as B2B and B2C
What we learned
- Learned to integrate Apis
- React Native
- Flask
- Microservices
- AWS ECR, ECS and Load balancing
- Working with location data
- Web scraping
What's next for Billboarder
- Analytics dashboard
- Parking lot advertisement opportunities for customers
- Show pricing of billboards correlated with traffic as historical data to make better advertisement decisions.
- Add recommendations for new billboard spots.
Built With
- amazon-web-services
- flask
- google-maps
- google-road
- inrix
- json-server
- react-native
- react-native-elements
- tomtom
- web-scrapping
Log in or sign up for Devpost to join the conversation.