The Feedance AI features is rolling out.
Check it out!

What is Yandex Ads?

Yandex Ads is the advertising ecosystem built around Yandex Direct, the ad platform behind Russia's largest search engine, and Yandex Market, its shopping marketplace. Rather than running keyword-only text ads, Yandex Direct can generate ads directly from a product feed -- the same kind of structured file that powers Yandex Market listings -- so a single feed can drive both organic-style marketplace presence and paid dynamic advertising.

The feed format at the center of this ecosystem is YML (Yandex Market Language), Yandex's own XML-based schema for describing offers: products or services with an id, price, category, and descriptive attributes. Feedance connects your product data to this format so it can be used across Yandex Direct's feed-driven ad types.

Why connect your product feed to Yandex Ads?

Yandex Direct's feed-based ad types exist specifically so you do not have to build and maintain individual ads by hand for a catalog that changes constantly. Once a feed is connected, Yandex Direct reads it directly to decide what to advertise, at what price, and whether an item is even in stock.

The practical upside is that price and availability changes in your feed can propagate into live ads without a campaign rebuild, and new products entering the feed become eligible for ads automatically as long as they meet the feed's requirements. For a catalog with regular price changes or stock turnover, that removes a recurring manual step that would otherwise sit between your product data and what shoppers actually see.

Smart banners and dynamic ads: how the feed becomes an ad

Yandex Direct's smart banners are, in its own words, "interactive banners with dynamic content" that are "automatically generated from a feed." The mechanic targets shoppers who already viewed products on your site or engaged with similar items elsewhere, then assembles a banner from your feed's images, name, and price for that specific product -- no manual banner design per product required.

Under the hood, the workflow Yandex Direct's API documents runs in a fixed sequence: the feed is uploaded via Feeds.add, a SmartCampaign is created via Campaigns.add, a SmartAdGroup is set up referencing that feed, product selection targets are configured through SmartAdTargets (bid and/or priority per target), and ads are created with Ads.add before going through Ads.moderate. One limitation worth knowing before you plan automation around this: creative design itself is only available in the Yandex Direct web interface today -- the API can retrieve and deploy an existing creative, but it cannot design one from scratch.

What feed format does Yandex Ads require?

Yandex Ads runs on YML (Yandex Market Language), an XML-based feed format. Per Yandex Direct's own feed requirements documentation, a valid YML file uses <yml_catalog> as its root element, carrying a date attribute in YYYY-MM-DD hh:mm format that reflects when the file was generated. Accepted file extensions are .xml and .yml, and Yandex also accepts GZIP-compressed versions of either.

Feeds can be submitted either as an uploaded file or as a URL Yandex fetches directly; per Yandex Webmaster's feed documentation, a URL-hosted feed must return one of these HTTP Content-Type headers to be accepted: application/xml, application/octet-stream, text/xml, application/gzip, or application/x-gzip. If your feed sits behind authentication, Yandex supports credentialed URLs in the form http://username:password@example.com/feed.yml.

Which product attributes are required?

Every product in a YML feed is wrapped in an <offer> element. Yandex Direct's documented requirements specify the following as the core fields that determine whether an offer is accepted and eligible to generate ads:

AttributeRequirement
id (offer attribute)Unique identifier, maximum 100 characters; must stay identical for the same product across different feeds you submit (e.g. Yandex and any other channel).
availableBoolean attribute (true/false) indicating current stock status.
categoryIdPositive integer, maximum 18 characters; exactly one category per offer.
priceWhole or decimal number using a dot separator; cannot be zero.
currencyIdSupported currency code, e.g. RUB, USD, EUR.
urlDirect link to the product page; maximum 2,048 characters, HTTP or HTTPS.
nameRequired for simplified-type offers; if missing, Yandex's system ignores the offer entirely and no ads are generated for it.
vendor / modelRequired together when an offer uses type="vendor.model"; omitting either causes an error and the offer is ignored.
pictureMinimum 450x450 pixels; JPG, PNG, WEBP, or GIF; Yandex recommends around 5 images per offer.
paramOptional structured specifications (color, size, material, and similar); Yandex allows up to 10 per offer.

How to connect Yandex Ads with Feedance

Feedance builds and maintains the YML feed Yandex Direct expects, without you hand-writing XML or reformatting your product data every time Yandex's requirements shift. In practice:

  1. Connect your product source (store platform, spreadsheet, or existing feed) to Feedance.
  2. Feedance maps your fields into valid YML structure: id, available, price/currencyId, categoryId, and either the simplified name path or the vendor/model path, depending on how your catalog is structured.
  3. Feedance generates a hosted feed URL that returns the Content-Type Yandex's fetcher expects, so you can register it directly in Yandex Webmaster's "Feeds and errors" section or point a Yandex Direct smart banner feed at it.
  4. Ongoing price, stock, and attribute changes in your source data are re-synced into the feed automatically, keeping the offers Yandex Direct reads current without manual re-uploads.

