Usar e configurar deeplinks em emails e SMS deeplinks
Os Deeplinks ajudam a levar recipients de um email ou mensagem SMS para uma tela específica ou conteúdo no aplicativo móvel. Isso ajuda a trazer as pessoas diretamente para a experiência no aplicativo desejada, sem encaminhá-las por um navegador da Web ou uma loja de aplicativos, para que a jornada permaneça relevante e sob a marca.
Quando os destinatários clicam no link profundo, eles são direcionados ao conteúdo pretendido no aplicativo - desde que você tenha concluído as etapas de configuração detalhadas nesta página, que abrange:
- Como configurar deeplinks para emails no Journey Optimizer
- Como implementar o tratamento de deep link para iOS e Android em seu aplicativo móvel
/ee/v1/mclick/*) para garantir compatibilidade e rastreamento de cliques.Criação de deeplinks authoring
Email authoring-email
Para mensagens de email, você tem duas opções para inserir um deep link:
-
Designer de email: verifique se o rastreamento de links está habilitado. Selecione o elemento que deseja vincular (texto, botão ou imagem), clique em Inserir link na barra de ferramentas contextual e escolha Deeplink para inserir sua URL de deeplink. Saiba mais sobre como inserir links
-
Editor do Personalization (código): insira o deep link diretamente na HTML usando o seguinte trecho:
code language-html <a class="arc-link" data-nl-type="DEEPLINK" href="<<deeplink_url>>" id="acr-link-7821368" style="text-decoration:underline;" target="_blank" data-tracking-type="DEEPLINK">Click Here</a>Substitua
<<deeplink_url>>pela URL de deep link real e use umidexclusivo para cada bloco para evitar conflitos.
SMS authoring-sms
Para SMS, os deeplinks são criados usando a função auxiliar Url no editor de personalização. Saiba mais sobre como adicionar links ao conteúdo de SMS nesta seção.
Para inserir deeplinks no conteúdo de SMS, use a seguinte sintaxe:
{{url originalUrl='<<url>>' type='DEEPLINK' action='CLICK'}}
Substitua <<url>> pela URL de deeplink real.
Configuração no Journey Optimizer configuration
Para usar deeplinks em emails e SMS em seus aplicativos móveis, conclua as etapas de configuração abaixo.
-
No Journey Optimizer, delegue o subdomínio em que o deeplinking está ativado. Saiba mais
-
Hospede o arquivo AASA para o iOS e o arquivo assetLinks.json para o Android no subdomínio. Entre em contato com o Atendimento ao cliente da Adobe ou com o representante da Adobe com os detalhes abaixo:
-
Para o iOS (AASA):
- Subdomínio delegado
- ID do pacote do aplicativo
-
Para o Android (assetLinks.json):
- Subdomínio delegado
- ID do pacote do aplicativo
- Impressão digital do certificado SHA-256
-
/ee/v1/mclick/*, que a Adobe hospeda e resolve.Implementação do aplicativo móvel mobile-implementation
Esta seção explica como implementar deeplinks móveis com Adobe Journey Optimizer para que, em uma configuração típica de HTTPS (links universais e links de aplicativos), uma única URL possa:
- Abra uma tela específica dentro do aplicativo móvel quando o aplicativo estiver instalado ou
- Abra o site como um fallback quando o aplicativo não estiver instalado.
Quando o rastreamento de links é habilitado para sua mensagem, o Journey Optimizer continua a rastrear esses cliques, os inclui nos relatórios e pode usá-los em experimentos de conteúdo se você executá-los na mensagem.
Esta seção fornece padrões comuns de implementação para deeplinks. A configuração exata depende da arquitetura do aplicativo e da estrutura de roteamento.
iOS (Links universais) ios-implementation
-
No Xcode, selecione seu destino por meio de Assinatura e Recursos > + Recurso > Domínios Associados.
-
Adicione entradas para subdomínios delegados, por exemplo:
code language-text applinks:www.mybusiness.com applinks:data.email.mybusiness.com -
Gerencie Links universais no aplicativo e obtenha o link original do cabeçalho de resposta.
accordion Exemplo: iOS 13+ com cenas code language-swift class SceneDelegate: UIResponder, UIWindowSceneDelegate { func scene(_ scene: UIScene, continue userActivity: NSUserActivity) { guard userActivity.activityType == NSUserActivityTypeBrowsingWeb, let incomingURL = userActivity.webpageURL else { return } handleUniversalLink(url: incomingURL) } private func handleUniversalLink(url: URL) { // Only handle AJO tracked mobile clicks guard url.host == "data.email.mybusiness.com", url.path.hasPrefix("/ee/v1/mclick") else { // Could also handle direct www.mybusiness.com links here return } resolveTrackedUrlAndRoute(url) } private func resolveTrackedUrlAndRoute(_ trackedUrl: URL) { var request = URLRequest(url: trackedUrl) request.httpMethod = "GET" URLSession.shared.dataTask(with: request) { _, response, error in guard error == nil, let httpResponse = response as? HTTPURLResponse, let locationValue = httpResponse.allHeaderFields["Location"] as? String, let finalUrl = URL(string: locationValue) else { return } DispatchQueue.main.async { self.routeToDestination(finalUrl) } }.resume() } private func routeToDestination(_ url: URL) { // Example: map URL paths to screens // https://www.mybusiness.com/dashboard/offers/coupons // → OffersViewController for Coupons } }
mclick e ler o cabeçalho Location e, em seguida, rotear com base na URL final.mclick no Safari; que anula a finalidade do deeplinking.Android (Links de aplicativo) android-implementation
-
Adicione o filtro de intenção Link do aplicativo no aplicativo Android.
code language-xml <activity android:name=".DeepLinkActivity" android:exported="true"> <intent-filter android:autoVerify="true"> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="https" android:host="data.email.mybusiness.com" android:pathPrefix="/ee/v1/mclick" /> </intent-filter> </activity> -
Implemente o manipulador de deep link.
accordion Em Kotlin: code language-kotlin class DeepLinkActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val trackedUri = intent?.data if (trackedUri == null || trackedUri.host != "data.email.mybusiness.com" || !trackedUri.path.orEmpty().startsWith("/ee/v1/mclick")) { finish() return } resolveTrackedUrlAndRoute(trackedUri) } private fun resolveTrackedUrlAndRoute(trackedUri: Uri) { lifecycleScope.launch(Dispatchers.IO) { try { val finalUrl = followRedirect(trackedUri.toString()) withContext(Dispatchers.Main) { routeToDestination(finalUrl) finish() } } catch (e: Exception) { // Optionally log error, fallback to browser finish() } } } private fun followRedirect(trackedUrl: String): Uri { val client = OkHttpClient.Builder() .followRedirects(false) // We want to read Location ourselves .build() val request = Request.Builder() .url(trackedUrl) .get() .build() client.newCall(request).execute().use { response -> val location = response.header("Location") ?: throw IllegalStateException("Missing Location header") return Uri.parse(location) } } private fun routeToDestination(finalUri: Uri) { // Example: interpret https://www.mybusiness.com/dashboard/offers/coupons // and open the correct Activity / Fragment } }
mclick e usar o cabeçalho Location para determinar o destino final.followRedirects(false) para controlar o tratamento do redirecionamento e registrar a análise com precisão, se necessário.Práticas recomendadas deeplink-best-practices
- Usar caminhos estáveis: prefira rotas resilientes às alterações na interface do usuário do aplicativo (por exemplo
/account/ordersem vez de/tab/3/view/2). - Conta para caminhos rastreados: quando o rastreamento de link está habilitado, o link clicado pode usar padrões de caminho rastreado (por exemplo,
/ee/v1/mclick/). Verifique se o roteador pode analisar o URL final após resolver o link rastreado. - Manter parâmetros previsíveis: defina um esquema de parâmetros consistente (por exemplo,
?orderId=12345). - Evite dados confidenciais nas URLs: não coloque segredos ou dados pessoais diretamente na URL de deep link.
- Testar seu deeplink: envie uma prova e clique no deeplink de um dispositivo onde o aplicativo esteja instalado.
- Validar em dispositivos reais: links universais e comportamentos de resolução de links rastreados são mais confiáveis para validação em dispositivos físicos do que em simuladores.
- Validar o roteamento do lado do aplicativo: se o link direto não abrir a tela esperada, valide o roteamento do lado do aplicativo e o formato da URL (host/caminho/consulta e codificação de URL).
- Lembre-se da inicialização do aplicativo: o comportamento Links de Aplicativo/Links Universais é mais confiável depois que o aplicativo é instalado e aberto pelo menos uma vez.
Solução de problemas e perguntas frequentes troubleshooting-faq
- Verifique se a URL corresponde ao host e aos padrões de caminho com os quais seu aplicativo está registrado para lidar, incluindo caminhos de cliques rastreados quando o rastreamento de link está habilitado (por exemplo, caminhos em
/ee/v1/mclick/). - Para links universais do iOS e links de aplicativos do Android, confirme se a associação de domínio (AASA /
assetlinks.json) está configurada e acessível corretamente. - Testar em um dispositivo real (simuladores/emuladores podem se comportar de forma diferente para associação de link).
- Confirme se o roteador do lado do aplicativo analisa corretamente o caminho/consulta do URL.
- Verificar codificação do URL: os caracteres reservados devem ser codificados por URL.
- Valide os nomes e os valores dos parâmetros de acordo com o que o roteador espera.
- Se o mesmo URL HTTPS puder ser fornecido pelo seu site, o link poderá abrir uma página da Web como um fallback quando o aplicativo não estiver instalado (configure o destino e o roteamento da Web de acordo).
-
Crie uma prova com um deeplink, clique nele em dispositivos iOS e Android (cenários instalados e não instalados).
-
Validar:
- O valor final do email ou link de SMS (host/caminho/query)
- A associação no nível do sistema operacional (se estiver usando links universais/links de aplicativos)
- O resultado do roteamento no aplicativo
assetlinks.json para cada subdomínio que deve dar suporte ao recurso.appname://path)?appname://path), mas a abordagem recomendada é um link universal ou link de aplicativo (https://), que corresponde à configuração baseada em HTTPS nas seções de configuração e implementação desta página.Location quando o aplicativo executa um GET na URL do mclick, para que você possa usá-los para análises no aplicativo./ee/v1/click/ URLs?mclick descrito nesta página.