Optimize ROI

The “Optimize ROI” strategy is good for advertisers who have defined their advertising goals and know their optimal ratio of expense to earnings.

The strategy lets you to get the maximum number of conversions for the selected goal while maintaining the specified return on investment (ROI).

This strategy is most effective for campaigns that get more than 200 clicks and at least 10 converted sessions a week.

How ROI is calculated

Return on investment (ROI) allows you to evaluate how much your advertising spending pays off. ROI is the ratio of return on advertising to money spent on advertising:

As a business metric, you can use:
  • Revenue from product sales
  • Profit: revenue minus cost
  • Any other indicator characterizing return on advertising

For example, over a month you spent 5,000 rubles on advertising a product, while the total cost of the product sold (excluding advertising expenses) is 13,000 rubles and the sales revenue is 20,000 rubles. According to the formula above, the ROI calculated from revenue is:

While ROI calculated from profit is:

A high ROI in Yandex.Direct means that ads are performing very effectively and the profit from conversions pays off against the advertising expenses.

Prerequisites for using the strategy

  1. A Yandex.Metrica tag is installed on the advertised website. Yandex recommends that you embed the code snippet on every page of your site.
  2. Goals are configured for your tag.
  3. You must specify the tag number and enable link tagging for Yandex.Metrica in the campaign settings in Yandex.Direct. More information about Yandex.Metrica.
  4. You have configured passing the business metric to Yandex.Direct, i.e., the value and currency of the goal price. There are several ways to pass it:
    • Add priority goals to the campaign parameters and set a price for them. Besides the goals that bring you direct income, you can also choose any other goals to optimize your ads, such as registration on your website or consent to participate in a promo.

    • Use the method reachGoal with the goal ID and preset value.
    • Enable ecommerce and pass the product price or order amount. For the “eCommerce: Purchase” goal, the goal ID is automatically transmitted by Yandex.Metrica. For other purposes, the ID must be passed in the goal_id field.
      Example of passing the product price and goal ID
          "ecommerce": {
              "purchase": {
                  "actionField": {
                      "id" : "TRX987",
                      "goal_id": "123456"
                  "products": [
                          "id": "25341",
                          "name": "Men's hoodie Yandex style",
                          "price": 1345.26,
                          "brand": "Yandex",
                          "category": "Clothing/Men's clothing/Hoodies and sweatshirts",
                          "variant": "Orange color"
                          "id": "25314",
                          "name": "Women's hoodie Yandex style",
                          "price": 1543.62,
                          "brand": "Yandex",
                          "category": "Clothing/Women's clothing/Hoodies and sweatshirts",
                          "variant": "White color",
                          "quantity": 3

    If you use a non-monetary business indicator, pass the payment currency you have set in Yandex.Direct.

Strategy settings

Return on investment

The desired average return on investment per week, in units.

The system will adjust bids so that the ROI for the selected goal is close to the specified value.

As the strategy is run, the metric can deviate (either up or down) over the course of a week, but by the end of each week it will get closer to the set value.


This strategy aims to increase the percentage of clicks on ads that most often reach the goal. You can use one of the Yandex.Metrica goals or enable optimization by priority goals (if they are configured in your campaign settings). If only engaged sessions are used as priority goals, optimization for priority goals is not available.

A Yandex.Metrica goal doesn't appear in the strategy parameters immediately after being added. The list of available goals is updated once per day.

Reinvest in advertising

If the strategy shows higher cost-efficiency than you set, you can reinvest some of the saved money back into your weekly budget to buy more clicks. Specify the percentage of the saved budget to be reinvested.

Weekly budget

The minimum weekly budget is 300 RUB (see other currencies).

The actual expenditure of a campaign using this strategy may vary by several percent from the specified budget. Accuracy may be affected when you switch between strategies, make changes to the budget, suspend a campaign, refine your time targeting or change the campaign start date.

Budget distribution depends on your time targeting settings. For example, if you limit ad impressions to two days a week, your budget will only be distributed over those two days.

If the budget cannot be spent, you will see an alert in the interface and get a notification sent to your inbox. This usually means that the keywords selected have a low CTR, a low budget or a low maximum bid.

Attribution model

An attribution model is a rule that determines which click is assigned as the source of a session on your site. The model helps you more accurately evaluate your return on advertising investment. The bidding system uses Yandex.Metrica statistics for the selected attribution model and focuses on achieving your desired result.

You should select a model based on your business type, the method you use for attracting traffic, and what information you need to obtain from it. The default attribution model is Last click from Yandex.Direct. You can change it as needed.

More about attribution models.

Maximum CPC

You can limit the CPC if necessary. If the maximum CPC is not set, by default it will not exceed 10% of the weekly budget.

It is not recommended to limit your CPC. A weekly budget should be specified if you need to control the expenditure of your funds independently.

Cost of goods or services

The percentage of the product cost in its sales revenue. This setting is useful to optimize the net profit margin. In general, the profit is calculated using the formula:

If you do not know the cost of each product, you can pass the sales revenue as a business metric, and use this setting to specify the average cost percentage in the revenue. The system will make all necessary calculations itself and optimize ROI based on profit.

You can also use this setting if you do not want to send information about your real revenue to Yandex.Metrica. In this case, you can provide data adjusted by an allowance ratio and specify the value calculated by the following formula in the strategy settings as your cost: 100/adjustment coefficient.