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;