Criar Dynamic Links com o Unity

É possível criar Dynamic Links 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:

  • registrar seu projeto do Unity e configurá-lo para usar o Firebase.

    • Se o projeto do Unity já usa o Firebase, 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 exemplo.

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

Adicionar o Firebase ao 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 mover para o projeto do Unity.

Definir um prefixo URI para 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 Dynamic Links, faça isso quando solicitado.

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

  3. Recomendado: especifique os padrões de URL permitidos nos links diretos e de fallback. Ao fazer isso, você evita que pessoas não autorizadas criem Dynamic Links 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 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 link dinâmico único de forma fácil.

Domínios personalizados

Para ter maior controle sobre o branding do Dynamic Links, 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 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.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.ShortDynamicLink 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.