Adicionando suporte a Deep Linking
As ligações diretas são URLs que direcionam os utilizadores para conteúdos específicos dentro de uma aplicação. Quando um utilizador toca numa hiperligação num dispositivo onde a aplicação já está instalada, a aplicação abre-se diretamente para a página do produto ou experiência pretendida. Os links de rastreamento singulares suportam links diretos e links diretos adiados. Para obter mais detalhes, consulte nossas Perguntas frequentes sobre links diretos e Perguntas frequentes sobre links singulares.
Requisitos
-
Para habilitar links diretos para seu aplicativo, certifique-se de concluir os Pré-requisitos do Singular Links.
-
Implementar o manipulador de links singulares
O Singular Link Handler fornece um mecanismo de callback para recuperar parâmetros de deep link (_dl), deferred deep link (_ddl) e passthrough (_p) de um link de rastreamento Singular. Estes parâmetros são passados quando a aplicação é aberta (se já estiver instalada) ou depois de a aplicação ser instalada.
Atualizar o objeto SingularConfig
Adicione o retorno de chamada SingularLinkHandler ao objeto SingularConfig durante a inicialização do SDK para manipular os dados de entrada do deep link e do deep link adiado.
private void initSingularSDK() {
SingularConfig config = new SingularConfig("SDK KEY", "SDK SECRET")
.withSingularLink(getIntent(), new SingularLinkHandler() {
@Override
public void onResolved(SingularLinkParams params) {
String deeplink = params.getDeeplink();
String passthrough = params.getPassthrough();
boolean isDeferred = params.isDeferred();
Log.d("SingularLink", "Deeplink: " + (deeplink != null ? deeplink : "null"));
Log.d("SingularLink", "Passthrough: " + (passthrough != null ? passthrough : "null"));
Log.d("SingularLink", "Is Deferred: " + isDeferred);
}
});
try {
Singular.init(getApplicationContext(), config);
Log.d("Singular", "SDK initialized successfully");
} catch (Exception e) {
Log.e("Singular", "SDK initialization failed: " + e.getMessage());
}
}
private fun initSingularSDK() {
val config = SingularConfig("SDK KEY", "SDK SECRET")
.withSingularLink(intent) { params ->
val deeplink = params.deeplink
val passthrough = params.passthrough
val isDeferred = params.isDeferred
Log.d("SingularLink", "Deeplink: ${deeplink ?: "null"}")
Log.d("SingularLink", "Passthrough: ${passthrough ?: "null"}")
Log.d("SingularLink", "Is Deferred: $isDeferred")
}
try {
Singular.init(applicationContext, config)
Log.d("Singular", "SDK initialized successfully")
} catch (e: Exception) {
Log.e("Singular", "SDK initialization failed: ${e.message}")
}
}
Observação: O SingularLinkHandler é acionado somente quando o aplicativo é aberto por meio de um Singular Link. Para obter mais informações, consulte as (consulte as Perguntas frequentes sobre links singulares).
Notas sobre o comportamento do SingularLinkHandler:
-
Em uma nova instalação, não há uma URL aberta quando o aplicativo é iniciado. Portanto, o Singular deve concluir a atribuição ao último ponto de contato e determinar se o link de rastreamento continha um valor configurado de Deep Link ou Deferred Deep Link (DDL). Esse processo ocorre quando o SDK da Singular envia a primeira sessão para os servidores da Singular. Se aplicável, o valor do deep link é retornado para o SingularLinkHandler do SDK e apresentado no parâmetro "deeplink".
Para testar esse cenário:
- Desinstale a aplicação do dispositivo (se estiver atualmente instalada).
- Reponha o seu Google Advertising ID (GAID).
- Clique na ligação de seguimento Singular a partir do dispositivo. Certifique-se de que o link de rastreamento Singular está configurado com um valor de link profundo.
- Instale e abra a aplicação.
Dica profissional: Ao testar links diretos ou links diretos adiados em uma versão de desenvolvimento do seu aplicativo com um nome de pacote diferente (por exemplo, com.example.dev em vez de com.example.prod), certifique-se de que o link de rastreamento esteja configurado especificamente para o nome do pacote do aplicativo de desenvolvimento, e não para o do aplicativo de produção. Além disso, depois de clicar no link de teste no seu dispositivo, instale a compilação de desenvolvimento diretamente no dispositivo de teste (por exemplo, através do Android Studio ou de um APK) em vez de transferir a aplicação de produção a partir da loja de aplicações.
A atribuição deve ser concluída com êxito e o valor DDL será passado para o aplicativo.
- Se um parâmetro passthrough (_p) for incluído no link de rastreamento, o parâmetro de passagem do SingularLinkHandler conterá os dados correspondentes. Isso é útil para capturar dados adicionais do clique no aplicativo.
- Para capturar todos os parâmetros de consulta do URL do link de rastreamento, anexe o parâmetro _forward_params=2 ao link de rastreamento. Todos os parâmetros de consulta serão incluídos no parâmetro deeplink do SingularLinkHandler.
- Se o aplicativo já estiver instalado, clicar em um Singular Link abrirá o aplicativo. A Singular usa a tecnologia Android App Links para fazer isso. O sistema operacional Android fornecerá uma URL aberta contendo todo o link de rastreamento do Singular. Durante a inicialização do SDK, o Singular SDK analisará o Android Intent, extrairá os valores de deeplink e passthrough e os retornará através do SingularLinkHandler.