Pesquisa original
O que acontece com um link de app aberto dentro do Instagram e do TikTok: 74,000 redirecionamentos medidos
Pré-carregamentos que ninguém vê, um webview do TikTok que recusa a loja e uma App Store que abre por cima da página: o que mostram nossos logs de redirecionamento.
Publicado em · Adrien De Coster
Resposta curta
De 74,713 chegadas Android vindas de navegadores in-app em 30 dias, 9.1% eram páginas que o Instagram ou o Facebook carregou em segundo plano e descartou cerca de 30 segundos depois, sem que ninguém as visse. Dentro do TikTok no Android, a Play Store abrir ou não depende do webview que o TikTok usa: um formato de user-agent chegou à loja em 85% das sessões, outros dois em 12–14%, nos mesmos links e nos mesmos dias. No iOS, o Instagram e o Facebook abrem a App Store por cima do navegador in-app, então a página nunca vai para segundo plano, e uma taxa de abertura da loja medida a partir da página fica em 13–56% mesmo quando o redirecionamento funcionou.
Estes números vêm dos logs de redirecionamento de um serviço de links inteligentes: uma URL que manda o celular para a App Store ou para o Google Play. Toda vez que um link é aberto dentro de um app social, servimos uma pequena página que encaminha o visitante para a loja, e essa página informa o que aconteceu em seguida. Abaixo está o que esses relatos dizem, como os medimos e onde a medição para.
Os dados
| Período | O quê | Volume |
|---|---|---|
| 30 dias até 2026-10-12 | Chegadas Android vindas de navegadores in-app, reconstrução por sessão | 74,713 |
| 2026-09-27 → 2026-10-26 | Carregamentos de página in-app, todas as plataformas | 109,253 |
| 2026-10-20 → 2026-10-26 | O mesmo, reconstruído em sessões para as tabelas de funil | 30,535 |
| 2026-10-16 → 2026-10-26 | Pré-carregamentos classificados pela própria página | 1,679 |
| 90 dias até 2026-10-15, depois 30 dias até 2026-10-26 | TikTok no Android, sessões por formato de webview | 73 + 1,247 |
| Navegador in-app | Android | iOS |
|---|---|---|
| 50,161 | 16,675 | |
| 27,911 | 9,441 | |
| TikTok | 3,755 | 1,219 |
| Navegador comum (302 simples, para comparação) | 24,185 | 24,627 |
Duas coisas chamam a atenção antes de qualquer análise. Os apps da Meta mandam muito mais tráfego que o TikTok. E, no Android, mais de três quartos de todas as chegadas vêm de um navegador in-app, não do Chrome.
Como a página informa o que aconteceu
Quando um link é aberto dentro de um navegador in-app, a página faz três coisas e envia um beacon para cada uma:
auto: ela inicia o encaminhamento para a loja ao carregar (iOS:location.replacepara a URL da App Store; Android: uma URLintent://que abre o app nativo da Play Store).exit: a página fica oculta (Page Visibility API). É o melhor sinal que uma página web tem de que outra coisa, muito provavelmente a loja, tomou conta da tela.stuck: a página ainda está visível 2.2 segundos depois do encaminhamento, então revela um cartão de reserva com um botão da loja, uma dica “abra no seu navegador” e um botão para copiar o link.
Uma página web não enxerga a App Store nem a Play Store. Tudo o que vem abaixo é inferido desses três sinais, e a seção de limites diz onde essa inferência deixa de valer.
Descoberta 1: cerca de 1 em cada 11 chegadas Android da Meta é um pré-carregamento que ninguém viu
Nos 30 dias até 12 de outubro, um grupo nítido de sessões Android se comportou como nenhuma visita humana se comportaria: a página carregou, o timer de encaminhamento nunca rodou e a página foi destruída 29 a 31 segundos depois. Nenhum auto, nenhum stuck, nenhum toque. O iOS não mostrou nada parecido.
Essa é a assinatura do navegador in-app do Instagram e do Facebook pré-carregando um link que está no feed, mantendo-o oculto e jogando-o fora quando o usuário continua rolando. A página executou nosso JavaScript, então a chegada foi registrada. Ninguém jamais olhou para ela.
| População | Chegadas | Pré-carregamentos | Participação |
|---|---|---|---|
| Todas as chegadas, todas as plataformas | 139,199 | 6,790 | 4.9% |
| Android | 95,648 | 6,790 | 7.1% |
| Android in-app | 74,713 | 6,790 | 9.1% |
| Android in-app, sem o maior link | — | — | 4.9% |
| O link individual mais afetado | 35,337 | 4,864 | 13.8% |
Testamos o critério em sessões claramente humanas: 0 de 17,606 sessões em que a loja abriu 2–3 s depois do encaminhamento se encaixaram nele, e 0 de 244 sessões em que alguém tocou no botão da loja também não.
A participação varia de semana para semana: 6.8% na última semana desse período, e 8.8%, 10.6% e 10.0% nas semanas anteriores. Ela também se concentra onde rodam campanhas pagas no Instagram: 72% dos pré-carregamentos do período vieram de um único link por trás de uma grande campanha no Instagram.
Desde 16 de outubro, a própria página classifica isso em tempo de execução: ela informa um pré-carregamento em vez de uma saída quando morre depois de pelo menos 20 s sem nunca ter sido exibida. Eis o que ela captou desde então:
| Navegador in-app | Carregamentos de página | Pré-carregamentos | Participação |
|---|---|---|---|
| Instagram, Android | 15,100 | 1,152 | 7.6% |
| Facebook, Android | 19,830 | 477 | 2.4% |
| TikTok, Android | 3,648 | 1 | 0.03% |
| Instagram, iOS | 5,965 | 45 | 0.8% |
| Facebook, iOS | 6,134 | 4 | 0.07% |
Essa contagem em tempo de execução é um piso. Um pré-carregamento que morre sem executar nenhum script não deixa beacon, e a regra em tempo de execução é mais rígida que a reconstrução histórica.
Por que isso importa. Se você conta cliques no seu redirecionamento, mais ou menos um em cada 13 “cliques” do Instagram no Android nunca foi visto por uma pessoa. Sua taxa de clique para instalação nesse canal parece pior do que é, e um dashboard de campanha baseado em acessos brutos ao redirecionamento superestima o alcance mais ou menos nessa proporção.
Descoberta 2: o TikTok recusa a Play Store dependendo do webview que usa
Dentro do TikTok no Android, parte dos visitantes nunca sai da página: o encaminhamento dispara e o TikTok mostra o próprio diálogo (“The action cannot be completed”). Não acontece em todo link e, por semanas, pareceu depender do link. Não depende. Depende do navegador in-app que o TikTok usa para aquele visitante, e o user-agent o denuncia:
| Formato | Forma do user-agent |
|---|---|
| A | … Chrome/151 Mobile Safari/537.36 musical_ly_46.8.3 |
| B | Version/4.0 … musical_ly_2024509000 JsSdk/1.0 … BytedanceWebview |
| C | Version/4.0 … musical_ly_2024701040 AppName/musical_ly ByteLocale/… |
Uma sessão conta como sucesso quando o encaminhamento disparou e a página ficou oculta, e como falha quando o cartão de reserva apareceu. A taxa é sucesso / (sucesso + falha), por aparelho e por dia:
| Formato | 90 dias até 2026-10-15 | 30 dias, 2026-09-27 → 10-26 |
|---|---|---|
| A | 23 / 26 (88%) | 827 / 969 (85%) |
| B | 0 / 17 (0%) | 34 / 245 (14%) |
| C | 5 / 30 (17%) | 4 / 33 (12%) |
A comparação que resolve a questão mantém o link e o dia constantes, já que a mistura de formatos muda de semana para semana:
| Link | Formato A | Formato B |
|---|---|---|
| Link 1 | 560 / 674 (83%) | 32 / 192 (17%) |
| Link 2 | 257 / 285 (90%) | 2 / 47 (4%) |
Mesmo link, mesmo código de redirecionamento, mesmo dia: um webview deixa a loja abrir e o outro, na maioria das vezes, não. Domínios próprios não fizeram diferença nos dados de 90 dias. O TikTok não documenta o diálogo, o que o dispara nem quais usuários recebem qual webview, então a divisão por user-agent é tudo o que existe.
Por que isso importa. Nenhum formato de URL resolve isso: a saída por intent:// e uma URL https://play.google.com simples recebem a mesma recusa. O que você pode fazer é não esconder a saída: dentro do TikTok, mostre na hora as instruções “abrir no navegador” e um botão de copiar, em vez de esperar um tempo limite.
Descoberta 3: no iOS, a App Store abre por cima do navegador in-app
No Android, depois do encaminhamento, a página fica oculta na maioria das sessões, normalmente 1 a 3 segundos depois. No iOS, dentro do Instagram e do Facebook, muitas vezes isso não acontece, mesmo com o encaminhamento disparado em quase todas as sessões:
| Navegador in-app | Carregamentos de página | Encaminhamento disparado | Ficou oculta | …em até 4 s | Visível em 2.2 s |
|---|---|---|---|---|---|
| Instagram, Android | 7,190 | 77.5% | 90.0% | 75.9% | 47.6% |
| Facebook, Android | 13,600 | 72.4% | 73.8% | 39.6% | 77.8% |
| TikTok, Android | 2,920 | 47.1% | 85.2% | 79.5% | 7.6% |
| Instagram, iOS | 2,881 | 94.6% | 55.9% | 41.7% | 64.2% |
| Facebook, iOS | 3,078 | 87.0% | 13.1% | 7.9% | 65.6% |
| TikTok, iOS | 866 | 93.8% | 50.5% | 23.8% | 75.2% |
Se dois terços dos visitantes de iOS estivessem mesmo presos diante de um cartão de reserva visível com um botão “Abrir a App Store”, uma boa parte tocaria nele. Não é o que acontece: 0.9% dos carregamentos de página no Instagram iOS e 0.4% no Facebook iOS tocam no botão. Também não existe versão do iOS em que isso “funcione”:
| Versão principal do iOS | Sessões com encaminhamento | Página ficou oculta |
|---|---|---|
| 16 | 127 | 24.4% |
| 17 | 106 | 33.0% |
| 18 | 958 | 33.3% |
| 26 | 3,711 | 39.3% |
| 27 | 1,249 | 34.3% |
A explicação que se encaixa é que, dentro do Instagram e do Facebook no iOS, a App Store aparece por cima do navegador in-app sem mandá-lo para segundo plano. A página continua “visível” o tempo todo, então visibilitychange e pagehide nunca disparam, mesmo com o visitante olhando para a App Store.
Por que isso importa. Qualquer métrica que deduz a abertura da loja pelo fato de a página sair da tela está errada no iOS. Nós mostrávamos aos clientes uma porcentagem de “alcance da loja” calculada exatamente assim, e ela dizia a 10 de 12 clientes pagantes que links que funcionavam estavam quebrados. Nós a removemos. No iOS, o sinal de instalação confiável fica do lado da loja: os relatórios de campanha do App Store Connect, com um provider token (pt) e um campaign token (ct) na URL da App Store.
Coisas menores que medimos pelo caminho
- A Play Store demora a aparecer no Android. Nas sessões do Instagram no Android em que o encaminhamento disparou, a página ficou oculta 0–1 s depois da chegada em 1,061 sessões, 2–3 s depois em 2,596 e 4–8 s depois em 1,273 (7 dias). Um timer de 2 segundos que pergunta “funcionou?” dispara antes de a loja aparecer em boa parte dos sucessos reais. Nosso próprio funil contava esses casos como falhas até passarmos a aceitar uma saída até 8 s depois do encaminhamento.
- A taxa real de falha é pequena. Em 7,357 sessões do Instagram no Android reconstruídas ao longo de 3 dias no começo de outubro, o padrão “encaminhamento, depois nada” foi 1.9% das sessões, e 24.3% desses visitantes tocaram de novo no link em até 3 minutos. Visitantes cuja sessão mostrou o cartão de reserva tocaram de novo em 5.4% dos casos, mais ou menos como visitantes cuja loja abriu (4.6%): a maioria dessas “falhas” não era falha.
- Exigir um toque custa a maior parte do tráfego. Antes de a página iniciar o encaminhamento ao carregar, ela mostrava um cartão com um botão da loja. Em 30 dias, 10,523 chegadas in-app geraram 2,119 toques: cerca de 80% dos visitantes nunca chegaram à loja.
Método
- Fonte. Cada chegada a um link inteligente e cada beacon da página de encaminhamento são gravados no Cloudflare Workers Analytics Engine com a plataforma, o navegador in-app (a partir do user-agent), o tipo de evento e um timestamp com precisão de segundo. Visitantes cujo user-agent se declara bot, crawler ou gerador de prévia de link são mantidos à parte e excluídos de todos os números aqui.
- Sessões. O Analytics Engine não tem um id de carregamento de página, então as sessões são reconstruídas juntando uma chegada aos beacons que compartilham o mesmo link, país, cidade, user-agent e navegador in-app dentro da hora seguinte, até a próxima chegada com a mesma chave. Cerca de 98% dos beacons se ligam a uma chegada.
- Pré-carregamentos (descoberta 1). Critério histórico: sem encaminhamento, sem cartão de reserva, sem toque e uma saída 20 s a 15 min depois da chegada. Critério em tempo de execução desde 2026-10-16: a página informa um pré-carregamento quando morre depois de pelo menos 20 s sem nunca ter sido exibida e seu timer de encaminhamento nunca rodou (ou ela carregou oculta). O beacon leva um token assinado de uso único, então não dá para reenviá-lo para apagar uma visita real.
- TikTok (descoberta 2). Sessões agrupadas por link, modelo do aparelho, versão do app TikTok e dia. Regra de formato: versão
musical_ly_com pontos → A; senãoJsSdk→ B; senão C. Visitantes de redes de hospedagem são contados à parte e ficam fora da tabela. A nova medição de 30 dias usa o mesmo script da análise original de 90 dias. - Totais usam o intervalo de amostragem do Analytics Engine (2–4% das linhas representam mais de um evento). As tabelas de sessões contam linhas.
Limites
- Nunca vemos a loja. “Ficou oculta” é um indicador de “a loja abriu”. Também dispara quando o visitante troca de app ou bloqueia o celular.
- Os timestamps têm precisão de segundo, e as sessões são reconstruções. Dois carregamentos rápidos do mesmo aparelho podem se fundir.
- Concentração. Alguns links grandes dominam certos períodos: uma campanha no Instagram responde por 72% dos pré-carregamentos de 30 dias, e dois links concentram a maior parte das sessões do TikTok. As tabelas de mesmo link existem por isso.
- Nada aqui foi verificado em um celular físico. Os comportamentos são inferidos do que as páginas informam. A explicação do iOS na descoberta 3 é a que se encaixa nos dados, não algo que vimos acontecer.
- O tráfego é o nosso. São os visitantes dos apps que usam nossos links, com peso forte de campanhas no Instagram e no Facebook em poucos países. Outra mistura dará outras porcentagens, embora os mecanismos devam ser os mesmos.
- Pré-carregamentos que nunca executam JavaScript são invisíveis. 12% dos carregamentos de página do Instagram no Android não enviam beacon nenhum, e parte deles provavelmente também são pré-carregamentos.
O que fazer a respeito
- Inicie o encaminhamento ao carregar. Uma página que espera um toque perde a maioria dos visitantes in-app. Mantenha o botão manual como reserva, exibido só se o encaminhamento falhou de forma visível.
- No Android, use `intent://` com `S.browser_fallback_url`. Uma URL
https://play.google.comdentro de um webview abre o site da Play Store, que não instala nada sem login. - Dê tempo a uma loja lenta. Espere pelo menos 3 s antes de concluir que o encaminhamento falhou, e continue contando uma saída tardia.
- Dentro do TikTok, mostre a saída na hora: “··· → Abrir no navegador” e um botão de copiar o link. Nenhuma mudança na URL faz a recusa do TikTok sumir.
- Não conte pré-carregamentos da Meta como cliques. Se você reporta cliques a partir de um redirecionamento, espere que 2–9% das chegadas Android do Instagram e do Facebook sejam páginas que ninguém viu.
- Meça instalações na loja, com links de campanha do App Store Connect (
pt+ct) no iOS e o Play Install Referrer no Android, não com eventos de página.
Nós construímos o onestore.link, que faz as seis coisas por padrão em todo link, e os dados acima vêm dos logs de redirecionamento dele.
Perguntas e respostas
Que porcentagem dos cliques em links do Instagram no Android são pré-carregamentos?
Nos 30 dias até 2026-10-12, 9.1% das chegadas Android vindas de navegadores in-app (Instagram e Facebook) eram páginas que o app carregou em segundo plano e descartou cerca de 30 segundos depois, sem serem vistas. Desde 2026-10-16, a verificação em tempo de execução da própria página capta 7.6% no Instagram Android e 2.4% no Facebook Android, como piso. No iOS, fica abaixo de 1%.
Por que a Play Store não abre a partir do navegador in-app do TikTok?
O app do TikTok para Android usa vários navegadores in-app. Em um deles (versão musical_ly_ com pontos e sem Version/4.0 no user-agent), 85% das sessões chegaram à Play Store em 30 dias. Nos outros dois (Version/4.0 com JsSdk/BytedanceWebview, ou com AppName/musical_ly), só 12–14% chegaram, nos mesmos links e nos mesmos dias. É o próprio TikTok que recusa o encaminhamento, seja qual for o formato da URL.
Dá para saber por uma página web que a App Store abriu no iOS?
Não dentro do Instagram nem do Facebook. A App Store abre por cima do navegador in-app, então a página nunca fica oculta e visibilitychange não dispara. Em 7 dias, só de 13% (Facebook) a 56% (Instagram) dos encaminhamentos no iOS foram seguidos da página ficando oculta, e menos de 1% dos visitantes tocou no botão de reserva. Os relatórios de campanha do App Store Connect são o sinal confiável.
Quanto tempo a Play Store leva para abrir a partir de um navegador in-app?
No Android, a página fica oculta 2–3 segundos depois do encaminhamento na maioria das sessões bem-sucedidas, e até 8 segundos depois em celulares mais lentos. Um cartão de reserva exibido depois de 2 segundos aparece antes da loja em muitas sessões que estavam prestes a dar certo.
Com que frequência um redirecionamento para a loja de apps falha de verdade dentro do Instagram?
Em 7,357 sessões reconstruídas do Instagram no Android, o padrão de uma falha real (encaminhamento disparado, depois nada, e o visitante toca no link de novo) foi de 1.9%. A maioria das falhas aparentes nos dados brutos de funil são artefatos de medição: beacons perdidos, uma loja lenta ou pré-carregamentos.
Um domínio próprio muda como o TikTok trata um link?
Não. Em 90 dias, links com e sem domínio próprio foram recusados da mesma forma. O que decide é o navegador in-app que o TikTok usa para aquele visitante.