← Все статьи
22 сентября 2026 г.

Офферволл для Telegram Mini Apps: второй источник дохода поверх rewarded-видео

Офферволл — это экран внутри приложения со списком заданий от рекламодателей: подписаться на канал, открыть другой мини-апп, зарегистрироваться в сервисе. Пользователь выполняет задание и получает внутриигровую награду; рекламодатель платит за выполненное действие, и вы зарабатываете на нём. Это второй источник дохода, который большинство Telegram Mini Apps оставляют на столе после того, как подключили rewarded-видео. GigaPub — рекламная сеть и платформа медиации рекламы для Telegram Mini Apps, и её OfferWall SDK добавляет этот источник одним скриптом-загрузчиком и одним обработчиком события.

Коротко

  • Офферволл платит за выполненное действие, а не за просмотр — его доход не зависит ни от fill rate видео, ни от eCPM.
  • Он не конкурирует с rewarded-видео: другой момент, другое намерение пользователя, никакой рекламной усталости.
  • Интеграция в три шага: загрузить SDK, обработать событие rewardClaim, открыть стену по кнопке. Кнопку показывать только когда hasOffers() возвращает true.
  • Не терять награды: вызывать pending() при запуске и зачислять каждый id награды ровно один раз.

Что такое офферволл и за что вам платят?

Офферволл — каталог заданий рекламодателей внутри вашего приложения, у каждого — награда в вашей валюте. Пользователь выбирает задание, выполняет его, и ваше приложение зачисляет награду. Платят вам за выполненное действие — подписку, установку, регистрацию, — а не за показ списка и не за просмотр.

Это меняет экономику по сравнению с видеорекламой. Rewarded-видео приносит небольшую фиксированную сумму за просмотр и зависит от того, есть ли что показать; задание офферволла приносит доход, когда пользователь делает то, что ценно рекламодателю, — независимо от того, как сегодня выглядит видеоспрос на ваши страны.

Почему офферволл не конкурирует с rewarded-видео?

Потому что закрывает другой момент. Rewarded-видео — кнопка «мне нужна ещё одна жизнь прямо сейчас»: 15–30 секунд за небольшую награду. Офферволл — экран «хочу много монет»: пользователь сам решает потратить несколько минут на задание ради награды размером во много просмотров видео.

Из этого следуют три вещи:

  • Нет рекламной усталости. Ничего не показывается, пока пользователь не откроет стену. Лимиты частоты и тревоги за удержание, справедливые для межстраничной рекламы, здесь не работают — формат добровольный дважды: сначала стена, потом задание.
  • Другие пользователи. Часть аудитории никогда не смотрит рекламу, но охотно подпишется на канал за большой бонус. Офферволл часто единственный доход, который вы с них получаете.
  • Независимость от заполнения. Если видеоспрос на страну тонкий, задания в стене всё равно есть. Два потока отказывают независимо — ровно то, что нужно от второго источника.

Как в одном приложении уживаются rewarded-видео и межстраничная реклама — в статье rewarded-видео против межстраничной рекламы.

Rewarded-видео против офферволла

Rewarded-видеоОфферволл
За что платятза показ рекламыза выполненное действие
Кто инициируетпользователь нажимает «посмотреть рекламу»пользователь открывает список заданий
Типичный моментнужен небольшой бонус сейчасхочется много валюты сразу
Размер наградынебольшой, фиксированный за просмотрбольше, зависит от задания
Зависит от fill rate видеоданет
Работа разработчикаодин вызов showGiga()загрузчик, обработчик rewardClaim, open()

Куда ставить кнопку офферволла?

Рядом с балансом, в магазине — там, куда пользователь смотрит, когда валюта кончилась: кнопка «Бесплатные монеты» или «Заработать». Работает при двух правилах:

  • Показывайте кнопку, только если за ней что-то есть. sdk.hasOffers() говорит, есть ли у текущего пользователя доступные задания; пустая стена хуже, чем отсутствие кнопки.
  • Не прячьте её. Стена в один тап от места, где пользователь ощущает нехватку, зарабатывает; стена в пяти тапах в настройках — нет.

Как подключить OfferWall SDK GigaPub?

Три шага. Создайте офферволл в кабинете паблишера, чтобы получить его project id, затем:

1. Добавьте загрузчик. Его отдаёт бэкенд, и он сам выбирает оптимальный CDN по региону пользователя.

<script src="https://wall.giga.pub/api/v1/loader.js?projectId=YOUR_PROJECT_ID"></script>

2. Инициализируйте SDK и обработайте получение награды. Очередь колбэков делает код безопасным даже при асинхронной загрузке скрипта.

(window.loadGigaSDKCallbacks || (window.loadGigaSDKCallbacks = [])).push(() => {
  window.loadOfferWallSDK({ projectId: 'YOUR_PROJECT_ID' })
    .then((sdk) => {
      window.gigaOfferWallSDK = sdk

      sdk.on('rewardClaim', async (data) => {
        // data: { rewardId, userId, projectId, hash, amount, description }
        await creditUserReward(data.userId, data.amount) // ваша система
        sdk.confirmReward(data.rewardId, data.hash)
      })
    })
    .catch((error) => console.error('OfferWall SDK не загрузился', error))
})

3. Откройте стену по кнопке.

document.getElementById('rewards-button').addEventListener('click', () => {
  if (window.gigaOfferWallSDK?.hasOffers())
    window.gigaOfferWallSDK.open()
})

Это вся интеграция. Если задания хочется рисовать в своём интерфейсе, sdk.getOffers() возвращает доступные и активные задания с названием, иконкой и размером награды, а sdk.openOffer(offerId) открывает конкретное. Полный справочник, включая варианты для React и TypeScript, — в гайде по быстрой интеграции OfferWall.

Как не потерять награду — и не получить поддельную?

Задание часто выполняется вне вашего приложения — в другом мини-аппе, в канале, — поэтому пользователь может вернуться, когда сессия, в которой он открыл стену, давно завершилась. Три привычки, чтобы награды доходили правильно:

  • Забирайте отложенные награды при запуске. await sdk.pending() возвращает награды, которые получены, но ещё не подтверждены; зачислите их и вызовите confirmReward для каждой. Уведомление «у вас есть незабранные награды» при возвращении — приятная деталь.
  • Зачисляйте каждый id награды ровно один раз. Храните обработанные id и считайте повторный rewardClaim с тем же id уже выполненным. Повторный вызов подтверждения безопасен; двойное зачисление — нет.
  • Включите расширенный режим, если ставки высоки. По умолчанию поток выше работает как есть. Для проектов со строгими требованиями можно включить серверную проверку хеша: ваш бэкенд проверяет входящий хеш награды и генерирует подтверждающий хеш с секретным ключом проекта до подтверждения. См. серверную проверку хеша.

SDK также отправляет события opened и closed — обновляйте баланс пользователя по closed, чтобы награда, зачисленная пока стена была открыта, была видна сразу после возвращения в игру.

FAQ

Что такое офферволл в Telegram Mini App? Экран внутри приложения со списком заданий от рекламодателей — подписаться на канал, открыть другой мини-апп, зарегистрироваться в сервисе. Пользователь выполняет задание и получает внутриигровую награду; рекламодатель платит за выполненное действие, и вы зарабатываете на нём. За просмотры никто не платит.

Заменяет ли офферволл rewarded-видео? Нет, дополняет. Rewarded-видео закрывает момент, когда пользователю нужен небольшой бонус прямо сейчас; офферволл — момент, когда пользователь хочет много валюты и готов потратить несколько минут на задание. Форматы не каннибализируют друг друга.

Как пользователь получает награду из офферволла? Когда задание выполнено, SDK отправляет событие rewardClaim с id пользователя, суммой и id награды. Приложение зачисляет награду и вызывает sdk.confirmReward(rewardId, hash). Награды, полученные пока приложение было закрыто, забираются при следующем запуске через sdk.pending().

Можно ли показывать задания в своём интерфейсе вместо встроенного офферволла? Да. sdk.getOffers() возвращает доступные и активные задания, а sdk.openOffer(offerId) открывает конкретное напрямую. Встроенная стена через sdk.open() — вариант без дизайна с вашей стороны.

Как защититься от поддельных наград офферволла? Зачисляйте каждый id награды один раз на своей стороне, а для строгих проектов включите расширенный режим: бэкенд проверяет хеш награды и генерирует подтверждающий хеш с секретным ключом проекта до подтверждения.


Rewarded-видео, межстраничная реклама и офферволл живут в одном кабинете паблишера, а видеоформаты идут через один и тот же слой медиации рекламы. Добавьте второй источник дохода на giga.pub.