Feedance handles the feed layer; campaign setup itself (SmartCampaign, ad groups, creative design in the Yandex Direct interface) still happens in Yandex Direct directly.

How often should the feed update?

Yandex does not publish one universal refresh number that applies to every feed. Its own guidance is that you "specify the required update frequency in the settings" -- meaning update cadence is a merchant-configurable setting rather than a fixed platform rule, and different CMS integrations expose this differently. What is documented consistently is the consequence of staleness, not a fixed interval: since available and price feed directly into ads and smart banners, a feed that updates infrequently risks advertising out-of-stock items or the wrong price for longer than necessary.

For a smart banner feed reacting to real browsing behavior, and for any catalog with meaningful daily price or stock movement, syncing at least daily is the practical baseline -- Feedance can run this on a schedule matched to how often your source data actually changes, rather than leaving it to a default.

Common feed errors

Per Yandex's own feed documentation, the failure conditions that most often keep offers out of Yandex Ads are:

  1. Missing name element on a simplified-type offer -- Yandex's system ignores the offer outright and no ads are generated for it.
  2. Missing vendor or model on an offer declared as type="vendor.model" -- this produces an error and the offer is ignored rather than partially processed.
  3. Feed and live-site data mismatches -- Yandex Webmaster's validation explicitly checks for this after initial technical acceptance, and widespread mismatches can result in individual offers being blocked or the entire feed being rejected.
  4. Inconsistent product IDs across feeds -- Yandex's requirements state the same product must carry the same id across every feed you submit it in; drifting IDs break the identity link Yandex uses to track a product.
  5. Wrong Content-Type header on a URL-hosted feed -- if your server does not return one of the accepted types (application/xml, text/xml, application/octet-stream, application/gzip, application/x-gzip), Yandex's fetcher can fail to read the feed at all.

Yandex Webmaster's "Services and offers in search → Feeds and errors" page is the place to check any of these; after you fix an error, Yandex re-checks the feed after some delay rather than instantly.

Optimization tips

  1. Decide up front whether each offer is simplified (name-based) or vendor/model-based, and populate the corresponding required fields consistently -- mixing the two inconsistently is what triggers ignored offers.
  2. Keep available and price tightly synced with your actual storefront, since both feed straight into smart banners shown to users who already viewed the product -- a stale price or a sold-out item shown as available undermines the exact retargeting mechanic smart banners rely on.
  3. Supply the full recommended set of around 5 images per offer at or above the 450x450 minimum; smart banners are visual by nature and a feed with only one small image limits what the ad builder can generate.
  4. Use param entries deliberately for attributes that differentiate near-identical products (size, color, material) rather than leaving them blank, since these help Yandex Market and Yandex Direct distinguish variants within the same category.
  5. Keep the same id for a given product across every feed you run (Yandex Ads, Yandex Market, or others) -- Yandex's own requirements call this out specifically, and it matters if you ever cross-reference performance across channels.

FAQ

Is YML the same thing as XML?
YML is Yandex's own schema built on top of XML -- every YML file is a valid XML document, but it follows Yandex-specific structure (yml_catalog, offer, required attributes like categoryId and available) that generic XML does not define on its own.

Can I use the same feed for Yandex Market and Yandex Direct smart banners?
Yes -- Yandex's own documentation notes that smart banners can use "the traditional Yandex.Market feed (YML) format," so a single compliant YML feed can serve both, provided the offer IDs stay consistent between the two.

What happens if I forget the vendor or model element on a custom-type offer?
Per Yandex's documentation, the offer produces an error and is ignored -- ads are not generated for it -- so both fields need to be present together whenever you declare a vendor.model type offer.

Does Yandex enforce a minimum feed update frequency?
Not a single fixed number. Yandex's guidance is that you configure the required update frequency yourself in settings; the platform does not publish one mandatory interval that applies across all feed types.

Where do I see if my feed has errors?
In Yandex Webmaster, under Services and offers in search → Feeds and errors. Yandex performs initial technical validation on upload, then ongoing quality checks that can surface mismatches between your feed and your live site.

Schedule your 15-minute demo now

Schedule my demo

We’ll tailor your demo to your immediate needs and answer all your questions. Get ready to see how it works!