Basic elements of the advertising platform #
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:
- Web interface for interaction with databases. It’s a place where advertisers and publishers can run campaigns, customize ad inventories, and receive statistics through a graphical interface.
- Request processing and ad selection system. The platform receives a request, and our algorithm selects an appropriate ad. An advertising tag placed on the publisher’s site can create such a request. This is a bid request from an SSP or ad slot exchange in the case of RTB. Examples of processing services are ad servers and bidding algorithms.
- Event and data processing system. The basis of the block is the collection and processing of statistics. At this stage, our system keeps records of ad impressions, conversions, income, and other events related to the display of advertisements. The information finds its way into the request processing and advertising selection system. Our partners often use Postback. You can read about it in the article Integration of “MANAGED advertiser via postback” (coming soon).
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.
Request Processing and Ad Selection System #
Step 0: Receipt of the 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.
First, we’ll go to the page with the installed javascript ad tag. Right-click on any field and select the option Inspect.
Open the Network tab, located at the top of the console, and refresh the site page.
Find the request from the javascript ad tag and click on it. It starts with ? token=…
.
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:
{
"id":"AFXItl3FdQAAAAAAAEFFMwAZAHnmm9kA",
"imp":[
{
"id":"AFXItl3FdQAArBsCAEFFMwAZAA85SwkA",
"banner":{
"w":728,
"h":90,
"format":[
{
"w":728,
"h":90
}
]
},
"bidfloor":0.01,
"bidfloorcur":"USD",
"secure":1,
"ext":{
"click_id":"AFXItl3FdQAArBsCAEFFMwAZAA85SwkA",
"short_click_id":"xXUAAKwbAgBBRTMAGQA",
"pr_id":138156,
"promo_type":"html",
"pr_type_id":2
}
}
],
"site":{
"id":"30149",
"name":"pelishd.us",
"domain":"pelishd.us",
"publisher":{
"id":"65603"
},
"page":"https://pelishd.us/pl4y.php?q=Greenhouse%20Academy%20-%20Season%202%20Episode%208\u0026id=MTYyNTk2\u0026typesub=SUB\u0026sub=L2dyZWVuaG91c2UtYWNhZGVteS1zZWFzb24tMi1lcGlzb2RlLTgvZ3JlZW5ob3VzZS1hY2FkZW15LXNlYXNvbi0yLWVwaXNvZGUtOC52dHQ=\u0026cover=Y292ZXIvZ3JlZW5ob3VzZS1hY2FkZW1"
},
"device":{
"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",
"geo":{
"lat":25.2633,
"lon":55.3087,
"type":2,
"ipservice":3,
"country":"AE"
},
"ip":"5.107.132.159",
"os":"OS X",
"language":"en",
"carrier":"Etisalat"
},
"user":{
"id":"3bc61f1fbce4e0353f24a5442e1764f730139245"
},
"at":1,
"tmax":829,
"cur":[
"USD"
],
"ext":{
"wm_id":65603,
"pl_id":30149,
"os_id":51,
"lang":"en-us",
"lang_id":12,
"pl_type_id":108,
"city_id":292223,
"br_id":25,
"isp":"Etisalat"
}
}
It’s impossible to see this request in your browser because it is sent from the publisher’s server.
Step 1: Campaign Selection #
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.
Step 2: Set Bids #
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.
Fixed 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
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:
- traffic source;
- country;
- language;
- type of device;
- operating system.
There are three levels of clusters. Their use depends directly on the above attributes.
First level
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:
- Has the campaign received over 500 impressions from a cluster?
- Are there at least two conversions for the campaign from a cluster?
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.
Second level
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.
Third level
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.
Step 3: Insurance Deduction #
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.
Step 4: Application of Restrictions #
The campaign may drop out from the auction for reasons that depend on specific settings:
Campaign Settings
- The campaign has the Do not purchase traffic more expensive than bid setting. If the price indicated on the ad inventory is higher than the estimated cost of delivery, ads will not be displayed.
Ad inventory settings
- You use the Do not perform unprofitable rotation setting. Each offer has win_cpm in the auction. It is the projected income for 1000 impressions. An ad inventory with a fixed payment model (CPM, CPC or CPA) has traffic_cost. When win_cpm is lower than traffic_cost, ads will not be shown.
- You ticked Acc Bid Floor option. It allows you to specify the lowest bid at which the ad tag will trigger. Because of this, the campaign may also drop out of the auction.
Affiliate Program Settings
- The affiliate program has a minimum bid for an ad impression, exposed by Salematics administrators. These days it is equal to one cent for 1000 impressions for some affiliate programs. You can get more information about the minimum bid for your affiliate program from your manager.
Step 5: Determination of the Winner #
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:
- the campaign wins with a minimal chance of winning;
- a new source of traffic has appeared for this CPA campaign.
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:
- The advertising platform allows publishers and advertisers to run campaigns, customize ad inventories, and track processed statistics. Also, our platform selects the appropriate ads.
- The request processing and advertising selection system consists of six stages: receipt of the request, ad selection, bidding, insurance deduction, application of restrictions, and determination of the winner
- Each step has its nuances that you need to know and understand. This will help you in further work with Salematics.