Criação de links curtos de referenciador
Gere links curtos de referenciador compartilháveis que habilitam a atribuição de usuário para usuário e rastreiam instalações de aplicativos a partir de referências orgânicas.
Requisito de versão: Esta funcionalidade requer SDK versão 12.1.1 ou superior. Os links curtos permanecem ativos por 30 dias após sua criação.
Visão geral
O que são links curtos de referenciador
Os links curtos transformam Singular Links longos e cheios de parâmetros em URLs compactas e seguras, convenientes para compartilhar via SMS, redes sociais ou convites in-app.
Crie links curtos dinamicamente para que os usuários possam compartilhá-los com amigos para convidá-los a baixar e usar seu aplicativo. Cada link curto rastreia o usuário referenciador, permitindo medir o crescimento viral e atribuir novas instalações a defensores específicos.
Requisitos de implementação
Componentes obrigatórios
Reúna estes elementos antes de criar um link curto de referenciador:
- Singular Link: Um link de rastreamento base que direciona os usuários para o download do seu aplicativo. Consulte Singular Links FAQ para 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 de links de rastreamento
- Informações do referenciador: Nome e ID do usuário que compartilha o link para habilitar a atribuição de novas instalações ao referenciador
Método do SDK
createReferrerShortLink
Gere um link curto de referenciador com parâmetros personalizados e handlers de callback para estados de sucesso e erro.
Assinatura do método:
Singular.createReferrerShortLink(
String baseLink,
String referrerName,
String referrerId,
JSONObject parameters,
ShortLinkHandler handler
)
Parâmetros:
- baseLink: A URL do link de rastreamento original do Singular
- referrerName: Nome de exibição do usuário referenciador
- referrerId: Identificador único do usuário referenciador
- parameters: JSONObject contendo parâmetros dinâmicos adicionais (opcional)
-
handler:
Interface de callback com os métodos
onSuccesseonError(obrigatório)
ShortLinkHandler define dois métodos
abstratos (onSuccess(String link) e
onError(String error)), portanto não
é uma interface Kotlin SAM. Sempre implemente-a como uma expressão de objeto
(Kotlin) ou classe anônima (Java) com ambos os métodos definidos. Um handler
null ou um SDK não inicializado
faz com que a chamada seja descartada silenciosamente — verifique se
Singular.init() foi executado antes de
invocar este método.
onError pode ser disparado sincronamente
antes de qualquer requisição de rede quando a validação falha (por exemplo, um
link base inválido). Implemente verificações defensivas de null em seu callback
para que ele possa ser executado tanto na thread chamadora quanto em uma thread em segundo plano.
Exemplo de uso
Crie um link curto com parâmetros personalizados e implemente a lógica de compartilhamento no callback de sucesso.
import org.json.JSONObject
import org.json.JSONException
// Create custom parameters for the link
val params = JSONObject()
try {
params.put("channel", "sms")
params.put("campaign_id", "summer_promo_2025")
params.put("referral_type", "friend_invite")
} catch (e: JSONException) {
Log.e("ShortLink", "Error creating parameters: ${e.message}")
}
// Generate the short referrer link
Singular.createReferrerShortLink(
"https://sample.sng.link/D52wc/cuvk?pcn=test", // Base Singular Link
"John Doe", // Referrer name
"user_12345", // Referrer ID
params, // Custom parameters
object : ShortLinkHandler {
override fun onSuccess(shortLinkURL: String) {
Log.d("ShortLink", "Generated: $shortLinkURL")
// Share the short link via Android Share Sheet
val shareIntent = Intent(Intent.ACTION_SEND).apply {
type = "text/plain"
putExtra(Intent.EXTRA_TEXT,
"Join me on this awesome app! $shortLinkURL")
}
startActivity(Intent.createChooser(shareIntent, "Share via"))
}
override fun onError(error: String) {
Log.e("ShortLink", "Error creating link: $error")
// Handle error - retry or show user feedback
Toast.makeText(
applicationContext,
"Failed to create share link. Please try again.",
Toast.LENGTH_SHORT
).show()
}
}
)
import org.json.JSONObject;
import org.json.JSONException;
// Create custom parameters for the link
JSONObject params = new JSONObject();
try {
params.put("channel", "sms");
params.put("campaign_id", "summer_promo_2025");
params.put("referral_type", "friend_invite");
} catch (JSONException e) {
Log.e("ShortLink", "Error creating parameters: " + e.getMessage());
}
// Generate the short referrer link
Singular.createReferrerShortLink(
"https://sample.sng.link/D52wc/cuvk?pcn=test", // Base Singular Link
"John Doe", // Referrer name
"user_12345", // Referrer ID
params, // Custom parameters
new ShortLinkHandler() {
@Override
public void onSuccess(final String shortLinkURL) {
Log.d("ShortLink", "Generated: " + shortLinkURL);
// Share the short link via Android Share Sheet
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TEXT,
"Join me on this awesome app! " + shortLinkURL);
startActivity(Intent.createChooser(shareIntent, "Share via"));
}
@Override
public void onError(final String error) {
Log.e("ShortLink", "Error creating link: " + error);
// Handle error - retry or show user feedback
Toast.makeText(
getApplicationContext(),
"Failed to create share link. Please try again.",
Toast.LENGTH_SHORT
).show();
}
}
);
Melhores práticas de implementação
Tratamento de erros
Implemente um tratamento robusto de erros no callback
onError
para gerenciar falhas de rede, parâmetros inválidos ou problemas do servidor.
- Lógica de nova tentativa: Implemente backoff exponencial para erros transitórios de rede
- Feedback ao usuário: Exiba mensagens de erro claras quando a criação do link falhar
- Opção alternativa: Forneça métodos alternativos de compartilhamento (por exemplo, compartilhe o Singular Link completo se a criação do link curto falhar)
-
Validação:
Verifique os parâmetros antes de chamar
createReferrerShortLinkpara detectar problemas antecipadamente
Rastreamento e análise
Aproveite as informações do referenciador para construir loops virais e medir o crescimento orgânico.
Melhor prática: Use IDs de referenciador consistentes que correspondam ao seu sistema interno de identificação de usuários. Isso permite que você:
- Atribua novas instalações a usuários referenciadores específicos
- Recompense usuários por referências bem-sucedidas
- Rastreie o coeficiente viral e as métricas de K-factor
- Identifique seus defensores de marca mais valiosos
Expiração do link
Planeje o ciclo de vida de 30 dias do link em sua estratégia de compartilhamento.
Importante: Os links curtos expiram após 30 dias. Para campanhas de longo prazo ou recursos de compartilhamento persistentes, gere novos links curtos periodicamente ou use o Singular Link completo como alternativa.
Casos de uso comuns
Programas de indicação in-app
Permita que os usuários convidem amigos diretamente do seu aplicativo com links de indicação personalizados.
- Sistema de recompensa: Rastreie indicações e recompense usuários por cadastros bem-sucedidos de amigos
- Compartilhamento social: Integre com o Android Share Sheet para SMS, WhatsApp, e-mail e redes sociais
- Convites pessoais: Inclua o nome do referenciador na mensagem compartilhada para personalização
Conteúdo gerado pelo usuário
Crie links compartilháveis quando os usuários gerarem conteúdo que desejam compartilhar com outros.
- Atribuição de conteúdo: Rastreie qual conteúdo gera o maior número de instalações de aplicativos
- Reconhecimento de criadores: Atribua novos usuários a criadores de conteúdo para gamificação
- Marcação de campanhas: Adicione parâmetros dinâmicos baseados no tipo ou categoria de conteúdo
Convites para eventos
Gere links únicos para convites de eventos que rastreiem quais participantes trazem novos usuários.
- Contexto do evento: Inclua o ID do evento e detalhes nos parâmetros do link
- Rastreamento de participantes: Meça a disseminação viral de evento para evento
- Efeitos de rede: Identifique eventos com as maiores taxas de conversão