Android SDK - Referencia de métodos de configuración

Documento

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

Java
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

Java
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

Java
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

Java
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

Java
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

Java
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

Java
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

Java
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

Java
// 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

Java
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

Java
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

Java
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

Java
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

Java
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

Java
// 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

Java
// 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

Java
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

Java
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

Java
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

Java
// 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

Java
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();
    }
}