SDK de Android - Configurar propiedades globales

Configurar propiedades globales

Defina propiedades personalizadas que se adjuntan automáticamente a cada sesión y evento enviado desde su aplicación, permitiendo una segmentación detallada de datos en los reportes.

Las propiedades globales le permiten trackear cualquier información de usuario, modo de aplicación o contexto que necesite. Por ejemplo, en una aplicación de juegos, cree una propiedad "Level" inicializada en "0" que se actualiza a medida que los usuarios avanzan. Todas las sesiones y eventos incluyen esta propiedad, lo que permite analizar sesiones, conteos de eventos e ingresos desglosados por nivel de usuario.

Especificaciones de la propiedad

Límites y persistencia

Comprenda las restricciones y el comportamiento de persistencia de las propiedades globales.

  • Propiedades máximas: Defina hasta 5 propiedades globales por instalación de aplicación
  • Persistencia: Las propiedades persisten entre los inicios de la aplicación con sus valores más recientes hasta que se desconfiguren explícitamente o la aplicación se desinstale
  • Límite de caracteres: Los nombres y valores de las propiedades pueden tener hasta 200 caracteres. Los valores más largos se truncan automáticamente a 200 caracteres
  • Disponibilidad de datos: Las propiedades globales son accesibles en exportaciones a nivel de usuario y postbacks. Contacte a su Customer Success Manager de Singular para obtener actualizaciones sobre el soporte de reportes agregados

Configurar propiedades globales en la inicialización

Configurar mediante SingularConfig

Configure las propiedades globales durante la inicialización del SDK usando el método withGlobalProperty antes de llamar a Singular.init() .

Como las propiedades globales persisten entre inicios de aplicación, las propiedades pueden ya existir con valores diferentes. Use el parámetro overrideExisting para controlar si el nuevo valor debe sobrescribir los valores existentes.

Kotlin Java
// Set global properties during initialization
val config = SingularConfig("SDK_KEY", "SDK_SECRET")
    .withGlobalProperty("MyProperty", "MyValue", true)
    .withGlobalProperty("AnotherProperty", "AnotherValue", true)

Singular.init(applicationContext, config)

Firma del método:

public SingularConfig withGlobalProperty(String key, String value, boolean overrideExisting)

Parámetros:

  • key: Nombre de la propiedad (máximo 200 caracteres)
  • value: Valor de la propiedad (máximo 200 caracteres)
  • overrideExisting: Si se debe sobrescribir una propiedad existente con la misma clave

Administrar propiedades después de la inicialización

Configurar propiedad global

Agregue o actualice una propiedad global en cualquier momento durante el tiempo de ejecución de la aplicación.

Kotlin Java
// Set a global property after initialization
val result = Singular.setGlobalProperty("MyProperty", "MyValue", true)
if (result) {
    Log.d("Singular", "Property set successfully")
} else {
    Log.e("Singular", "Failed to set property")
}

Firma del método:

public static boolean setGlobalProperty(String key, String value, boolean overrideExisting)

Devuelve: true si la propiedad se configuró correctamente, false en caso contrario

Importante:

  • El método devuelve false si la key es null o está vacía
  • El método devuelve false si Singular.init() todavía no se ha llamado
  • Si ya existen 5 propiedades y se intenta agregar una nueva, el método devuelve false
  • Si ya existe una propiedad con la misma clave y overrideExisting es false , el valor no se reemplaza y el método devuelve false
  • El parámetro overrideExisting determina si se deben reemplazar los valores de propiedades existentes
  • Verifique el valor devuelto para confirmar que la propiedad se configuró correctamente

Obtener propiedades globales

Recupere todas las propiedades globales configuradas actualmente y sus valores como un Map.

Kotlin Java
// Retrieve all global properties
val properties: Map<String, String> = Singular.getGlobalProperties()

// Iterate through properties
properties.forEach { (key, value) ->
    Log.d("Singular", "Property: $key = $value")
}

Firma del método:

public static Map<String, String> getGlobalProperties()

Devuelve: Un Map que contiene todos los pares clave-valor de propiedades globales


Desconfigurar propiedad global

Elimine una propiedad global específica por su clave.

Kotlin Java
// Remove a specific global property
Singular.unsetGlobalProperty("MyProperty")

Firma del método:

public static void unsetGlobalProperty(String key)

Parámetros:

  • key: El nombre de la propiedad a eliminar

Borrar todas las propiedades globales

Elimine todas las propiedades globales a la vez.

Kotlin Java
// Remove all global properties
Singular.clearGlobalProperties()

Firma del método:

public static void clearGlobalProperties()

Mejor práctica: Use clearGlobalProperties() cuando un usuario cierre sesión o cuando necesite restablecer todas las propiedades de tracking personalizadas a su estado predeterminado.


Ejemplo de implementación

Patrón de uso completo

Trackee propiedades a nivel de aplicación y específicas del usuario a lo largo del ciclo de vida de la aplicación.

Kotlin Java
// Initialize SDK with app-level global properties
val config = SingularConfig("SDK_KEY", "SDK_SECRET")
    .withGlobalProperty("app_version", BuildConfig.VERSION_NAME, true)

Singular.init(applicationContext, config)

// Set third-party identifier on login
fun onUserLogin(thirdPartyUserId: String) {
    val success = Singular.setGlobalProperty("third_party_identifier", thirdPartyUserId, true)
    if (success) {
        Log.d("Singular", "Third-party identifier set")
    }
}

// Clear third-party identifier on logout
fun onUserLogout() {
    Singular.unsetGlobalProperty("third_party_identifier")
    Log.d("Singular", "Third-party identifier cleared")
}

Mejor práctica: Sincronice los identificadores de analíticas de terceros (por ejemplo, Mixpanel distinct_id, Amplitude user_id) con las propiedades globales de Singular para un tracking unificado entre plataformas. Configure los identificadores específicos del usuario al iniciar sesión y bórrelos con unsetGlobalProperty() al cerrar sesión. Las propiedades a nivel de aplicación como app_version persisten entre sesiones.