🔗onestore.link

Собственное исследование

Что происходит со ссылкой на приложение, открытой внутри Instagram и TikTok: 74,000 измеренных редиректов

Предзагрузки, которых никто не видит, webview TikTok, который не пускает в магазин, и App Store, открывающийся поверх страницы: что показывают наши логи редиректов.

Опубликовано · Adrien De Coster

Коротко

Из 74,713 заходов на Android из встроенных браузеров за 30 дней 9.1% составили страницы, которые Instagram или Facebook загрузили в фоне и выбросили примерно через 30 секунд, так и не показав никому. Внутри TikTok на Android то, откроется ли Play Store, зависит от того, какой webview использует TikTok: с одним форматом user-agent магазин открылся в 85% сессий, с двумя другими — в 12–14%, на тех же ссылках в те же дни. На iOS Instagram и Facebook открывают App Store поверх встроенного браузера, поэтому страница не уходит в фон, и доля открытий магазина, измеренная со страницы, составляет 13–56% даже тогда, когда передача сработала.

Эти цифры взяты из логов редиректов сервиса умных ссылок: один URL, который отправляет телефон в App Store или Google Play. Каждый раз, когда ссылку открывают внутри соцсети, мы отдаём небольшую страницу, которая передаёт посетителя в магазин, и эта страница сообщает, что произошло дальше. Ниже — что говорят эти сообщения, как мы их измеряли и где измерение заканчивается.

Данные

ПериодЧтоОбъём
30 дней до 2026-10-12Заходы на Android из встроенных браузеров, реконструкция по сессиям74,713
2026-09-27 → 2026-10-26Загрузки страницы во встроенных браузерах, все платформы109,253
2026-10-20 → 2026-10-26То же, собранное в сессии для таблиц воронки30,535
2026-10-16 → 2026-10-26Предзагрузки, распознанные самой страницей1,679
90 дней до 2026-10-15, затем 30 дней до 2026-10-26TikTok на Android, сессии по формату webview73 + 1,247
Загрузки страницы во встроенных браузерах, 30 дней до 2026-10-26
Встроенный браузерAndroidiOS
Instagram50,16116,675
Facebook27,9119,441
TikTok3,7551,219
Обычный браузер (простой 302, для сравнения)24,18524,627

Две вещи заметны ещё до всякого анализа. Приложения Meta дают гораздо больше трафика, чем TikTok. А на Android больше трёх четвертей всех заходов идут через встроенный браузер, а не через Chrome.

Как страница сообщает, что произошло

Когда ссылку открывают во встроенном браузере, страница делает три вещи и на каждую отправляет маячок:

Веб-страница не видит ни App Store, ни Play Store. Всё, что ниже, выведено из этих трёх сигналов, а в разделе об ограничениях сказано, где этот вывод перестаёт работать.

Вывод 1: примерно 1 заход из Meta на Android из 11 — предзагрузка, которую никто не видел

За 30 дней до 12 октября чёткая группа сессий на Android вела себя так, как не может вести себя ни один человек: страница загружалась, таймер передачи так и не запускался, а через 29–31 секунду страница уничтожалась. Ни auto, ни stuck, ни нажатия. На iOS ничего похожего не было.

Это почерк встроенного браузера Instagram и Facebook: он заранее загружает ссылку из ленты, держит её скрытой и выбрасывает, когда пользователь пролистывает дальше. Страница выполнила наш JavaScript, поэтому заход записался. Но никто её так и не увидел.

30 дней до 2026-10-12
ВыборкаЗаходыПредзагрузкиДоля
Все заходы, все платформы139,1996,7904.9%
Android95,6486,7907.1%
Android, встроенные браузеры74,7136,7909.1%
Android, встроенные браузеры, без самой крупной ссылки——4.9%
Самая затронутая ссылка35,3374,86413.8%

Мы проверили критерий на сессиях, которые точно были человеческими: ему соответствовали 0 из 17,606 сессий, где магазин открылся через 2–3 с после передачи, и 0 из 244 сессий, где человек нажал кнопку магазина.

Доля меняется от недели к неделе: 6.8% в последнюю неделю периода, затем 8.8%, 10.6% и 10.0% в предыдущие недели. Кроме того, она концентрируется там, где идут платные кампании в Instagram: 72% предзагрузок за период пришлись на одну ссылку за крупной кампанией в Instagram.

С 16 октября страница сама распознаёт это во время работы: она сообщает о предзагрузке вместо выхода, если погибает не раньше чем через 20 с, так ни разу и не показавшись. Вот что она поймала с тех пор:

