[{"data":1,"prerenderedAt":735},["ShallowReactive",2],{"blog-/ru/blog/offerwall-for-telegram-mini-apps":3},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"date":10,"author":11,"cover":12,"ogImage":12,"tags":13,"draft":6,"faq":18,"body":34,"_type":729,"_id":730,"_source":731,"_file":732,"_stem":733,"_extension":734},"/ru/blog/offerwall-for-telegram-mini-apps","blog",false,"","Офферволл для Telegram Mini Apps: второй источник дохода поверх rewarded-видео","Офферволл платит за выполненное задание, а не за просмотр: второй источник дохода рядом с rewarded-видео в Telegram Mini App. Как он устроен и как его подключить.","2026-09-22","Команда GigaPub","/og-image.png",[14,15,16,17],"telegram-mini-apps","офферволл","монетизация","sdk",[19,22,25,28,31],{"q":20,"a":21},"Что такое офферволл в Telegram Mini App?","Офферволл — экран внутри приложения со списком заданий от рекламодателей: подписаться на канал, открыть другой мини-апп, зарегистрироваться в сервисе. Пользователь выполняет задание и получает внутриигровую награду; рекламодатель платит за выполненное действие, и вы зарабатываете на нём. В отличие от видеорекламы, за просмотры здесь никто не платит.",{"q":23,"a":24},"Заменяет ли офферволл rewarded-видео?","Нет, он его дополняет. Rewarded-видео закрывает момент, когда пользователю нужен небольшой бонус прямо сейчас; офферволл — момент, когда пользователь хочет много внутриигровой валюты и готов потратить несколько минут на задание. Форматы достигают разных пользователей в разные моменты и не каннибализируют друг друга.",{"q":26,"a":27},"Как пользователь получает награду из офферволла?","Когда задание выполнено, OfferWall SDK GigaPub отправляет событие rewardClaim с id пользователя, суммой и id награды. Ваше приложение зачисляет награду и вызывает sdk.confirmReward(rewardId, hash). Награды, полученные пока приложение было закрыто, можно забрать при следующем запуске через sdk.pending().",{"q":29,"a":30},"Можно ли показывать задания в своём интерфейсе вместо встроенного офферволла?","Да. sdk.getOffers() возвращает доступные и активные задания с названием, описанием, иконкой и размером награды, а sdk.openOffer(offerId) открывает конкретное задание напрямую. Встроенный iframe через sdk.open() — вариант без дизайна с вашей стороны.",{"q":32,"a":33},"Как защититься от поддельных наград офферволла?","Зачисляйте каждый id награды ровно один раз (идемпотентно) на своей стороне, а для строгих проектов включите расширенный режим: ваш бэкенд проверяет хеш награды и генерирует подтверждающий хеш с секретным ключом проекта до того, как награда будет подтверждена.",{"type":35,"children":36,"toc":719},"root",[37,45,51,60,110,117,122,127,133,138,143,176,190,196,354,360,365,396,402,407,417,429,439,450,458,467,497,503,508,571,599,605,614,623,654,685,694,698],{"type":38,"tag":39,"props":40,"children":42},"element","h1",{"id":41},"офферволл-для-telegram-mini-apps-второй-источник-дохода-поверх-rewarded-видео",[43],{"type":44,"value":8},"text",{"type":38,"tag":46,"props":47,"children":48},"p",{},[49],{"type":44,"value":50},"Офферволл — это экран внутри приложения со списком заданий от рекламодателей: подписаться\nна канал, открыть другой мини-апп, зарегистрироваться в сервисе. Пользователь выполняет\nзадание и получает внутриигровую награду; рекламодатель платит за выполненное действие, и вы\nзарабатываете на нём. Это второй источник дохода, который большинство Telegram Mini Apps\nоставляют на столе после того, как подключили rewarded-видео. GigaPub — рекламная сеть и\nплатформа медиации рекламы для Telegram Mini Apps, и её OfferWall SDK добавляет этот\nисточник одним скриптом-загрузчиком и одним обработчиком события.",{"type":38,"tag":46,"props":52,"children":53},{},[54],{"type":38,"tag":55,"props":56,"children":57},"strong",{},[58],{"type":44,"value":59},"Коротко",{"type":38,"tag":61,"props":62,"children":63},"ul",{},[64,70,75,97],{"type":38,"tag":65,"props":66,"children":67},"li",{},[68],{"type":44,"value":69},"Офферволл платит за выполненное действие, а не за просмотр — его доход не зависит ни от\nfill rate видео, ни от eCPM.",{"type":38,"tag":65,"props":71,"children":72},{},[73],{"type":44,"value":74},"Он не конкурирует с rewarded-видео: другой момент, другое намерение пользователя, никакой\nрекламной усталости.",{"type":38,"tag":65,"props":76,"children":77},{},[78,80,87,89,95],{"type":44,"value":79},"Интеграция в три шага: загрузить SDK, обработать событие ",{"type":38,"tag":81,"props":82,"children":84},"code",{"className":83},[],[85],{"type":44,"value":86},"rewardClaim",{"type":44,"value":88},", открыть стену по\nкнопке. Кнопку показывать только когда ",{"type":38,"tag":81,"props":90,"children":92},{"className":91},[],[93],{"type":44,"value":94},"hasOffers()",{"type":44,"value":96}," возвращает true.",{"type":38,"tag":65,"props":98,"children":99},{},[100,102,108],{"type":44,"value":101},"Не терять награды: вызывать ",{"type":38,"tag":81,"props":103,"children":105},{"className":104},[],[106],{"type":44,"value":107},"pending()",{"type":44,"value":109}," при запуске и зачислять каждый id награды ровно\nодин раз.",{"type":38,"tag":111,"props":112,"children":114},"h2",{"id":113},"что-такое-офферволл-и-за-что-вам-платят",[115],{"type":44,"value":116},"Что такое офферволл и за что вам платят?",{"type":38,"tag":46,"props":118,"children":119},{},[120],{"type":44,"value":121},"Офферволл — каталог заданий рекламодателей внутри вашего приложения, у каждого — награда в\nвашей валюте. Пользователь выбирает задание, выполняет его, и ваше приложение зачисляет\nнаграду. Платят вам за выполненное действие — подписку, установку, регистрацию, — а не за\nпоказ списка и не за просмотр.",{"type":38,"tag":46,"props":123,"children":124},{},[125],{"type":44,"value":126},"Это меняет экономику по сравнению с видеорекламой. Rewarded-видео приносит небольшую\nфиксированную сумму за просмотр и зависит от того, есть ли что показать; задание офферволла\nприносит доход, когда пользователь делает то, что ценно рекламодателю, — независимо от\nтого, как сегодня выглядит видеоспрос на ваши страны.",{"type":38,"tag":111,"props":128,"children":130},{"id":129},"почему-офферволл-не-конкурирует-с-rewarded-видео",[131],{"type":44,"value":132},"Почему офферволл не конкурирует с rewarded-видео?",{"type":38,"tag":46,"props":134,"children":135},{},[136],{"type":44,"value":137},"Потому что закрывает другой момент. Rewarded-видео — кнопка «мне нужна ещё одна жизнь\nпрямо сейчас»: 15–30 секунд за небольшую награду. Офферволл — экран «хочу много монет»:\nпользователь сам решает потратить несколько минут на задание ради награды размером во много\nпросмотров видео.",{"type":38,"tag":46,"props":139,"children":140},{},[141],{"type":44,"value":142},"Из этого следуют три вещи:",{"type":38,"tag":61,"props":144,"children":145},{},[146,156,166],{"type":38,"tag":65,"props":147,"children":148},{},[149,154],{"type":38,"tag":55,"props":150,"children":151},{},[152],{"type":44,"value":153},"Нет рекламной усталости.",{"type":44,"value":155}," Ничего не показывается, пока пользователь не откроет стену.\nЛимиты частоты и тревоги за удержание, справедливые для межстраничной рекламы, здесь не\nработают — формат добровольный дважды: сначала стена, потом задание.",{"type":38,"tag":65,"props":157,"children":158},{},[159,164],{"type":38,"tag":55,"props":160,"children":161},{},[162],{"type":44,"value":163},"Другие пользователи.",{"type":44,"value":165}," Часть аудитории никогда не смотрит рекламу, но охотно подпишется\nна канал за большой бонус. Офферволл часто единственный доход, который вы с них получаете.",{"type":38,"tag":65,"props":167,"children":168},{},[169,174],{"type":38,"tag":55,"props":170,"children":171},{},[172],{"type":44,"value":173},"Независимость от заполнения.",{"type":44,"value":175}," Если видеоспрос на страну тонкий, задания в стене всё\nравно есть. Два потока отказывают независимо — ровно то, что нужно от второго источника.",{"type":38,"tag":46,"props":177,"children":178},{},[179,181,188],{"type":44,"value":180},"Как в одном приложении уживаются rewarded-видео и межстраничная реклама — в статье\n",{"type":38,"tag":182,"props":183,"children":185},"a",{"href":184},"/ru/blog/rewarded-vs-interstitial-ads",[186],{"type":44,"value":187},"rewarded-видео против межстраничной рекламы",{"type":44,"value":189},".",{"type":38,"tag":111,"props":191,"children":193},{"id":192},"rewarded-видео-против-офферволла",[194],{"type":44,"value":195},"Rewarded-видео против офферволла",{"type":38,"tag":197,"props":198,"children":199},"table",{},[200,222],{"type":38,"tag":201,"props":202,"children":203},"thead",{},[204],{"type":38,"tag":205,"props":206,"children":207},"tr",{},[208,212,217],{"type":38,"tag":209,"props":210,"children":211},"th",{},[],{"type":38,"tag":209,"props":213,"children":214},{},[215],{"type":44,"value":216},"Rewarded-видео",{"type":38,"tag":209,"props":218,"children":219},{},[220],{"type":44,"value":221},"Офферволл",{"type":38,"tag":223,"props":224,"children":225},"tbody",{},[226,245,263,281,299,317],{"type":38,"tag":205,"props":227,"children":228},{},[229,235,240],{"type":38,"tag":230,"props":231,"children":232},"td",{},[233],{"type":44,"value":234},"За что платят",{"type":38,"tag":230,"props":236,"children":237},{},[238],{"type":44,"value":239},"за показ рекламы",{"type":38,"tag":230,"props":241,"children":242},{},[243],{"type":44,"value":244},"за выполненное действие",{"type":38,"tag":205,"props":246,"children":247},{},[248,253,258],{"type":38,"tag":230,"props":249,"children":250},{},[251],{"type":44,"value":252},"Кто инициирует",{"type":38,"tag":230,"props":254,"children":255},{},[256],{"type":44,"value":257},"пользователь нажимает «посмотреть рекламу»",{"type":38,"tag":230,"props":259,"children":260},{},[261],{"type":44,"value":262},"пользователь открывает список заданий",{"type":38,"tag":205,"props":264,"children":265},{},[266,271,276],{"type":38,"tag":230,"props":267,"children":268},{},[269],{"type":44,"value":270},"Типичный момент",{"type":38,"tag":230,"props":272,"children":273},{},[274],{"type":44,"value":275},"нужен небольшой бонус сейчас",{"type":38,"tag":230,"props":277,"children":278},{},[279],{"type":44,"value":280},"хочется много валюты сразу",{"type":38,"tag":205,"props":282,"children":283},{},[284,289,294],{"type":38,"tag":230,"props":285,"children":286},{},[287],{"type":44,"value":288},"Размер награды",{"type":38,"tag":230,"props":290,"children":291},{},[292],{"type":44,"value":293},"небольшой, фиксированный за просмотр",{"type":38,"tag":230,"props":295,"children":296},{},[297],{"type":44,"value":298},"больше, зависит от задания",{"type":38,"tag":205,"props":300,"children":301},{},[302,307,312],{"type":38,"tag":230,"props":303,"children":304},{},[305],{"type":44,"value":306},"Зависит от fill rate видео",{"type":38,"tag":230,"props":308,"children":309},{},[310],{"type":44,"value":311},"да",{"type":38,"tag":230,"props":313,"children":314},{},[315],{"type":44,"value":316},"нет",{"type":38,"tag":205,"props":318,"children":319},{},[320,325,336],{"type":38,"tag":230,"props":321,"children":322},{},[323],{"type":44,"value":324},"Работа разработчика",{"type":38,"tag":230,"props":326,"children":327},{},[328,330],{"type":44,"value":329},"один вызов ",{"type":38,"tag":81,"props":331,"children":333},{"className":332},[],[334],{"type":44,"value":335},"showGiga()",{"type":38,"tag":230,"props":337,"children":338},{},[339,341,346,348],{"type":44,"value":340},"загрузчик, обработчик ",{"type":38,"tag":81,"props":342,"children":344},{"className":343},[],[345],{"type":44,"value":86},{"type":44,"value":347},", ",{"type":38,"tag":81,"props":349,"children":351},{"className":350},[],[352],{"type":44,"value":353},"open()",{"type":38,"tag":111,"props":355,"children":357},{"id":356},"куда-ставить-кнопку-офферволла",[358],{"type":44,"value":359},"Куда ставить кнопку офферволла?",{"type":38,"tag":46,"props":361,"children":362},{},[363],{"type":44,"value":364},"Рядом с балансом, в магазине — там, куда пользователь смотрит, когда валюта кончилась:\nкнопка «Бесплатные монеты» или «Заработать». Работает при двух правилах:",{"type":38,"tag":61,"props":366,"children":367},{},[368,386],{"type":38,"tag":65,"props":369,"children":370},{},[371,376,378,384],{"type":38,"tag":55,"props":372,"children":373},{},[374],{"type":44,"value":375},"Показывайте кнопку, только если за ней что-то есть.",{"type":44,"value":377}," ",{"type":38,"tag":81,"props":379,"children":381},{"className":380},[],[382],{"type":44,"value":383},"sdk.hasOffers()",{"type":44,"value":385}," говорит, есть ли\nу текущего пользователя доступные задания; пустая стена хуже, чем отсутствие кнопки.",{"type":38,"tag":65,"props":387,"children":388},{},[389,394],{"type":38,"tag":55,"props":390,"children":391},{},[392],{"type":44,"value":393},"Не прячьте её.",{"type":44,"value":395}," Стена в один тап от места, где пользователь ощущает нехватку,\nзарабатывает; стена в пяти тапах в настройках — нет.",{"type":38,"tag":111,"props":397,"children":399},{"id":398},"как-подключить-offerwall-sdk-gigapub",[400],{"type":44,"value":401},"Как подключить OfferWall SDK GigaPub?",{"type":38,"tag":46,"props":403,"children":404},{},[405],{"type":44,"value":406},"Три шага. Создайте офферволл в кабинете паблишера, чтобы получить его project id, затем:",{"type":38,"tag":46,"props":408,"children":409},{},[410,415],{"type":38,"tag":55,"props":411,"children":412},{},[413],{"type":44,"value":414},"1. Добавьте загрузчик.",{"type":44,"value":416}," Его отдаёт бэкенд, и он сам выбирает оптимальный CDN по региону\nпользователя.",{"type":38,"tag":418,"props":419,"children":424},"pre",{"className":420,"code":422,"language":423,"meta":7},[421],"language-html","\u003Cscript src=\"https://wall.giga.pub/api/v1/loader.js?projectId=YOUR_PROJECT_ID\">\u003C/script>\n","html",[425],{"type":38,"tag":81,"props":426,"children":427},{"__ignoreMap":7},[428],{"type":44,"value":422},{"type":38,"tag":46,"props":430,"children":431},{},[432,437],{"type":38,"tag":55,"props":433,"children":434},{},[435],{"type":44,"value":436},"2. Инициализируйте SDK и обработайте получение награды.",{"type":44,"value":438}," Очередь колбэков делает код\nбезопасным даже при асинхронной загрузке скрипта.",{"type":38,"tag":418,"props":440,"children":445},{"className":441,"code":443,"language":444,"meta":7},[442],"language-js","(window.loadGigaSDKCallbacks || (window.loadGigaSDKCallbacks = [])).push(() => {\n  window.loadOfferWallSDK({ projectId: 'YOUR_PROJECT_ID' })\n    .then((sdk) => {\n      window.gigaOfferWallSDK = sdk\n\n      sdk.on('rewardClaim', async (data) => {\n        // data: { rewardId, userId, projectId, hash, amount, description }\n        await creditUserReward(data.userId, data.amount) // ваша система\n        sdk.confirmReward(data.rewardId, data.hash)\n      })\n    })\n    .catch((error) => console.error('OfferWall SDK не загрузился', error))\n})\n","js",[446],{"type":38,"tag":81,"props":447,"children":448},{"__ignoreMap":7},[449],{"type":44,"value":443},{"type":38,"tag":46,"props":451,"children":452},{},[453],{"type":38,"tag":55,"props":454,"children":455},{},[456],{"type":44,"value":457},"3. Откройте стену по кнопке.",{"type":38,"tag":418,"props":459,"children":462},{"className":460,"code":461,"language":444,"meta":7},[442],"document.getElementById('rewards-button').addEventListener('click', () => {\n  if (window.gigaOfferWallSDK?.hasOffers())\n    window.gigaOfferWallSDK.open()\n})\n",[463],{"type":38,"tag":81,"props":464,"children":465},{"__ignoreMap":7},[466],{"type":44,"value":461},{"type":38,"tag":46,"props":468,"children":469},{},[470,472,478,480,486,488,496],{"type":44,"value":471},"Это вся интеграция. Если задания хочется рисовать в своём интерфейсе, ",{"type":38,"tag":81,"props":473,"children":475},{"className":474},[],[476],{"type":44,"value":477},"sdk.getOffers()",{"type":44,"value":479},"\nвозвращает доступные и активные задания с названием, иконкой и размером награды, а\n",{"type":38,"tag":81,"props":481,"children":483},{"className":482},[],[484],{"type":44,"value":485},"sdk.openOffer(offerId)",{"type":44,"value":487}," открывает конкретное. Полный справочник, включая варианты для React\nи TypeScript, — в ",{"type":38,"tag":182,"props":489,"children":493},{"href":490,"rel":491},"https://docs.giga.pub/integration-offerwall-guide.html",[492],"nofollow",[494],{"type":44,"value":495},"гайде по быстрой интеграции OfferWall",{"type":44,"value":189},{"type":38,"tag":111,"props":498,"children":500},{"id":499},"как-не-потерять-награду-и-не-получить-поддельную",[501],{"type":44,"value":502},"Как не потерять награду — и не получить поддельную?",{"type":38,"tag":46,"props":504,"children":505},{},[506],{"type":44,"value":507},"Задание часто выполняется вне вашего приложения — в другом мини-аппе, в канале, — поэтому\nпользователь может вернуться, когда сессия, в которой он открыл стену, давно завершилась.\nТри привычки, чтобы награды доходили правильно:",{"type":38,"tag":61,"props":509,"children":510},{},[511,536,553],{"type":38,"tag":65,"props":512,"children":513},{},[514,519,520,526,528,534],{"type":38,"tag":55,"props":515,"children":516},{},[517],{"type":44,"value":518},"Забирайте отложенные награды при запуске.",{"type":44,"value":377},{"type":38,"tag":81,"props":521,"children":523},{"className":522},[],[524],{"type":44,"value":525},"await sdk.pending()",{"type":44,"value":527}," возвращает награды,\nкоторые получены, но ещё не подтверждены; зачислите их и вызовите ",{"type":38,"tag":81,"props":529,"children":531},{"className":530},[],[532],{"type":44,"value":533},"confirmReward",{"type":44,"value":535}," для\nкаждой. Уведомление «у вас есть незабранные награды» при возвращении — приятная деталь.",{"type":38,"tag":65,"props":537,"children":538},{},[539,544,546,551],{"type":38,"tag":55,"props":540,"children":541},{},[542],{"type":44,"value":543},"Зачисляйте каждый id награды ровно один раз.",{"type":44,"value":545}," Храните обработанные id и считайте\nповторный ",{"type":38,"tag":81,"props":547,"children":549},{"className":548},[],[550],{"type":44,"value":86},{"type":44,"value":552}," с тем же id уже выполненным. Повторный вызов подтверждения\nбезопасен; двойное зачисление — нет.",{"type":38,"tag":65,"props":554,"children":555},{},[556,561,563,570],{"type":38,"tag":55,"props":557,"children":558},{},[559],{"type":44,"value":560},"Включите расширенный режим, если ставки высоки.",{"type":44,"value":562}," По умолчанию поток выше работает как\nесть. Для проектов со строгими требованиями можно включить серверную проверку хеша: ваш\nбэкенд проверяет входящий хеш награды и генерирует подтверждающий хеш с секретным ключом\nпроекта до подтверждения. См.\n",{"type":38,"tag":182,"props":564,"children":567},{"href":565,"rel":566},"https://docs.giga.pub/offerwall-advanced-usage.html",[492],[568],{"type":44,"value":569},"серверную проверку хеша",{"type":44,"value":189},{"type":38,"tag":46,"props":572,"children":573},{},[574,576,582,584,590,592,597],{"type":44,"value":575},"SDK также отправляет события ",{"type":38,"tag":81,"props":577,"children":579},{"className":578},[],[580],{"type":44,"value":581},"opened",{"type":44,"value":583}," и ",{"type":38,"tag":81,"props":585,"children":587},{"className":586},[],[588],{"type":44,"value":589},"closed",{"type":44,"value":591}," — обновляйте баланс пользователя по\n",{"type":38,"tag":81,"props":593,"children":595},{"className":594},[],[596],{"type":44,"value":589},{"type":44,"value":598},", чтобы награда, зачисленная пока стена была открыта, была видна сразу после\nвозвращения в игру.",{"type":38,"tag":111,"props":600,"children":602},{"id":601},"faq",[603],{"type":44,"value":604},"FAQ",{"type":38,"tag":46,"props":606,"children":607},{},[608,612],{"type":38,"tag":55,"props":609,"children":610},{},[611],{"type":44,"value":20},{"type":44,"value":613},"\nЭкран внутри приложения со списком заданий от рекламодателей — подписаться на канал, открыть\nдругой мини-апп, зарегистрироваться в сервисе. Пользователь выполняет задание и получает\nвнутриигровую награду; рекламодатель платит за выполненное действие, и вы зарабатываете на\nнём. За просмотры никто не платит.",{"type":38,"tag":46,"props":615,"children":616},{},[617,621],{"type":38,"tag":55,"props":618,"children":619},{},[620],{"type":44,"value":23},{"type":44,"value":622},"\nНет, дополняет. Rewarded-видео закрывает момент, когда пользователю нужен небольшой бонус\nпрямо сейчас; офферволл — момент, когда пользователь хочет много валюты и готов потратить\nнесколько минут на задание. Форматы не каннибализируют друг друга.",{"type":38,"tag":46,"props":624,"children":625},{},[626,630,632,637,639,645,647,653],{"type":38,"tag":55,"props":627,"children":628},{},[629],{"type":44,"value":26},{"type":44,"value":631},"\nКогда задание выполнено, SDK отправляет событие ",{"type":38,"tag":81,"props":633,"children":635},{"className":634},[],[636],{"type":44,"value":86},{"type":44,"value":638}," с id пользователя, суммой и id\nнаграды. Приложение зачисляет награду и вызывает ",{"type":38,"tag":81,"props":640,"children":642},{"className":641},[],[643],{"type":44,"value":644},"sdk.confirmReward(rewardId, hash)",{"type":44,"value":646},". Награды,\nполученные пока приложение было закрыто, забираются при следующем запуске через\n",{"type":38,"tag":81,"props":648,"children":650},{"className":649},[],[651],{"type":44,"value":652},"sdk.pending()",{"type":44,"value":189},{"type":38,"tag":46,"props":655,"children":656},{},[657,661,663,668,670,675,677,683],{"type":38,"tag":55,"props":658,"children":659},{},[660],{"type":44,"value":29},{"type":44,"value":662},"\nДа. ",{"type":38,"tag":81,"props":664,"children":666},{"className":665},[],[667],{"type":44,"value":477},{"type":44,"value":669}," возвращает доступные и активные задания, а ",{"type":38,"tag":81,"props":671,"children":673},{"className":672},[],[674],{"type":44,"value":485},{"type":44,"value":676},"\nоткрывает конкретное напрямую. Встроенная стена через ",{"type":38,"tag":81,"props":678,"children":680},{"className":679},[],[681],{"type":44,"value":682},"sdk.open()",{"type":44,"value":684}," — вариант без дизайна с\nвашей стороны.",{"type":38,"tag":46,"props":686,"children":687},{},[688,692],{"type":38,"tag":55,"props":689,"children":690},{},[691],{"type":44,"value":32},{"type":44,"value":693},"\nЗачисляйте каждый id награды один раз на своей стороне, а для строгих проектов включите\nрасширенный режим: бэкенд проверяет хеш награды и генерирует подтверждающий хеш с секретным\nключом проекта до подтверждения.",{"type":38,"tag":695,"props":696,"children":697},"hr",{},[],{"type":38,"tag":46,"props":699,"children":700},{},[701,703,709,711,718],{"type":44,"value":702},"Rewarded-видео, межстраничная реклама и офферволл живут в одном кабинете паблишера, а\nвидеоформаты идут через один и тот же слой ",{"type":38,"tag":182,"props":704,"children":706},{"href":705},"/ru/blog/how-ad-mediation-works",[707],{"type":44,"value":708},"медиации рекламы",{"type":44,"value":710},".\nДобавьте второй источник дохода на ",{"type":38,"tag":182,"props":712,"children":715},{"href":713,"rel":714},"https://giga.pub",[492],[716],{"type":44,"value":717},"giga.pub",{"type":44,"value":189},{"title":7,"searchDepth":720,"depth":720,"links":721},2,[722,723,724,725,726,727,728],{"id":113,"depth":720,"text":116},{"id":129,"depth":720,"text":132},{"id":192,"depth":720,"text":195},{"id":356,"depth":720,"text":359},{"id":398,"depth":720,"text":401},{"id":499,"depth":720,"text":502},{"id":601,"depth":720,"text":604},"markdown","content:ru:blog:offerwall-for-telegram-mini-apps.md","content","ru/blog/offerwall-for-telegram-mini-apps.md","ru/blog/offerwall-for-telegram-mini-apps","md",1790073279661]