SDK de Android - Referencia de métodos de configuración
El SDK de Singular proporciona un sistema de configuración flexible a través de la clase SingularConfig. Este documento describe todas las opciones de configuración disponibles y cómo utilizarlas al inicializar el SDK.
withCustomSdid
Método SingularConfig.withCustomSdid
Característica empresarial: Establece un ID de dispositivo singular (SDID) personalizado y un controlador para acceder a él.
Firma
public SingularConfig withCustomSdid(String customSdid, SDIDAccessorHandler accessorHandler)
Ejemplo de uso
SingularConfig config = new SingularConfig("API_KEY", "API_SECRET")
.withCustomSdid("custom-device-id-12345", new SDIDAccessorHandler() {
@Override
public void onSDIDAccessed(String sdid) {
// Handle SDID access
Log.d("Singular", "SDID accessed: " + sdid);
}
});
withCustomUserId
SingularConfig.withCustomUserId Método
Establece un ID de usuario personalizado durante la inicialización.
Firma
public SingularConfig withCustomUserId(String customUserId)
Ejemplo de uso
SingularConfig config = new SingularConfig("API_KEY", "API_SECRET")
.withCustomUserId("user_12345");
withDDLHandler
Método withDDLHandler de SingularConfig
Establece un manejador para enlaces profundos diferidos.
Firma
public SingularConfig withDDLHandler(DeferredDeepLinkHandler handler)
Ejemplo de uso
SingularConfig config = new SingularConfig("API_KEY", "API_SECRET")
.withDDLHandler(new DeferredDeepLinkHandler() {
@Override
public void onResolved(String resolvedLink) {
if (resolvedLink != null) {
// Handle the deferred deep link
Log.d("Singular", "Deferred deep link: " + resolvedLink);
}
}
});
withDDLTimeoutInSec
Método withDDLTimeoutInSec de SingularConfig
Establece el tiempo de espera para la resolución de enlaces profundos diferidos en segundos.
Firma
public SingularConfig withDDLTimeoutInSec(long timeout)
Ejemplo de uso
SingularConfig config = new SingularConfig("API_KEY", "API_SECRET")
.withDDLHandler(deferredDeepLinkHandler)
.withDDLTimeoutInSec(10); // 10 seconds timeout
withESPDomains
Método withESPDomains de SingularConfig
Establece una lista de dominios ESP (proveedor de servicios de correo electrónico) para gestionar la atribución de las campañas de correo electrónico.
Firma
public SingularConfig withESPDomains(List espDomains)
Ejemplo de uso
List<String> espDomains = new ArrayList<>();
espDomains.add("email.example.com");
espDomains.add("newsletter.example.com");
SingularConfig config = new SingularConfig("API_KEY", "API_SECRET")
.withESPDomains(espDomains);
withFacebookAppId
Método withFacebookAppId de SingularConfig
Establece el ID de la aplicación de Facebook para la atribución de Facebook.
Firma
public SingularConfig withFacebookAppId(String facebookAppId)
Ejemplo de uso
SingularConfig config = new SingularConfig("API_KEY", "API_SECRET")
.withFacebookAppId("123456789012345");
withFCMDeviceToken
SingularConfig.withFCMDeviceToken Método
Establece el token de dispositivo de Firebase Cloud Messaging durante la inicialización.
Firma
public SingularConfig withFCMDeviceToken(String fcmDeviceToken)
Ejemplo de uso
SingularConfig config = new SingularConfig("API_KEY", "API_SECRET")
.withFCMDeviceToken("eKh2BNP-Txy4XrjDGmw...");
withGlobalProperty
Método withGlobalProperty de SingularConfig
Establece una propiedad global durante la inicialización que se incluirá en todos los eventos.
Firma
public SingularConfig withGlobalProperty(String key, String value, boolean overrideExisting)
Ejemplo de uso
SingularConfig config = new SingularConfig("API_KEY", "API_SECRET")
.withGlobalProperty("app_version", "2.1.0", true)
.withGlobalProperty("user_type", "free", true);
withIMEI
Método singularConfig.withIMEI
Establece el IMEI del dispositivo para su seguimiento durante la inicialización.
Firma
public SingularConfig withIMEI(String imei)
Ejemplo de uso
// Note: Requires READ_PHONE_STATE permission
String imei = null;
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE)
== PackageManager.PERMISSION_GRANTED) {
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
imei = telephonyManager.getDeviceId();
}
SingularConfig config = new SingularConfig("API_KEY", "API_SECRET")
.withIMEI(imei);
withLimitAdvertisingIdentifiers
Método withLimitAdvertisingIdentifiers de SingularConfig
Limita el uso de identificadores de publicidad durante la inicialización.
Firma
public SingularConfig withLimitAdvertisingIdentifiers()
Ejemplo de uso
SingularConfig config = new SingularConfig("API_KEY", "API_SECRET")
.withLimitAdvertisingIdentifiers();
withLimitDataSharing
Método withLimitDataSharing de SingularConfig
Controla si se limita el uso compartido de datos con socios y redes durante la inicialización.
Firma
public SingularConfig withLimitDataSharing(boolean shouldLimitDataSharing)
Ejemplo de uso
SingularConfig config = new SingularConfig("API_KEY", "API_SECRET")
.withLimitDataSharing(true);
withLogLevel
SingularConfig.withLogLevel Método
Establece el nivel de registro para los registros del SDK.
Firma
public SingularConfig withLogLevel(int level)
Ejemplo de uso
import android.util.Log;
SingularConfig config = new SingularConfig("API_KEY", "API_SECRET")
.withLoggingEnabled()
.withLogLevel(Log.VERBOSE); // Use Log.VERBOSE, Log.DEBUG, Log.INFO, Log.WARN, Log.ERROR
withLoggingEnabled
SingularConfig.withLoggingEnabled Método
Activa el registro para el SDK.
Firma
public SingularConfig withLoggingEnabled()
Ejemplo de uso
SingularConfig config = new SingularConfig("API_KEY", "API_SECRET")
.withLoggingEnabled();
withOAIDCollection
SingularConfig.withOAIDCollection Método
Activa la recopilación de OAID (Open Anonymous Device Identifier) para dispositivos chinos.
Firma
public SingularConfig withOAIDCollection()
Ejemplo de uso
SingularConfig config = new SingularConfig("API_KEY", "API_SECRET")
.withOAIDCollection();
withOpenURI
SingularConfig.withOpenURI Método
Establece el URI que abrió la aplicación para la atribución.
Firma
public SingularConfig withOpenURI(Uri openUri)
Ejemplo de uso
// In your Activity's onCreate method
Uri data = getIntent().getData();
SingularConfig config = new SingularConfig("API_KEY", "API_SECRET")
.withOpenURI(data);
withPushNotificationPayload
SingularConfig.withPushNotificationPayload Método
Establece la carga útil de la notificación push y la ruta para extraer el enlace profundo de la carga útil.
Firma
public SingularConfig withPushNotificationPayload(Intent intent, String[] ... pushNotificationLinkPath)
Ejemplo de uso
// In your Activity that handles push notifications
Intent intent = getIntent();
SingularConfig config = new SingularConfig("API_KEY", "API_SECRET")
.withPushNotificationPayload(intent, new String[]{"singular_link"}, new String[]{"data", "deeplink"});
withSdidAccessorHandler
Método withSdidAccessorHandler de SingularConfig
Característica empresarial: Establece un controlador para acceder al identificador de dispositivo singular (SDID).
Firma
public SingularConfig withSdidAccessorHandler(SDIDAccessorHandler accessorHandler)
Ejemplo de uso
SingularConfig config = new SingularConfig("API_KEY", "API_SECRET")
.withSdidAccessorHandler(new SDIDAccessorHandler() {
@Override
public void onSDIDAccessed(String sdid) {
// Handle SDID access
Log.d("Singular", "SDID accessed: " + sdid);
}
});
withSessionTimeoutInSec
Método withSessionTimeoutInSec de SingularConfig
Establece el tiempo de espera de la sesión en segundos.
Firma
public SingularConfig withSessionTimeoutInSec(long timeout)
Ejemplo de uso
SingularConfig config = new SingularConfig("API_KEY", "API_SECRET")
.withSessionTimeoutInSec(60); // 60 seconds timeout
withSingularDeviceAttribution
Método withSingularConfig.withSingularDeviceAttribution
Característica BETA: Establece una función de controlador para recibir datos de atribución de dispositivos cuando estén disponibles.
Firma
public SingularConfig withSingularDeviceAttribution(SingularDeviceAttributionHandler handler)
Ejemplo de uso
SingularConfig config = new SingularConfig("API_KEY", "API_SECRET")
.withSingularDeviceAttribution(new SingularDeviceAttributionHandler() {
@Override
public void onDeviceAttributionInfoReceived(Map deviceAttributionData) {
// Handle device attribution data
if (deviceAttributionData != null) {
for (Object key : deviceAttributionData.keySet()) {
Log.d("Singular", key + ": " + deviceAttributionData.get(key));
}
}
}
});
withSingularLink
Método withSingularLink de SingularConfig
Configura la gestión de enlaces singulares con una llamada de retorno para los enlaces resueltos.
Firma
public SingularConfig withSingularLink(Intent intent, SingularLinkHandler handler)
public SingularConfig withSingularLink(Intent intent, SingularLinkHandler handler, long shortlinkTimeoutSec)
Ejemplo de uso
// In your Activity's onCreate method
Intent intent = getIntent();
SingularConfig config = new SingularConfig("API_KEY", "API_SECRET")
.withSingularLink(intent, new SingularLinkHandler() {
@Override
public void onResolved(SingularLinkParams params) {
if (params != null) {
// Handle the deep link
String deeplink = params.getDeeplink();
if (deeplink != null) {
Log.d("Singular", "Deep link: " + deeplink);
// Navigate to the appropriate screen
}
// Get passthrough parameters
String passthrough = params.getPassthrough();
if (passthrough != null) {
Log.d("Singular", "Passthrough: " + passthrough);
}
// Check if this is a deferred deep link
boolean isDeferred = params.isDeferred();
Log.d("Singular", "Is deferred: " + isDeferred);
}
}
}, 10); // 10 seconds timeout
Ejemplo de configuración completa
Encadenamiento de múltiples opciones de configuración
Este es un ejemplo completo que muestra cómo encadenar varias opciones de configuración al inicializar Singular SDK.
Ejemplo de uso
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import com.singular.sdk.Singular;
import com.singular.sdk.SingularConfig;
import com.singular.sdk.SingularLinkHandler;
import com.singular.sdk.SingularLinkParams;
import com.singular.sdk.SingularDeviceAttributionHandler;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Get the intent that started this activity
Intent intent = getIntent();
// Initialize Singular SDK with advanced configuration
SingularConfig config = new SingularConfig("SDK KEY", "YOUR_SECRET")
// Enable logging for debugging
.withLoggingEnabled()
.withLogLevel(Log.DEBUG)
// Set custom user ID if available
.withCustomUserId("user_12345")
// Configure session timeout
.withSessionTimeoutInSec(60)
// Set global properties for all events
.withGlobalProperty("app_version", "2.1.0", true)
.withGlobalProperty("user_type", "premium", true)
// Handle deep links
.withSingularLink(intent, new SingularLinkHandler() {
@Override
public void onResolved(SingularLinkParams params) {
if (params != null) {
String deeplink = params.getDeeplink();
if (deeplink != null) {
Log.d("Singular", "Deep link: " + deeplink);
// Navigate based on deep link
}
}
}
}, 10)
// Handle deferred deep links
.withDDLHandler(new DeferredDeepLinkHandler() {
@Override
public void onResolved(String resolvedLink) {
if (resolvedLink != null) {
Log.d("Singular", "Deferred deep link: " + resolvedLink);
// Handle deferred deep link
}
}
})
.withDDLTimeoutInSec(5)
// Get device attribution data
.withSingularDeviceAttribution(new SingularDeviceAttributionHandler() {
@Override
public void onDeviceAttributionInfoReceived(Map deviceAttributionData) {
if (deviceAttributionData != null) {
for (Object key : deviceAttributionData.keySet()) {
Log.d("Singular", key + ": " + deviceAttributionData.get(key));
}
}
}
})
// Facebook attribution
.withFacebookAppId("123456789012345")
// Configure data sharing limitations for privacy
.withLimitDataSharing(true)
.withLimitAdvertisingIdentifiers();
// Initialize the SDK with the configuration
Singular.init(this, config);
}
@Override
protected void onResume() {
super.onResume();
Singular.onActivityResumed();
}
@Override
protected void onPause() {
super.onPause();
Singular.onActivityPaused();
}
}