Creación de enlaces cortos de referencia
Genera enlaces cortos de referencia compartibles que habiliten la atribución de usuario a usuario y rastreen instalaciones de aplicaciones desde referencias orgánicas.
Requisito de versión: Esta funcionalidad requiere SDK versión 12.1.1 o superior. Los enlaces cortos permanecen activos durante 30 días después de su creación.
Descripción general
Qué son los enlaces cortos de referencia
Los enlaces cortos transforman los Singular Links largos y llenos de parámetros en URLs compactas y seguras, convenientes para compartir mediante SMS, redes sociales o invitaciones in-app.
Crea enlaces cortos dinámicamente para que los usuarios puedan compartirlos con amigos para invitarlos a descargar y usar tu aplicación. Cada enlace corto rastrea al usuario referente, lo que te permite medir el crecimiento viral y atribuir nuevas instalaciones a defensores específicos.
Requisitos de implementación
Componentes requeridos
Reúne estos elementos antes de crear un enlace corto de referencia:
- Singular Link: Un enlace de rastreo base que dirige a los usuarios a la descarga de tu aplicación. Consulta Singular Links FAQ para obtener instrucciones de configuración
- Parámetros dinámicos: Parámetros personalizados opcionales para agregar contexto al enlace. Ve las opciones disponibles en Parámetros de enlaces de rastreo
- Información del referente: Nombre e ID del usuario que comparte el enlace para habilitar la atribución de nuevas instalaciones al referente
Método del SDK
createReferrerShortLink
Genera un enlace corto de referencia con parámetros personalizados y handlers de callback para estados de éxito y error.
Firma del método:
Singular.createReferrerShortLink(
String baseLink,
String referrerName,
String referrerId,
JSONObject parameters,
ShortLinkHandler handler
)
Parámetros:
- baseLink: La URL del enlace de rastreo de Singular original
- referrerName: Nombre para mostrar del usuario referente
- referrerId: Identificador único del usuario referente
- parameters: JSONObject que contiene parámetros dinámicos adicionales (opcional)
-
handler:
Interfaz de callback con los métodos
onSuccessyonError(requerido)
ShortLinkHandler define dos métodos
abstractos (onSuccess(String link) y
onError(String error)), por lo que no
es una interfaz Kotlin SAM. Siempre impleméntala como una expresión de objeto
(Kotlin) o una clase anónima (Java) con ambos métodos definidos. Un
null handler o un SDK no inicializado
provoca que la llamada se descarte silenciosamente: verifica que
Singular.init() se haya ejecutado antes de
invocar este método.
onError puede dispararse sincrónicamente
antes de cualquier solicitud de red cuando falla la validación (por ejemplo, un
enlace base inválido). Implementa verificaciones defensivas de null en tu callback
para que pueda ejecutarse en el hilo que llama o en un hilo en segundo plano.
Ejemplo de uso
Crea un enlace corto con parámetros personalizados e implementa la lógica de compartir en el callback de éxito.
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();
}
}
);
Mejores prácticas de implementación
Manejo de errores
Implementa un manejo robusto de errores en el callback
onError
para gestionar fallos de red, parámetros inválidos o problemas del servidor.
- Lógica de reintento: Implementa backoff exponencial para errores transitorios de red
- Retroalimentación al usuario: Muestra mensajes de error claros cuando falla la creación del enlace
- Opción alternativa: Proporciona métodos alternativos de compartir (por ejemplo, comparte el Singular Link completo si la creación del enlace corto falla)
-
Validación:
Verifica los parámetros antes de llamar a
createReferrerShortLinkpara detectar problemas temprano
Rastreo y analítica
Aprovecha la información del referente para construir bucles virales y medir el crecimiento orgánico.
Mejor práctica: Usa IDs de referente consistentes que coincidan con tu sistema interno de identificación de usuarios. Esto te permite:
- Atribuir nuevas instalaciones a usuarios referentes específicos
- Recompensar a los usuarios por referencias exitosas
- Rastrear el coeficiente viral y las métricas de K-factor
- Identificar a tus defensores de marca más valiosos
Expiración del enlace
Planifica el ciclo de vida del enlace de 30 días en tu estrategia de compartir.
Importante: Los enlaces cortos expiran después de 30 días. Para campañas a largo plazo o funciones de compartir persistentes, genera nuevos enlaces cortos periódicamente o usa el Singular Link completo como alternativa.
Casos de uso comunes
Programas de referidos in-app
Permite a los usuarios invitar a amigos directamente desde tu aplicación con enlaces de referidos personalizados.
- Sistema de recompensas: Rastrea referidos y recompensa a los usuarios por registros exitosos de amigos
- Compartir social: Integra con Android Share Sheet para SMS, WhatsApp, correo electrónico y redes sociales
- Invitaciones personales: Incluye el nombre del referente en el mensaje compartido para personalización
Contenido generado por el usuario
Crea enlaces compartibles cuando los usuarios generen contenido que quieran compartir con otros.
- Atribución de contenido: Rastrea qué contenido genera más instalaciones de aplicaciones
- Reconocimiento de creadores: Atribuye nuevos usuarios a los creadores de contenido para la gamificación
- Etiquetado de campañas: Agrega parámetros dinámicos basados en el tipo o categoría de contenido
Invitaciones a eventos
Genera enlaces únicos para invitaciones a eventos que rastreen qué asistentes traen nuevos usuarios.
- Contexto del evento: Incluye el ID del evento y los detalles en los parámetros del enlace
- Rastreo de asistentes: Mide la propagación viral de un evento a otro
- Efectos de red: Identifica eventos con las tasas de conversión más altas