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.
// Set global properties during initialization
val config = SingularConfig("SDK_KEY", "SDK_SECRET")
.withGlobalProperty("MyProperty", "MyValue", true)
.withGlobalProperty("AnotherProperty", "AnotherValue", true)
Singular.init(applicationContext, config)
// Set global properties during initialization
SingularConfig config = new SingularConfig("SDK_KEY", "SDK_SECRET")
.withGlobalProperty("MyProperty", "MyValue", true)
.withGlobalProperty("AnotherProperty", "AnotherValue", true);
Singular.init(getApplicationContext(), 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.
// 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")
}
// Set a global property after initialization
boolean 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
falsesi lakeyesnullo está vacía -
El método devuelve
falsesiSingular.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
overrideExistingesfalse, el valor no se reemplaza y el método devuelvefalse -
El parámetro
overrideExistingdetermina 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.
// Retrieve all global properties
val properties: Map<String, String> = Singular.getGlobalProperties()
// Iterate through properties
properties.forEach { (key, value) ->
Log.d("Singular", "Property: $key = $value")
}
// Retrieve all global properties
Map<String, String> properties = Singular.getGlobalProperties();
// Iterate through properties
for (Map.Entry<String, String> entry : properties.entrySet()) {
Log.d("Singular", "Property: " + entry.getKey() + " = " + entry.getValue());
}
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.
// Remove a specific global property
Singular.unsetGlobalProperty("MyProperty")
// 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.
// Remove all global properties
Singular.clearGlobalProperties()
// 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.
// 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")
}
// Initialize SDK with app-level global properties
SingularConfig config = new SingularConfig("SDK_KEY", "SDK_SECRET")
.withGlobalProperty("app_version", BuildConfig.VERSION_NAME, true);
Singular.init(getApplicationContext(), config);
// Set third-party identifier on login
public void onUserLogin(String thirdPartyUserId) {
boolean success = Singular.setGlobalProperty("third_party_identifier", thirdPartyUserId, true);
if (success) {
Log.d("Singular", "Third-party identifier set");
}
}
// Clear third-party identifier on logout
public void 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.