SDK de Unity - Referencia de Métodos
Este documento proporciona una referencia completa de todos los métodos disponibles en Singular SDK para aplicaciones Unity. El SDK de Singular Unity envuelve los SDK nativos de iOS y Android, proporcionando una interfaz unificada en C# para atribución móvil, deep linking, seguimiento de ingresos y análisis. Cada método se presenta con una descripción, firma y ejemplos prácticos de uso.
AdRevenue
Método SingularSDK.AdRevenue
Realiza un seguimiento de los ingresos publicitarios de las plataformas de mediación. Este método le permite informar de los ingresos generados por las impresiones de anuncios en su aplicación Unity, respaldando el análisis de atribución y ROI para la monetización de anuncios.
Firma
public static void AdRevenue(string currency, double amount)
Ejemplo de uso
// Track ad revenue from an ad impression
SingularSDK.AdRevenue("USD", 0.05);
ClearGlobalProperties
Método SingularSDK.ClearGlobalProperties
Elimina todas las propiedades globales establecidas anteriormente. Las propiedades globales son pares clave-valor que se incluyen automáticamente con cada evento rastreado por el SDK.
Firma
public static void ClearGlobalProperties()
Ejemplo de uso
// Clear all global properties
SingularSDK.ClearGlobalProperties();
createReferrerShortLink
Método createReferrerShortLink de SingularSDK
Crea un enlace corto de remitente para campañas de atribución de usuario a usuario. Este método genera un enlace corto que los usuarios pueden compartir para realizar un seguimiento de las remisiones y atribuir nuevas instalaciones a remitentes específicos.
Firma
public static void createReferrerShortLink(string baseLink, string referrerName,
string referrerId, Dictionary<string, string> passthroughParams,
ShortLinkCallback completionHandler)
Ejemplo de uso
// Create a referrer short link
var passthroughParams = new Dictionary<string, string>
{
{ "promo_code", "WELCOME10" },
{ "campaign", "spring_2024" }
};
SingularSDK.createReferrerShortLink(
"https://yourapp.sng.link/12345",
"John Doe",
"user_12345",
passthroughParams,
(data, error) =>
{
if (error == null)
{
Debug.Log("Short link created: " + data);
}
else
{
Debug.LogError("Error creating short link: " + error);
}
}
);
CustomRevenue
Método SingularSDK.CustomRevenue
Rastrea un evento de ingresos personalizado con un nombre de evento especificado. Esto permite realizar un seguimiento de los ingresos procedentes de fuentes distintas a las compras dentro de la aplicación, como suscripciones u otros métodos de monetización.
Firma
public static void CustomRevenue(string eventName, string currency, double amount)
public static void CustomRevenue(Dictionary<string, object> args,
string eventName, string currency, double amount)
Ejemplo de uso
// Track custom revenue event
SingularSDK.CustomRevenue("subscription_renewal", "USD", 9.99);
// Track custom revenue with additional attributes
var attributes = new Dictionary<string, object>
{
{ "subscription_type", "premium" },
{ "billing_period", "monthly" }
};
SingularSDK.CustomRevenue(attributes, "subscription_renewal", "USD", 9.99);
EndSingularSession
Método SingularSDK.EndSingularSession
Finaliza manualmente la sesión actual de Singular. Suele ejecutarse cuando la aplicación pasa a segundo plano si se necesita un control explícito de la gestión de la sesión.
Firma
public static void EndSingularSession()
Ejemplo de uso
// End the current session
SingularSDK.EndSingularSession();
Evento
Método SingularSDK.Event
Rastrea un evento personalizado en su aplicación Unity. Los eventos pueden ser rastreados sólo con un nombre, o con atributos adicionales como pares clave-valor para un análisis más detallado.
Firma
public static void Event(string name)
public static void Event(Dictionary<string, object> args, string name)
public static void Event(string name, params object[] args)
Ejemplo de uso
// Track a simple event
SingularSDK.Event("level_completed");
// Track event with dictionary attributes
var attributes = new Dictionary<string, object>
{
{ "level", 5 },
{ "score", 1250 },
{ "time_seconds", 45.3 }
};
SingularSDK.Event(attributes, "level_completed");
// Track event with params array (key-value pairs)
SingularSDK.Event("item_purchased",
"item_name", "Golden Sword",
"item_category", "weapons",
"price", 4.99);
GetAPID
Método SingularSDK.GetAPID
Devuelve el APID (identificador de plataforma de atribución) de Singular para el dispositivo actual. Singular utiliza internamente este identificador para la atribución y el análisis. Sólo iOS.
Firma
public static string GetAPID()
Ejemplo de uso
// Get the APID
string apid = SingularSDK.GetAPID();
Debug.Log("APID: " + apid);
GetGlobalProperties
Método SingularSDK.GetGlobalProperties
Recupera todas las propiedades globales configuradas actualmente como una cadena JSON. Las propiedades globales son pares clave-valor que se incluyen automáticamente con cada evento rastreado.
Firma
public static string GetGlobalProperties()
Ejemplo de uso
// Get all global properties
string globalProps = SingularSDK.GetGlobalProperties();
Debug.Log("Global Properties: " + globalProps);
GetIDFA
Método SingularSDK.GetIDFA
Devuelve el IDFA (identificador para anunciantes) del dispositivo iOS actual. Este método requiere la autorización adecuada de ATT (App Tracking Transparency). Sólo iOS.
Firma
public static string GetIDFA()
Ejemplo de uso
// Get the IDFA (iOS only)
string idfa = SingularSDK.GetIDFA();
Debug.Log("IDFA: " + idfa);
GetLimitDataSharing
Método SingularSDK.GetLimitDataSharing
Devuelve el estado actual de limitación de uso compartido de datos. Indica si el SDK está limitando actualmente la recopilación y el uso compartido de datos en función de la configuración de privacidad.
Firma
public static bool GetLimitDataSharing()
Ejemplo de uso
// Check if data sharing is limited
bool isLimited = SingularSDK.GetLimitDataSharing();
Debug.Log("Data sharing limited: " + isLimited);
HandlePushNotification
Método SingularSDK.HandlePushNotification
Procesa las cargas útiles de las notificaciones push para la atribución y la gestión de enlaces profundos. Este método debe invocarse cuando la aplicación recibe una notificación push. Sólo para iOS.
Firma
public static void HandlePushNotification(Dictionary<string, string> pushNotificationPayload)
Ejemplo de uso
// Handle push notification (iOS only)
var pushPayload = new Dictionary<string, string>
{
{ "aps", "{"alert":"New message"}" },
{ "deep_link", "myapp://promo/spring2024" }
};
SingularSDK.HandlePushNotification(pushPayload);
InAppPurchase
Método SingularSDK.InAppPurchase
Rastrea las compras dentro de la aplicación desde Unity IAP. Este método es compatible con Unity IAP 4.x y 5.x y valida automáticamente los recibos de compra con Apple y Google.
Firma
public static void InAppPurchase(Product product, Dictionary<string, object> attributes)
Ejemplo de uso
// Track in-app purchase
void OnPurchaseComplete(Product product)
{
var attributes = new Dictionary<string, object>
{
{ "category", "consumables" },
{ "location", "main_store" }
};
SingularSDK.InAppPurchase(product, attributes);
}
InicializarSingularSDK
Método SingularSDK.InitializeSingularSDK
Inicializa manualmente el Singular SDK. Este método sólo debe invocarse si se ha establecido InitializeOnAwake en false en la configuración del SDK. De lo contrario, el SDK se inicializa automáticamente.
Firma
public static void InitializeSingularSDK()
Ejemplo de uso
// Manually initialize the SDK (only if InitializeOnAwake = false)
SingularSDK.InitializeSingularSDK();
IsAllTrackingStopped
Método SingularSDK.IsAllTrackingStopped
Devuelve si se ha detenido todo el seguimiento. Cuando se detiene el seguimiento, el SDK no enviará ningún evento ni recopilará ningún dato.
Firma
public static bool IsAllTrackingStopped()
Ejemplo de uso
// Check if tracking is stopped
bool isTrackingStopped = SingularSDK.IsAllTrackingStopped();
Debug.Log("Tracking stopped: " + isTrackingStopped);
LimitDataSharing
Método SingularSDK.LimitDataSharing
Establece si el SDK debe limitar el uso compartido de datos. Si está activado, el SDK restringirá determinadas actividades de recopilación y uso compartido de datos para cumplir la normativa sobre privacidad.
Firma
public static void LimitDataSharing(bool limitDataSharingValue)
Ejemplo de uso
// Enable limited data sharing based on user consent
SingularSDK.LimitDataSharing(true);
RegisterDeviceTokenParaDesinstalar
Método SingularSDK.RegisterDeviceTokenForUninstall
Registra el token del dispositivo para el seguimiento de la desinstalación. Esto permite a Singular detectar cuándo los usuarios desinstalan su aplicación. Sólo para iOS.
Firma
public static void RegisterDeviceTokenForUninstall(string APNSToken)
Ejemplo de uso
// Register APNS token for uninstall tracking (iOS only)
void OnTokenReceived(string token)
{
SingularSDK.RegisterDeviceTokenForUninstall(token);
}
RestartSingularSession
Método SingularSDK.RestartSingularSession
Reinicia manualmente la sesión de Singular. Suele ejecutarse cuando la aplicación vuelve al primer plano si se necesita un control explícito de la gestión de la sesión.
Firma
public static void RestartSingularSession(string key, string secret)
Ejemplo de uso
// Restart the session
SingularSDK.RestartSingularSession("SDK KEY", "YOUR_SECRET");
ResumeAllTracking
Método SingularSDK.ResumeAllTracking
Reanuda todo el seguimiento después de haberlo detenido previamente. De este modo, se vuelve a activar el seguimiento de eventos y la recopilación de datos.
Firma
public static void ResumeAllTracking()
Ejemplo de uso
// Resume tracking
SingularSDK.ResumeAllTracking();
Ingresos
Método SingularSDK.Revenue
Rastrea un evento de ingresos. Este es el método principal para rastrear compras y otros eventos de monetización que no son rastreados automáticamente a través de Unity IAP.
Firma
public static void Revenue(string currency, double amount)
public static void Revenue(Dictionary<string, object> args,
string currency, double amount)
Ejemplo de uso
// Track simple revenue
SingularSDK.Revenue("USD", 9.99);
// Track revenue with attributes
var attributes = new Dictionary<string, object>
{
{ "product_id", "premium_upgrade" },
{ "product_name", "Premium Subscription" },
{ "product_category", "subscriptions" }
};
SingularSDK.Revenue(attributes, "USD", 9.99);
SetAge
Método SingularSDK.SetAge
Establece la edad del usuario para el seguimiento demográfico. La edad debe estar comprendida entre 0 y 100. Sólo para iOS.
Firma
public static void SetAge(int age)
Ejemplo de uso
// Set user age (iOS only)
SingularSDK.SetAge(28);
SetConversionValueUpdatedHandler
Método SingularSDK.SetConversionValueUpdatedHandler
Establece un controlador de devolución de llamada para las actualizaciones de valores de conversión de SKAdNetwork (iOS 14+). Este controlador se llama cada vez que se actualiza el valor de conversión. Sólo iOS.
Firma
public static void SetConversionValueUpdatedHandler(SingularConversionValueUpdatedHandler handler)
Ejemplo de uso
// Set conversion value updated handler (iOS only)
SingularSDK.SetConversionValueUpdatedHandler((conversionValue) =>
{
Debug.Log("Conversion value updated: " + conversionValue);
});
SetConversionValuesUpdatedHandler
Método SingularSDK.SetConversionValuesUpdatedHandler
Establece un controlador de devolución de llamada para las actualizaciones de valores de conversión de SKAdNetwork 4.0+. Este controlador proporciona el valor de conversión, el valor de conversión grueso y el estado de bloqueo. Sólo iOS.
Firma
public static void SetConversionValuesUpdatedHandler(SingularConversionValuesUpdatedHandler handler)
Ejemplo de uso
// Set conversion values updated handler (iOS only)
SingularSDK.SetConversionValuesUpdatedHandler((conversionValue, coarse, lockWindow) =>
{
Debug.Log($"CV: {conversionValue}, Coarse: {coarse}, Lock: {lockWindow}");
});
SetCustomUserId
Método SingularSDK.SetCustomUserId
Establece un ID de usuario personalizado para asociarlo a todos los eventos rastreados. Esto le permite vincular los datos de Singular a su propio sistema de identificación de usuarios.
Firma
public static void SetCustomUserId(string customUserId)
Ejemplo de uso
// Set custom user ID
SingularSDK.SetCustomUserId("user_123456");
SetDeviceCustomUserId
Método SingularSDK.SetDeviceCustomUserId
Establece un ID de usuario personalizado a nivel de dispositivo. Es diferente del ID de usuario personalizado normal y persiste en todas las sesiones de la aplicación a nivel de dispositivo.
Firma
public static void SetDeviceCustomUserId(string customUserId)
Ejemplo de uso
// Set device-level custom user ID
SingularSDK.SetDeviceCustomUserId("device_user_789");
SetFCMDeviceToken
SingularSDK.SetFCMDeviceToken Método
Establece el token de dispositivo FCM (Firebase Cloud Messaging) para el seguimiento de notificaciones push y la detección de desinstalaciones. Sólo para Android.
Firma
public static void SetFCMDeviceToken(string fcmDeviceToken)
Ejemplo de uso
// Set FCM token (Android only)
void OnFCMTokenReceived(string token)
{
SingularSDK.SetFCMDeviceToken(token);
}
SetGender
Método SingularSDK.SetGender
Establece el género del usuario para el seguimiento demográfico. Acepta "m" para hombre o "f" para mujer. Sólo para iOS.
Firma
public static void SetGender(string gender)
Ejemplo de uso
// Set user gender (iOS only)
SingularSDK.SetGender("f");
SetGlobalProperty
Método SingularSDK.SetGlobalProperty
Establece una propiedad global que se enviará con todos los eventos. Las propiedades globales son pares clave-valor que persisten en varios eventos hasta que se borran o cambian.
Firma
public static bool SetGlobalProperty(string key, string value, bool overrideExisting)
Ejemplo de uso
// Set a global property
bool success = SingularSDK.SetGlobalProperty("user_level", "premium", true);
// Set multiple global properties
SingularSDK.SetGlobalProperty("app_version", "2.1.0", true);
SingularSDK.SetGlobalProperty("platform", "unity", true);
SetIMEI
Método SingularSDK.SetIMEI
Establece el IMEI del dispositivo para el seguimiento. Esto es útil en regiones donde el rastreo de IMEI está permitido y es preferible. Sólo para Android.
Firma
public static void SetIMEI(string imei)
Ejemplo de uso
// Set device IMEI (Android only)
SingularSDK.SetIMEI("123456789012345");
SetLimitAdvertisingIdentifiers
SingularSDK.SetLimitAdvertisingIdentifiers Método
Activa el modo de identificadores publicitarios limitados. Esto afecta al modo en que el SDK recopila y utiliza los identificadores de dispositivo para el seguimiento, adecuado para aplicaciones de público mixto.
Firma
public static void SetLimitAdvertisingIdentifiers(bool isEnabled)
Ejemplo de uso
// Enable limited advertising identifiers mode
SingularSDK.SetLimitAdvertisingIdentifiers(true);
SetSingularDeviceAttributionCallbackHandler
Método SingularSDK.SetSingularDeviceAttributionCallbackHandler
Establece un controlador de devolución de llamada para recibir datos de atribución de dispositivos. Este controlador se invoca cuando los datos de atribución están disponibles, lo que le permite acceder a la información de campaña y origen.
-
Cree un C# Script
AttributionCallbackcon el código Handler siguiente -
Cree un Objeto Emtpy en la Jerarquía y colóquelo debajo del SingularSDKObject
-
Añada un Componente Script al Objeto Vacío asociando el Script Handler
AttributionCallback
Firma
public static void SetSingularDeviceAttributionCallbackHandler(
SingularDeviceAttributionCallbackHandler handler)
Ejemplo de Uso
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Singular;
public class AttributionCallback : MonoBehaviour, SingularDeviceAttributionCallbackHandler
{
void Awake()
{
Debug.Log("Registering SingularDeviceAttributionCallbackHandler");
SingularSDK.SetSingularDeviceAttributionCallbackHandler(this);
}
public void OnSingularDeviceAttributionCallback(Dictionary attributionInfo) {
foreach(var kvp in attributionInfo)
{
Debug.Log($"OnSingularDeviceAttributionCallback Key: {kvp.Key}, Value: {kvp.Value}");
}
}
}
SetSingularLinkHandler
Método SingularSDK.SetSingularLinkHandler
Establece un controlador de devolución de llamada para Singular Links (enlaces profundos). Este controlador se invoca cuando se resuelve un enlace profundo, proporcionando parámetros de enlace y datos de transferencia.
-
Cree un Script C#
DeepLinkManagercon el código Handler de abajo -
Cree un Objeto Emtpy en la Jerarquía y colóquelo debajo del SingularSDKObject
-
Añada un Componente de Script al Objeto Vacío asociando el Script Manejador
DeepLinkManager
Firma
public static void SetSingularLinkHandler(SingularLinkHandler linkHandler)
Ejemplo de Uso
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Singular;
public class DeepLinkManager : MonoBehaviour, SingularLinkHandler
{
void Awake()
{
Debug.Log("Registering SingularLink Handler");
SingularSDK.SetSingularLinkHandler(this);
}
public void OnSingularLinkResolved(SingularLinkParams linkParams)
{
Debug.Log("SingularLink Resolved");
// Extract parameters from the tracking link
string deeplink = linkParams.Deeplink;
string passthrough = linkParams.Passthrough;
bool isDeferred = linkParams.IsDeferred;
// Log the parameters
Debug.Log($"SingularLink Deeplink: {deeplink ?? "null"}");
Debug.Log($"SingularLink Passthrough: {passthrough ?? "null"}");
Debug.Log($"SingularLink is Deferred: {isDeferred}");
// Handle deep link routing
if (!string.IsNullOrEmpty(deeplink))
{
HandleDeepLink(deeplink, isDeferred);
}
}
private void HandleDeepLink(string url, bool isDeferred)
{
// Your deep link routing logic here
Debug.Log($"SingularLink Routing to: {url} (Deferred: {isDeferred})");
// Example: Parse the URL and navigate to the appropriate screen
// if (url.Contains("product"))
// {
// NavigateToProduct(url);
// }
}
}
SetSingularSdidAccessorHandler
Método SingularSDK.SetSingularSdidAccessorHandler
Establece un controlador de devolución de llamada para recibir el ID de dispositivo singular (SDID). Este controlador se invoca cuando el SDID está disponible tras la inicialización del SDK.
-
Cree un C# Script
SDIDManagercon el siguiente código de Handler -
Cree un Objeto Emtpy en la Jerarquía y colóquelo debajo del SingularSDKObject
-
Añada un Componente Script al Objeto Vacío asociando el Script Handler
SDIDManager
Firma
public static void SetSingularSdidAccessorHandler(SingularSdidAccessorHandler handler)
Ejemplo de Uso
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Singular;
public class SDIDManager : MonoBehaviour, SingularSdidAccessorHandler
{
void Awake()
{
Debug.Log("Registering SingularSdidAccessorHandler");
SingularSDK.SetSingularSdidAccessorHandler(this);
}
public void DidSetSdid(string sdid)
{
Debug.Log($"SDID Set: {sdid}");
}
public void SdidReceived(string sdid)
{
Debug.Log($"SDID Set: {sdid}");
// Store or use the SDID as needed
}
}
SkanRegisterAppForAdNetworkAttribution
SingularSDK.SkanRegisterAppForAdNetworkAttribution Método
Registra la aplicación para la atribución SKAdNetwork. Este método debe invocarse al principio del ciclo de vida de la aplicación para la compatibilidad con SKAdNetwork de iOS 14.5+. Sólo iOS.
Firma
public static void SkanRegisterAppForAdNetworkAttribution()
Ejemplo de uso
// Register for SKAdNetwork attribution (iOS only)
SingularSDK.SkanRegisterAppForAdNetworkAttribution();
SkanUpdateConversionValue
Método SingularSDK.SkanUpdateConversionValue
Actualiza manualmente el valor de conversión de SKAdNetwork. Este método se utiliza cuando está activada la gestión manual del valor de conversión. Sólo para iOS.
Firma
public static bool SkanUpdateConversionValue(int conversionValue)
public static bool SkanUpdateConversionValue(int conversionValue, int coarse, bool lockWindow)
Ejemplo de uso
// Update conversion value (iOS only)
bool success = SingularSDK.SkanUpdateConversionValue(5);
// Update with coarse value and lock (SKAdNetwork 4.0+)
bool success2 = SingularSDK.SkanUpdateConversionValue(10, 2, false);
StopAllTracking
Método SingularSDK.StopAllTracking
Detiene todo el seguimiento y la recopilación de datos. Cuando se detiene el seguimiento, el SDK no enviará ningún evento ni recopilará ningún dato hasta que se reanude el seguimiento.
Firma
public static void StopAllTracking()
Ejemplo de uso
// Stop all tracking
SingularSDK.StopAllTracking();
TrackingOptIn
Método SingularSDK.TrackingOptIn
Indica que el usuario ha optado por el seguimiento. Este método debe invocarse cuando el usuario consiente explícitamente la recopilación de datos y el seguimiento.
Firma
public static void TrackingOptIn()
Ejemplo de uso
// User opted in to tracking
SingularSDK.TrackingOptIn();
TrackingUnder13
Método SingularSDK.TrackingUnder13
Indica que el usuario es menor de 13 años, lo que afecta a la recopilación de datos para cumplir la normativa COPPA (Children's Online Privacy Protection Act).
Firma
public static void TrackingUnder13()
Ejemplo de uso
// User is under 13 years old
SingularSDK.TrackingUnder13();
UnsetCustomUserId
Método SingularSDK.UnsetCustomUserId
Elimina el identificador de usuario personalizado establecido previamente. Después de llamar a este método, los eventos dejarán de estar asociados a un ID de usuario personalizado hasta que se establezca uno nuevo.
Firma
public static void UnsetCustomUserId()
Ejemplo de uso
// Remove custom user ID (e.g., on logout)
SingularSDK.UnsetCustomUserId();
UnsetGlobalProperty
Método SingularSDK.UnsetGlobalProperty
Elimina una propiedad global específica por clave. Esto impide que la propiedad se envíe con eventos posteriores.
Firma
public static void UnsetGlobalProperty(string key)
Ejemplo de uso
// Remove a specific global property
SingularSDK.UnsetGlobalProperty("user_level");