SDK do Unity - Suporte de links curtos de referência

Criação de links de referência curtos

Gere links de referência curtos e compartilháveis que permitem a atribuição de usuário a usuário e rastreiam instalações de aplicativos a partir de referências orgânicas.

Requisito de versão: Esta funcionalidade requer a versão 1.0.0 ou superior do SDK. Os links curtos permanecem ativos por 30 dias após a criação.

Os links curtos transformam os Singular Links longos e cheios de parâmetros em URLs compactos e seguros, convenientes para compartilhar por SMS, redes sociais ou convites no aplicativo.

Crie links curtos de forma dinâmica para que os usuários possam compartilhá-los com amigos e convidá-los a baixar e utilizar o seu aplicativo. Cada link curto rastreia o usuário que o referiu, permitindo-lhe medir o crescimento viral e atribuir novas instalações a defensores específicos.


Reúna estes elementos antes de criar um link curto de referência:

  • Link único: Um link de rastreamento básico que direciona os usuários para o download do seu aplicativo. Consulte as Perguntas frequentes sobre links singularespara obter instruções de configuração
  • Parâmetros dinâmicos: Parâmetros personalizados opcionais para adicionar contexto ao link. Veja as opções disponíveis em Parâmetros do link de rastreamento
  • Informações do referenciador: Nome e ID do usuário que compartilha o link para permitir a atribuição de novas instalações ao referenciador

Gera um link de referência curto com parâmetros personalizados e um manipulador de retorno de chamada para estados de sucesso e erro.

Assinatura do método:

public static void createReferrerShortLink(
    string baseLink,
    string referrerName,
    string referrerId,
    Dictionary<string, string> parameters,
    Action<string, string> callback
)

Parâmetros:

  • baseLink: O URL original do link de rastreamento Singular
  • referrerName: Nome de exibição do usuário de referência
  • referrerId: Identificador único para o usuário de referência
  • parameters: Dicionário que contém parâmetros dinâmicos adicionais (opcional, passe null se não houver nenhum)
  • callback: Função de retorno de chamada com parâmetros (string shortLinkURL, string error)

Criar um link curto com parâmetros personalizados e implementar a lógica de compartilhamento na chamada de retorno de sucesso.

C#
using UnityEngine;
using Singular;
using System.Collections.Generic;

public class ReferralManager : MonoBehaviour
{
    public void ShareReferralLink()
    {
        // Create custom parameters for the link
        Dictionary<string, string> parameters = new Dictionary<string, string>()
        {
            { "channel", "sms" },
            { "campaign_id", "summer_promo_2025" },
            { "referral_type", "friend_invite" }
        };

        // Generate the short referrer link
        SingularSDK.createReferrerShortLink(
            "https://sample.sng.link/D52wc/cuvk?pcn=test",  // Base Singular Link
            "John Doe",                                      // Referrer name
            "user_12345",                                    // Referrer ID
            parameters,                                      // Custom parameters
            OnShortLinkCreated                               // Callback
        );
    }

    // Callback method that receives the short link URL or error
    private void OnShortLinkCreated(string shortLinkURL, string error)
    {
        if (!string.IsNullOrEmpty(shortLinkURL))
        {
            // Success - short link was created
            Debug.Log($"Generated short link: {shortLinkURL}");

            // Share the link using your preferred sharing method
            ShareLink(shortLinkURL);
        }
        else if (!string.IsNullOrEmpty(error))
        {
            // Error occurred during link creation
            Debug.LogError($"Error creating short link: {error}");

            // Handle error - retry or show user feedback
            ShowErrorMessage("Failed to create share link. Please try again.");
        }
    }

    private void ShareLink(string shortLinkURL)
    {
        // Example: Use Unity's native share functionality
        string shareMessage = $"Join me on this awesome app! {shortLinkURL}";

        #if UNITY_ANDROID
        ShareOnAndroid(shareMessage);
        #elif UNITY_IOS
        ShareOnIOS(shareMessage);
        #else
        // Fallback: Copy to clipboard
        GUIUtility.systemCopyBuffer = shortLinkURL;
        Debug.Log("Link copied to clipboard");
        #endif
    }

