SDK de Unity - Referencia de configuración

SDK de Unity - Referencia de configuración

Todas las opciones de configuración que expone el SDK de Singular para Unity, con su tipo, valor predeterminado, plataformas compatibles y forma de establecerlas.

La mayoría de las opciones son campos del componente SingularSDK, por lo que aparecen en el Inspector de Unity en el GameObject de Singular SDK. Algunas son miembros estáticos: no aparecen en el Inspector y solo se pueden establecer desde el código antes de la inicialización. Cada entrada indica de cuál se trata.


Configurar desde el código

Desmarca Initialize On Awake en el Inspector, establece los campos que necesites e inicializa el SDK tú mismo. Los miembros estáticos solo se pueden establecer de esta manera.

using UnityEngine;
using Singular;

public class SingularBootstrap : MonoBehaviour
{
    void Awake()
    {
        // Clear Initialize On Awake in the Inspector first, so the SDK
        // does not start before these values are set.
        SingularSDK singular = GetComponent<SingularSDK>();

        singular.SingularAPIKey    = "YOUR_SDK_KEY";
        singular.SingularAPISecret = "YOUR_SDK_SECRET";
        singular.sessionTimeoutSec = 120;

        // Static members are not shown in the Inspector and are set here only.
        SingularSDK.endSessionOnGoingToBackground = true;

        SingularSDK.InitializeSingularSDK();
    }
}

Ejemplo de configuración completa

Configuración integral del SDK

Una configuración representativa que cubre las opciones que usa la mayoría de las integraciones.

using UnityEngine;
using Singular;

public class SingularBootstrap : MonoBehaviour
{
    void Awake()
    {
        SingularSDK singular = GetComponent<SingularSDK>();

        // Required
        singular.SingularAPIKey    = "YOUR_SDK_KEY";
        singular.SingularAPISecret = "YOUR_SDK_SECRET";

        // Logging — off for a production build
        singular.enableLogging = false;

        // Sessions and link resolution
        singular.sessionTimeoutSec       = 120;
        singular.shortlinkResolveTimeout = 15;
        singular.ddlTimeoutSec           = 120;   // Android

        // Links
        singular.brandedDomains = new string[] { "go.yourcompany.com" };
        singular.pushNotificationsLinkPaths = new string[] { "sng_link" };

        // iOS
        singular.waitForTrackingAuthorizationWithTimeoutInterval = 300;
        singular.SKANEnabled = true;

        // Android
        singular.facebookAppId = "1234567890";

        SingularSDK.InitializeSingularSDK();
    }
}

autoIAPComplete

Propiedad SingularSDK.autoIAPComplete

Opción heredada para completar automáticamente las transacciones de StoreKit.

Función obsoleta: este campo está marcado como [Obsolete] en el SDK y no debe usarse en integraciones nuevas. Completa las transacciones con Unity IAP y repórtalas con SingularSDK.InAppPurchase().

Firma

public bool autoIAPComplete

Valor predeterminado: false

Plataforma: Solo iOS

Se configura en: Inspector de Unity o código

Ejemplo de uso

singular.autoIAPComplete = false;

brandedDomains

Propiedad SingularSDK.brandedDomains

Dominios de link personalizados que el SDK debe tratar como Singular Links. Agrega cada dominio de marca que uses para tracking links; sin esto, solo se reconocen los dominios sng.link registrados en la página Manage Links.

Firma

public string[] brandedDomains

Valor predeterminado: null

Plataforma: iOS y Android

Se configura en: Inspector de Unity o código

Ejemplo de uso

singular.brandedDomains = new string[] {
    "yourcompany.com",
    "go.yourcompany.com"
};

clipboardAttribution

Propiedad SingularSDK.clipboardAttribution

Permite que el SDK lea el portapapeles al iniciar para recuperar datos de atribución de un Singular Link.

Leer el portapapeles muestra al usuario la notificación de pegado del sistema en iOS 14 y posteriores. Habilítalo solo si entiendes esa contrapartida.

Firma

public bool clipboardAttribution

Valor predeterminado: false

Plataforma: Solo iOS

Se configura en: Inspector de Unity o código

Ejemplo de uso

singular.clipboardAttribution = true;

collectOAID

Propiedad SingularSDK.collectOAID

