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