Guia para desenvolvedores

Integração de Deep Linking

Este guia mostra como conectar o app da sua empresa aos smart links da Kelex — em três níveis, do mais simples ao mais completo. Você escolhe até onde ir; cada nível funciona de forma independente.

Você quer...UseEsforço no app
Levar cada clique pra loja certa (iOS/Android) ou siteNível 1 — RedirectNenhum
Abrir o app numa tela específica (quem já tem o app)Nível 2 — URI scheme~15 minutos
Instalou pelo link → abre na tela certa, com atribuição de campanhaNível 3 — SDK~1 hora
Nível 1 nenhum esforço — já funciona

Redirect inteligente

Sem nenhuma alteração no app. Ao criar um smart link no painel com as URLs das lojas (ou um App cadastrado), cada clique é roteado automaticamente:

  • iPhone → App Store
  • Android → Google Play
  • Computador e navegadores de apps (Instagram, WhatsApp) → seu site

Todos os cliques aparecem no analytics — por dia, plataforma, dispositivo e país.

Nível 2 ~15 minutos de um dev mobile

Abrir o app numa tela específica (URI scheme)

Para quem já tem o app instalado, o link pode abrir o aplicativo direto numa tela (ex.: um produto). Basta o app registrar um URI scheme próprio — sem SDK, sem biblioteca.

1. Registre o scheme no app

iOS — Info.plist
<key>CFBundleURLTypes</key>
<array>
  <dict>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>meuapp</string>  <!-- escolha o scheme do seu app -->
    </array>
  </dict>
</array>
Android — AndroidManifest.xml (dentro da MainActivity)
<intent-filter>
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT" />
  <category android:name="android.intent.category.BROWSABLE" />
  <data android:scheme="meuapp" />
</intent-filter>

2. Trate a URL recebida

Quando o link abrir o app, ele recebe a URL (ex.: meuapp://produto/42) pelos mecanismos padrão da plataforma — onOpenURL/application(_:open:) no iOS, getIntent().getData() no Android, Linking no React Native. Leia o caminho e navegue pra tela correspondente.

3. Configure o link no painel

Ao criar o smart link, abra a seção Deep link e preencha Esquema do app (meuapp) e Tela de destino (/produto/42). Pronto: quem tem o app cai direto na tela; os demais seguem o fluxo do Nível 1.

Quando usar: campanhas de re-engajamento (e-mail, push, redes sociais para a sua base). Se a pessoa não tiver o app, o scheme não abre nada — para aquisição de novos usuários com experiência completa, use o Nível 3.

Nível 3 ~1 hora de um dev mobile

Deferred deep linking com SDK (instalou → caiu na tela certa)

O cenário completo de aquisição: a pessoa não tem o app, clica no link, instala pela loja e, ao abrir pela primeira vez, é levada à tela certa — e o install fica atribuído à campanha no analytics. Isso requer o SDK (gratuito, open source, licença MIT).

React Native / Expo

Instalação
npm install @linkforty/mobile-sdk-react-native
npm install @react-native-async-storage/async-storage react-native-device-info
# (Expo: use @linkforty/mobile-sdk-expo)
No boot do app (ex.: App.tsx)
import LinkForty from '@linkforty/mobile-sdk-react-native';

// 1. Inicialize uma única vez, no startup
await LinkForty.init({
  baseUrl: 'https://go.kelex.com.br', // ou seu domínio personalizado
  debug: __DEV__,
});

// 2. Link clicado com o app já instalado
LinkForty.onDeepLink((url, data) => {
  if (data?.customParameters) {
    const { route, id } = data.customParameters;
    navigation.navigate(route, { id });
  }
});

// 3. Primeiro open após instalar pelo link (deferred)
LinkForty.onDeferredDeepLink((data) => {
  if (data?.customParameters) {
    const { route, id } = data.customParameters;
    navigation.navigate(route, { id });
  }
  // sem data = install orgânico (não veio de um link)
});

Os customParameters são definidos por link no painel (campos de deep link) e chegam prontos no callback. A correspondência clique → install usa janela de 7 dias.

iOS / Android nativo (sem SDK): API REST

Apps nativos podem integrar direto pela API pública — uma chamada no primeiro open:

POST https://go.kelex.com.br/api/sdk/v1/install
{
  "userAgent": "<user agent do WebView/dispositivo>",
  "timezone": "America/Sao_Paulo",
  "language": "pt-BR",
  "screenWidth": 390,
  "screenHeight": 844,
  "platform": "iOS",
  "platformVersion": "17.0"
}

// Resposta quando o install veio de um link:
{
  "attributed": true,
  "deepLinkData": {
    "shortCode": "abc123",
    "deepLinkParameters": { "route": "produto", "id": "42" },
    "utmParameters": { "source": "instagram" }
  }
}

Universal Links / App Links (avançado)

Para o app abrir direto ao tocar o link — sem passar pelo navegador nem mostrar prompt — iOS e Android exigem arquivos de verificação publicados no domínio do link, vinculados ao certificado do seu app. Oferecemos essa configuração de forma dedicada por cliente: fale com a gente e configuramos juntos.

Checklist rápido

  • Só redirect pra loja/site? Nada a fazer no app (Nível 1).
  • Abrir tela pra quem já tem o app? Registrar URI scheme + preencher Deep link no painel (Nível 2).
  • Aquisição com atribuição? Instalar o SDK e tratar os dois callbacks (Nível 3).
  • Dúvida na integração? contato@kelex.com.br — respondemos dev-para-dev.