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-воронку по чек-листу выше, если она у вас есть.