Compliance with international media standards
Adfox uses industry-standard methods and technologies. According to international standards, the key performance metrics for ad placements are viewable impressions and clicks.
Both advertisers and publishers benefit greatly from ad viewability data. Advertisers gain insight into ad performance across different placements, and publishers can pinpoint and improve site areas where ads have low visibility.
Warning
Adfox tracks ad viewability according to international media standards if the following conditions are met:
- Your campaign doesn't use external monetization.
- Campaign settings specify an impression count method: Impression (IMS), Viewable Impression (IMS), or Viewable impression, Yandex (IMS).
- Banners are created using templates with IMS in their names
- Ad tags for banner ads use the context.js library.
Counting impressions
Basic principles of counting ad impressions in Adfox:
- A viewable impression only counts if it matches the specified viewability parameters:
- 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 are counted after ads are loaded fully on the browser page.
Auto-refresh
-
Rules of participation in the Yandex Advertising Network allow auto-refresh no more than once every 30 seconds.
Adfox verifies that sites comply with this requirement by checking for the
adf_refresh
parameter in the request. Site traffic is checked quarterly to ensure the auto-refresh criteria are met. If a site abuses auto-refresh, we take administrative action against it.
Prefetch
-
Ads shown on pre-fetched pages won't be counted. Preventing prefetch on partner sites:
-
The ad content is called using a link that is called only after processing special JS code.
-
Configuring and monitoring anti-fraud rules.
-
Caching control
-
To prevent caching in headers, requests and responses use special headers:
cache-control: no-cache
andpragma: no-cache
.A special mechanism is used to prevent caching of the link that is generated on ad click. The link is generated using dynamic parameters: platform ID, banner type, banner ID, and more. For security reasons, all link parameters are hashed.
Counting clicks
The diagram below shows the click counting workflow:
The user clicks an ad banner with a tracking link in the format https://ads.adfox.ru/.../clickURL?[crypted-data]
. The [crypted-data]
segment contains the encoded data allowing you to identify the banner associated with the link and site originating the click.
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 site URL specified in the ad campaign settings.
The click count accuracy is provided by the following:
-
The backend counts clicks before redirecting the user to the advertiser site.
-
A click made outside of the ad banner area is not recorded and not included in the click count.
Duplicate clicks
- If an ad gets multiple clicks during one impression, only one is counted in the statistics.
Click validation
-
Click validation uses a unified mechanism that works with historical data. If more than 24 hours have 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 anti-fraud are found for the validated clicks, the clicks do not count.
Click statistics
- Reports display the number of clicks in the Clicks (IMS) column. This indicator includes filtering invalid traffic (SIVT and GIVT) by special fraud protection mechanisms. You can check the number of invalid clicks in the report on ad campaigns with IMS, in the columns Filtered clicks (IMS), GIVT/SIVT.
Viewability
The following viewability criteria apply to banner ads:
The method of counting impressions |
Display Advertising |
Large banner ads (> 970 × 250 px) |
Viewable impression, Yandex (IMS) |
A minimum 50% of the banner area remains in the active browser window for at least two seconds |
A minimum of 30% of the banner area remains in the active browser window for at least two seconds |
Viewable impression (IMS) |
A minimum of 50% of the banner area remains in the active browser window for at least one second |
A minimum of 30% of the banner area remains in the active browser window for at least one second |
If the active browser window includes less than the specified area of the banner, but the user clicked on it and this click is counted by the system, then the viewable impression is also counted. This rule works for banner ads both on sites and in apps.
Adfox measures ad viewability by the size of the container that hosts the ad. The ad is selected for placement depending on container dimensions. This means that container dimensions and ad size are always identical.
Viewability is checked during ad impression tracking.
After the banner loads 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 is recorded, the impression is counted as non-viewable.
Viewable impressions, non-viewable impressions, and undetermined ad impressions are counted in the statistics after the events are saved and processed by the anti-fraud system.
Viewability criteria and check procedure for banner ads
-
Ad viewability is verified using the following criteria:
- The browser tab must be active. The ad must stay in the viewport (the part of the web page viewable without scrolling) for at least two seconds under Yandex standards, and at least one second under international media standards. More than 30% of the area for large ad units (242,500 pixels, which is equivalent to 970 × 250 px, or larger) and more than 50% of the area for regular ad units (under 242,500 pixels, which is equivalent to 970 × 250 px) must be inside the viewport.
- The midpoint must not be overlaid.
Checking viewability criteria involves the following steps:
- Checking the active tab.
- Checking the viewport intersection using IntersectionObserver. If the browser doesn't support IntersectionObserver, the element's position on the page is calculated, taking into account the chain of parent frames (this works if the viewability measurement code is in a friendly iframe).
- Checking the midpoint overlay.
The following viewability criteria apply to video ads:
The method of counting impressions |
Video advertising |
Viewable impression, Yandex (IMS) |
|
Viewable impression (IMS) |
At least 50% of the player remains in the user's viewable area for at least two seconds. |
If less than 50% of the player is in the user's viewable area, but the user has clicked the video and this click is counted by the system, the viewable impression is also counted.
For correct viewability measurement when serving video ads, a player must support the VAST (Video Ad Serving Template) specification 3.0 or higher. The Yandex Video Ads SDK can be integrated into a partner's player. The Yandex Video Ads SDK is a library integrated into the partner's player to implement VAST support.
Adfox calculates viewability based on the visibility of the player's slot. The video ad is selected for placement based on the slot size. It means that the slot dimensions and ad size are always identical.
Viewability criteria and check procedure for video ads
-
Ad viewability is verified using the following criteria:
- The browser tab must be active.
- At least 50% of the player must remain in the viewport (the part of the web page viewable without scrolling) for at least two seconds. The desktop player must be at least 320 × 180 or 180 × 320 pixels. This criterion is checked only to count viewability according to the Yandex standard.
When the viewability criteria are met, timers are started and stopped. When all the timers trigger simultaneously, it is considered that the check is passed.
Prefetch
- Ads shown on pre-fetched pages won't be counted.
Processing of cross-domain iframes
- To measure viewability, we use IntersectionObserver, and it works even with cross-domain iframes used in ad calls.
Caching control
- To prevent caching, impressions are counted using the same methods.
Tracking the display of multiple ads
- Each unique impression can be attributed only to one ad in Adfox.
Viewability metrics
-
Adfox evaluates ad viewability based on the following indicators:
-
Viewable impression, Yandex (IMS) : Impressions meeting the Yandex viewability criteria: 50% of the banner area (30% for ads with an area of at least 242,500 pixels, which is equivalent to 970 × 250 px) remains in the active browser window for at least two seconds, with invalid traffic filtered out.
-
Impressions (renders): Events that occur when ad rendering starts, with invalid traffic filtered out.
-
Viewable Ad Impression: Ad impressions in the viewable area of the active browser tab, counted using the criteria established by international media industry standards: how many pixels (in percent) remain in the viewable area and for how long they remain there, with invalid traffic filtered out.
- Banner ads on the site or in the app: 50% of ad pixels must be in the viewable area for at least one second.
- Large ads (242,500 pixels, which is equivalent to 970 × 250 px, or larger): 30% of the pixels must remain in the viewable area for at least one second.
- Video ads on the site or in the app: 50% of the video ad pixels must remain in the viewable area for at least two seconds of video playback.
-
Viewable rate (IMS): The percentage of viewable impressions (as defined by international media industry standards), relative to all impressions for which viewability was determined, with invalid traffic filtered out. Calculated as:
-
Measured Rate (IMS): The ratio of impressions with determined viewability to the total number of Impressions (IMS), with invalid traffic filtered out. Calculated as:
-
Non-viewable ad impressions (IMS): Impressions for which ad rendering was recorded, but viewability couldn't be confirmed per international media industry standards, with invalid traffic filtered out.
-
Undetermined ad impressions (IMS): Impressions whose viewability couldn't be determined, with invalid traffic filtered out.
These indicators do not include invalid impressions (SIVT and GIVT) and viewable impressions, filtered out by special fraud protection mechanisms.
-
Mobile advertising
Content delivery, impression and click counting on mobile devices, and procedures and policies for auto-refresh and prefetch are similar to those used for sites.
In-app advertising
Yandex ads are served in mobile apps using the MobileAds SDK, a library package for integrating the Yandex Advertising Network and Adfox into mobile apps. For more information about the MobileAds SDK, see the documentation.
We check ad viewability in mobile apps using the same criteria as for website ads:
- Viewability is checked according to international media standards: 50% of the banner area must remain in the active window for at least one second.
- For video ads, a viewable impression counts if at least 50% of the player remains in the user's viewable area for at least two seconds.
For banner, interstitial, and native in-app ads, click viewability also applies: if there's less than 50% of the banner area in the active browser window, but the user clicks it and the system counts that click, then a viewable impression is still counted.
To confirm ad viewability, the following steps are taken:
-
Ad is downloaded.
-
An ad appears on screen, or it's called using the
show
method. At this point, arendering
event is sent. -
The SDK starts the viewability check. The following factors are checked in turn:
- Ad viewability percentage (Visibility Percent).
- The interval during which the ad should remain in the viewable area (Shownotice Delay).
-
A timer starts, which checks the viewability percentage every 0.2 seconds. The continuous viewing time starts to be counted.
-
For continuous viewability during the Shownotice Delay, the timer stops, and the SDK sends a request via the viewability confirmation link. Otherwise, the continuous viewing time is reset and starts again. If no confirmation is sent within 60 seconds for poor internet connection, the viewable ad impression is not counted.
The SDK retrieves device and platform information from the system API provided by iOS and Android, including the advertising ID, location data (if its collection is allowed in both the app and the SDK), and screen properties.
Restrictions for different OS versions
-
The platform version is sent with each ad request. Depending on the platform, there are various restrictions:
Restrictions for AndroidRestrictions for iOSMinimum supported version — Android 2.3.3. Video ads are only selected for devices with Android 5.0 and higher.
- iOS 8.0 or higher is required to load any type of ad. Video ads are only served to devices with iOS 10.0 or higher.
Check the app status
-
Ad viewability is checked and impressions are counted only if the following conditions are met:
For AndroidFor iOS- The app is active (the device's screen is unlocked);
- The app is running in the foreground;
- Ads are served in the app's active window.
-
The app is active (the app state is Active, not Inactive or Background);
-
Ads are served in the app's active window.
Impressions are also counted if the app is launched on an emulator or simulator and the above conditions are met.
Auto-update, prefetch
- Ad units don’t support external auto-refresh methods. The auto-refresh and prefetch procedures and policies are similar to those used for websites.
Anti-fraud protection
To remove invalid traffic (IVT), a log marked by the anti-fraud system is used. The data that passed the anti-fraud check is used for statistics.
Main sources of invalid traffic detection:
- Monitoring system.
- Reports from advertisers and site owners.
- Regular analysis of the IVT generation services market.
- Searching for patterns.
- Extension of known IVT types.
Warning
Adfox's anti-fraud filtering helps detect and block suspicious traffic. It monitors all traffic within the system, including ad requests, clicks, and events.
IMS templates have stricter requirements in accordance with international media industry standards. This provides an even higher level of protection against fraud and low-quality traffic.
IMS templates undergo advanced checks in the following areas:
-
Filtering of sophisticated invalid traffic (SIVT), including automated ad requests, fake interactions, and unnatural behavior patterns.
-
Checking the order and completeness of event calls in banners.
Ad events originating from Yandex employees on the internal network are excluded from statistics.
Adfox's ad anti-fraud system protects against general and sophisticated IVT. To filter out the invalid traffic, we use these methods:
General (GIVT — general invalid traffic)
-
- Technical filtering.
- Internal traffic filtering. This is done via a shared list of IP address ranges (IP ranges of Yandex data centers and IP ranges of the Yandex internal user networks).
- Filtering out primitive bots. The process involves validating user agents against lists, checking IP addresses, verifying URL signatures, validating user cookies, and examining the referer.
Non-standard (SIVT — sophisticated invalid traffic)
-
- Heuristic rules.
- Machine-learned rules.
- Machine learning models.
- Clustering and other methods.
The advertising anti-fraud system actively exchanges statistics with other Yandex anti-fraud systems and reuses this data.
Identification of new IVT types
- New IVT types are identified through:
- Monitoring system that tracks traffic deviations.
- Various traffic and site clustering methods.
- Analysis of the advertiser reports.
- Signals from anti-fraud 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. With these options, you can:
- Send events from these addresses to a dedicated log, events from which aren't counted anywhere.
- Flag events from these addresses and send them to the main anti-fraud system, which will mark them as suspicious.
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 list of valid ones and not match any of the suspicious ones. With special flags, you can configure sending suspicious events to a separate log, and they won't take part in further processing.
Falsification of viewable impressions
-
Anti-fraud rules and tools apply to both viewable impressions and other impression types.
Filtered impressions, viewable impressions and clicks are removed from all statistics reports. You can view statistics on filtered-out (invalid) impressions, viewable impressions, and clicks in the report on ad campaigns with IMS.
If an advertiser suspects that their statistics contain unfiltered fraud, they can contact Yandex via the feedback form. The request is investigated, and if suspicions are confirmed, filtered impressions, viewable impressions and clicks are removed from all statistics reports.