Between Digital: DSP Front-end


Currently the media advertising business is recreating itself in accordance with the paradigm of DSP-RTB-SSP. The purpose of this project – the creation of Demand Side Platform or DSP, i.e. a system facing the advertiser, allowing it to create advertising campaigns, setting up targeting, get statistics and interact with the rest of the RTB-SSP infrastructure.

The system is developed for the company BetweenDigital. The company offers services for publishers on their SSP platform, and for advertisers and advertising agencies – on their DSP platform. Their entire system is based on RTB, so involving real-time-auctions for advertising displays, making successful bids on behalf of advertising agencies and their technology platforms. Unlike traditional methods of purchasing media over a greater or lesser degree of targeted hits on selected advertising space, this technology is not about just purchasing impressions, but a specific audience, which is much more interesting for any advertiser.


  • Creating and managing advertising campaigns, setting up targeting
  • Statistics (basic and advanced) on advertising campaigns
  • Control of the budget per campaign
  • Statistics per platform
  • Agent interface
  • API for external clients – such as the Agency Trading Desk


  • Server – Java, Grails
  • Database – PostgreSQL

Case study

Project: DSP Front-end
Client: BetweenDigital
Technologies: Java, Grails, PostgreSQL

The client is «Between Digital», which offers services to publishers on its SSP-platform, and for advertisers and advertising agencies – it offers services on its DSP-platform. The entire system is based on a RTB-platform, allowing real-time-auctions for advertising displays and making successful bids on behalf of advertising agencies and technology platforms. The wish of the client is to build a graphical interface to set-up advertising campaigns, make placements,push creatives, set various targetings, etc. Also it was a requirement to provide technical integration with the base white-label RTB-platform at the back-end. Also necessary is to implement a component, which displays statistics about advertising campaigns.

Start of the project

Together with the customer we created a Technical Design. We would be adopting a set of user roles, a domain model, a set of components of reporting statistics, a system of pattern design screens.

To run the project we would need to achieve the following objectives:

Objective 1. Construct the interface to create the entity “placement” and interface for statistics

The entity placement includes a large number of fields and a set of child entities. Our analysts have developed the models to edit the layout of the “placement” and “statistics” modules and our customer approved our work after several iterations.

Objective 2. Organize concurrent access to data

In the business model of the customer, each user of the system belongs to some agencies, and sees only the data of this agency. Advertising campaigns, placements, creatives, which can be received from the platform, including statistics are also delimited by the agencies of the users.

Objective 3. Interoperability with RTB platform.

Sending data about campaigns, placements, creativities need to be performed in accordance with the requirements of the RTB platform. A file is generated and sent after any changes to the data, at least every 2 minutes when there is a change, and at least once per hour regardless of any changes.

Download statistics from RTB platform via two channels:

Channel 1. Fixed-format file

The RTB platform prepares a file with a fixed set of fields. Our system periodically downloads the data from the file and stores them in its data store. Stored data are used to create reports with a fixed set of columns.

Channel 2. REST API utility to generate reports of the RTB Platform

RTB platform uses the REST API utility to generate and display statistics with arbitrary grouping and arbitrary filter data. In the developed system the report-gateway to the utility of statistics platform was added, with the possibility of an arbitrary grouping and filtering data, plus the obligatory split of data between agencies.

Having dealt with the key objectives, the team started to develop.

he result was a system for setting advertising campaigns, with the following functions:

— Creating an advertising campaign, setting up targeting

— Listing of entities – campaigns, placements, creatives

— Functions to create and edit entities

— Access rights to data restricted to users split per agency

— Display reports about campaigns, placements, creative per different sections – per date, per entity

— Advanced administration – user management, moderating creatives, managing directories

— Sending a description of advertising campaigns in xml to the bidders of the RTB Platform

— Download statistics about advertising campaigns from bidders of the RTB platform and from components and statistics platform, building reports, export results to csv, xls, pdf

— Providing REST API for clients – the advertising agencies

— Manage advertising budget, automatic stop the campaign at zero balance

This is what the system interface looks like:

The developed system is is widely used by agencies and direct advertisers. We constantly adding new features, improve and extend it’s functionality.