Rewarded units occupy the entire screen. The user gets a reward for viewing the ad (for example, access to a file or exclusive content on the site). The time before the reward is shown as a countdown timer. If the user closes the ad earlier, they won't be rewarded.
You can display rewarded units on both desktop and mobile versions of the site. If you want the ad to appear on all devices, you need to create a separate unit for each version of the site.
Display ads: They are selected automatically and occupy the maximum unit area. The aspect ratio of display ads is close to the size of the user's screen.
News and content sites offering exclusive information.
Dating sites.
File sharing sites.
Resources that utilize gaming mechanics and in-game currency.
When using rewarded units, observe the following requirements:
A rewarded unit is called only if the user explicitly consents to view an ad (for example, by following the “View ad to access the document” link).
The user will definitely get a reward for viewing the ad. Read the instructions below on how to reward users.
These requirements apply to rewarded units but not to fullscreen units — the latter appear without the user's consent and do not bring them a reward. If a rewarded unit doesn't meet the requirements, it may be blocked.
How to create a rewarded unit
Alert
To get access to rewarded ads, contact support via email or chat.
In the Yandex Advertising Network interface, go to Websites Ads → Ad units and click New ad unit.
Select the site that you want to create an ad unit for and click Next.
Select the Rewarded unit type.
Enter a unit name to be used in the Yandex Advertising Network interface.
Select the platform: Desktop or Mobile. For the unit to be displayed on both platforms, create a separate unit for each platform. In the desktop version, the unit appears when navigating between pages and occupies the entire screen area.
Set the CPM floor:
Maximum revenue: Determine the minimum cost of impressions automatically. With this option, you can effectively fill placements and maximize revenue for the site owner.
CPMV floor: Set your own minimum cost per thousand impressions based on a viewability check. The CPMV floor can be set in rubles, US dollars, or euros. You can change the floor currency in your account settings.
Alert
Setting a CPMV floor can reduce the unit fill rate and, therefore, decrease your income.
Specify the time before the reward in seconds (the maximum is 60). If the user closes the ad earlier, they won't be rewarded.
Choose a theme: Dark or Light. The default option is Light theme. Dark theme units have a different background and color scheme for their text, border, buttons, and other elements. The selected theme is applied to all ad formats within the unit.
Choose how you want to configure ad formats:
Use standard settings: Selecting this option enables all available formats within the ad unit: combinatorial ads, display ads, and video ads. The ad design is determined automatically.
Configure the formats: Use the option to change the design of certain formats.
Base design
Display ads
Video ads
The main layout features Fullscreen combinatorial ads.
In the preview area, you can preview the unit's appearance in different framing containers and on different devices. To do this, fill in the Container field for the desktop version or the Screen field for the mobile version of the site. You can select a value from the list or set the size yourself by selecting Custom.
Note
The specified container size is used only to generate the preview area and isn't saved in the unit settings.
Display ads are served automatically based on the unit size.
You can't disable the format.
Video ads are selected automatically based on the unit size.
You can't disable the format.
Click Create. A window with the ad tag will open. Use this ad tag to place the ad unit on your site.
How to add a rewarded unit to your site
Get the ad tag: create a new unit or click Get code in the settings of an existing unit.
Copy the Yandex Advertising Network loader code to the clipboard. Paste it inside the <head> tag of the page where you want to display a rewarded unit. The loader code is only embedded on the page once and is used to call all Yandex Advertising Network units.
Set up rewards for users who view the ad in full. To do this, add the onRewarded callback function to the unit code and define the reward action. Acceptable values: true ― the reward condition is met, false ― the reward condition isn't met.
<!-- Yandex.RTB R-A-588461-68 -->
<script>window.yaContextCb.push(()=>{
Ya.Context.AdvManager.render({
blockId: 'R-A-588461-68',
type: 'rewarded',
platform: 'desktop', // change the value to 'touch' for the mobile versiononRewarded: (isRewarded) => {
if (isRewarded) {
// the reward condition is met
} else {
// the reward condition isn't met
}
}
})
})
</script>
Add the resulting unit code within the <body> tag on the page so that it can be invoked by clicking a button or performing an action on your site. The button text or call to action should be unambiguous: the user should clearly understand that the action will open an ad unit, and that they'll receive a reward after the ad ends.
If you want to use the rewarded ad unit for desktop and mobile devices on a site with adaptive layout, add both unit codes one after another. Yandex Advertising Network will automatically request the code that matches the user's device.
To check the site version and call the proper ad unit, you can add the Ya.Context.AdvManager.getPlatform() method to the ad tag.
Sample code for a rewarded ad unit on a site with adaptive layout
<script>
window.yaContextCb.push(() => {
if (Ya.Context.AdvManager.getPlatform() === 'desktop') {
// calling the rewarded unit for the desktop versionYa.Context.AdvManager.render({
blockId: 'R-A-588461-68',
type: 'rewarded',
platform: 'desktop',
onRewarded: (isRewarded) => {
if (isRewarded) {
// the reward condition is met
} else {
// the reward condition isn't met
}
}
});
} else {
// calling the rewarded unit for the mobile versionYa.Context.AdvManager.render({
blockId: 'R-A-588461-69',
type: 'rewarded',
platform: 'touch',
onRewarded: (isRewarded) => {
if (isRewarded) {
// the reward condition is met
} else {
// the reward condition isn't met
}
}
});
}
});
</script>