Development of service for organization of targeted advertising impressions

Project business component

The project is a service and users (advertisers) can manage campaigns of targeted advertising with it. Advertisers have the ability to set up an advertising campaign in such a way that advertisements are shown only to the target audience. This is achieved by implementing the possibility of detailed settings for a wide list of parameters.

Each advertiser has access to the following sections:

  • Creating and setting up an advertising campaign. Customization takes place according to such characteristics as gender, age, region, interests, etc.
  • Viewing of statistical information. The results can be filtered and grouped by displays, clicks, winning bid information for each ad.

The service works in such a way that ads are shown depending on the user’s preferences or the history of his requests. This information is analyzed and a decision is made which ad should be displayed.

Technical description of the project

The application has a classic client-server architecture. The client interacts with the application through a web interface. Using the web interface, the client configures settings to filter users who may be interested in this advertisement, and also views statistics for each advertisement.

The server part is responsible for the instant purchase of advertising spaces, the transfer of advertising for display in the purchased places, and for collecting statistics and information on advertisements and storing them in databases (MySQL, ClickHouse).

Application structure

Figure 1. Application structure

The server part of the project is a Java handler application. The main task of the app is to receive requests from the SSP (Sell Side platform) – the RTB platform. In the SSP, the owners of advertising sites register free spaces. If a user visits an advertising platform and wants to demonstrate an advertising space that fits the configured parameters, SSP sends a request to the handler, and it must quickly decide on the rate and send its response to SSP.

The handler must work fast (respond quickly to SSP requests) – therefore it is written in Java without using frameworks. It works with MySQL database, where information on advertisements is stored and with the ClickHouse database, where the statistics go. The handler actively uses multithreading: both the already established approaches with synchronized and the new ones with java concurrent.

Since the system can be distributed – several processors with different SSPs can work at the same time. To synchronize the work of handlers, a component is used that is located in each of them. Synchronization of this component occurs through the database. This approach increases the fault tolerance of the system – if one of the handlers fails, then the component on one of the still running will automatically start working and continue to synchronize the remaining handlers.

JazzTeam’s responsibilities

  • Development of new functionality of components responsible for the operation of the handler.
  • Refactoring and improvement of existing functionality.
  • Work on the architecture of components and their further implementation.

Technologies

Stack:‌ Java 8, Sun HttpServer, Netty, MySQL, ClickHouse, java.util.concurrent.

Infrastructure:‌ ‌Jira,‌ ‌Confluence,‌ SVN.‌ ‌

Project features

  • Work in accordance with full compliance with scrum processes.
  • All tasks had to be implemented with a focus on improving productivity.
  • The work was carried out by a distributed team, the members of the team were located in different time zones.

Project result

  • All stages of the development of components and their functionality have been successfully completed – from architecture to bug fix, unit and integration testing.
  • The service is fully functional and solves the business tasks assigned to it.

Achievements of the company on the project

  • Significantly expanded the application functionality.
  • Optimized the work of the handler, accelerated the processing of requests, optimized the work with the database.
  • The module for synchronization of distributed servers was developed from scratch – the architecture of the component with the implementation of functionality.
  • All customer requirements were met with high quality and on time.







    Contact Us

    Name:

    Email: *

    Message: *

    I agree to Privacy Policy

    What happens next?

    1 Leave your project request. We will contact you and schedule a call.
    2 Signing of the NDA to ensure the project info confidentiality.
    3
    Negotiation of your request and the required services.
    4 Team forming, coordination of workstages.
    5 Contract signing and project start.