2026-10-16 → 2026-10-26
Встроенный браузерЗагрузки страницыПредзагрузкиДоля
Instagram, Android15,1001,1527.6%
Facebook, Android19,8304772.4%
TikTok, Android3,64810.03%
Instagram, iOS5,965450.8%
Facebook, iOS6,13440.07%

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

Почему это важно. Если вы считаете клики на своём редиректе, примерно один «клик» из Instagram на Android из 13 ни один человек не видел. Отношение кликов к установкам для этого канала выглядит хуже, чем есть на самом деле, а дашборд кампании, построенный на сырых хитах редиректа, завышает охват примерно на столько же.

Вывод 2: TikTok не пускает в Play Store в зависимости от используемого webview

Внутри TikTok на Android часть посетителей так и не покидает страницу: передача срабатывает, а TikTok показывает свой собственный диалог («The action cannot be completed» — «Действие не может быть выполнено»). Это происходит не на каждой ссылке, и неделями казалось, что всё зависит от ссылки. Нет. Всё зависит от встроенного браузера, который TikTok использует для этого посетителя, и его выдаёт user-agent:

ФорматВид user-agent
A… Chrome/151 Mobile Safari/537.36 musical_ly_46.8.3
BVersion/4.0 … musical_ly_2024509000 JsSdk/1.0 … BytedanceWebview
CVersion/4.0 … musical_ly_2024701040 AppName/musical_ly ByteLocale/…

Сессия считается успешной, если передача сработала и страница стала скрытой, и неудачной, если показалась запасная карточка. Доля — успех / (успех + неудача), по устройству и дню:

Формат90 дней до 2026-10-1530 дней, 2026-09-27 → 10-26
A23 / 26 (88%)827 / 969 (85%)
B0 / 17 (0%)34 / 245 (14%)
C5 / 30 (17%)4 / 33 (12%)

Решающее сравнение фиксирует ссылку и день, поскольку соотношение форматов меняется от недели к неделе:

Та же ссылка, те же дни (30 дней)
СсылкаФормат AФормат B
Ссылка 1560 / 674 (83%)32 / 192 (17%)
Ссылка 2257 / 285 (90%)2 / 47 (4%)

Та же ссылка, тот же код редиректа, тот же день: один webview даёт магазину открыться, другой в основном нет. Собственные домены в данных за 90 дней ничего не меняли. TikTok нигде не документирует ни этот диалог, ни что его вызывает, ни какие пользователи получают какой webview, так что разделение по user-agent — это всё, что есть.

Почему это важно. Никакая форма URL этого не исправит: и выход через intent://, и простой URL https://play.google.com получают один и тот же отказ. Зато можно не прятать выход: внутри TikTok сразу показывайте инструкцию «открыть в браузере» и кнопку копирования, а не после таймаута.

Вывод 3: на iOS App Store открывается поверх встроенного браузера

На Android после передачи страница в большинстве сессий становится скрытой, обычно через 1–3 секунды. На iOS внутри Instagram и Facebook часто нет, хотя передача сработала почти в каждой сессии:

7 дней, 2026-10-20 → 10-26. Столбцы после «Передача сработала» — доли сессий, где она сработала; сессия может быть видна на 2.2 с и стать скрытой позже.
Встроенный браузерЗагрузки страницыПередача сработалаСтала скрытой…в течение 4 сВидна на 2.2 с
Instagram, Android7,19077.5%90.0%75.9%47.6%
Facebook, Android13,60072.4%73.8%39.6%77.8%
TikTok, Android2,92047.1%85.2%79.5%7.6%
Instagram, iOS2,88194.6%55.9%41.7%64.2%
Facebook, iOS3,07887.0%13.1%7.9%65.6%
TikTok, iOS86693.8%50.5%23.8%75.2%

Если бы две трети посетителей на iOS действительно застревали перед видимой запасной карточкой с кнопкой «Открыть App Store», заметная часть нажала бы на неё. Этого не происходит: кнопку нажимают при 0.9% загрузок страницы в Instagram на iOS и при 0.4% загрузок в Facebook на iOS. И нет такой версии iOS, где это «работает»:

Все три приложения, 7 дней
Основная версия iOSСессии с передачейСтраница стала скрытой
1612724.4%
1710633.0%
1895833.3%
263,71139.3%
271,24934.3%

