The advertising platform is understood to be a set of services that provide the basic functionality for a display of digital advertising. The platform includes an advertising server, bidding algorithm, web interface, and other components.
Implementations of advertising platforms for companies may differ in several ways. However, most of them are based on three similar functional blocks:
Now let’s focus on the Salematics platform’s advertising selection service.
Please note: we are continually developing the bidding algorithm. Therefore, the article may contain outdated data. We tried to explain the basic principles of the platform without going into details and formulas. If you want to learn more about formulas, ratios, and calculations, contact your manager with the corresponding request.
The operation of the request processing and advertising selection system begins with a request for an ad impression. When a user visits a page with an advertising tag, our system collects information about him and send it to the server. We get the following information: a country the user came from, device (mobile/desktop), a browser he uses, etc.
Let’s consider an example of the request.
Open the Network tab, located at the top of the console, and refresh the site page.
Go to the Headers section in a new window.
You can see various data in the Request Headers block. For example, here you can find languages supported by the user device and information about the User-Agent.
Query String Parameters gets the part of the information: keywords, HTTP referer, token, and others.
Information from Request Headers and Query String Parameters is used for the next step of advertising selection.
The request format from SSP looks different when you work with RTB. It all depends on the type of SSP. A request for an ad impression might look like this:
"ua":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.2 Safari/605.1.15",
It’s impossible to see this request in your browser because it is sent from the publisher’s server.
As soon as our system receives a request, it will determine the list of campaigns, in accordance with the characteristics of the user. This is a matching process.
Each campaign has individual targeting and filtering settings.
If the targeting and filter settings of the campaign do not match the user data received in the request, these campaigns will not be displayed.
This step we can consider as a preliminary stage of the auction.
Please note: promo materials, not companies, participate in the auction. However, when we use the term campaign, it means that there is only one promotional material for your campaign. If the campaign has several promotional materials, they will compete with each other and the promotional materials of other campaigns.
Salematics brings various models of payment for ad impressions to a common standard. It is equal to the cost of an ad impression for 1000 rotations (CPM).
Please note: rotation is a winning the right to demonstrate promotional material. However, not every rotation can lead to an ad impression. There is a certain probability of being shown for each type of promo.
There are two groups of advertising campaigns, depending on the payment model: with a fixed and dynamic cost per impression.
The group with a fixed cost includes CPM campaigns. They use the bid specified in the campaign settings.
When working with RTB advertisers, our system receives a request for an ad impression. As a result, we get the information about the bid size, which advertisers are ready to pay for the incoming user. It is multiplied by 1000, to match the amount with the general standard.
Please note: if you use the option Use CPM bids in the CPA campaign settings, our system will ignore information about conversions. This campaign will behave in the same way as a campaign from the group with a fixed cost per impression.
Dynamic cost per impression is a group of CPA campaigns. For them, the bid size depends on the number and cost of conversions.
Before setting a bid for a display of the campaign, you need to evaluate its effectiveness over the last 500 impressions. Also, try to find out if the campaign received conversions from traffic with similar characteristics or not.
Traffic with similar characteristics is called a cluster. It contains various attributes. Our platform takes into account the following attributes:
There are three levels of clusters. Their use depends directly on the above attributes.
At this stage, our system checks the availability of information about the campaign’s display on the smallest and most homogeneous cluster. The cluster is based on the connection of the traffic source, country, language, device type, and operating system.
For example, the cluster might look like this: English-speaking visitors of the website android-apps.com from France using mobile devices with Android 9.
As soon as the cluster forms, necessary information will be found inside of it. There are two conditions to analyze:
When one of the conditions is true, the campaign + cluster bundle counted as a trained. We use the term trained to mean that there is enough data to predict rates.
You can forecast CPM for the campaign using this method. For example, if a campaign has been displayed 500 times and received three conversions of $1 each, CPM in the cluster will be $6.
If there is insufficient data to make a forecast, the requirements for the cluster will be alleviated. It will consist of a traffic source, country, and language. Device types and operating system are used indirectly.
When one of the conditions mentioned above is met at this level of the cluster, the bundle campaign + source becomes trained.
The final CPM forecast includes a coefficient based on the device type and operating system. This will make the forecast of a possible CPM even more accurate.
If there isn’t enough information, our system will use a cluster consists of the language and countries only. The campaign + cluster bundle is untrained. This means that there is no information about the campaign’s behavior and received conversions. Such campaigns get into the Trainees group.
The price forecast for these campaigns depends on the campaign’s settings.
When you use the Standard bidding setting, the campaign from the Trainees group gets a fixed CPM. It is equal to $1.
If the campaign from a Trainees group has the Use CPM bids for training setting, you can select different CPM bids. Click on the appropriate section link to set bids.
In the window that opens, you can see that the bet size depends on the country. Each country has its average bid by default.
Please note: we recommend you to use the Use CPM bids for training setting because it won’t let you spend extra money on training the campaign + cluster bundle. The screenshot above shows that the rate for traffic from different countries is 1 cent. Using the Standard bidding setting, you will pay $1 for the same traffic. Standard bidding can speed up the learning process, but it will be unprofitable in terms of financial efficiency.
It doesn’t matter which setting you selected the chosen CPM will include a coefficient based on the device type and operating system. This makes the forecast more accurate.
Each campaign on the platform has the insurance rate setting. It is necessary when the advertiser informs you of income that exceeds the real one. Read more about this in the article “Creation of a MANAGED advertiser” (coming soon).
If the advertiser’s account or the campaign has a high insurance rate, then its chance to display will be reduced.
The final rate can be calculated using the following formula: rate * insurance.
The campaign may drop out from the auction for reasons that depend on specific settings:
Ad inventory settings
Affiliate Program Settings
A general list of finalists consists of three groups: Trained, Trainees and Fixed.
The winner stands out immediately in a group with a fixed cost per impression.
The generated list of campaigns is grouped and sorted in descending order of a bid.
Let’s move on to the distribution of weight between campaigns. Weight is the campaign chance to win in the final stage of the auction. The campaign that offers the maximum bid gets 90%. The remaining 10% chance of winning is divided proportionally among the all participants, depending on the bet and share.
The campaign with the highest bid is most likely to be displayed.
However, there remains a chance of winning CPA campaigns with a lower bid.
Choosing a random number from 0 to 1 determines the ultimate winner. Each campaign has a range of numbers, depending on the likelihood of an ad impression.
If the number will be 0.583, the first campaign wins.
The distribution of potential gains allows solving problems of the following kind. Imagine that there is a CPA campaign. It received a lot of conversions and brought good income for some time. Its estimated valuation rate became higher and higher. Also, it won many auctions. At some point, the conversions disappeared because there was a malfunction on the advertiser’s side. The estimated value began to decline. Gradually, the campaign stopped winning auctions, but traffic continues to come in small volumes.
This can happen in the following cases:
At a certain point, the advertiser can fix a technical problem on his side. Conversions and earnings will appear again. The estimated cost of a campaign display will begin to grow, and traffic will increase.
If campaigns with an estimated cost per impression lower than the winner had no chance of winning, the system wouldn’t self-regulate.
Let’s outline the main points worth remembering: