How the Yandex.Direct auction works

Yandex.Direct is a system of placing search and content ads. You pay for clicks on ads which are displayed in ad blocks on Yandex.Search and ad networks (Yandex Advertising Network and ad exchanges).

Yandex.Direct click cost is not fixed; it is determined based on the results of an auction among advertisers. The advertisers’ CPCs are denominated in a currency, while Yandex.Direct internal units are used for auctions. CPC values are converted to Yandex.Direct internal units in real time. Conversions take place in accordance with the RF Central bank's exchange rate for the given currency on the current day.

The auction takes place in realtime while the user loads the search results page or a page containing ad blocks from the Yandex Advertising Network or ad exchanges. The auction consists of a few steps.

Ad selection and ranking

Ads are selected individually for every ad block on the page that appears in response to the user's search term. Ads are sorted based on a combination of CPC, quality coefficient, and CTR figures for that specific impression. Ads with the best combination of indicators will end up in the block.

Ads selected for the block get ranged and are distributed by positions inside the block. The ranging rules vary for different types of ad blocks:

  • In the premium placement, guaranteed placement, and dynamic placement blocks, on the “All ads” page, and on the YAN search sites, ranking is determined by a combination of bid rate, quality coefficient, and CTR forecast.

  • On YAN and Ad Exchange content sites, ranking is determined by bid rate.

Determining click price

Click price is determined based on ad block type:

VCG auction

VCG auction rules are used to determine the click price for the premium placement and guaranteed placement blocks on Yandex search and on YAN search sites. Here we'll describe how click price is calculated for the premium placement block.

Between 0 and 3 ads will display in a given block depending on how much competition there is for a given keyword. Research has shown that an ad in first place draws the most traffic and second and third place get 85% and 75% of the maximum possible traffic respectively. This correlation is not consistent and changes over time and in relation to different search terms. An ad in a first place position will get more clicks than if it were in second or third place.

If there are four advertisers competing for premium placement impressions and they offer bids of RUR 10.00, RUR 7.00, RUR 5.00, and RUR 2.00 for the relevant keywords, the block will display ads of the three advertisers with the highest bids provided that their quality coefficients and forecast CTR values are the same. The number of clicks on ads and the average cost of such clicks will depend on the advertiser’s position in the block, i.e.,

  • Each of the three advertisers who won a spot in the block will get 75% (or more) of the maximum possible number of clicks on their ads. Advertisers don't have to compete for this baseline level of traffic. The price for this minimum amount of traffic is determined by the bid of the fourth competitor who didn't make it into the block (in this case, 2 RUB per click).

  • The two advertisers with the highest bids will get an additional 10% of click traffic, which will allow them to rise from third to second position. The third advertiser's bid in this case determines the actual competition for this additional traffic. Thus, in this example, the third advertiser's bid of 5 rubles determines the price for an additional 10% of clicks.

  • the cost of 15% of traffic generated by the first position over the second one is due to the competition of the advertiser in the second position offering a bid of RUR 7.00.

Click price, however, is not calculated separately based on whether a click is "baseline" or "additional". Yandex.Direct calculates the average CPC based on the principle that the main share of traffic should not get more expensive as one ascends into higher positions. When calculating click price, Yandex.Direct uses clickability coefficients for ad block positions. This coefficient is not constant; it changes over time and in relation to different search terms.

How click price (CPC) is calculated

Let's say that there are 3 positions with clickability coefficients X1, X2, X3, and 4 advertisers are competing for positions within the block (with ad bids of Bid1 ... Bid4, and forecast clickability of these ads for a specific impression — CTR1 ... CTR4). In this case then the CPC will be calculated as follows:

The forecast CTR for ads in the block will be used to calculate click price. If bids and quality coefficients are the same across all ads, then the ad with the highest forecast CTR will get the top position.

The three positions in the ad block have the following clickability coefficients (X1 = 1, X2 = 0.85, X3 = 0.75). An auction has four participating ads with keyword bids amounting to 10 RUB, 7 RUB, 5 RUB, and 2 RUB. The forecast ad CTR for this impression is calculated as follows: CTR1 = CTR3 = CTR4 = 10%, CTR2 = 12%, provided that the quality coefficients are the same.


GSP auction rules are used to determine the click price in the dynamic placement block, on the “All ads” page, as well as on YAN content sites and in ad exchanges. The click price is determined by the rate set by the closest competitor.

Four advertisers compete for impressions in premium placement, their keyword bids are 10, 7, 5, and 2 rubles respectively, and their quality coefficients and forecast CTR are all the same. Research has shown that an ad in first place draws the most traffic and second and third place get 85% and 75% of the maximum possible traffic respectively.

The number one advertiser will get the first position. Their ad will get the maximum possible traffic for the given keyword. Every click on that ad will cost 7 rubles.

The second advertiser will get 85% of the maximum possible traffic for 5 rubles per click.

The third advertiser will get traffic for the minimum price of 2 rubles per click, but this still amounts to 75% of the maximum possible traffic for ads based on that keyword.