Attendance of Affiliate Summit West

The OrbitSoft team attended the Affiliate Summit West 2017 in Las Vegas in January 2017. Held in the Paris hotel, the Affiliate Summit West offered attendees three tradeshow areas packed with affiliates, merchants, vendors, networks, technology providers, digital agencies, traffic sources; multiple tracks of relevant educational sessions delivered by industry experts; and a variety of networking events.

This was the first time our team attended this event, although we plan on participating in more of these in the future. The goal of our attendance was to connect with current and potential clients and supporting our clients who were exhibiting their products. Our team spent a lot of time on the exhibit floor, as well as viewed several product demonstrations.

It is crucial for technology companies to take part in industry events such as Affiliate Summit West in order to stay current with what is happening in our field. At OrbitSoft, we make it a priority to stay on top of the latest trends in digital advertising software, so that we can offer our clients the most cutting-edge solutions. We enjoyed attending Affiliate Summit West and look forward to many more similar events in the future!

Comments (0)

Development of SDK for SSP

SDK (software development kit) is a library that is given to the developer by the system and integrated into the application.

In mobile application, SDK is used for:

  • Sending queries to the ad system
  • Getting ads
  • Showing Ads

When sending the query to the platform, SDK passes along several parameters:

  • Application ID
  • Ad ID (IDFA, Google Advertising Id)
  • SDK version, that the app is built
  • Geographical data (allows to do country targeting)
  • Type of connection
  • Width and height of the screen
  • Device maker and model
  • OS device version
  • User agent

Thanks to all passed parameters, it’s possible to “track” the user on different platforms and to target advertising to an interested audience, which is an important advantage of the SDK versus WEB. SDK supports the following ad formats – banner (text, image, rich media), fullscreen, video, appwall, icon, dialog, and tray. These ad formats can be divided into two types: advertising within and outside an applications.

Advertising in applications includes banners (text, image, rich media), fullscreen, video, and appwall. Advertising of these types is displayed in the application during its use. Banner displays a small “ram” on top of the main application window (displays one ad at a time). Fullscreen is displayed over the entire screen. Video can be displayed on the basis of banner, fullscreen, or loaded in the player before viewing the main video. Appwall is displayed in a new window and can show multiple ads from multiple campaigns in a single display.

Advertising outside the app includes icon, dialog, and tray. These types of ads are displayed when the application is closed. Icon installs an icon on your desktop (clicking on the icon leads to the desired effect in the campaign: download application/ Open link/ call/send SMS). Dialog means a dialog box appears on top of the desktop, with two buttons “Yes” and “No” (clicking on the “Yes” button leads to the desired effect in the campaign). Tray is when an application is on the taskbar, and you receive a notification from this application, clicking on which leads to the desired effect in the campaign.

In recent years, developers and advertisers have tried to get away from the use of advertising outside of the application. Advertising outside an app is very intrusive application, resulting in a large number of non-target clicks, which in turn increases costs and reduces the quality of the advertising campaign. By virtue of these factors, some stores do not allow you to download applications that support external advertising. Thus, now the most popular types of advertising are banner (text, image, rich media), fullscreen, video, and appwall.


Comments (0)

Optimization Techniques for Ad Impressions Using Mobile Advertising Network


The main objective of an ad server is to offer choice and delivery of advertisements. However, when the user went through all the ins and outs of targeting and can receive multiple advertisements from different advertising campaigns, the question arises: which ad to choose? Our product has a standard solution – with each request, ads are ranked based on bids, while also adding the element of probability. In other words, the probability of an ad being shown depends on the bid. On one occasion, a customer offered to perform the customization of the ad server where the ads are chosen from a list prepared in advance, with major changes in the algorithm of choosing the ad.

Despite the simplicity of implementation, the standard algorithm for random ad selection has one drawback – it does not control the display process. That is, we load the available ad in an arbitrary manner, not worrying about the interests of partners and advertisers. However, in order to improve the competitiveness of the entire system, it is necessary to come up with some advantage that separates us from other systems. The point of the new algorithm is to find the balance of benefits for advertisers and partners. So how do we do that? First, you need to define the objectives of both parties. For the partner, the goal is obviously to get as much money from an advertising platform as possible. However for the advertiser, on the contrary, the goal is to spend less money, but spend it most effectively.

As universal metrics, we selected CPA and CTR for display server to rank ads. CPA is the cost of the action for the advertiser, the user’s actions, which will bring profit to the advertiser. Such actions can be assumed to be a purchase in an online store, order of services, etc. The main difference in the updated system is that when you create a campaign, the advertiser cannot set the rate for an ad; the advertiser only indicates the CPA and achieving it is one of the main tasks of server hits.

