Compliance with IAB standards
Yandex strives to make sure that advertisers pay only for real impressions and clicks. For display advertising, we use industry-standard methods and technologies approved by the Interactive Advertising Bureau (IAB). We use these technologies for every type of display ad placement, both in our own projects and on Yandex Advertising Network partner sites.
Basic principles of counting ad impressions in Yandex:
- An impression only counts if it matches the specified viewability parameters:
- Under the MRC standard, if at least 50% of the banner area is in the active browser window for at least 1 second.
- Under the Yandex standard, if at least 50% of the banner area is in the active browser window for at least 2 seconds.
- The delivery of an ad and impression tracking link is initiated solely by the user. The ad content downloads when the user sends an HTTP request from the browser.
- Impressions count after the ad loads on the browser page.
Rules of participation in the Yandex Advertising Network allow auto-refresh no more than once every 30 seconds:
Yandex makes sure that sites meet this requirement by specifying the
impressionoptions_refreshflag in the request. We continually monitor the acceptable rate of auto-refreshes, and the rate is inconsequential on partner sites.
We check the site traffic against the auto-refresh criteria once per quarter. If a site abuses auto-refresh, administrative measures are taken.
Ad impressions on pre-fetched pages are not counted. Preventing prefetch on partner sites:
The ad is called using a compound link, with a part of this link called only after a special JS code.
Configuring and monitoring antifraud rules.
- Caching control
To prevent caching in headers, special headers are used in requests and responses:
A special mechanism is used to prevent caching of the link that is generated on ad click. The link is created using dynamic parameters: order ID, event ID, banner ID, type of tag, and others. Then, for security purposes, all the link parameters are hashed and the link is delivered in an encrypted format.
The diagram below shows the click counting workflow:
The user initiates a click on an ad banner containing a tracking link in the format
[crypted-data] segment contains the encoded data for identifying the banner associated with the link and the site originating the click (this link is also used to count ad banner impressions).
The link data is passed to the backend system that counts the banner click and generates a link to redirect the user to the advertiser website. The user is redirected to the advertiser website specified in the ad campaign settings.
The backend counts clicks before redirecting the user to the advertiser website.
- Yandex.Direct doesn't accept ads with website links containing more than 5 redirects. Learn more in the Advertising requirements.
- A click made outside of the ad banner area is not recorded and not included in the click count.
- A click is not counted if the user bounced from the advertised site back to the ad page too quickly (the minimum time is defined individually for each OS based on machine learning algorithms).
- Duplicate clicks
If there were several clicks during the ad display, only one click is counted in the statistics.
- Click validation
A common mechanism for historical data handling is used to validate clicks. If more than 24 hours has passed since the last user action, all the technical filter data is deleted from the history.
The mechanism validates clicks as follows: if more than 24 hours have passed between the ad impression and ad click, the click is considered invalid and is not counted.
If no impressions that passed antifraud are found for the validated clicks, the clicks do not count.
For display banners, Yandex uses strong viewability criteria: an impression only counts if at least 50% of the banner area is in the active browser window for at least two seconds continuously. Viewability is also checked according to the MRC standard: 50% of the banner area is continuously present in the active browser window for 1 second.
For large display ads (larger than 242500 pixels), the impression counts if 30% of the ad is continuously present in the active browser window for at least 2 seconds. Viewability is also checked according to the MRC standard: 30% of the ad is continuously present in the active browser window for 1 second.
Yandex measures viewability by the actual banner size rather than the ad block size. The ad is selected for placement based on the container dimensions. This means that the container dimensions and ad size are always identical.
Viewability is checked in the ad impression tracking process.After the banner is loaded on the page, the following events are tracked for statistics:
- Rendering the banner on the page.
- Banner viewability.
If the banner is rendered on the page, but no viewability data was saved, the impression is considered unviewable. If an impression is counted as viewable, the rendering data is not counted.
Viewable and unviewable impressions are counted in the statistics after the events are saved and processed by the antifraud system.
The video ad impression counts if at least 50% of the player is in the user's viewable area for at least 2 seconds. Rules of participation for the Yandex Advertising Network specify the minimum allowed player size of 320 × 180 or 180 × 320 pixels. Impressions in smaller players are not counted. If the player size cannot be identified for some reason, the impressions do not count.
For correct video ad viewability count, the Yandex partner must use one of the following integration models:
- A player supporting VAST (Video Ad Serving Template) version 2.0/3.0 video advertising standard.
- Yandex Video SDK — a library embedded into the partner player to implement VAST support.
In other words, to display ad blocks correctly, the platform must support the VPAID/MRAID standard.
Yandex measures viewability based on the player slot. The video ad is selected for placement based on the slot size. This means that the slot dimensions and ad size are always identical.
Viewability criteria and check procedure
Viewability of an ad is checked by the following criteria:
- The tab in the browser must be active.
- The ad must be in the viewport (the viewport is the viewable area of the web page that the user can see without scrolling) for at least 2 seconds based on the Yandex standard and at least 1 second based on the MRC standard. More than 30% of the area for large blocks (larger than 242500 pixels) and more than 50% of the area for regular blocks (smaller than 242500 pixels) must be inside the viewport.
- The midpoint must not be covered.
The viewability criteria are checked in the following order:
- Checking the active tab.
- Checking the percent of the area in the viewport using IntersectionObserver.
- Checking the midpoint.
Ad impressions on pre-fetched pages are not counted.
- Processing of cross-domain iframes
To measure viewability, we use IntersectionObserver (including when cross-domain iframes are used to call ads).
- Caching control
To prevent caching, the same methods are used as for impressions.
- Tracking multiple ad display
Only one ad can correspond to each unique display in Yandex.
Processes for delivering content, methods for counting impressions and clicks on mobile devices, and the procedures and policies used for auto-refresh and prefetch are similar to those used for websites.
A click on an ad on mobile devices is not counted if the user is too quick to go back to the ad page after opening the advertiser site. The time interval is determined individually for each OS based on machine learning algorithms.
Yandex ads are served in apps using the MobileAds SDK, a set of libraries to adapt Yandex Advertising Network (YAN) ads for mobile apps. Read more about the MobileAds SDK in the documentation.
Flow for confirming ad viewability:
- Ad is downloaded.
- Ad is added to the screen or called from the
- The SDK starts the viewability check. The following factors are checked one-by-one:
- Ad viewability percentage (Visibility Percent)
- The interval during which the ad should be in the viewable area (Shownotice Delay).
- If the ad failed the first check, a timer is started to check Visibility Percent every 0.2 seconds.
- If the Visibility Percent check is successful, Shownotice Delay is used for a repeat viewability check for the same percentage.
- If the check is successful, the timer stops and the SDK sends a request using the viewability confirmation link. Otherwise, the check is repeated. If no confirmation is sent within 60 seconds, the ad impression is not counted.
The SDK gets information about the properties of the device and OS from the iOS and Android system API: the ad ID, location (if location detection is enabled in the app and SDK), and the device screen properties.
- Restrictions for different OS versions
The OS version is passed with the ad request. Different restrictions are applied depending on the OS:
Minimum version supported is Android 2.3.3. Video ads are selected only for the devices running Android 5.0 or higher.
- iOS 8.0 or higher is needed for any type of ad to be loaded.
- Video ads are selected only for devices running iOS 10.0 or higher.
- Checking the app runtime status
Ad viewability is checked and impressions are counted only if the following criteria are met:
- The app is active, meaning the device screen is unlocked.
- The app is not running in the background.
- The ad is shown in the active window of the app.
The app is active, meaning the state is Active, rather than Inactive or Background.
- The ad is shown in the active window of the app.
Impressions are also counted if the app was launched on an emulator or simulator and the above criteria were met.
- Auto-refresh, prefetch
The auto-refresh and prefetch procedures and policies are similar to those used for websites.
To remove invalid traffic (IVT), a log marked by the antifraud system is used. The data that passed the antifraud check is used for statistics.
- Monitoring system.
- Complaints from advertisers and YAN site owners.
- Regular analysis of IVT generation service market.
- Searching for patterns.
- Extending the list of known IVT types.
Advertising events initiated by Yandex employees from the internal network are not counted in statistics.
The ad antifraud system protects YAN from general and sophisticated IVT. To filter these kinds of invalid traffic, we use the following methods:
- Technical filtering.
- Internal traffic filtering. This kind of filtering is done using a common list of IP address ranges (IP ranges of Yandex data centers and IP ranges of the Yandex internal user networks).
- Filtering of primitive bots. This kind of filtering is done through User-Agent validation based on lists, IP addresses, link signature, user cookie, and referer.
- Heuristic rules.
- Machine learning-based rules.
- Machine learning models.
- Clustering, and other methods.
The ad antifraud system actively shares statistics with other Yandex antifraud systems and reuses the data.
- Preparation of sites, historical data analysis
In order to be connected to the Yandex Advertising Network, resources must comply with the Rules and YAN Terms. The SSP policy applied to the resources must not violate the above requirements. Every site or SSP added is checked by the Yandex moderation service.
New sites are run in testing mode for a while: their traffic is researched and checked by the on-duty analyst and the antifraud system. The data on such sites is not included in the advertiser statistics and money is not debited for impressions on such sites.
All new sites are checked against their conversion rate. Any sites that regularly produce fraudulent or conversion-poor traffic are disconnected from YAN.The following controls are used to identify new IVT types:
- Monitoring system tracks traffic deviations.
- Various methods for clustering traffic and sites.
- Advertiser complaint analytics.
- Signals received from related antifraud systems.
- IVT detection based on lists or parameters
- The system uses the tables that list the ranges of IP addresses generating a large amount of fraudulent traffic. You can use the options in order to:
- Configure forwarding of events from such addresses to a separate log not counted anywhere.
- You can use a specific flag for events from such addresses. Based on this you can forward them to your main antifraud system, which will mark them as fraudulent.
In addition, the system uses a table of regular expressions to detect fraudulent User Agents. The User Agent must match at least one regular expression from the allowed expression list and mismatch every expression in the fraudulent User Agent expression list. You can use special flags to set up fraudulent event forwarding to a separate log. Such events will not be processed in any way.
- Fake viewable impressions
Since only impressions with confirmed viewability are counted in the statistics and paid for by advertisers, the antifraud rules and tools apply to viewable impressions only.
Expenses incurred due to fraud are refunded automatically to the advertiser balance, and filtered-out impressions and clicks are deleted from all statistics reports.
If the advertiser believes that their statistics contain fraud, they can use the feedback form to contact Yandex. The advertiser's request is checked, and if their suspicions are confirmed, the filtered impressions and clicks are removed from all statistical reports, and the expenses incurred due to fraudulent activities are refunded to the advertiser balance.