← All articles

Wildberries advertising in 2026: where the budget goes

Article 7 of 7 in the topic {hub}. All articles in the topic

Advertising on Wildberries eats the budget quietly, a thousand roubles at a time. Eight months of daily stats from the ad account: 235 campaigns across eighteen stores, 1,515,434 ₽ of spend, 4,537 orders worth 3,345,751 ₽. The ad spend share across the whole set is 45.3%, the average cost per order 334 ₽.

An ad spend share of 45.3% means almost half the revenue from advertising went straight back into advertising. For a good number of categories that is working at break-even or at a loss. We went through the export campaign by campaign and keyword by keyword to find where exactly the money leaks.

One caveat up front: this is eighteen stores in a few niches, not an industry benchmark. Everyone has their own niche, margin and season. What reproduces is the method, not the numbers.

Ad spend share and CPO: how to count without fooling yourself on step one

Two metrics everything revolves around: ad spend share, that is spend divided by revenue, and CPO, spend divided by the number of orders.

Both are counted as a sum over a sum: add up all the spend of a group, add up all its revenue, divide one by the other. The temptation to take each day's ad spend share and average them looks harmless, but it gives a different number: a day with 40 ₽ of spend gets the same weight as a day with 8,000 ₽.

Summary of 235 campaigns: spend, orders, cost per order and ad spend share

Mistake 1. Campaigns sit above the ad spend share threshold for months

The biggest loss item turned out to be a boring one. 56 campaigns ran for a month or longer with an ad spend share above 30%. They took 861,260 ₽, which is 57% of the whole sample budget.

The 30% threshold is not a law of physics. Break-even is worked out from the margin of the specific product: one product has 18%, another 40%. But holding a campaign above any sensible threshold for months without making a decision is not a strategy, it is the absence of a process.

What to do. Work out the ceiling ad spend share for every product: margin before advertising divided by price, where commission, logistics, storage, cost of goods, tax and expected returns are already out of the margin. Then the rule: a campaign stays above its threshold for as long as three to five target CPOs of spend, after that it gets paused or rebuilt. Measure spend, not the calendar: two weeks with three orders prove nothing.

Campaigns with an ad spend share of 82–171% next to normal ones at 21–35%

Mistake 2. Nobody stops campaigns with zero orders

40 campaigns out of 235, every sixth one, have spend and zero attributed orders over their whole life. Together 49,841 ₽, an average of 1,246 ₽ per campaign.

Waffle chart: 235 Wildberries ad campaigns, 40 grey ones without a single order and 49,841 ₽ of spend

The trap is in the size of the sums: a thousand roubles, fifteen hundred, two. The eye does not catch that, in a report it does not look like a problem, and over eight months it adds up to fifty thousand.

What to do. Once a week sort campaigns by spend where orders are zero. The threshold is not in roubles but in your own cost per order: it spent one and a half to two of those and stayed silent, so stop it and go look at the product card. With a correction for the attribution window: orders arrive with a delay.

Mistake 3. Junk queries that nobody adds to the negative list

42 phrases collected twenty clicks or more each and zero orders. Together 128,555 ₽, which is 8.5% of the sample budget.

The most expensive case: one phrase from an adjacent entertainment topic with nothing to do with what the product is for: 3,273 clicks, 30,829 ₽, zero orders. The platform was mixing the card into a high-frequency query from a neighbouring subject, and the click was cheap precisely because it meant nothing.

The second typical case, a broad category name: 577 clicks, 9,195 ₽, zero orders. Wide phrases steadily gave clicks and no purchases.

The concentration stands out on its own: the top 10 phrases took 54.9% of all keyword spend. A weekly look at ten rows covers half the budget.

What to do. Decide by money, not by the number of clicks: a phrase has burned one and a half to two acceptable CPOs with no order, so it is a candidate for the negative list. At a card conversion of 5%, twenty clicks without an order is not yet a verdict. And remember: while a phrase sits in the negative list it gets no impressions, and you will never find out whether it could have sold.

Keywords: spend, CTR, orders and candidates for the negative list

Mistake 4. Low CTR on Wildberries ads as an early signal everyone ignores

61 campaigns with a thousand impressions or more had a CTR below 2%. Their spend is 175,878 ₽. In that group an order cost 1,343 ₽, in campaigns with a CTR above 4% it cost 242 ₽. A difference of 5.5 times.

An honest caveat belongs here: this is a correlation across uneven groups. Products, categories and prices inside the groups differ, and part of the gap is explained by them rather than by CTR itself. But as an early signal CTR is useful: it shows up after a few hundred impressions, while the cost per order only appears once the money is gone.

A low CTR is a diagnosis for the pair of product card plus query: either the main photo loses to the neighbours in search, or the price stands out, or the product is shown to the wrong people. Fix one element at a time, otherwise you will not know what worked.

Chart: cost per order in three pairs out of 235 campaigns, low CTR 1,343 ₽ against high CTR 242 ₽, automatic campaigns 445 ₽ against auction 318 ₽, weekends 352 ₽ against weekdays 328 ₽

Mistake 5. Auction against automatic campaigns: "the automatic one will sort it out"