It is necessary to elaborate on the data architecture. For each advertising partner location, or the source, we create their own individual list of ads. The system administrator manages the process. He, at his discretion, adds to the source of campaign ads that need to be rotated in this source. In addition, ads for each source have their own bid and rating. Bid is the amount of money that the advertiser will pay for showing 1,000 ads/CPA/CPC. Nothing changes here, except for the fact that the bid for each source will be different, calculated by the system. Rating is a measure of how often your ad appears in the source. The higher the rating, the higher the probability of an impression. The calculation of each parameter corresponds to a module. Let’s look in more detail at each module.

The objective of the AdRater is to recount ad rank for a particular source. Rating of each ad will be increased or decreased based on the algorithm using the values ??of CTR and CPA. The main task of the algorithm is to increase the rating of ads on the list that have a higher CTR and lower CPA. In other words, at each iteration of the algorithm, the ad rating refreshes depending on the CTR and CPA. The essence of the work is as follows: we consider a specific ad group (the same one that was created as a result of the selection by the administrator) for the appropriate source. All calculations are carried out for this group, which is closed and is not associated with other groups of ads for other sources. Since the goal is a higher CTR and lower CPA, then ads with higher CTR and lower CPA should be shown more often in this group. This raises the problem of how to determine the ranking in these specified limits? The most obvious way is to calculate the structure of the index. Take, for example, the following ad group:

ID CTR Target CPA Real CPA
1 0.1 0.5$ 1$
2 0.25 1.5$ 2.5$
3 0.2 1$ 0.5$

In a series of three ads, for example, the first has a CTR 0.1, the second has a CTR 0.25 and the third has a CTR 0.2. All of these values ??for the ad are just for that source, and for no other. As a total, we’ll take the sum of CTR for these ads to be 0.55. The first ad has a weight of 0.1 / 0.55 = 0.18; the second ad has a weight of 0.25 / 0.55 = 0.46, and the third ad has a weight of 0.2 / 0.55 = 0.36. Therefore, all things being equal, the probability of the first ad being displayed is 18%, the second ad – 46%, and the third ad – 36%. This is the calculation of the CTR rating.

CTR rating is beneficial for the partner, but we must also take into account the interests of advertisers. To do this, we need to calculate, for each ad, the reverse relative CPA rating (reverse – as the smaller CPA, the better). Reverse rating is calculated as 1/(RealCPA/TargetCPA).

For the above example:

For the first ad, the reverse weight proportion of 1/($ 1 / $ 0.5) = 0.5, for the second ad 1/($ 2.5 / $ 1.5) = 0.6, for the third ad 1/($ 0.5 / $ 1) = 2.

We normalize the values ??(with new parameters) and get the rating for the first ad of 0.5/3.1 = 0.16, the second ad of 0.6/3.1 = 0.19, the third ad 2/3.1 = 0.65.

The goal of the algorithm is to find the balance of benefits for advertiser and partners. In order to achieve this, the proposed value of each rating is multiplied and normalized for easy perception. Multiplication will avoid high ranking distortions (when an ad is very beneficial for the partner, but is unprofitable for the advertiser), and give a high rating to the ads that are most beneficial for both parties. Normalization will facilitate the perception of ratings. For the described example: the rating of the first ad 0.18 x 0.16 = 0.029, ranking of the second ad 0.46 x 0.19 = 0.087, and ranking of the third ad 0.36 x 0.65 = 0.234. After normalization (also calculated by weight and interest), we get the ranking of the first ad = 8%, ranking of second ad = 25%, ranking of the third ad 67%. The ads will be displayed in the source with these probabilities.

If we remove the dry numbers and try to simplify: the higher rating will be for the ad which has the highest CTR and CPA.

The objective of the Bid Optimizer is to recalculate the ad bids for each source. Bids can be increased or decreased using RealCPA values ??and TargetCPA. The essence of the algorithm is as follows. For each source and ad, we calculate the percentage difference between RealCPA and TargetCPA. If the value of RealCPA is higher than that of TargetCPA, we downgrade the bid by the percentage difference. A similar situation occurs if the RealCPA is less than TargetCPA – we increase the bid and give your partner a chance to make more money.

The result of these two modules is the following – for each ad in the source, there will be just such a bid, which will help make the maximum amount of money for the partner, but without departing from the advertiser restrictions. At the same time, the ad will be rated, allowing it to show more often, depending on the effectiveness for the advertiser. As a result, the top of the list will be the ads which will have a balance for both sides – advertisers and partners.

Comments (0)

New Features in TrafficForce


TrafficForce implements the sales of targeted web and mobile traffic, based on data for CPM. Clear and simple TrafficForce user interface makes it easy to manage online advertising, and calculate and predict the success of the advertising campaign, allowing users to get a return on their investment.

