How did we meet?

The company needed something relatively difficult and innovative done fast. Their idea was great - they wanted to build a system that would enable radio stations to tailor commercials for specific target groups. They were just about to receive a new round of funding, but to be able to get it they needed a working software with very specific features. They were looking for fearless developers to join forces with the company’s CTO and build an MVP of something that very few specialists had ever done before.

What did we have to build?

The project was all about creating a solution that would allow the delivery of personalised ads to Internet radio listeners. It was a bit of a rescue mission because the previous contractor hadn’t quite provided the right products. During the creation of MVP, two modules were created:


A. Streamer


The streamer was downloading the source stream from the sender. If necessary, it transcodes it in real-time into the correct format. Then, a real-time stream analysis was performed to detect the start and end of the voice ad. This was done by creating a fingerprint audio stream and comparing it with the previously generated advertising jingle fingerprint. It works similarly to how Shazam recognises the title of a song. At the time the block was detected, an ad playlist was downloaded based on listener information. In the first phase of the project, this information was taken from the IP address, which means that it was simply based on the location of the listener. Then the original ads were cut from the radio stream and replaced with those present in the playlist. Thus, each radio listener would hear different ads tailored specifically to them.


B. A web application for advertisers and radio station owners


This is a web application that enables advertisers to create an advertising campaign and station owners to share streams for advertisers. When creating the campaign, you could choose your desired targeting parameters that determine who the ad should be played to.

The team and the technology

We’ve been using Angular, Meteor and audio signal analysis tools detecting the advertising block plus the system for building a playlist. Originally, the system was created by two full stack developers and one frontend developer. Core functionalities are implemented in JavaScript/TypeScript language. Backend runs on Node.js using the Meteor framework. Frontend is developed with Angular framework. FFMPEG was used to transcode incoming and outgoing streams to different formats.

Tech challenges

 – Integration with external streaming services


 – Preparing the customised ads playlist for listeners based on the targeting parameters set by the advertiser


 – Integration with radio streaming services


 – Detecting ads being played on the original stream and replacing them in real time with ads customised for listener

What team members say?

“AdTonos is a difficult and interesting project with many unusual problems and a critical infrastructure. The project requires a responsible approach because the success of the project depends directly on the software development outcome - it’s all about the correct calculation of advertising rates, or, serving dedicated ads without delays.” - Wojciech, Frontend developer.

What client says about cooperation with LEOCODE?

"I've been working with many software houses and developers for more than 20 years and I want to say one thing (and I do mean it) - Never have I had such a great collaboration experience as with LEOCODE. Everyone in their team, no matter if they are from the sales or the development team, is a high caliber professional." Michał Marcinik, AdTonos.


  • These innovative projects require some R&D before the proper software development.

  • Finding a tech team in such a narrow specialisation might be difficult - always look for the right competences and the previous experience when selecting these personnel.

  • Communication and close collaboration are the key factors of success - Michał was located in a different city and we had to work together on a weekly basis with clear goals.

  • Interesting projects that can be seen in the real world strongly motivate developers - they could likely be users of the software themselves and can have an impact in certain industries.