Of the 235 campaigns, 192 are auction and 43 automatic. Cost per order: 318 ₽ for auction against 445 ₽ for automatic, a difference of 40% not in the automatic one's favour. The cost per click is almost the same: 10.9 ₽ against 10.1 ₽.

Small multiples: auction and automatic Wildberries campaigns, 192 against 43, cost per click 10.9 and 10.1 ₽, cost per order 318 and 445 ₽

So the automatic campaign is not "cheaper", its traffic converts worse. The same caveat applies: automatic campaigns usually go on new cards and auction on proven pairings, and part of the gap comes from that. What definitely follows from the numbers: judging a campaign by the cost per click is pointless, the metrics here are cost per order and ad spend share.

Mistake 6. The same bids seven days a week

At weekends the ad spend share of the sample is 50.7%, on weekdays 43.6%. Cost per order 352 ₽ against 328 ₽.

Slope chart: Wildberries ad spend share of 43.6% on weekdays and 50.7% at weekends with the same bids

Weekend traffic behaves differently: people browse more and buy less, while bids stay at weekday levels. It does not follow from this data that lowering bids at weekends will keep the orders, that is a hypothesis to test: a couple of weekends with bids 10–15% lower, a couple with no changes, then compare.

Three traps in the data itself

While counting we got a beautiful answer three times and were wrong three times. Not because of the arithmetic, but because of how the export is built.

Table of three traps in the Wildberries stats export: empty cells, a skewed subsample and a dash instead of a zero, what it looked like and what it turned out to be

An empty cell instead of a value. Counting unique stores gave four. A day later it turned out the breakdown does not add up to the total: 55,000 ₽ against a million and a half. The store name is not filled in on older rows, and any count of unique values skips empty cells. There were eighteen stores.

A skewed subsample. The campaign type is not in the main report, it is pulled from the keyword stats, and after the join it was there for 141 campaigns out of 235. On that half it looked like a click in an automatic campaign costs half as much: 7.0 ₽ against 13.3 ₽. The pretty conclusion held until it became clear that the rest of the campaigns are missing a type for a reason: the keyword report is not filled for every placement format. On the full sample the cost per click turned out to be the same.

A zero that is not there. The "zero orders" filter catches only rows where orders for the phrase came back at all. For part of the auction placements, orders at the phrase level do not arrive at all, and the cell holds a dash rather than a zero. In the report they look identical and they mean different things: "there were no sales" and "there is no data". So 128,555 ₽ on junk queries is a lower bound, not a measured figure.

What it adds up to

The groups overlap and the rows cannot be summed: one campaign lands in several at once.

Horizontal bars: spend by typical Wildberries ad budget leaks, from 861,260 ₽ on campaigns with an ad spend share above 30% down to 49,841 ₽ on campaigns without orders
  • Campaigns running a month or longer with an ad spend share above 30%: 56 of them, 861,260 ₽, 57% of the budget
  • Campaigns without a single order: 40 out of 235, 49,841 ₽
  • Phrases with 20+ clicks and zero orders: 42 of them, 128,555 ₽
  • Campaigns with a CTR below 2% at 1000+ impressions: 61 of them, 175,878 ₽
  • Automatic campaigns: 43 out of 235, cost per order 40% higher than auction
  • The same bids all week long: plus 7 percentage points of ad spend share at weekends

Empty campaigns and empty phrases alone are 178,000 ₽, 12% of the sample budget, with not a single order behind them.

How this turns into a process

A one-off review gives you a list of regrets. Results show up when the check becomes weekly. For us that is four queries:

  1. Campaigns with spend above one and a half to two target CPOs and zero orders, corrected for the attribution window.
  2. Campaigns whose accumulated ad spend share stays above the product threshold for as long as three to five target CPOs of spend.
  3. Phrases with spend above one and a half to two CPOs and zero orders, candidates for the negative list with an eye on the card's conversion.
  4. Campaigns whose CTR has dropped against the median of their own campaigns in the same format.

The thresholds here are not universal numbers, they are functions of your margin. The target CPO equals the margin before advertising. The ceiling ad spend share equals that same margin divided by the price.

Autobidder: the bid corridor and the log of adjustments with reasons

In Parus Seller these checks run on a schedule, and bids are changed by automation inside corridors you set, with a log that shows what changed, when and by which rule. That is exactly the difference from the platform's own automatic campaigns: you set the thresholds and the limits, and every decision can be looked at afterwards and rolled back.

You can try it for free: promo code PARUS60 gives two months of full access with no card, sign-up with the promo code already in the link. Connecting by API key takes a couple of minutes.

And how much the leaks you find are worth in the net profit of a specific product is counted in a neighbouring piece: Wildberries unit economics with a calculator and a sheet.

In this topic

Starting and growing a Wildberries store

Where to begin, how to fill in a product card, connect the API, read free analytics, reply to reviews and not waste the ad budget.

  1. How to sell on Wildberries in 2026: start from scratch
  2. Self-employed on Wildberries in 2026: tax, cap, rules
  3. Wildberries API token in 2026: where to find and create it
  4. Wildberries product card: how to create and fill it in 2026
  5. Free Wildberries analytics: what the WB portal gives you
  6. Replying to Wildberries reviews: 20 examples and 2026 rules
  7. Wildberries advertising in 2026: where the budget goes
Autobidder: bids no higher than the product's economics

Read next