Adição de suporte para Deep Linking
Os linksdirecionam os usuários para um conteúdo específico dentro do seu aplicativo. Quando os utilizadores tocam numa ligação direta num dispositivo com a sua aplicação instalada, a aplicação abre-se diretamente para o conteúdo pretendido, como uma página de produto ou uma experiência específica.
Os links de rastreamento singulares suportam links diretos padrão (para aplicativos instalados) e links diretos adiados (para novas instalações). Para obter informações abrangentes, consulte as Perguntas frequentes sobre links diretose as Perguntas frequentes sobre links singulares.
Requisitos
Pré-requisitos
Preencha os Pré-requisitos do Singular Linkspara habilitar o deep linking para seu aplicativo.
Observações:
- Este artigo pressupõe que sua organização está usando Singular Links- a tecnologia de link de rastreamento da Singular. Os clientes mais antigos podem estar usando links de rastreamento herdados. Para oferecer suporte ao deep linking com links herdados, consulte a seção Links herdados no final deste guia
- Os destinos de deep link do seu aplicativo precisam ser configurados na página Aplicativos no Singular (consulte Configurando seu aplicativo para rastreamento de atribuição)
Implementar o Singular Links Handler
O SingularLinkHandler fornece um mecanismo de callback para recuperar parâmetros de deep link, deferred deep link e passthrough dos links de rastreamento do Singular quando o aplicativo é aberto.
Parâmetros disponíveis:
- Deep Link (_dl): O URL de destino dentro do seu aplicativo para usuários que clicam no link
- Deep Link diferido (_ddl): O URL de destino para os utilizadores que instalam a aplicação depois de clicarem no link
- Passthrough (_p): Dados personalizados passados através do link de rastreamento para contexto adicional
Configuração da plataforma
Configuração do Android
Configure seu aplicativo Android para suportar o deep linking por meio da tecnologia Android App Links.
Etapa 1: Configurar atividade
Abra Project > Assets > Plugins > Android > AndroidManifest.xmle actualize o nome da atividade.
Alterar de:
<activity android:name="com.unity3d.player.UnityPlayerActivity"
Alterar para:
<activity android:name="com.singular.unitybridge.SingularUnityActivity"
Implementação de atividade personalizada: Se tiver implementado uma atividade personalizada, adicione o seguinte ao método onNewIntent da sua atividade:
import com.singular.unitybridge.SingularUnityBridge;
@Override
protected void onNewIntent(Intent intent) {
setIntent(intent);
// Call this method from your custom activity in onNewIntent
SingularUnityBridge.onNewIntent(intent);
}
Etapa 2: Adicionar filtro de intenção
Adicione um Intent Filter para oferecer suporte a Android App Links. O valor android:host deve corresponder ao seu domínio Singular Links.
<!-- Added Intent Filter for Singular Android Links Deeplinking -->
<!-- Replace example.sng.link with your Singular Links domain -->
<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="http" />
<data android:scheme="https" />
<data android:host="example.sng.link" />
<data android:pathPrefix="/A"/>
<data android:pathPrefix="/B"/>
<data android:pathPrefix="/E"/>
<data android:pathPrefix="/F"/>
</intent-filter>
Complete os Pré-requisitos do Singular Linkspara Androidpara obter instruções detalhadas de configuração.
Configuração do iOS
Configure seu aplicativo iOS para oferecer suporte a links diretos por meio de Universal Links e esquemas de URL personalizados.
Etapa 1: Habilitar Universal Links
- Configure o domínio do Singular Links: Configure pelo menos um subdomínio na página Atribuição > Gerenciar linksno Singular
- Ativar domínios associados: No Apple Developer Portal, aceda a Identificadores, selecione a sua aplicação e active Domínios associados no menu Capacidades
-
Adicionar domínios ao Xcode: No seu projeto Xcode, navegue até Definições do projeto > Capacidades > Domínios associadose adicione os seus domínios de Links do Singular no formato
applinks:yourdomain.sng.link - Configurar o ID da equipa: Copie o seu "Prefixo da aplicação" (ID da equipa) do Portal de programadores da Apple
-
Adicionar a ID da equipa ao Singular: No Singular, vá para Configuração de aplicativos, encontre seu aplicativo, expanda as Configurações avançadas do aplicativo iOS e cole o ID da equipe. Isso permite que o Singular hospede o arquivo
apple-app-site-associationpara Universal Links
Etapa 2: Configurar o esquema de URL (Fallback)
Adicione um esquema de URL personalizado como um fallback quando os Universal Links não puderem funcionar.
- Nas Configurações avançadas do aplicativo iOS do Singular (abaixo da ID da equipe), insira seu esquema de aplicativo iOS
- Registe o esquema da aplicação como um "Tipo de URL" no seu projeto Xcode em Info > Tipos de URL
Para obter informações detalhadas sobre os esquemas de URL do iOS, consulte a documentação do desenvolvedor da Apple.
Configuração do SDK
Adicionar SingularLinkHandler à sua aplicação
Configure o SingularLinkHandler para processar os dados de entrada do deep link e do deferred deep link quando seu aplicativo for iniciado.
Etapas de implementação
- Adicione a interface SingularLinkHandler à sua classe principal ou crie uma classe dedicada e anexe-a ao SingularSDKObject
-
Adicione a diretiva Singular na parte superior do seu script:
using Singular; - Implemente a interface SingularLinkHandler na sua classe
-
Chame
SetSingularLinkHandler()para registar o manipulador (recomendado na funçãoAwake()) -
Substitua
OnSingularLinkResolved()para processar os parâmetros do deep link
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Singular;
public class DeepLinkManager : MonoBehaviour, SingularLinkHandler
{
void Awake()
{
Debug.Log("Registering Singular Link Handler");
// Register this class as the Singular Link handler
// This will fetch the tracking link details and call OnSingularLinkResolved
SingularSDK.SetSingularLinkHandler(this);
}
// Callback method that receives deep link parameters
public void OnSingularLinkResolved(SingularLinkParams linkParams)
{
Debug.Log("Singular Link Resolved");
// Extract parameters from the tracking link
string deeplink = linkParams.Deeplink;
string passthrough = linkParams.Passthrough;
bool isDeferred = linkParams.IsDeferred;
// Log the parameters
Debug.Log($"Deeplink: {deeplink ?? "null"}");
Debug.Log($"Passthrough: {passthrough ?? "null"}");
Debug.Log($"Is Deferred: {isDeferred}");
// Handle deep link routing
if (!string.IsNullOrEmpty(deeplink))
{
HandleDeepLink(deeplink, isDeferred);
}
}
private void HandleDeepLink(string url, bool isDeferred)
{
// Your deep link routing logic here
Debug.Log($"Routing to: {url} (Deferred: {isDeferred})");
// Example: Parse the URL and navigate to the appropriate screen
// if (url.Contains("product"))
// {
// NavigateToProduct(url);
// }
}
}
Observação: O SingularLinkHandler é acionado somente quando o aplicativo é aberto por meio de um Singular Link. Para obter mais informações, consulte as Perguntas frequentes sobre links singulares.
Comportamento do manipulador
Entendendo a execução do SingularLinkHandler
O SingularLinkHandler se comporta de maneira diferente, dependendo se o aplicativo foi instalado recentemente ou se já está instalado.
Instalação recente (Deep Link diferido)
Em uma instalação recente, não existe uma URL aberta quando o aplicativo é iniciado. A Singular completa a atribuição para determinar se o link de rastreamento contém um valor de deep link ou de deferred deep link.
Fluxo de Deep Link Diferido:
- O usuário clica em um link de rastreamento da Singular configurado com um valor de deep link
- O usuário instala e abre o aplicativo pela primeira vez
- O Singular SDK envia a primeira sessão para os servidores Singular
- A atribuição é concluída e identifica o deep link a partir do link de rastreamento
-
O valor do deep link retorna para o SingularLinkHandler no parâmetro
deeplinkcomisDeferred = true
Testando Deep Links adiados:
- Desinstale o aplicativo do dispositivo de teste (se estiver instalado atualmente)
- iOS: Redefinir seu IDFA. Android:Redefina seu ID de publicidade do Google (GAID)
- Clique no link de rastreamento Singular do dispositivo (verifique se ele está configurado com um valor de link profundo)
- Instale e abra o aplicativo
A atribuição deve ser concluída com êxito e o valor do deep link diferido será passado para o SingularLinkHandler.
Dica profissional: Ao testar links diretos com uma compilação de desenvolvimento usando um nome de pacote ou ID de pacote diferente, configure o link de rastreamento especificamente para o identificador do aplicativo de desenvolvimento. Depois de clicar no link de teste, instale a compilação de desenvolvimento diretamente no dispositivo através do Unity ou de ferramentas específicas da plataforma, em vez de transferir a aplicação de produção a partir da loja de aplicações.
Já instalado (link direto imediato)
Quando o aplicativo já está instalado, clicar em um Singular Link abre o aplicativo imediatamente usando a tecnologia Universal Links (iOS) ou Android App Links.
Fluxo imediato do Deep Link:
- O usuário clica em um link de rastreamento Singular
- O sistema operacional fornece um URL aberto contendo todo o link de rastreamento Singular
- Durante a inicialização do SDK, a Singular analisa a URL
-
Singular extrai os valores
deeplinkepassthrough -
Os valores retornam através do SingularLinkHandler com
isDeferred = false
Parâmetros de passagem
Capture dados adicionais do clique no link de rastreamento usando parâmetros de passagem.
Se um parâmetro passthrough (_p) for incluído no link de rastreamento, o parâmetro passthrough do SingularLinkHandler conterá os dados correspondentes. Utilize-o para capturar metadados de campanha, dados de segmentação de utilizadores ou qualquer informação personalizada de que necessite na aplicação.
Encaminhar todos os parâmetros de consulta
Capture todos os parâmetros de consulta do URL do link de rastreamento anexando o parâmetro _forward_params=2.
Quando _forward_params=2 é adicionado ao link de rastreamento, todos os parâmetros de consulta são incluídos no parâmetro deeplink do SingularLinkHandler, dando-lhe acesso ao URL completo com todos os seus parâmetros.
Exemplo de link de rastreamento:
https://yourapp.sng.link/A1b2c/abc123?_dl=myapp://product/123&_forward_params=2&utm_source=facebook&promo=SALE2024
O SingularLinkHandler receberá:
deeplink = "myapp://product/123?utm_source=facebook&promo=SALE2024"