The following new features were added to TrafficForce in order to improve the user experience:

  • A more detailed selection for targeting. Now, within the TrafficForce system, it has become possible to use better tools to assign specific targeting settings for advertising campaigns. This includes specific location information, keywords, browsers used, and more, all of which are available in order to track and maximize the return on advertising streams.
  • “Managers.” Adding a new category of users. We added a new role for users in the system. Its primary purpose is to support and problem-solve for existing roles of the partners and advertisers in TrafficForce. Among other things, by makeing the aforementioned improvements in TrafficForce, the customer support page has become more dynamic and modifiable for the system administrator.
  • Creating a news portal in TrafficForce. We implemented a new system for managing global news notifications in TrafficForce, with the possibility of selecting one or a group of recipients. Each user with rights for the news site management now has access to this section.
  • Withdrawal of funds from the publishers. Now, users in this role can not only input, but also withdraw the funds in the TrafficForce system with a new, intuitive mechanism for management of funds in the wallet of your account.
Comments (0)

New System Features in the Mobile Network


A distinctive feature of this platform is that the platform allows the agency to attract partners which place on their websites the advertising display code on a contractual basis for individual agreements, then selling ad space to advertisers in different campaigns.

Copying the code onto the page is the only thing a partner needs to do in order to start reaping benefits; that’s why it’s so easy and profitable for site owners with various themes. By placing the code of the display advertising on his page, the partner is indirectly attached to the advertising of goods and services and receives a financial benefit.

The advertiser, when advertising their goods and/or services, states what he will advertise and at what price, and which program. The system handles all remaining manipulations automatically.

It really is simple and profitable.

For competing enterprises, the platform provides the opportunity to advertise on the same sites using the “game” of betting advertisers and creating conditions of display ads of the advertiser ready to pay the highest possible price.

The functionality of the system so so high-speed that advertisers can display thousands of ads per second. This is certainly an important component of commercial success using the platform.

The system has a universal way of offering statistics and the ability to conduct a full accounting of funds received and spent, so that all participants can see their commercial success.

We continuously monitor and maintain our system, constantly adding new technical capabilities. Our goal is to offer the highest quality solution which takes into account the needs of our clients.

The latest enhancement to our system is the addition of topical forms of advertising, the addition of a functional system of calculation with partners at a predetermined rate, the addition of a choice of advertiser web sites to showcase ads, and various bug fixes.

Comments (0)

Working with Operators – Subscriptions

Global Tendencies of mobile internet development

The popularity of mobile Internet in the world is growing rapidly. If in 2012 the average amount of time users spent on the mobile Internet was 74.4 minutes per day, by 2014 this figure reached 108.6 minutes per day, and in the beginning of 2016 – 184.2 minutes. That is, the rate increased almost by half every two years, according

Cisco predicts similar growth of mobile data in the short term – average annual growth rate of information transmitted from mobile devices is 57% for 2014 – 2019.

If the numbers in the analysts’ studies can vary greatly depending on the measurement method, one fact is certain – every year mobile devices are having an increase impact on our habits and life in general.

Such a situation could not fail to attract attention of mobile devices marketers. The rapid growth of mobile users attracted the flow of e-commerce offerings and traditional services sold on the Internet. However, it very soon became clear that the mobile user is fundamentally different from the user of the desktop computer.

Features of the use of mobile devices to make a profit:

  • Mobile users make more spontaneous purchases directly from their phone
  • Monetization of mobile applications through advertising
  • Monetization by payment application installation
  • Monetizing applications through integrated purchases
  • Paid subscriptions to exclusive content

However, for many users, payment for purchases from a mobile device continues to be a deterrent. Many are afraid of fraud related to the provision of information about your bank card or virtual electronic purses.

Thus was created the idea of ??payment directly from the account of a mobile phone operator.

In order to have successful development of a new payment instrument, we studied technologies available to the largest mobile operators. The proposals were sent to integrate operators and build the concept of development. In tandem with the tight integration with existing solutions of mobile operators, we created a unique user verification system.

The scenario of different services

In a mobile application or mobile device browser, the user is offered a subscription service for connecting directly from a mobile phone. The interested user clicks on a promotional offer and is redirected to the Landing page with detailed terms and conditions of subscription and the Connect button. After clicking on the button, the subscriber agrees to the terms of subscription and is automatically subscribed, receiving notice of withdrawal of funds for the provision of services from the network operator.

Working with Operators – Subscriptions

The main advantages of payment solutions:

  • Security of payment
  • The simplicity and convenience of making payments in one click
  • Availability for the majority of users
  • Payment by installments in the case of micro-purchases
  • Flexibility of payment implementation functions within the application, and for subscribing
  • Availability of in-depth information about the users making purchases
  • Increase customer loyalty by providing additional convenient service payments

Now the service is integrated with subscription platforms of two major European operators of cellular communication, and has already proven itself as a good solution to improve margins of subscriber services and expansion of the client base of suppliers of media services. In the future, we plan to integrate the platform with display advertising technology purchases through programmable online auctions (RTB-auction system), as well as offer enhanced support for custom scripts payment services provided by the operator’s billing system.