Recopila el OAID, un identificador publicitario usado en dispositivos Android sin Google Play Services, principalmente en China continental. Requiere la biblioteca OAID en tu build.

Firma

public bool collectOAID

Valor predeterminado: false

Plataforma: Solo Android

Se configura en: Inspector de Unity o código

Ejemplo de uso

singular.collectOAID = true;

CustomSdid

Propiedad SingularSDK.CustomSdid

Proporciona tu propio Singular Device ID en lugar de dejar que el SDK lo genere. Establécelo antes de la inicialización y registra un handler con SingularSDK.SetSingularSdidAccessorHandler() para saber cuándo fue aceptado.

Función Enterprise: el SDID personalizado no está habilitado de forma predeterminada. No lo establezcas salvo que tu cuenta lo tenga habilitado; consulta antes con tu representante de Singular.

Firma

public static string CustomSdid

Valor predeterminado: null

Plataforma: iOS y Android

Se configura en: Solo código: no aparece en el Inspector

Ejemplo de uso

SingularSDK.CustomSdid = "your-own-device-id";

ddlTimeoutSec

Propiedad SingularSDK.ddlTimeoutSec

Durante cuánto tiempo después de una instalación nueva el SDK seguirá resolviendo un deep link diferido y llamando a tu handler de Singular Link. Déjalo en 0 para usar el valor predeterminado de 60 segundos.

Firma

public long ddlTimeoutSec

Valor predeterminado: 0 (uses the 60 second default)

Plataforma: Solo Android

Se configura en: Inspector de Unity o código

Ejemplo de uso

singular.ddlTimeoutSec = 120;

enableDeferredDeepLinks

Propiedad SingularSDK.enableDeferredDeepLinks

Registra el handler de deep links diferidos en Android. Déjalo habilitado salvo que quieras ignorar deliberadamente los links diferidos.

Firma

public static bool enableDeferredDeepLinks

Valor predeterminado: true

Plataforma: Solo Android

Se configura en: Solo código: no aparece en el Inspector

Ejemplo de uso

SingularSDK.enableDeferredDeepLinks = false;

enableLogging

Propiedad SingularSDK.enableLogging

Habilita la salida de logs del SDK, útil durante la integración y la resolución de problemas. Está habilitada de forma predeterminada (enableLogging es true), así que desmarca la casilla antes de publicar una build de producción.

Firma

public bool enableLogging

Valor predeterminado: true

Plataforma: iOS y Android

Se configura en: Inspector de Unity o código

Ejemplo de uso

singular.enableLogging = false;

enableODMWithTimeoutInterval

Propiedad SingularSDK.enableODMWithTimeoutInterval

Habilita On-Device Measurement (ODM) de Google y define cuántos segundos espera el SDK el token de atribución de Google antes de enviar la primera sesión. Es obligatorio para Google Ads iOS Integrated Conversion Measurement (ICM).

Esto retrasa la primera sesión. El SDK se bloquea hasta que Google devuelve un token o transcurre el intervalo, así que los callbacks de deep link se retrasan hasta esa cantidad de segundos. ODM también requiere el SDK de ODM de Google, el flag de enlazado -ObjC y el SDK de Unity v5.5.0 o posterior.

Firma

public int enableODMWithTimeoutInterval

Valor predeterminado: -1 (disabled)

Plataforma: Solo iOS

Se configura en: Inspector de Unity o código

Ejemplo de uso

singular.enableODMWithTimeoutInterval = 10;

endSessionOnGoingToBackground

Propiedad SingularSDK.endSessionOnGoingToBackground

Finaliza la sesión de Singular en cuanto la app pasa a segundo plano, en lugar de dejar que expire tras el tiempo de espera de sesión. La mayoría de las apps deberían dejarlo desactivado y apoyarse en sessionTimeoutSec.

Firma

public static bool endSessionOnGoingToBackground

Valor predeterminado: false

Plataforma: iOS y Android

Se configura en: Solo código: no aparece en el Inspector

Ejemplo de uso

SingularSDK.endSessionOnGoingToBackground = true;

facebookAppId

Propiedad SingularSDK.facebookAppId

Tu Facebook App ID, necesario para la atribución por install referrer de Meta en Android.

Firma

public string facebookAppId

Valor predeterminado: null

Plataforma: Solo Android

Se configura en: Inspector de Unity o código