    #if UNITY_ANDROID
    private void ShareOnAndroid(string message)
    {
        using (AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent"))
        using (AndroidJavaObject intentObject = new AndroidJavaObject("android.content.Intent"))
        {
            intentObject.Call<AndroidJavaObject>("setAction", intentClass.GetStatic<string>("ACTION_SEND"));
            intentObject.Call<AndroidJavaObject>("setType", "text/plain");
            intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_TEXT"), message);

            using (AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
            using (AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject>("currentActivity"))
            {
                AndroidJavaObject chooser = intentClass.CallStatic<AndroidJavaObject>(
                    "createChooser", intentObject, "Share via"
                );
                currentActivity.Call("startActivity", chooser);
            }
        }
    }
    #endif

    #if UNITY_IOS
    private void ShareOnIOS(string message)
    {
        // iOS native sharing implementation
        // You can use a plugin like NativeShare or implement UIActivityViewController
        Debug.Log($"Sharing on iOS: {message}");
    }
    #endif

    private void ShowErrorMessage(string message)
    {
        // Your UI error display logic
        Debug.LogWarning(message);
    }
}

Implemente um tratamento de erros robusto na resposta de chamada para gerenciar falhas de rede, parâmetros inválidos ou problemas de servidor.

  • Lógica de repetição: Implementar backoff exponencial para erros de rede transitórios
  • Feedback do usuário: Exibir mensagens de erro claras quando a criação de links falhar
  • Opção de retorno: Fornecer métodos de compartilhamento alternativos (por exemplo, compartilhar a Singular Link completa se a criação de um link curto falhar)
  • Validação: Verificar os parâmetros antes de chamar createReferrerShortLink para detectar problemas antecipadamente

Aproveite as informações do referenciador para criar loops virais e medir o crescimento orgânico.

Melhores práticas: Utilize IDs de referenciador consistentes que correspondam ao seu sistema interno de identificação de usuários. Isto permite-lhe:

  • Atribuir novas instalações a usuários de referência específicos
  • Recompensar os usuários por referências bem sucedidas
  • Acompanhar o coeficiente viral e as métricas do fator K
  • Identificar os seus defensores de marca mais valiosos

Planeie o ciclo de vida do link de 30 dias na sua estratégia de compartilhamento.

Importante: Os links curtos expiram ao fim de 30 dias. Para campanhas de longo prazo ou funcionalidades de compartilhamento persistentes, gere periodicamente novos links curtos ou utilize o Link Singular completo como alternativa.


Permita que os usuários convidem amigos diretamente do seu aplicativo com links de referência personalizados.

  • Sistema de recompensa: Acompanhe as referências e recompense os usuários por inscrições bem sucedidas de amigos
  • Compartilhamento social: Integração com folhas de compartilhamento nativas da plataforma para SMS, WhatsApp, e-mail e redes sociais
  • Convites pessoais: Inclua o nome do referenciador na mensagem compartilhada para personalização

Crie links compartilháveis quando os usuários geram conteúdos que querem compartilhar com outros.

  • Atribuição de conteúdo: Acompanhe qual conteúdo gera mais instalações de aplicativos
  • Reconhecimento do criador: Atribuir novos usuários a criadores de conteúdos para gamificação
  • Marcação de campanhas: Adicionar parâmetros dinâmicos com base no tipo ou categoria de conteúdo

Gerar links exclusivos para convites de eventos que monitorizam os participantes que trazem novos usuários.

  • Contexto do evento: Incluir ID e detalhes do evento nos parâmetros do link
  • Acompanhamento de participantes: Medir a propagação viral de evento para evento
  • Efeitos de rede: Identificar eventos com as taxas de conversão mais elevadas