Criar links dinâmicos com o Unity

É possível criar links dinâmicos curtos ou longos com a API Firebase Dynamic Links. Ela usa várias estruturas de parâmetros opcionais para criar links. Links curtos também podem ser criados por meio de um link longo gerado anteriormente. A API Dynamic Links gera um URL como o seguinte:

https://example.page.link/aSDf

Antes de começar

Antes de poder usar o Firebase Dynamic Links, você precisa seguir estas etapas:

  • Registre seu projeto do Unity e configure-o para usar o Firebase.

    • Se o projeto do Unity já usa o Firebase, então ele já está registrado e configurado para essa plataforma.

    • Se você não tiver um projeto do Unity, faça o download de um app de amostra (em inglês).

  • Adicione o SDK do Firebase para Unity (especificamente, FirebaseDynamicLinks.unitypackage) ao seu projeto do Unity.

Adicionar o Firebase ao seu projeto do Unity envolve tarefas no Console do Firebase e no projeto aberto do Unity. Por exemplo, fazer o download dos arquivos de configuração do Firebase no console e movê-los para o projeto do Unity.

Definir um prefixo URI do Dynamic Links

  1. No Console do Firebase, abra a seção Dynamic Links.

  2. Se você ainda não aceitou os Termos de Serviço e definiu um prefixo URI para seu Dynamic Links, faça isso quando solicitado.

    Se você já tem um prefixo URI do Dynamic Links, anote-o, porque ele será necessário ao criar o Dynamic Links de maneira programática.

  3. Recomendado: especifique os padrões de URL permitidos nos seus links diretos e de fallback. Ao fazer isso, você evita que pessoas não autorizadas criem links dinâmicos que redirecionam para sites que você não controla a partir do seu domínio. Consulte Autorizar padrões de URL.

Usar o Console do Firebase

Caso você queira fazer testes ou facilitar a criação de um link dinâmico a ser usado pela sua equipe de marketing em uma postagem de mídia social, acesse o Console do Firebase e siga o formulário passo a passo para gerar um único de forma fácil.

Domínios personalizados

Para ter maior controle sobre o branding do link dinâmico, use seu próprio domínio em vez de um subdomínio goo.gl ou page.link. Siga estas instruções a fim de configurar um domínio personalizado para seu projeto.

Como usar a API Firebase Dynamic Links

Como criar um link dinâmico longo a partir de parâmetros

Para criar um link dinâmico, gere um objeto DynamicLinkComponents, defina qualquer um dos membros opcionais para configuração extra e acesse a propriedade LongDynamicLink para ver o URL do link.

O pequeno exemplo a seguir cria um link dinâmico longo para https://www.example.com/ que pode ser aberto no app para Android, com.example.android no Android e com.example.ios no iOS:

var components = new Firebase.DynamicLinks.DynamicLinkComponents(
        // The base Link.
        new System.Uri("https://www.example.com/"),
        // The dynamic link URI prefix.
        "https://example.page.link") {
  IOSParameters = new Firebase.DynamicLinks.IOSParameters("com.example.ios"),
  AndroidParameters = new Firebase.DynamicLinks.AndroidParameters(
      "com.example.android.package_name"),
};
// do something with: components.LongDynamicLink

Como criar um link dinâmico curto

Para criar um link dinâmico curto, envie um link longo gerado anteriormente para Firebase.DynamicLinks.GetShortLinkAsync ou crie DynamicLinkComponents da mesma maneira indicada acima.

Opcionalmente, GetShortLinkAsync pode ter um parâmetro de configuração adicional DynamicLinkOptions com a propriedade PathLength. Ele permite que você controle como o link será gerado. Para gerar um link curto, é preciso uma solicitação de rede para o back-end do Firebase. Portanto, o método GetShortLinkAsync é executado de maneira assíncrona. GetShortLinkAsync retorna um Task<Firebase.DynamicLinks.ShortDynamicLink>.

Por exemplo:

var options = new Firebase.DynamicLinks.DynamicLinkOptions {
    PathLength = DynamicLinkPathLength.Unguessable
};
Firebase.DynamicLinks.GetShortLinkAsync(components, options).ContinueWith((task) => {
  if (task.IsCanceled) {
    Debug.LogError("GetShortLinkAsync was canceled.");
    return;
  }
  if (task.IsFaulted) {
    Debug.LogError("GetShortLinkAsync encountered an error: " + task.Exception);
    return;
  }

  // Short Link has been created.
  Firebase.DynamicLinks.ShortLink link = task.Result;
  Debug.LogFormat("Generated short link {0}", link.Url));

  var warnings = new System.Collections.Generic.List<string>(link.Warnings);
  if (warnings.Count > 0) {
    // Debug logging for warnings generating the short link.
  }

O exemplo acima usa uma expressão lambda, que é acionada quando a tarefa é concluída.