Реклама

Вы можете получать доход от размещения рекламных блоков в своих играх. Для этого:

  1. Изучите особенности и рекомендации по размещению рекламы.
  2. Настройте вызов рекламы с помощью SDK.
  3. Подключите монетизацию в Консоли разработчика Яндекс Игр.

Особенности и рекомендации по размещению рекламы

  • Размещайте вызов рекламы таким образом, чтобы пользователь понимал, что это не часть игры, а рекламный блок.
  • Рекламу рекомендуется показывать после пользовательского действия или по таймеру, если прохождение уровня занимает больше 5 минут. Подробнее см. на странице Расположение рекламы.
  • Частота вызова видеорекламы с вознаграждением (rewarded video) не ограничена.
  • Частота вызова полноэкранного блока рекламы управляется платформой Яндекс Игры.

Внимание

Рекламная сеть Яндекса считает случайные клики пользователей по блокам рекламы признаком рекламного фрода и снижает доход от рекламы в игре.

Чтобы избежать этого, не вызывайте показ рекламы, когда пользователь активно взаимодействует с игрой и может нажать на блок рекламы ненамеренно.

Пример неправильного вызова:

setInterval(() => ysdk.adv.showFullscreenAdv(), 180000)

Настройка вызова рекламы

Полноэкранный блок рекламы

Полноэкранный блок рекламы — блок с рекламой, который полностью закрывает приложение и показывается между запросом какой-то информации пользователем (например, при переходе на следующий уровень игры) и ее получением.

Чтобы вызвать рекламу, используйте метод ysdk.adv.showFullscreenAdv().

Сигнатура метода:

1function showFullscreenAdv(callbacks?: {
2    onOpen?: () => void;
3    onClose?: (wasShown: boolean) => void;
4    onError?: (error: object) => void;
5}) => void {}

В параметре callbacks можно передать опциональные callback-функции:

  • onOpen — вызывается при успешном открытии рекламы.
  • onClose — вызывается при закрытии рекламы, после ошибки, а также, если реклама не открылась по причине слишком частого вызова. Используется с аргументом wasShown (тип boolean), по значению которого можно узнать, была ли показана реклама.
  • onError — вызывается при возникновении ошибки. Объект ошибки передается в callback-функцию.

Пример

 1const ysdk = await YaGames.init();
 2
 3ysdk.adv.showFullscreenAdv({
 4    callbacks: {
 5        onOpen: () => console.log('Реклама открыта.'),
 6        onClose: (wasShown) => console.log(wasShown ? 'Показана и закрыта.' : 'Не показана.'),
 7        onError: (error) => console.log('Ошибка вызова.'),
 8    }
 9})

Видеореклама с вознаграждением (rewarded video)

Видео с вознаграждением — блок с видеорекламой, за просмотр которого пользователь получает награду, например внутриигровую валюту.

Чтобы вызвать рекламу, используйте метод ysdk.adv.showRewardedVideo().

Сигнатура метода:

1function showRewardedVideo(callbacks?: {
2    onOpen?: () => void;
3    onRewarded?: () => void;
4    onClose?: (wasShown: boolean) => void;
5    onError?: (error: object) => void;
6}) => void {}

В параметре callbacks можно передать опциональные callback-функции:

  • onOpen — вызывается при отображении видеорекламы на экране.
  • onRewarded — вызывается, когда засчитывается просмотр видеорекламы. Укажите в этой функции, какую награду пользователь получит после просмотра.
  • onClose — вызывается при закрытии видеорекламы.
  • onError — вызывается при возникновении ошибки. Объект ошибки передается в callback-функцию.

Пример

 1const ysdk = await YaGames.init();
 2
 3ysdk.adv.showRewardedVideo({
 4    callbacks: {
 5        onOpen: () => console.log('Реклама открыта.'),
 6        onRewarded: () => console.log('Пользователь получил награду.'),
 7        onClose: (wasShown) => console.log(wasShown ? 'Показана и закрыта.' : 'Не показана.'),
 8        onError: (error) => console.log('Ошибка вызова.'),
 9    }
10})

Включение показа стики-баннера

Стики-баннер — блок с рекламой, который показывается во время игры. Чтобы включить показ стики-баннера:

  1. Откройте Консоль разработчика и перейдите на вкладку Реклама.
  2. В блоке Sticky-баннеры настройте отображение баннеров:
    • Для мобильных устройств:
      • Sticky-баннер в портретной ориентации — выберите расположение Внизу или Вверху.
      • Sticky-баннер в альбомной ориентации — выберите расположение Внизу, Вверху или Справа.
    • Для компьютеров — включите опцию Sticky-баннер на десктопе. Баннер будет показываться справа.

По умолчанию стики-баннер появляется при запуске игры и отображается всю сессию. Чтобы управлять показом стики-баннера с помощью методов SDK, включите опцию Использовать API для показа sticky-баннера.

ysdk.adv.getBannerAdvStatus()

Получить текущий статус стики-баннера.

Сигнатура метода:

1function getBannerAdvStatus(): Promise<{
2    stickyAdvIsShowing: boolean;
3    reason?: 'ADV_IS_NOT_CONNECTED' | 'UNKNOWN';
4}> {}

Возвращает статус отображения стики-баннера stickyAdvIsShowing. Если баннер не показывается, также возвращает опциональное поле reason, которое указывает на причину отсутствия банера:

  • ADV_IS_NOT_CONNECTED — не подключены баннеры.
  • UNKNOWN — ошибка показа рекламы на стороне Яндекса.

ysdk.adv.showBannerAdv()

Показать стики-баннер.

Сигнатура метода:

1function showBannerAdv(): Promise<{
2    stickyAdvIsShowing: boolean;
3    reason?: 'ADV_IS_NOT_CONNECTED' | 'UNKNOWN';
4}>

Возвращаемые значения аналогичны значениям ysdk.adv.getBannerAdvStatus().

ysdk.adv.hideBannerAdv()

Скрыть стики-баннер.

Сигнатура метода:

1function hideBannerAdv(): Promise<{
2    stickyAdvIsShowing: boolean;
3}>

Возвращает статус отображения стики-баннера stickyAdvIsShowing.

Пример

 1const ysdk = await YaGames.init();
 2
 3const { stickyAdvIsShowing , reason } = await ysdk.adv.getBannerAdvStatus();
 4
 5if (stickyAdvIsShowing) {
 6    // Реклама показывается.
 7} else if (reason) {
 8    // Реклама не показывается.
 9    console.log(reason);
10} else {
11    ysdk.adv.showBannerAdv();
12}

Примечание

Сотрудники службы поддержки помогают разместить готовую игру на платформе Яндекс Игр. На прикладные вопросы о разработке и тестировании предметно ответят другие разработчики в Сообществе в Телеграме.

Если при использовании SDK Яндекс Игр вы столкнулись с проблемой или у вас появился вопрос, обратитесь в службу поддержки:

Написать в чат