Ejemplo de uso

singular.facebookAppId = "1234567890";

fcmDeviceToken

Propiedad SingularSDK.fcmDeviceToken

El token de Firebase Cloud Messaging que se usa para el tracking de desinstalaciones. Es preferible SingularSDK.RegisterTokenForUninstall(), que lo establece antes de la inicialización y llama al SDK nativo después.

Firma

public static string fcmDeviceToken

Valor predeterminado: null

Plataforma: Solo Android

Se configura en: Solo código: no aparece en el Inspector

Ejemplo de uso

SingularSDK.RegisterTokenForUninstall(token);

Initialized

Propiedad SingularSDK.Initialized

Solo lectura. Indica si el SDK terminó de inicializarse. La mayoría de los métodos del SDK no hacen nada hasta que esto sea true.

Firma

public static bool { get; } Initialized

Valor predeterminado: false

Plataforma: iOS y Android

Se configura en: Solo código: no aparece en el Inspector

Ejemplo de uso

if (SingularSDK.Initialized) {
    SingularSDK.Event("level_complete");
}

InitializeOnAwake

Propiedad SingularSDK.InitializeOnAwake

Inicializa el SDK automáticamente en el Awake() del GameObject. Desmárcalo cuando necesites establecer la configuración desde el código primero y luego llama tú mismo a SingularSDK.InitializeSingularSDK().

Firma

public bool InitializeOnAwake

Valor predeterminado: true

Plataforma: iOS y Android

Se configura en: Inspector de Unity o código

Ejemplo de uso

singular.InitializeOnAwake = false;

limitAdvertisingIdentifiers

Propiedad SingularSDK.limitAdvertisingIdentifiers

Impide que el SDK recopile identificadores publicitarios del dispositivo. Úsalo en apps de audiencia mixta que no deben recopilar un ID publicitario de ciertos usuarios.

Firma

public bool limitAdvertisingIdentifiers

Valor predeterminado: false

Plataforma: iOS y Android

Se configura en: Inspector de Unity o código

Ejemplo de uso

singular.limitAdvertisingIdentifiers = true;

logLevel

Propiedad SingularSDK.logLevel

Define el nivel de detalle de los logs del SDK. Los valores son las constantes de Android android.util.Log, donde un número menor es más detallado: 2 Verbose, 3 Debug, 4 Info, 5 Warn, 6 Error, 7 Assert. El valor predeterminado es 3 (Debug). Cualquier valor fuera de 2–7 se rechaza y el SDK vuelve a Debug, así que 0 y 1 no reducen los logs: desmarca Enable Logging para desactivarlos.

Firma

public int logLevel

Valor predeterminado: 3 (Debug)

Plataforma: iOS y Android

Se configura en: Inspector de Unity o código

Ejemplo de uso

singular.logLevel = 3; // Debug

manualSKANConversionManagement

Propiedad SingularSDK.manualSKANConversionManagement

Traspasa a tu app la gestión de los valores de conversión de SKAdNetwork. Al habilitarlo, Singular deja de gestionarlos y debes llamar a SingularSDK.SkanUpdateConversionValue() por tu cuenta.

Mientras esto esté desactivado, las actualizaciones manuales se ignoran. Si no llegan los valores de conversión, revisa primero esta opción.

Firma

public bool manualSKANConversionManagement

Valor predeterminado: false

Plataforma: Solo iOS

Se configura en: Inspector de Unity o código

Ejemplo de uso

singular.manualSKANConversionManagement = true;

openUri

Propiedad SingularSDK.openUri

El URI con el que se abrió la app, entregado al SDK durante la inicialización para que pueda atribuir la apertura. Establécelo antes de inicializar cuando tu activity reciba un deep link antes de que arranque el SDK.

Firma

public static string openUri

Valor predeterminado: null

Plataforma: Solo Android

Se configura en: Solo código: no aparece en el Inspector

Ejemplo de uso

SingularSDK.openUri = "myapp://product/123";

pushNotificationsLinkPaths

Propiedad SingularSDK.pushNotificationsLinkPaths

Dónde encontrar el Singular Link dentro de los payloads de tus notificaciones push. Cada entrada es una ruta dentro del payload, con los niveles separados por /. Agrega una entrada por cada forma de payload que reciba tu app.

