About the Project
The challenge for the Development Team was to develop APIs for advertising server.
The following APIs were developed:
Management API - management of accounts, campaigns, inventory, users etc.
Delivery API - campaigns disseminations on publisher websites.
Data collection API - collect campaign data: calls, impressions, clicks etc.
Report API - analyzing campaigns and network performances.
Client web APP - UI for Server management.
Frontend SDK - UI based SDK for campaigns on publisher websites/applications.
Authorization API - provides connection and interraction between APIs of the project.
After careful investigation of the issue the Development Team made a huge work on creation of 5 APIs, that made up the advertising server. The Development Team decided it reasonable to combine Report API and Management API.
The 4 APIs interact with each other by means of Authorization API.
This API allows users to manage accounts, users, inventory and campaigns of the advertising server.
There are 2 account level access:
Admin - this account can access to all features and networks
Network - this account can access to only one network specified at creation by an admin
The management API covers the management of the following sections of the ad server:
The Management API is scalable and very robust. The application runs on LINUX environment. The application was developed on PHP7 last version environnement with Yii2 framework.
The Delivery API allows the disseminations of campaigns. A script on publisher website/application call the API with targeting data (site, tag, location) which returns the matching ad. Winning ad choice is made thanks to a decision algorithm which analyses all ad request parameters.
The delivery API contains decision engines:
For each ad the client can configure a priority score in management API, it determines what ads have precedence hover the others. Priority score works like a waterfall, it attempts to fill any impressions that aren’t captured by the highest priority score with the next highest priority, and so on. Priorities are designed by a number: 1 is the highest priority while 20 is the lowest. The API proposes a test mode in order to simplify publisher integration. Delivery API is very fast and works smoothly. All data is cached and the application runs Node JS environnement. The application was developed on Node JS last version environnement with Restify framework. The application runs on LINUX environnement. Tested by means of Mocha & Chai.
Data collection API
Data collection API retrieves all campaigns data. When Delivery API provides the right ad to show, response includes unique urls for each action available for the ad. Each url is unique to the ad, so if fired, it’ll record that data.
When user clicks on an ad, he/she is redirected to the Data collection API which records a click and then redirects the user browser to the advertiser destination. The application was developed on Node JS last version environnement with Restify framework. Tested by means of Mocha & Chai.
This section offers a comprehensive and rapid vision of the advertizing server activity.
User can query dashboard data by start date and end date on a free range of 1 year or by a preconfigured date range as follows: last 30 days last 60 days last 90 days.
The Report covers the analysis of campaign performances, such as impressions, clicks, CTRs, custom events, and more.
User can query campaigns data by start date and end date, the result can be filtered and group by the following parameters:
Date Day, Week, Month
Placement Network, pack, site, tag
Context Content category, advertiser category
Campaign Advertiser, Campaign, Ad
Targeting Keyword, Location, Device
This API covers the qualification of campaigns statistical data. All statistics should be in real time and fast to request. This application runs on a LINUX environnement and could be merged with the Management API application. The application was developed on PHP7 last version environment with Yii2 framework. The server runs on LINUX distribution (CentOS).
Client web app
This web application covers campaigns management and reporting. It was developed with ReactJS and compiled with Webpack and Gulp.
This SDKs covers ads delivery, they are UI based and use the above APIs to show ads on publishers websites/applications.
They are available in the following platforms:
iOS SDK iPhone and iPad
Android SDK Android smartphone and tablet
All APIs interact with each other by means of the Authorization API. To implement this the Development Team used OAuth2 server. One can request a valid token, which can be used to authenticate with any APIs. Tested by means of Mocha & Chai.
The Development Team created 5 APIs for advertizing server in accordance with the Customer’s requirements. The APIs were thoroughly tested to achieve smooth and quick performance.
The result of work of the Development Team is a successful implementation, delivery and usage of the developed APIs.