Project overview

Oxagile has been helping a leading European AdTech provider to sustain their impeccable service by retooling the core platform’s architecture and minimizing time-to-value for end clients’ customization requests, all with resource-efficient data processing in real time.

Client: A Dutch demand-side platform provider helping digital advertisers and agencies effectively manage campaigns across multiple ad exchanges and in real time.

Professional Services
Delivery Model
SLA-driven task backlog delivery (TM-based)
Effort and Duration
9 months, 19 man-months
Ruby, Front-End, JavaScript, Ruby on Rails, Apache, Passenger, Percona Server, Linux, AWS, CDN, Google Big Query

Business challenge

The customer’s demand-side platform enables programmatic buying, including real-time bidding, of all types of ads (desktop, social, video, and mobile) with fine-tuned targeting, monetization systems, budgets, and advertising campaign strategies.

The core of the customer’s offering is the platform’s ability to be precisely tailored to each client’s vision and requirements, which results in a highly complex business logic that would sometimes stand in the way of adding new features efficiently.

To address this challenge and sustain their competitive differentiation, the customer needed to:

  • Minimize time-to-value when handling end clients’ customization requests and introducing new features with the help of Ruby experts who would efficiently cope with the business logic complexity
  • Facilitate the growth and management of the client base and improve user experience by removing the existing architectural limitations
  • Eliminate disruptions for end users through stable performance and smooth, real-time reporting while processing 190+ gigabytes of data per day

Delivered solution


With the old architecture, it took launching a separate application instance to register and manage each client, which led to enormous resource consumption and poor scalability. The process was cumbersome as the administrator had to manually load a static config to the server and then edit it, if required. To solve this issue, the project team rebuilt the platform with the following outcomes:

One application, one database. All client entities are now stored in a single database and managed via a single application, which saves server resources and optimizes their usage.

Admin panel. New clients can be created and managed from a single admin panel in a few clicks. The broad scope of the panel functions allows editing clients’ details (name, logo, geotargeting, and more), adding user accounts and defining their rights, assigning inventory types, and managing third-party data providers for highly specific, precise audience targeting.


Depending on their rights, end users get access to an extended, optimized functionality that allows to:

  • create and manage laser-targeted marketing campaigns that incorporate sophisticated behavior-driven ad delivery
  • deeply customize ad campaigns, including media plans, start and end dates, inventory sources, budgets and daily spend, bids, third-party data providers, and more
  • upload and manage multimedia creatives such as video and images
  • generate highly customizable reports using a variety of metrics and filters (advertisers, data providers, inventory research, publishers, conversion pixels, RTB, and more)

To deliver continuous and smooth reporting, the system employs multithreaded data processing when exchanging large data volumes with a RTB platform. Multithreaded processing also ensures no time-consuming data migrations or backups can interfere with the database performance and user workflow.


In addition, Oxagile’s team took an active part in creating new features and extending existing ones. Among others, this included:

  • improved handling of creatives
  • dynamic RTB seat management
  • advanced reporting with new metrics and totals calculations, as well as new targeting options
  • tracking of changes made to client entities
  • batch editing of campaigns and creatives

To minimize regressions when dealing with business logic of this complexity, the project team launched a dedicated automation server that performs over 3,000 unit tests several times a day, with 80% of test scope coverage. The codebase also greatly benefited from regular internal cross-reviews prior to committing.

Project process and methodology

Oxagile provided 4 Senior Ruby Developers, working in 2 distributed project teams.

The customer was already utilizing the Scrum methodology to quickly and flexibly deliver on their promise of advanced on-demand customization for end clients. Oxagile’s Scrum expertise was therefore critical as the new teams were able to quickly get on board and support high-paced development sprints that required intensive daily communication.

Project results

The customer successfully enhanced their proprietary demand-side platform by tasking Oxagile’s team with rearchitecturing, extensive bug-fixing and ongoing implementation of new features to better meet the users’ business needs.

By developing an intuitive admin panel and retooling the platform architecture, the team automated the most time- and resource-consuming processes of client base management. Additionally, Oxagile helped optimize the platform’s performance, and minimize the time-to-value for new or updated functionality in line with end clients’ requests.

The newly enhanced platform allowed the customer to stay ahead of the competition and opened up new opportunities for growing the client base by accommodating more marketing agencies as end clients.

Currently work is underway to expand the team and introduce further enhancements in terms of API and user experience.