Firma

public string[] pushNotificationsLinkPaths

Valor predeterminado: null

Plataforma: iOS y Android

Se configura en: Inspector de Unity o código

Ejemplo de uso

singular.pushNotificationsLinkPaths = new string[] {
    "sng_link",
    "notification/deep_link",
    "rootObj/nestedObj/singularLink"
};

restartSessionOnReturningToForeground

Propiedad SingularSDK.restartSessionOnReturningToForeground

Inicia una nueva sesión de Singular cada vez que la app vuelve a primer plano. Combínalo con endSessionOnGoingToBackground; la mayoría de las apps deberían dejar ambos desactivados.

Firma

public static bool restartSessionOnReturningToForeground

Valor predeterminado: false

Plataforma: iOS y Android

Se configura en: Solo código: no aparece en el Inspector

Ejemplo de uso

SingularSDK.restartSessionOnReturningToForeground = true;

sessionTimeoutSec

Propiedad SingularSDK.sessionTimeoutSec

Cuánto tiempo puede permanecer la app en segundo plano antes de que la siguiente apertura cuente como una sesión nueva. Déjalo en 0 para usar el valor predeterminado de 60 segundos.

Firma

public long sessionTimeoutSec

Valor predeterminado: 0 (uses the 60 second default)

Plataforma: iOS y Android

Se configura en: Inspector de Unity o código

Ejemplo de uso

singular.sessionTimeoutSec = 120;

shortlinkResolveTimeout

Propiedad SingularSDK.shortlinkResolveTimeout

Cuánto espera el SDK a que se resuelva un short link antes de desistir. Déjalo en 0 para usar el valor predeterminado de 10 segundos.

Firma

public long shortlinkResolveTimeout

Valor predeterminado: 0 (uses the 10 second default)

Plataforma: iOS y Android

Se configura en: Inspector de Unity o código

Ejemplo de uso

singular.shortlinkResolveTimeout = 15;

SingularAPIKey

Propiedad SingularSDK.SingularAPIKey

Tu SDK Key. La encuentras en Singular en Developer Tools > SDK Integration > SDK Keys.

No uses aquí la Reporting API Key de Singular. Solo funciona la SDK Key de la página SDK Integration; cualquier otra impide silenciosamente que los datos lleguen a Singular.

Firma

public string SingularAPIKey

Valor predeterminado: Obligatorio

Plataforma: iOS y Android

Se configura en: Inspector de Unity o código

Ejemplo de uso

singular.SingularAPIKey = "YOUR_SDK_KEY";

SingularAPISecret

Propiedad SingularSDK.SingularAPISecret

Tu SDK Secret, emitido junto con la SDK Key en la misma página.

Firma

public string SingularAPISecret

Valor predeterminado: Obligatorio

Plataforma: iOS y Android

Se configura en: Inspector de Unity o código

Ejemplo de uso

singular.SingularAPISecret = "YOUR_SDK_SECRET";

SKANEnabled

Propiedad SingularSDK.SKANEnabled

Registra la app para la atribución de SKAdNetwork y permite que Singular gestione los valores de conversión. Déjalo activado salvo que otro SDK de tu app se encargue de SKAdNetwork.

Firma

public bool SKANEnabled

Valor predeterminado: true

Plataforma: Solo iOS

Se configura en: Inspector de Unity o código

Ejemplo de uso

singular.SKANEnabled = false;

waitForTrackingAuthorizationWithTimeoutInterval

Propiedad SingularSDK.waitForTrackingAuthorizationWithTimeoutInterval

Cuántos segundos espera el SDK a que el usuario responda el aviso de App Tracking Transparency antes de enviar la primera sesión. Esperar permite que la primera sesión lleve el IDFA cuando se otorga el consentimiento.

El IDFA solo puede adjuntarse a la primera sesión. Si la sesión se envía antes de que el usuario responda el aviso, esa instalación queda sin IDFA de forma permanente. Singular recomienda 300 segundos cuando tu app muestra el aviso de ATT.

Firma

public int waitForTrackingAuthorizationWithTimeoutInterval

Valor predeterminado: 0 (do not wait)

Plataforma: Solo iOS

Se configura en: Inspector de Unity o código

Ejemplo de uso

singular.waitForTrackingAuthorizationWithTimeoutInterval = 300;