Origin-захист Mini App: що змінюється 20 липня 2026

З 20 липня 2026 року Telegram автоматично вмикає новий захист для всіх Mini Apps: методи Telegram.WebApp перестають працювати на сторінках, відкритих усередині Mini App з чужого домену. Якщо ваша воронка завершується в Mini App і всередині неї відкриваються оффер, платіжка або проміжна сторінка на іншому домені - перевірте її. Поверхні Leadgram зміна не зачіпає: трекінгові посилання, hosted-лендинг, події та постбеки працюють як працювали.

Що змінюється 20 липня

Bot API 10.2 (анонс 14 липня 2026) посилив безпеку Mini Apps: виклики методів Mini App з origin, відмінного від домену самої Mini App, блокуються. Досі будь-яка сторінка, відкрита всередині webview вашої Mini App, могла смикати Telegram.WebApp.* - розгортати вікно, закривати застосунок, показувати MainButton, надсилати дані боту. З 20 липня це дозволено лише сторінкам на тому домені, на якому Mini App зареєстрована в BotFather. Захист вмикається автоматично для всіх Mini Apps, без жодних дій з вашого боку.

Що при цьому НЕ ламається: сторонні сторінки всередині webview так само відкриваються, звичайні посилання та HTTP-редиректи працюють, t.me-посилання та діплінки живуть своїм життям, серверні події йдуть як раніше. Блокується рівно одне - виклик методів Telegram з чужого домену.

Кого це стосується

Перевіряти воронку потрібно, якщо виконується хоча б одне:

  • Усередині вашої Mini App користувач переходить на сторінки іншого домену - оффер рекламодавця, платіжну сторінку, проміжну сторінку - і ці сторінки викликають Telegram.WebApp.* (типові кандидати: close(), expand(), MainButton, sendData(), openLink(), HapticFeedback).
  • У BotFather як URL вашої Mini App вказано не кінцевий домен застосунку, а редирект: трекер, шортенер, проміжна сторінка. Домен реєстрації і домен, де реально виконується код, не збігатимуться - і методи відваляться в усього застосунку.

Не стосується вас, якщо воронка завершується стартом бота або вступом до каналу, якщо Mini App цілком живе на одному домені, або якщо ви надсилаєте miniapp_launch у Leadgram по S2S - серверні виклики до webview-захисту стосунку не мають.

Не вказуйте трекінгове посилання Leadgram як URL Mini App у BotFather. Наш редирект спрацює, але Mini App опиниться зареєстрованою на домені трекера, і після 20 липня методи Telegram на вашому справжньому домені будуть заблоковані. Для атрибуції запусків передавайте click id через start_param і фіксуйте подію miniapp_launch - як саме, описано в Mini Apps.

Як перевірити свою воронку

  1. Відкрийте свою Mini App у Telegram Desktop або web.telegram.org і пройдіть шлях користувача до кінця - до офферу, платіжки, фінального екрана.
  2. На кожному кроці дивіться на домен сторінки (у desktop-клієнті та вебі доступні DevTools). Випишіть усі домени, відмінні від того, що вказано в BotFather.
  3. Для кожного чужого домену перевірте код сторінки: чи є звернення до window.Telegram.WebApp. Grep по вихідниках на Telegram.WebApp швидший за будь-яке ручне клікання.
  4. Якщо чужих доменів з такими викликами немає - вас це не зачіпає, робити нічого не потрібно.
  5. Якщо є - у вас два шляхи: перенести виклики на зареєстрований домен (правильний) або вимкнути захист (крайній, див. нижче).

Найчастіший безболісний фікс: сторінка на чужому домені викликає лише close() або openLink(). Замініть їх на звичайне посилання https://t.me/... або редирект - поведінка майже та сама, а від WebApp-моста сторінка перестає залежати.

Вимкнення захисту через BotFather

Якщо переробити воронку не встигаєте, Telegram лишив opt-out. Він робиться в Mini App самого BotFather: відкрийте @BotFather, запустіть його Mini App, оберіть потрібного бота і в налаштуваннях Mini App вимкніть origin-захист. Вимикаючи його, ви за умовами Telegram берете на себе відповідальність за те, що всередині вашої Mini App немає посилань на недовірені сайти.

Ставтеся до opt-out як до знеболювального, а не лікування: він повертає поведінку "будь-яка сторінка всередині webview керує застосунком", тобто рівно ту діру, яку Telegram закриває. Правильна цільова картина - усі виклики Telegram.WebApp живуть на зареєстрованому домені, захист увімкнено.

Що з поверхнями Leadgram

Ми перевірили кожну поверхню продукту, що стосується Telegram:

  • Трекінгові посилання та редиректи - серверний 302, ані рядка клієнтського Telegram-коду. Не зачеплені.
  • Hosted-лендинг - доставляє в Telegram через tg:// і t.me-посилання, методів Mini App не використовує. Не зачеплений.
  • Сніпет Mini App - читає лише параметри запуску і надсилає їх на наш бекенд, методів Telegram.WebApp не викликає. Не зачеплений by design, див. Mini Apps.
  • Подія miniapp_launch по S2S - приймається через події API, браузерний захист на неї не впливає. Не зачеплена.
  • Постбеки, CAPI, Флоу - серверні механіки, поза зоною зміни. Не зачеплені.

Нічого переналаштовувати в Leadgram не потрібно. Єдина дія з вашого боку - перевірити власну Mini App-воронку за чек-листом вище, якщо вона у вас є.