Подходящее объяснение: внутри Instagram и Facebook на iOS App Store появляется поверх встроенного браузера, не отправляя его в фон. Страница всё время остаётся «видимой», поэтому visibilitychange и pagehide не срабатывают, хотя посетитель смотрит на App Store.

Почему это важно. Любая метрика, которая выводит открытие магазина из того, что страница ушла с экрана, на iOS ошибается. Раньше мы показывали клиентам процент «доступности магазина», построенный именно так, и он сообщал 10 из 12 платящих клиентов, что их рабочие ссылки сломаны. Мы его убрали. На iOS надёжный сигнал установки находится на стороне магазина: отчёты о кампаниях App Store Connect с токеном провайдера (pt) и токеном кампании (ct) в URL App Store.

Мелочи, которые мы измерили по пути

Методика

Ограничения

Что с этим делать

  1. Запускайте передачу при загрузке. Страница, которая ждёт нажатия, теряет большинство посетителей из встроенных браузеров. Оставьте ручную кнопку как запасной вариант и показывайте её, только если передача явно не удалась.
  2. На Android используйте `intent://` с `S.browser_fallback_url`. URL https://play.google.com внутри webview открывает сайт Play Store, который без входа в аккаунт ничего установить не может.
  3. Дайте медленному магазину время. Ждите не меньше 3 с, прежде чем решить, что передача не удалась, и всё равно засчитывайте поздний выход.
  4. Внутри TikTok сразу показывайте выход: «··· → Открыть в браузере» и кнопку копирования ссылки. Никакое изменение URL не убирает отказ TikTok.
  5. Не считайте предзагрузки Meta кликами. Если вы считаете клики с редиректа, ожидайте, что 2–9% заходов из Instagram и Facebook на Android — страницы, которых никто не видел.
  6. Измеряйте установки в магазине, а не событиями страницы: ссылками кампаний App Store Connect (pt + ct) на iOS и Play Install Referrer на Android.

Мы делаем onestore.link, который по умолчанию выполняет все шесть пунктов для каждой ссылки, и данные выше взяты из его логов редиректов.

Вопросы и ответы

Какой процент кликов по ссылкам в Instagram на Android — предзагрузки?

За 30 дней до 2026-10-12 9.1% заходов на Android из встроенных браузеров (Instagram и Facebook) были страницами, которые приложение загрузило в фоне и выбросило примерно через 30 секунд, так их и не показав. С 2026-10-16 собственная проверка страницы во время работы ловит 7.6% в Instagram на Android и 2.4% в Facebook на Android — как нижнюю границу. На iOS это меньше 1%.

Почему Play Store не открывается из встроенного браузера TikTok?

Приложение TikTok на Android использует несколько встроенных браузеров. В одном (версия musical_ly_ с точками и без Version/4.0 в user-agent) 85% сессий за 30 дней дошли до Play Store. В двух других (Version/4.0 с JsSdk/BytedanceWebview или с AppName/musical_ly) — только 12–14%, на тех же ссылках в те же дни. TikTok сам отклоняет передачу, какой бы ни была форма URL.

Можно ли по веб-странице понять, что на iOS открылся App Store?

Не внутри Instagram или Facebook. App Store открывается поверх встроенного браузера, поэтому страница никогда не становится скрытой и visibilitychange не срабатывает. За 7 дней лишь за 13% (Facebook) – 56% (Instagram) передач на iOS следовало скрытие страницы, а запасную кнопку нажали меньше 1% посетителей. Надёжный сигнал — отчёты о кампаниях App Store Connect.

Сколько времени нужно Play Store, чтобы открыться из встроенного браузера?

На Android в большинстве успешных сессий страница становится скрытой через 2–3 секунды после передачи, а на медленных телефонах — вплоть до 8 секунд. Запасной вариант, показанный через 2 секунды, во многих сессиях, которые вот-вот завершились бы успехом, появляется раньше магазина.

Как часто редирект в магазин приложений действительно не срабатывает внутри Instagram?

В 7,357 восстановленных сессиях Instagram на Android паттерн настоящей неудачи (передача сработала, потом ничего, и посетитель снова нажимает на ссылку) составил 1.9%. Большинство видимых неудач в сырых данных воронки — артефакты измерения: потерянные маячки, медленный магазин или предзагрузки.

Меняет ли собственный домен то, как TikTok обращается со ссылкой?

Нет. За 90 дней ссылки с собственным доменом и без него отклонялись одинаково. Решает встроенный браузер, который TikTok использует для этого посетителя.

Узнать больше