Comments (0)

Working with Operators – Working with Data

During the development of DSP for telecom operators, we developed a service used to synchronize the users in DSP ecosystem. This service acts as a converter MSISDN into UID operators. With the help of this identifier, identity of the user is depersonalized.

Module was developed using the following systems:

  • Java 8
  • Maven 3.x
  • Aerospike 3.5.x

When developing this module, we needed to resolve the issue of processing a big amount of different data coming from different databases:

  • Apache Kafka
  • Apache Hive

Apache Kafka is an open-source message broker project developed by the Apache Software Foundation, written in Scala. The project aims to provide a unified, high-throughput, low-latency platform for handling real-time data feeds. It is, in its essence, a “massively scalable pub/sub message queue architected as a distributed transaction log”, making it highly valuable for enterprise infrastructures to process streaming data.

Apache Hive is a data warehouse infrastructure built on top of Hadoop for providing data summarization, query, and analysis. The obtained data were processed to form a bundle IDs sent in segments and DMP.

Apache Kafka contained the following types of data streams: Data loading operators by location of users, users visited links of operators.

Location of users was transmitted to dmp without changes. The links visited required some analysis to get the list of segments.

To construct a communication link from segments, we prepared various keywords and segments, as well as built a list of links to the connections of the segments. Next, the link was broken into keywords and, using the above-mentioned lists, correlated with the segments. The resulting list of segments went into a DMP.

Apache Hive contains the following data: gender, income, age, frequently visited locations, information about the user’s interests.

The module receiving data from the Apache Hive ran on a schedule, and the data was sent to the DMP.


Comments (0)

AppClick – Test Environment and Operator Launch

The presence of a test environment was needed to ensure control over the software implementation process in commercial operation, as well as to minimize the risk of damage to the systems that are in commercial operation.

The development and testing of the AppClick platform was performed in a test environment, which repeats the software configuration of the system owner. We used KVM virtualization on 2 Intel Xeon E5-1630v3 servers, 32 GB DDR4 ECC 2133 MHz, 2x4TB SOFT RAID running CentOS Linux 7.2.

To ensure a secure data transfer and remote configuration, the work was carried out using a special Cisco AnyConnect Secure Mobility Client client application.

After testing, all the changes were transferred to the so-called stand of the system owner, where the ready-to-use product was tested before use. All servers were updated with databases and product codes; servers were also checked for load testing and test resiliency.

United AppClick system is controlled from a single location. The AppClick platform is divided into two parts: DMZ and APPCL Sandbox. In the DMZ part, there are services that work directly with external devices, the API or mobile operators located on the Internet (server interaction with mobile devices, server interaction with the mobile operator, the web interface of the system operators of the owner). On the owner’s side of the system, we use a firewall to control access. In APPCL Sandbox area, there are services with direct access to the system owner (statistical processing server, database server, the processing system log file server). For testing purposes, we used only physical servers without virtualization, with the following features: Intel Xeon E5-1650v3, 64 GB DDR4 ECC 2133 MHz 2 x4TB SOFT RAID.


To interact with the mobile operator, the AppClick system uses special software on the operator side. Testing was performed using a single Intel Xeon E5-2630 server, 16 GB DDR4, 2x1TB IntelRAID. All data streams were transmitted between the parts of the system on the Internet, using an asymmetric cryptography system (TLS).

One of our important tasks was checking all links in the system, taking into account fault tolerance and load distribution on the system server. In order to achieve this in the test environment, we tried various options of basic services, including Master-Master and Master-Slave database replication. We also considered the option of duplication of services through the so-called “shoulder,” with automatic and manual switching in the event of a failure or a failed upgrade of product codes and databases.

Comments (0)

Going to Sochi

Our company has a great old tradition to visit new cities for sharing interesting pastime and teambuilding twice a year. This time, the choice fell on Sochi! Here we are, happy and satisfied on the way to new experiences and emotions. We had a few days to see the most beautiful architectural landmarks of the city – Olympic Park, Sochi Park Raceway Circuit, Sochi ski complexes and much more. From early morning until the evening, we enjoyed good weather, clean and gentle sea, beautiful views of the city of Sochi and many attractions. We went up to Rosa peak, at a height of 2,320 meters above sea level, walked on the Red Glade, organized a bike ride in the Olympic Park and the waterfront and overcame our fears while walking along the skybridge – the longest suspension footbridge in the world: its length is 439 meters!

Our vacation came to an end, and on the last evening, we went out of the city for a picnic, enjoying the mountains, a river, and beautiful nature all around us. We played chess, grilled a variety of delicacies, and drank warm tea.

Rested, we returned home in anticipation of a new journey together. Stay tuned to hear about our next adventure!

Comments (0)