SDK do Unity - Suporte de ligações diretas

Documento

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.


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)

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

Configure seu aplicativo Android para suportar o deep linking por meio da tecnologia Android App Links.

Abra Project > Assets > Plugins > Android > AndroidManifest.xmle actualize o nome da atividade.

Alterar de:

XML
<activity android:name="com.unity3d.player.UnityPlayerActivity"

Alterar para:

XML
<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:

Java
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);
}

Adicione um Intent Filter para oferecer suporte a Android App Links. O valor android:host deve corresponder ao seu domínio Singular Links.

AndroidManifest.xml
<!-- 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.


Configure seu aplicativo iOS para oferecer suporte a links diretos por meio de Universal Links e esquemas de URL personalizados.

  1. Configure o domínio do Singular Links: Configure pelo menos um subdomínio na página Atribuição > Gerenciar linksno Singular
  2. Ativar domínios associados: No Apple Developer Portal, aceda a Identificadores, selecione a sua aplicação e active Domínios associados no menu Capacidades
  3. 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
  4. Configurar o ID da equipa: Copie o seu "Prefixo da aplicação" (ID da equipa) do Portal de programadores da Apple
  5. 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-association para Universal Links

Adicione um esquema de URL personalizado como um fallback quando os Universal Links não puderem funcionar.

  1. Nas Configurações avançadas do aplicativo iOS do Singular (abaixo da ID da equipe), insira seu esquema de aplicativo iOS
  2. 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.


Configure o SingularLinkHandler para processar os dados de entrada do deep link e do deferred deep link quando seu aplicativo for iniciado.

  1. Adicione a interface SingularLinkHandler à sua classe principal ou crie uma classe dedicada e anexe-a ao SingularSDKObject
  2. Adicione a diretiva Singular na parte superior do seu script: using Singular;
  3. Implemente a interface SingularLinkHandler na sua classe
  4. Chame SetSingularLinkHandler() para registar o manipulador (recomendado na função Awake() )
  5. Substitua OnSingularLinkResolved() para processar os parâmetros do deep link
C#
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.


O SingularLinkHandler se comporta de maneira diferente, dependendo se o aplicativo foi instalado recentemente ou se já está instalado.

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:

  1. O usuário clica em um link de rastreamento da Singular configurado com um valor de deep link
  2. O usuário instala e abre o aplicativo pela primeira vez
  3. O Singular SDK envia a primeira sessão para os servidores Singular
  4. A atribuição é concluída e identifica o deep link a partir do link de rastreamento
  5. O valor do deep link retorna para o SingularLinkHandler no parâmetro deeplink com isDeferred = true

Testando Deep Links adiados:

  1. Desinstale o aplicativo do dispositivo de teste (se estiver instalado atualmente)
  2. iOS: Redefinir seu IDFA. Android:Redefina seu ID de publicidade do Google (GAID)
  3. Clique no link de rastreamento Singular do dispositivo (verifique se ele está configurado com um valor de link profundo)
  4. 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.


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:

  1. O usuário clica em um link de rastreamento Singular
  2. O sistema operacional fornece um URL aberto contendo todo o link de rastreamento Singular
  3. Durante a inicialização do SDK, a Singular analisa a URL
  4. Singular extrai os valores deeplink e passthrough
  5. Os valores retornam através do SingularLinkHandler com isDeferred = false

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.


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"