Guía de integración de Unity SDK

 

Nuevo VideoGuía

Vea este vídeo para obtener una visión detallada del proceso de integración y prueba. Le recomendamos que utilice tanto el vídeo como la guía escrita que encontrará a continuación.

Antes de empezar: Requisitos previos del SDK

Siga los pasos indicados en Integración de un SDK Singular:Planificación y requisitos previos.

Estos pasos son requisitos previos para cualquier integración de Singular SDK.

1. 1. Instalación del SDK

1.1. Descarga e importación del paquete SDK

1.2. Importación del paquete personalizado de Unity

Si está actualizando desde la versión 4.3.2 o anterior?

¡Navegue a Assets > Plugins > iOS y elimine los siguientes archivos antes de importar el nuevo unitypackage!

  • Attributes.h
  • Events.h
  • libSingular.a
  • Singular.h
  • SingularAdData.h
  • SingularConfig.h
  • SingularLinkParams.h
  1. Descargue el nuevo SDK de Unity unitypackage v4.4.2 de Unity.
  2. Desde el Menú Unity navegue a:

    • Assets > Import Package > Custom package
    • Seleccione el unitypackage descargado
    • Seleccione Importar

1.2. Configuración para Android

TIP: Cómo actualizar el AndroidManifest cuando se utiliza Unity.
  1. A partir de Unity v2018.3, puede añadir su propio archivo AndroidManifest simplemente habilitando la propiedad Custom Main Manifest en la ventana Player (a la que se puede acceder mediante File > Build Settings > Player Settings > Publishing settings). Esto genera un archivo AndroidManifest.xmlpredeterminado para usted, que puede editar.

    El archivo estará en la ubicación: Assets/Plugins/Android/AndroidManifest.xml

    Fuente: https://docs.unity3d.com/2023.2/Documentation/Manual/android-manifest.html

  2. En lugar de utilizar el archivo Main Manifest personalizado de Unity, puede acceder a AndroidManifest.xml desde Android Studio después de exportar la App desde Unity.

TIP: Cómo actualizar la configuración de Gradle cuando se utiliza Unity.
  1. Desde Unity v2018.3 en adelante, usted puede agregar su propio habilitando la propiedad Custom Gradle Template en la ventana Player (a la cual se puede acceder por custom Gradle build file simplemente File > Build Settings > Player Settings > Publishing settings). Esto genera un archivo mainTemplate.gradlepor defecto para usted, el cual puede editar.

    El archivo estará en la ubicación: Assets/Plugins/Android/mainTemplate.gradle

    Fuente: https://docs.unity3d.com/2023.2/Documentation/Manual/android-gradle-overview.html

  2. En lugar de utilizar el archivo de construcción Gradle personalizado de Unity, puede acceder a las Apps build.gradle desde Android Studio después de exportar la App desde Unity.

TIP: ¿Planeas soportar dispositivos Android 12?

Añada el archivo play-services-ads-identifier-18.0.1.aar a su carpeta Assets/Plugins/Android/ para que Unity incluya la dependencia necesaria para capturar el identificador de publicidad de Google. Si ya tiene esta dependencia, puede omitir este paso.

Actualice los permisos de AndroidManifest

En su archivo AndroidManifest.xml, añada los siguientes permisos:


<!--  Este permiso es necesario para utilizar la conexión a Internet  -->
<uses-permission android:name="android.permission.INTERNET" />

<!--  Este permiso es necesario para comprobar si hay una conexión a Internet activa  -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<!--  Este permiso es necesario para recuperar los datos de Google Play Referrer  -->
<uses-permission android:name="BIND_GET_INSTALL_REFERRER_SERVICE" />

<!--  Este permiso es necesario para validar el fraude de Google Install  -->
<uses-permission android:name="com.android.vending.CHECK_LICENSE" />
	
¿Ha desactivado las dependencias transitivas para el SDK Singular?
  1. Si ha deshabilitado las dependencias transitivas para Singular SDK, añada lo siguiente al build.gradle de su aplicación.

    implementation 'com.android.installreferrer:installreferrer:2.2'
    implementation 'com.google.android.gms:play-services-appset:16.0.0'
  2. Singular SDK requiere Google Mobile Ads API, que forma parte de Google Play Services APIs 17.0.0+. Si ya has integrado Google Play Services en tu aplicación, el requisito se cumple. Si no lo ha hecho, puede integrar Google Mobile Ads de forma individual incluyendo la siguiente dependencia en el archivo build.gradle de su aplicación:

    implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1+'

    Para obtener más información, consulta la guía de Google para configurar Google Play Services.

¿Estás utilizando Proguard o Eclipse?

Si utilizas Proguard, añade las siguientes líneas de código a tu archivo proguard-unity.txt:

-keep class com.singular.sdk.** { *; }
-keep public class com.android.installreferrer.** { *; }
-keep public class com.singular.unitybridge.** { *; }

Si estás construyendo con Eclipse, utiliza uno de los siguientes métodos para integrar el AAR en tu proyecto Eclipse:

  1. Descomprime singular_sdk-12.x.x.aar.
  2. Renombra classes.jar a singular_sdk-12.x.x.jar (este es el jar principal del SDK).
  3. Integra el jar anterior y libs/installreferrer-release.jar (la biblioteca Google Referrer API) en tu proyecto Eclipse de la forma que prefieras.
  4. Copia el permiso BIND_GET_INSTALL_REFERRER_SERVICE del AndroidManifest.xml contenido en el AAR a tu AndroidManifest.xml.

1.3. Configuración para iOS

Después de construir desde Unity, Vincule las siguientes librerías/frameworks a su proyecto Unity XCode. Navegue al UnityFramework Target, y elija Build Phases > Link Binary with Libraries. Añada lo siguiente:

  • WebKit.framework
  • libsqlite3.0.tbd
  • libz.tbd
  • AdServices.framework (Debe añadirse, pero márquelo como Opcional ya que solo está disponible para dispositivos con iOS 14.3 y superior). También es necesario si planea utilizar los anuncios de búsqueda de Apple.

Importante: El AdServices.framework es necesario en su App Build si planea utilizar Apple Search Ad Campaigns y desea rastrear la atribución.

2. Integración SDK

2.1. Configuración del SingularSDKObject

En el panel de jerarquía de la plataforma Unity:

  1. Agregue un"GameObject Vacío" a su escena Principal y nómbrelo exactamente: SingularSDKObject.

  2. Agregue un componente script en el SingularSDKObject y seleccione el script SingularSDK.

  3. En el panel de Inspección para el SingularSDKObject, pegue su Clave SDK Singular y Secreto SDKen los campos respectivos. Para recuperar la clave y el secreto del SDK, inicie sesión en su cuenta de Singular y vaya a "Developer Tools > SDK Integration > SDK Keys").

    Si la clave y el secreto del SDK de Singular se aplican incorrectamente, los datos no se enviarán a Singular.
    Pruebe su implementación utilizando la consola de Singular SDK para verificar el comportamiento correcto.

Nota: Configuración predeterminada del panel de inspección para SingularSDKObject:

Las siguientes opciones están habilitadas en el panel de inspección:

  • Initialize On Awake (marcada)

    Esta configuración permite a Unity controlar la Inicialización de Singular SDK basada en el estado Awake de la App.

    Asegúrese de cumplir con los requisitos de privacidad de su App y actualice esta opción según sea necesario. Desmarcando la opción deshabilita la inicialización del Singular SDK en el estado Awake y requeriría una Inicialización manual.

  • SKAN Enabled (marcada)

    A partir de Unity SDK versión 4.0.17, SKAdNetwork está habilitado por defecto. Está habilitado en Managed Mode (en el cual Singular actualiza el valor de conversión SKAN por usted usando un modelo de conversión que usted elige en el tablero de Singular).

    Mientras utilice la última versión del SDK, no necesita configurar nada más ni añadir código para utilizar SKAdNetwork.

  • Wait For Tracking Authorization, ajustado a 0 (desactivado)

    Si su aplicación está mostrando el mensaje App Tracking Transparency (ATT), se recomienda establecer este tiempo de espera en 300 segundos. Al añadir el tiempo de espera, se retrasa la sesión de Singular SDK, lo que permite al usuario autorizar/denegar el consentimiento de AppTrackingTransparency antes de registrar eventos en los servidores de Singular. Una vez que el Usuario responde a la solicitud de ATT, Singular SDK continuará sin demora. Esto permite la captura del identificador IDFA para Install Attribution cuando se proporciona el consentimiento. Si no muestra ATT, el valor predeterminado para esta opción debe seguir siendo 0 (sin espera).

  • Enable Logging (marcada)

    Activa el registro detallado desde Singular SDK. Debe utilizarse con la opción "Nivel de registro".

  • Log Level establecido en 3

    Permite que Singular SDK muestre registros de advertencia en la salida de LogCat.

  • Ddl Timeout Sec establecido en 0

    Por defecto, la configuración de "0" utiliza un tiempo de espera de 60 segundos. Esto indica al servidor de Singular cuánto tiempo debe buscar un valor de enlace profundo vinculado al último atributo táctil. Si se encuentra un enlace profundo diferido, se devuelve a la aplicación en la respuesta de la sesión del SDK y se procesa. Si no se encuentra ningún enlace profundo diferido en 60 segundos, el servidor deja de buscar.

  • Session Timeout Sec set to 0

    Este es el tiempo de espera en segundos antes de que el SDK Singular registre una nueva sesión cuando la app estaba en segundo plano y vuelva al primer plano. Por defecto, la configuración de "0" utiliza un tiempo de espera de 60 segundos. Puede ajustar esta configuración para una ventana más grande si es necesario.

  • Shortlink Resolve Timeout establecer en 0

    Por defecto, el valor "0" utiliza un tiempo de espera de 10 segundos. Este tiempo de espera protege la experiencia del usuario y, si el enlace corto no se resuelve en el tiempo especificado, Singular SDK no activará ningún controlador de enlace profundo.

Otras opciones del panel de inspección:

Activar Facebook (META Install Referrer)

Para admitir el método de atribución META Install Referrer, añada su ID de aplicación de Facebook al panel de inspección en SingularSDKObject.

  1. Haga clic en el SingularSDKObject en su Escena Principal.
  2. Abra el panel de inspección y localice el campo "Facebook App ID".
  3. Añade el ID de tu aplicación de Facebook.

2.2. Uso de SKAdNetwork

A partir de Unity SDK versión 4.0.17, SKAdNetwork está habilitado por defecto. Está habilitado en el modo gestionado (en el que Singular actualiza el valor de conversión de SKAN por usted utilizando un modelo de conversión que usted elige en el panel de control de Singular).

Mientras utilice la última versión del SDK, no necesita configurar nada más ni añadir código para utilizar SKAdNetwork.

Información adicional

Activación de SKAdNetwork en versiones anteriores del SDK

Si utiliza una versión anterior del SDK, deberá habilitar SKAdNetwork de una de las siguientes maneras:

  • Vaya a SingularSDKObject y establezca SKANEnabled en True.
  • Llame a SingularSDK.SkanRegisterAppForAdNetworkAttribution() en el código de su aplicación.
Uso de SKAdNetwork en modo manual (avanzado)

Si decide gestionar el valor de conversión de SKAN manualmente utilizando su propia lógica, deberá hacer lo siguiente:

  • Vaya a SingularSDKObject y establezca manualSKANConversionManagement en True.
  • Utilice los siguientes métodos en su código para establecer y recuperar el valor de conversión.
Método SingularSDK.SkanUpdateConversionValue
Descripción

Actualiza el valor de conversión de SKAdNetwork.

Nota: utilice este método si ha seleccionado actualizar el valor de conversión de SKAdNetwork manualmente. Este método sólo funcionará si manualSKANConversionManagement tiene el valor True.

Firma public void SkanUpdateConversionValue(int value)
Ejemplo de uso
// Un acto de inscripción
Singular.Event("SignUp");

// Actualiza el valor de conversión a 7
SingularSDK.SkanUpdateConversionValue(7);
Método SingularSDK.SkanGetConversionValue
Descripción Obtiene el valor de conversión actual rastreado por Singular SDK.
Firma public int? SkanGetConversionValue()
Ejemplo de uso
int? value = SingularSDK.SkanGetConversionValue();
Método SingularSDK.SetConversionValueUpdatedHandler
Descripción Establece un controlador para recibir notificaciones cuando se actualiza el valor de conversión.
Firma public void SetConversionValueUpdatedHandler(SingularConversionValueUpdatedHandler handler)
Ejemplo de uso
public class Main : MonoBehaviour, SingularConversionValueUpdatedHandler {
  void Awake() {
    SingularSDK.SetConversionValueUpdatedHandler(this);
  }

  void OnConversionValueUpdated(int value) {
    // Utilizar el valor de conversión
  }
}

2.3. Gestión del consentimiento de App Tracking Transparency(ATT) de iOS

¿Está mostrando el aviso App Tracking Transparency(ATT)?

A partir de iOS 14.5, las aplicaciones están obligadas a solicitar el consentimiento del usuario (utilizando el marco App Tracking Transparency) antes de que puedan acceder y compartir algunos datos de usuario que son útiles para fines de seguimiento, incluyendo el IDFA del dispositivo.

Singular se beneficia enormemente de contar con el IDFA para identificar dispositivos y realizar la atribución de instalaciones (aunque hay formas de realizar la atribución sin el IDFA). Recomendamos encarecidamente solicitar el consentimiento del usuario para obtener el IDFA.

Se recomienda retrasar la inicialización de Singular SDK hasta que el usuario responda a la solicitud de ATT.

Por defecto, Singular SDK envía una sesión de usuario cuando se inicializa. Cuando se envía una sesión desde un nuevo dispositivo, se activa inmediatamente el proceso de atribución de Singular, que se realiza basándose únicamente en los datos de que dispone Singular en ese momento. Por lo tanto, es esencial solicitar el consentimiento y recuperar el IDFA antes de que Singular SDK envíe la primera sesión.

SUGERENCIA: Si su aplicación muestra el aviso de transparencia de seguimiento de aplicaciones (ATT), se recomienda establecer el tiempo de espera en 300 segundos. Si no muestra ATT, el valor predeterminado para esta opción debe seguir siendo 0 (sin espera).

Para configurar el waitForTrackingAuthorizationWithTimeoutInterval ajuste la opción de configuración en el panel de Inspección SingularSDKObject . Esto establece el tiempo máximo (en segundos) que Singular SDK esperará a que el usuario autorice/deniegue el consentimiento de AppTrackingTransparency antes de registrar eventos en los servidores de Singular.

2.4. Manejo de enlaces profundos

Los enlaces profundos son enlaces que llevan a contenidos específicos dentro de una aplicación. Cuando un usuario hace clic en un enlace profundo en un dispositivo que tiene instalada la aplicación, ésta se abre y muestra un producto o experiencia específicos.

Los enlaces de seguimiento singulares pueden incluir enlaces profundos, así como enlaces profundos diferidos(consulte nuestras Preguntas frecuentes sobre enlaces profund os y las Preguntas frecuentes sobre enlaces singulares para obtener más información).

Las siguientes instrucciones le mostrarán cómo:

  1. Acceder al enlace de seguimiento que condujo a la apertura de su aplicación,
  2. Leer el destino del enlace profundo, y
  3. Mostrar el contenido apropiado.

Notas:

Configuración de enlaces profundos Requisitos previos

  1. Requisitos previos para iOS y Android: Siga las instrucciones en Requisitos previos para Singular Links.

  2. Configuración adicional para Unity: En el archivo AndroidManifest.xml de la aplicación, cambie la propiedad del nombre de la actividad del valor predeterminado UnityPlayerActivity:

    <activity android:name="com.unity3d.player.UnityPlayerActivity"

    a

    <activity android:name="com.singular.unitybridge.SingularUnityActivity"

    o:

    Nota: Si has implementado una actividad personalizada, llama a este método en el onNewIntent de tu actividad:

    @Override
    protected void onNewIntent(Intent intent) {
        setIntent(intent);
    
        // Llame a este método desde su actividad personalizada en onNewIntent
        SingularUnityBridge.onNewIntent(intent);
    }

Agregar un Manejador de Enlaces Profundos

Singular SDK proporciona un mecanismo de control para leer los detalles del enlace de seguimiento que ha llevado a la apertura de la aplicación.

Para utilizar el controlador

  1. Implemente la interfaz SingularLinkHandler.
  2. Llame al método SetSingularLinkHandler en cualquier punto de la clase para registrarla como gestor de enlaces profundos.
  3. Cuando se llama a SetSingularLinkHandler, Singular SDK obtiene el enlace de seguimiento y llama al método OnSingularLinkResolved, pasándole los detalles del enlace de seguimiento. Anule este método para leer los detalles del enlace y procesarlos.

El siguiente código de ejemplo muestra los tres pasos:

public class Main : SingularLinkHandler {
    // ...
    void Awake () {
      // Registrar la clase como gestor de Enlace Singular.
      // Puede llamar a este método en cualquier momento de la ejecución de la aplicación. Obtendrá los detalles del enlace de seguimiento y llamará a OnSingularLnkResolved.
      SingularSDK.SetSingularLinkHandler(this);
    }
    
    public void OnSingularLinkResolved(SingularLinkParams linkParams) {
      // El destino del enlace profundo, configurado en la página Gestionar enlaces
      string deeplink = linkParams.Deeplink;
      
      // Los parámetros de paso añadidos al enlace, si los hay.
      string passthrough = linkParams.Passthrough;
      
      // Si el enlace está configurado como enlace profundo diferido.
      bool isLinkDeferred = linkParams.IsDeferred;
      
      // Añadir código aquí para procesar el enlace profundo
    }
    
    // ...

Método Referencia

SetSingularLinkHandler
Método SetSingularLinkHandler
Descripción Registra un manejador que recupera los detalles del enlace de seguimiento que condujo a la apertura de la aplicación.
Firma
public void SetSingularLinkHandler(SingularLinkHandler 
handler)
Ejemplo de uso
public class Main : MonoBehaviour, SingularLinkHandler {
    void Awake () {
        SingularSDK.SetSingularLinkHandler(this)
    }
}
OnSingularLinkResolved
OnSingularLinkResolved Method
Descripción Método de devolución de llamada para SetSingularLinkHandler. Leer los detalles del enlace de seguimiento y procesarlos.
Firma
public void OnSingularLinkResolved(SingularLinkParams
linkParams)

Nota: El objeto SingularLinkParams contiene los siguientes valores:

  • Deeplink - El destino del enlace profundo, tal y como se ha configurado en la página Gestionar enlaces de la plataforma Singular.
  • Passthrough - Parámetros Passthrough añadidos al enlace, si los hay.
  • IsDeferred - Si el enlace está configurado como enlace profundo diferido.
Ejemplo de uso
public void OnSingularLinkResolved(SingularLinkParams
linkParams){ // Lea los detalles del enlace de seguimiento y regístrelos Debug.Log("deeplink: " + linkParams.Deeplink); Debug.Log("passthrough: " + linkParams.Passthrough); Debug.Log("is_deferred: " + linkParams.IsDeferred); }

Gestión de enlaces profundos con enlaces heredados

Si es un cliente antiguo de Singular, es posible que utilice enlaces de seguimiento heredados (el mecanismo de enlaces de seguimiento más antiguo de Singular) en lugar de los nuevos enlaces de Singular. Los enlaces heredados se gestionan en las páginas Create Link y View Links, y también proporcionan la funcionalidad de enlace profundo y enlace profundo diferido.

Si su organización utiliza enlaces heredados, deberá implementar un manejador para enlaces profundos llamado SingularDeferredDeepLinkHandler en lugar del SingularLinksHandler descrito anteriormente. La implementación es muy similar.

2.5. Inicialización del SDK

Nota: Recuerde cumplir las distintas leyes de privacidad promulgadas en las regiones en las que opera, incluidas GDPR, CCPA, COPPA y otras, cuando implemente los SDK de Singular. Para obtener más información, consulte Prácticas de inclusión y exclusión de SDK.

El código de inicialización del SDK debe invocarse cada vez que se abre la aplicación. Es un requisito previo para todas las funciones de atribución de Singular y también envía una nueva sesión a Singular que se utiliza para calcular la retención de usuarios.

Por defecto, SingularSDK.cs inicializa el SDK automáticamente cuando se crea la escena, a través del método Awake.

Inicialización manual

Si prefiere inicializar el SDK manualmente en un momento posterior de la ejecución de la aplicación, haga lo siguiente:

  1. Desactive la opción Initialize on Awake en el panel de inspección del objeto SingularSDK.
  2. Utilice el método estático SingularSDK.InitializeSingularSDK para inicializar el SDK:
Método SingularSDK.InitializeSingularSDK
Descripción Inicializa el Singular SDK si no se ha inicializado al activarse.
Firma
public void InitializeSingularSDK()
Ejemplo de uso
// SDK Key y SDK Secret se establecen en el 
// objeto de juego asociado a SingularSDK SingularSDK.InitializeSingularSDK();

Nota sobre la seguridad de los hilos: El Singular Unity SDK siempre debe ser llamado desde el mismo thread, de la misma manera que usted llama otros métodos de Unity.

2.6. Configuración del tiempo de espera de la sesión (opcional)

Por defecto, si la aplicación se ejecuta en segundo plano durante 60 segundos o más antes de volver al primer plano, Singular SDK registra una nueva sesión. Puede cambiar el valor predeterminado del tiempo de espera modificando la propiedad Session Timeout Sec de su SingularSDKObject.

2.7. Envío del ID de usuario a Singular (opcional)

Puede enviar su ID de usuario interno a Singular utilizando un método de Singular SDK.

Nota: Si utiliza la solución multidispositivo de Singular, debe recopilar el ID de usuario en todas las plataformas.

  • El ID de usuario puede ser cualquier identificador y no debe exponer PII (Personally Identifiable Information). Por ejemplo, no debe utilizar la dirección de correo electrónico, el nombre de usuario o el número de teléfono de un usuario. Singular recomienda utilizar un valor hash único sólo para sus datos de origen.
  • El valor de ID de usuario que se pasa a Singular también debe ser el mismo ID de usuario interno que se captura en todas las plataformas (Web/Móvil/PC/Consola/Offline).
  • Singular incluirá el ID de usuario en las exportaciones a nivel de usuario, ETL y devoluciones internas de BI (si está configurado). El ID de usuario es un dato de origen y Singular no lo comparte con terceros.
  • El valor del ID de usuario, cuando se establece con el método Singular SDK, persistirá hasta que se desactive utilizando el método UnsetCustomUserId o hasta que se desinstale la aplicación. Cerrar o reiniciar la aplicación no anula el ID de usuario.

Para establecer el ID de usuario, utilice el método SetCustomUserId. Para desestablecerlo (por ejemplo, si el usuario "cierra sesión" en la cuenta), llame a UnsetCustomUserId.

Nota: Si varios usuarios utilizan un único dispositivo, recomendamos implementar un flujo de cierre de sesión para establecer y desestablecer el ID de usuario para cada inicio y cierre de sesión.

Si ya conoce el ID de usuario cuando se abre la aplicación, llame a SetCustomUserId antes de inicializar Singular SDK. De esta forma, Singular puede tener el ID de usuario desde la primera sesión. Sin embargo, el ID de usuario no suele estar disponible hasta que el usuario se registra o realiza un inicio de sesión. En ese caso, llame a SetCustomUserId una vez finalizado el flujo de registro.

Método SingularSDK.SetCustomUserId
Descripción Envía el ID de usuario a Singular.
Firma public void SetCustomUserId(string customUserId)
Ejemplo de uso
SingularSDK.SetCustomUserId("custom_user_id");
Método SingularSDK.UnsetCustomUserId
Descripción Anula el ID de usuario que se ha enviado a Singular.
Firma public void UnsetCustomUserId()
Ejemplo de uso
SingularSDK.UnsetCustomUserId();

Opcional: Asignación personalizada de ID de usuario

Importante: Esta función Enterprise avanzada sólo está disponible en casos excepcionales. Por favor, consulte con uno de los Ingenieros de Soluciones de Singular antes de implementarla.

Singular puede recibir datos adicionales de seguimiento de eventos móviles a través de una integración de servidor a servidor. Para utilizar esta función, debe asignar el ID de usuario al identificador de seguimiento de dispositivos móviles de Singular.

Nota: Llame a este método tan pronto como sea posible después de inicializar el SDK Singular o una vez que tenga el ID de usuario.

Método SingularSDK.SetDeviceCustomUserId
Descripción Establece el Id. de usuario personalizado igual que el inicio de sesión y lo asigna al identificador de seguimiento de Singular.
Firma public void SetDeviceCustomUserId(string customUserId)
Ejemplo de uso
SingularSDK.SetDeviceCustomUserId('CustomUserId');

3. Seguimiento de eventos e ingresos

3.1. Seguimiento de eventos (no ingresos)

Singular puede recopilar datos sobre eventos dentro de la aplicación para ayudar a analizar el rendimiento de sus campañas y medir los KPI.Por ejemplo, es posible que su organización desee recopilar datos sobre inicios de sesión, registros, finalización de tutoriales o subidas de nivel en una aplicación de juegos.

Singular es compatible con una serie de eventos estándar que las redes publicitarias suelen admitir para la generación de informes y la optimización. Otra ventaja es que cuando utiliza nombres de eventos estándar, Singular los reconoce automáticamente y los añade a la lista de eventos sin que tenga que definirlos manualmente. Recomendamos utilizar eventos estándar siempre que sea posible.

La lista de eventos enviados a Singular (con los atributos que los acompañan) debe ser compilada por el equipo de UA/marketing/negocio basándose en los KPI de marketing de su organización. El equipo comercial puede seguir la guía Cómo realizar el seguimiento de los eventos In-App: Guía para clientes de Singular Attribution.

Con cada evento que rastree, puede pasar varios atributos. Consulte los atributos estándar recomendados por evento.

En su código, envíe eventos estándar a Singular utilizando los métodos event o eventWithArgs.

Nota: Para los eventos estándar, utilice el nombre Unity del evento tal y como aparece en la Lista de eventos y atributos estándar del SDK de Unity, por ejemplo: sngLogin.

Para eventos personalizados, eventos que su organización desea medir y que no coinciden con ninguno de los eventos estándar de Singular, utilice cualquier nombre personalizado (máximo de 32 caracteres). Recomendamos utilizar nombres en inglés para que sean compatibles con los socios de redes publicitarias que puedan recibir el evento de Singular con fines de optimización.

Método SingularSDK.Event
Descripción Enviar eventos de usuario a Singular para su seguimiento.
Firma
public static void Event(string name)
public static void Event(string name, params object[] args)
public static void Event(Dictionary<string, object> args,
string name)

Nota: Al pasar diccionarios, los valores del diccionario deben tener uno de estos tipos: string, int, long, float, double, null, ArrayList, Dictionary<String,object>

Ejemplo de uso

// Enviar el evento estándar Iniciar sesión
SingularSDK.Event(sngLogin);
  
// Un ejemplo de evento personalizado que pasa dos pares clave-valor
SingularSDK.Event("Myevent", "Key1", "Value1", "Key2", 1234);
// Un ejemplo JSONEvent pasando un diccionario SingularSDK.Event(new Dictionary<string, object>() { {"Key1", "Value1"}, {"Key2", new Dictionary<string, object>() { {"SubKey1", "SubValue1"}, {"SubKey2", "SubValue2"} } }}, "JSONEvent");

3.2. Seguimiento de ingresos

Singular puede recopilar datos sobre los ingresos obtenidos a través de la aplicación para ayudar a analizar el rendimiento y el ROI de sus campañas. Singular pondrá los datos a disposición en informes, exportación de registros y postbacks.

Notas: Cualquier ingreso reportado en una moneda diferente se convertirá automáticamente a la moneda preferida de su organización según lo establecido en su cuenta de Singular.

Puede realizar un seguimiento de los eventos de ingresos utilizando el objeto IAP (In-App Purchases) integrado de Unity. De esta manera, Singular obtiene toda la información disponible sobre la compra para obtener informes más completos. Singular también obtiene el recibo de compra, que Singular utiliza en el back-end para validar la compra y descartar el fraude de atribución.

Método SingularSDK.InAppPurchase
Descripción Enviar un producto IAP a Singular para rastrear el evento de compra.
Firma
public static void InAppPurchase(Product product,
Dictionary<string, object> attributes, bool isRestored = false)
public static void InAppPurchase(string eventName,
Product product, Dictionary<string, object> attributes,
bool isRestored = false)
public static void InAppPurchase(IEnumerable<Product> products, Dictionary<string, object> attributes, bool isRestored = false)
public static void InAppPurchase(string eventName,
IEnumerable<Product> products, Dictionary<string, object>
attributes, bool isRestored = false)

Notes:

  • product es el objeto producto recibido de IAP: UnityEngine.Purchasing.Product
  • attributes: Utilice este parámetro para pasar información adicional a Singular. Si no tiene atributos para pasar, simplemente pase null.
  • isRestored: Indica si se restaura la transacción. Por defecto: false.
Ejemplo de uso
// IAP con un único producto y sin atributos adicionales
SingularSDK.InAppPurchase(myProduct, null);
// IAP con un único producto y atributos var attr = new Dictionary<string, object>() { ["my_first_attribute"] = "value1", ["my_second_attribute"] = "value2"}; SingularSDK.InAppPurchase(myProduct, attr); // IAP con un solo producto, sin atributos adicionales y un nombre de evento personalizado. SingularSDK.InAppPurchase("MyCustomProduct", myProduct, null); // IAP con lista de productos, sin atributos adicionales SingularSDK.InAppPurchase(myProductList, null); // IAP con lista de productos, sin atributos adicionales y un nombre de evento personalizado. SingularSDK.InAppPurchase("MyCustomProducts", myProductList, null);
Forma alternativa de realizar el seguimiento de los ingresos: Métodos Revenue y CustomRevenue

Si no puede utilizar Unity IAP, Singular SDK proporciona dos métodos para pasar información sobre una compra a Singular "manualmente":

  • Utilice Revenue para pasar información sobre una compra a Singular detallando la moneda de la transacción, el importe de la transacción y otros detalles opcionales.
  • CustomRevenue es muy similar, pero también le permite dar un nombre personalizado al evento.

Nota: Si utiliza Revenue/CustomRevenue en lugar de InAppPurchase, Singular no podrá verificar el recibo de compra.

Método SingularSDK.Revenue
Descripción Enviar un evento de ingresos a Singular.
Firma
public static void Revenue(string currency, double amount)

public static void Revenue(string currency,
double amount, string productSKU, string productName,
string productCategory, int productQuantity, double productPrice)
Nota: Pase la moneda como un código de moneda ISO 4217 de tres letras, como por ejemplo "USD", "EUR", "INR".
Ejemplo de uso
// Enviar un evento de ingresos sin detalles del producto
SingularSDK.Revenue("USD", 9.99);

// Enviar un evento de ingresos con detalles del producto
SingularSDK.Revenue("USD", 50.50, "abc123", "myProductName", 
"myProductCategory", 2, 25.50)
Método SingularSDK. CustomRevenue
Descripción Enviar un evento de ingresos con un nombre personalizado a Singular.
Firma
public static void CustomRevenue(string eventName, 
string currency, double amount) public static void CustomRevenue(string eventName,
string currency, double amount, string productSKU,
string productName, string productCategory, int productQuantity,
double productPrice)
Nota: Pase la moneda como un código de moneda ISO 4217 de tres letras, como por ejemplo "USD", "EUR", "INR".
Ejemplo de uso
// Enviar un evento de ingresos con un nombre personalizado
SingularSDK.CustomRevenue("MyCustomRevenue", "USD", 9.99);

// Enviar un evento de ingresos con un nombre personalizado + detalles del producto
SingularSDK.CustomRevenue("MyCustomRevenue", "USD", 50.50, 
"abc123", "myProductName", "myProductCategory", 2, 25.50)

3.3. Seguimiento de Eventos Híbrido (Avanzado)

Singular recomienda enviar todos los eventos e ingresos a través del SDK de Singular integrado en su app. Sin embargo, Singular puede recoger eventos e ingresos de otras fuentes.

Cualquier evento NO enviado desde el SDK de Singular debe cumplir con los requisitos de documentación de eventos de servidor a servidor de Singular y proporcionar el identificador de dispositivo correspondiente para atribuir correctamente un evento.

Importante:

Se producirán discrepancias si los identificadores de dispositivo utilizados en las solicitudes de eventos de servidor a servidor no tienen un identificador de dispositivo coincidente en Singular. Tenga en cuenta las siguientes posibilidades:

  • Si se recibe una solicitud de evento "antes" de que Singular SDK haya registrado el identificador de dispositivo, desde una App Session, entonces la solicitud de evento se considerará la "primera sesión" para el dispositivo desconocido, y Singular atribuirá el dispositivo como una atribución orgánica.
  • Si Singular SDK registró un identificador de dispositivo, pero el identificador de Singular SDK difiere del identificador de dispositivo especificado en la solicitud de evento de servidor a servidor, entonces el evento se atribuirá incorrectamente.

Guías de seguimiento de eventos híbridos

Envío de eventos desde un servidor interno

Singular puede recopilar datos sobre los ingresos de su Servidor para ayudar a analizar el rendimiento y el ROI de sus campañas.

Requisitos:

  • Desde un Evento de Registro o Inicio de Sesión in-app, capture y pase los identificadores de dispositivo y almacene estos datos con el ID de Usuario en su servidor. Dado que los identificadores de dispositivo pueden cambiar para un usuario, asegúrese de actualizar los identificadores cuando un usuario genere una sesión de aplicación. Esto garantiza que el evento del lado del servidor se atribuya al dispositivo correcto.
  • Los eventos del lado del servidor son específicos de cada plataforma y sólo deben enviarse con el identificador de dispositivo que coincida con la plataforma del dispositivo (por ejemplo, IDFA o IDFV para dispositivos iOS).
  • Puede utilizar el mecanismo de postback de Singular Internal BI para enviar un evento en tiempo real a su endpoint interno para que pueda actualizar el conjunto de datos en el lado del servidor. Consulte las Preguntas Frecuentes sobre Postback de BI Interno.
  • Revise la sección "Seguimiento de Ingresos" en la guía de Integración Servidor-a-Servidor para más detalles.
Envío de Eventos desde un Proveedor de Ingresos
Proveedores de terceros como RevenueCat o adapty pueden proporcionar Ingresos por Compras y Suscripciones a Singular.

Siga los siguientes enlaces para obtener más información sobre cómo habilitar a estos socios.

Envío de Eventos desde Segmento

Para que Segment pueda enviar eventos a Singular, en paralelo con el SDK de Singular, debe añadir un Destino "Cloud-Mode" en Segment. Siga nuestra guía AQUÍ.

4. 4. Opciones avanzadas

4.1. Creación de enlaces de referencia cortos

Nota: Esta funcionalidad está disponible en la versión 4.0.16+ del SDK.

Utilice los enlaces cortos para transformar enlaces singulares largos y llenos de parámetros en enlaces más cortos y seguros que sean convenientes para compartir.

Normalmente, querrá crear enlaces cortos de forma dinámica para que los usuarios de su aplicación puedan compartirlos con sus amigos para invitarles a utilizar la aplicación.

Para crear un enlace corto, necesitas

  • Un Enlace Singular que lleve a la descarga de tu app (consulta las Preguntas Frecuentes sobre Enlaces Singulares).
  • Cualquier parámetro que desee añadir al enlace de forma dinámica (consulte Parámetros del enlace de seguimiento para ver la lista de opciones).
  • El nombre y el ID del usuario remitente, si desea realizar un seguimiento de las nuevas instalaciones de la aplicación hasta el usuario que compartió el enlace.

Utilice el método createReferrerShortLink para crear un enlace corto como en el ejemplo siguiente.

void callback(string shortLinkURL, string error){
    // Añade aquí tu lógica de compartición si shortLinkURL no es null. 
// Si se ha producido un error, añada lógica para reintentar/abortar/modificar
// los parámetros pasados a la función, en función de la causa del error. } SingularSDK.createReferrerShortLink( "https://sample.sng.link/B4tbm/v8fp?_dl=https%3A%2F%2Fabc.com", "John Doe", // Nombre del remitente "342", // ID de remitente new Dictionary<string, string>() { // un objeto Diccionario que contenga los parámetros que desee añadir {"channel", "sms"} }, callback );

4.2. Añadir soporte de atribución de ingresos publicitarios

Nota: A partir de la versión 3.0.0, Singular añadió la opción de configurar la atribución de ingresos por publicidad a través del SDK de Singular.

La atribución de ingresos publicitarios puede seguir configurándose de la forma antigua, mediante llamadas a la API, sin necesidad de actualizar Singular SDK en sus aplicaciones. Sin embargo, si desea medir los ingresos publicitarios de las campañas de SKAdNetwork, deberá configurar la atribución de ingresos publicitarios a través del SDK.

Para añadir soporte de atribución de ingresos publicitarios en el SDK de Singular:

  1. Actualice a la última versión de Singular SDK.
  2. Añada el fragmento de código apropiado a su integración Singular SDK, dependiendo de la plataforma de mediación que utilice para los datos de ingresos publicitarios.

Nota: Introduzca la divisa como un código de divisa ISO 4217 de tres letras, por ejemplo, "USD", "EUR", "INR".

AdMob
    1. Nota: Esta función debe estar activada en su cuenta de Admob.

      See https://support.google.com/admob/answer/11322405#getstarted

Nota: El SDK de Google AdMob Unity ha cambiado.

Para obtener más información sobre la migración más reciente para las versiones actuales y anteriores del SDK de Google AdMob Unity. Consulte la documentación de Google aquí: Migración a Google AdMob Mobile Ads SDK (Unity)

Admob Unity SDK v8.0.0+ (C#) Admob Unity SDK Legacy (C#)

El siguiente código es para Admob Unity SDK v8.0.0+

Escuchar eventos de anuncio recompensado como se documenta en la documentación de Google AdMob AQUI

private void RegisterEventHandlers(RewardedAd ad)
{
// Se eleva cuando se estima que el anuncio ha ganado dinero.
ad.OnAdPaid += (AdValue adValue) =>
{
    // Construir y Enviar Evento AdMon Singular
    SingularAdData data = new SingularAdData(
       "Admob",
        adValue.CurrencyCode,
        adValue.Value/1000000f);
    Singular.AdRevenue(data);
};
}
AppLovinMax
  1. Recuperar el objeto recibido del evento de AppLovin MAX, OnInterstitialAdRevenuePaidEvent
C#
MaxSdkBase.AdInfo impressionData;
string adUnitId;
double revenue = MaxSdk.GetAdInfo(adUnitId).Revenue;

SingularAdData data = new SingularAdData(
"AppLovin",
"USD",
revenue); Singular.AdRevenue(data);
IronSource
  1. Recuperar el objeto recibido del evento de IronSource, OnImpressionSuccess
  2. Asegúrese de que el ARM SDK Postbacks Flag en IronSource está activado
  3. Ver https://developers.is.com/ironsource-mobile/general/ad-revenue-measurement-postbacks/#step-1
C#
IronSourceImpressionData impressionData;
SingularAdData data = new SingularAdData(
"IronSource",
"USD",
impressionData.revenue); Singular.AdRevenue(data);
TradPlus
  1. Recuperar el objeto recibido del evento TradplusAds: AddGlobalAdImpression
  2. Añadir Singular al Callback TradPlusAdImpression
C#
TradplusAds.Instance().AddGlobalAdImpression(OnGlobalAdImpression);

void OnGlobalAdImpression(Dictionary<string, object="object"> adInfo) {
   double revenue = 0;
   double.TryParse(
adInfo["ecpm"].ToString(),
NumberStyles.Float| NumberStyles.AllowThousands,
CultureInfo.InvariantCulture, out revenue); if(revenue != 0) revenue = revenue / 1000; SingularAdData data = new SingularAdData(
"TradPlus",
"USD",
revenue); SingularSDK.AdRevenue(data); }
Otros (Genérico)
  1. Inicializar el objeto SingularAdData con los datos pertinentes
  2. Comunicar los datos a Singular
C#
SingularAdData data = new SingularAdData(
   TU_PLATAFORMA_ANUNCIO,
   CÓDIGO_MONEDA,
   9.90);

SingularSDK.AdRevenue(data);

4.3. Seguimiento de desinstalaciones

Nota : El seguimiento de desinstalaciones sólo está disponible para clientes Enterprise.

Seguimiento de desinstalaciones en Android

Para habilitar el seguimiento de desinstalaciones para su aplicación Android, primero configure la aplicación en la plataforma Singular como se detalla en Configuración del seguimiento de desinstalaciones. A continuación, siga las siguientes instrucciones.

Nota: Google dejó obsoletas las API de FCM en abril de 2018. Utiliza FCM para el seguimiento de desinstalaciones.

Habilitación del seguimiento de desinstalaciones mediante Firebase Cloud Messaging (FCM):

1. Integrarse con FCM:

Para realizar un seguimiento de las desinstalaciones, puedes utilizar los servicios de la plataforma Firebase Cloud Messaging (FCM). Si aún no utiliza FCM, siga las instrucciones de Google sobre cómo configurar una aplicación cliente de Firebase Cloud Messaging en Android.

Requisitos de FCM(fuente)

Los clientes de FCM requieren dispositivos con Android 4.1 o superior que también tengan instalada la aplicación Google Play Store, o un emulador que ejecute Android 4.1 con las API de Google. Ten en cuenta que no estás limitado a desplegar tus aplicaciones Android a través de Google Play Store.

Los usuarios/dispositivos que no se ejecuten en versiones compatibles de Android no estarán disponibles para el seguimiento de desinstalación de Singular.

2. Actualice el archivo AndroidManifest.xml:

Actualiza tu archivo AndroidManifest.xml para añadir el filtro de intent necesario para tu app (sustituye MyFirebaseMessagingService por tu clase que implemente el servicio Firebase):

<service android:name=".java.MyFirebaseMessagingService" android:exported="false">
  <intent-filter>
    <action android:name="com.google.firebase.MESSAGING_EVENT" />
  </intent-filter> 
</service>

3. Registrar y enviar el token de dispositivo FCM:

Después de recuperar el token FCM, pásalo como parámetro al método 'RegisterTokenForUninstall':

SingularSDK.RegisterTokenForUninstall(String fcmDeviceToken);

Tenga en cuenta que el método 'RegisterTokenForUninstall' debe llamarse antes que elmétodo 'SingularSDK.InitializeSingularSDK()'.

Seguimiento de desinstalaciones en iOS

El seguimiento de la desinstalación en iOS se basa en la tecnología de notificaciones push de Apple. Si su aplicación no es compatible actualmente con las notificaciones push, consulte la guía de Apple. Si su aplicación ya es compatible con las notificaciones push, todo lo que tiene que hacer es pasar el token de dispositivo devuelto por APNS mediante el método RegisterTokenForUninstall, una vez inicializado el SDK.

Método SingularSDK.RegisterTokenForUninstall
Descripción Pasa el token de dispositivo devuelto por APNS. Ten en cuenta que el token APNS suele ser un dato binario en su forma nativa, pero debes pasarlo como cadena.
Firma
public static void RegisterTokenForUninstall
(string APNSToken)
Ejemplo de uso
// pasar el token APNS como una cadena hexadecimal 
  SingularSDK.RegisterTokenForUninstall("ba85ab31a7c7
f5c2f012587f29fb0e596d4b67e7b7b2838fa1a8582c1f7dbdee");

4.4. Adición de propiedades globales

Singular SDK permite definir propiedades adicionales personalizadas para enviarlas a los servidores de Singular con cada sesión y evento enviados desde la aplicación. Estas propiedades pueden representar cualquier información que desee sobre el usuario, el modo o el estado de la aplicación, o cualquier otra cosa. Una vez establecidas estas propiedades, estarán disponibles como dimensiones en sus informes y podrá utilizarlas para desglosar sus datos.

Por ejemplo, si tienes una aplicación de juegos, puedes definir una propiedad llamada "Nivel" y establecerla inicialmente en "0". Cualquier sesión y evento enviado desde la app se enviará con "Nivel": "0". Una vez que el usuario sube de nivel, restableces la propiedad a "1" y así sucesivamente. A continuación, puede obtener sus informes, incluyendo sesiones, recuento de eventos y datos de ingresos, desglosados por nivel de usuario.

  • Puedes definir hasta 5 propiedades globales.
  • Persisten entre las ejecuciones de la aplicación (con el último valor que les hayas dado) hasta que las desestablezcas o el usuario desinstale la aplicación.
  • El nombre y el valor de cada propiedad pueden tener un máximo de 200 caracteres. Si pasas un nombre o valor de propiedad más largo, se truncará a 200 caracteres.
  • Las propiedades globales son accesibles y están disponibles en las exportaciones a nivel de usuario y en los postbacks. En el futuro, se añadirá soporte para informes agregados. Si tiene alguna pregunta o está interesado en las actualizaciones de las propiedades globales, póngase en contacto con su gestor de atención al cliente de Singular.

Configuración de propiedades globales antes de la inicialización

Puede utilizar el método SetGlobalProperty para establecer propiedades globales a través de SingularSDK antes de inicializar el SDK. Desactive el indicador 'Initialize On awake' si desea que sus propiedades globales se incluyan en la sesión.

Tenga en cuenta que, dado que las propiedades globales y sus valores persisten entre las ejecuciones de la aplicación, es posible que la propiedad que está configurando ya tenga un valor diferente. Utilice el parámetro overrideExisting para indicar al SDK si debe anular una propiedad existente con el nuevo valor o no.

Configuración de propiedades globales tras la inicialización

Utilice los siguientes métodos para establecer, desestablecer y recuperar propiedades globales en cualquier momento de la ejecución de la aplicación.

SingularSDK.SetGlobalProperty Método
Descripción

Establece una propiedad global a un valor dado.

Notas:

  • Si la propiedad no existe todavía, y ya hay otras 5 propiedades globales, la propiedad no será añadida.
  • Si la propiedad ya ha sido establecida, el parámetro overrideExisting determina si el valor existente será anulado.
  • El Método devuelve true si la propiedad se ha establecido correctamente o false en caso contrario.
Firma public static bool SetGlobalProperty(string key, string value, bool overrideExisting)
Ejemplo de uso
bool result = SingularSDK.SetGlobalProperty("key", "value", false);
SingularSDK.GetGlobalProperties Método
Descripción Recupera todas las propiedades globales y sus valores actuales como un Mapa.
Firma public static Dictionary<string, string> GetGlobalProperties()
Ejemplo de uso
Dictionary<string, string> props = SingularSDK.GetGlobalProperties();
SingularSDK.UnsetGlobalProperty Método
Descripción Eliminar una propiedad global.
Firma public static void UnsetGlobalProperty(string key)
Ejemplo de uso
SingularSDK.UnsetGlobalProperty(“test_key”);
SingularSDK.ClearGlobalProperties Método
Descripción Elimina todas las propiedades globales.
Firma public static void ClearGlobalProperties()
Ejemplo de uso
SingularSDK.clearGlobalProperties();

4.5. Recopilación de la referencia de instalación en dispositivos Android antiguos

En Android, la referencia de instalación es la herramienta más precisa de Singular para determinar la atribución, además de ayudar a Singular a detectar y analizar los intentos de fraude. Se trata de un identificador proporcionado por Google Play Store que apunta al anuncio en el que el usuario hizo clic antes de instalar la aplicación.

En los dispositivos que tienen la última versión de Google Play Store, el SDK de Singular recopila el valor de referencia de instalación automáticamente (ya que Singular está integrado con la última API de referencia de Google Play).

Para recopilar el referrer de instalación en dispositivos más antiguos, sigue las instrucciones de la guía Android SDK.

5. Cumplimiento de las leyes de privacidad de datos

5.1. LimitDataSharing

Singular proporciona una funcionalidad de protección de la privacidad para ayudarle a cooperar con cualquier socio que pueda estar cumpliendo con las leyes de privacidad del consumidor, como GDPR y CCPA(California Consumer Privacy Act). Estos socios quieren ser notificados si el usuario final ha dado su consentimiento para compartir su información privada.

Limitar el uso compartido de datos

Si ha implementado una forma de solicitar a los usuarios su consentimiento para compartir su información, utilice el método limitDataSharing para notificar a Singular la elección del usuario:

  • Utilice limitDataSharing:NO para indicar que el usuario ha dado su consentimiento (optado) para compartir su información.
  • Utilice limitDataSharing: YES si el usuario no dio su consentimiento.

Singular utiliza LimitDataSharing en los"Postbacks de Privacidad del Usuario", así como en la transmisión de esta información a socios que la requieren para cumplir con la normativa pertinente. Consulte "Privacidad del usuario y Limitar el uso compartido de datos" para obtener más información.

Nota: El uso del método es opcional, pero puede haber información de atribución que el socio compartirá con Singular sólo si se notifica específicamente que el usuario ha optado por ello.

SingularSDK.LimitDataSharing Método
Firma SingularSDK.LimitDataSharing(bool shouldLimitDataSharing)
Descripción Notificar a Singular el consentimiento del usuario (opt-in) para compartir datos privados.
Ejemplo de uso
// User has opted in to sharing data
SingularSDK.LimitDataSharing(false);

5.2. Métodos adicionales para el cumplimiento del GDPR

El SDK de Singular proporciona varios métodos para ayudarle a cumplir con las políticas GDPR e informar a Singular sobre el consentimiento o no consentimiento del usuario para el seguimiento.

SingularSDK.TrackingOptIn Método
Descripción Notificar a Singular el consentimiento del usuario (opt-in) para el seguimiento.
Ejemplo de uso
SingularSDK.TrackingOptIn();
SingularSDK.StopAllTracking Método
Descripción

Detener todas las actividades de seguimiento para este usuario en esta aplicación.

Nota: Al llamar a este método se desactiva el SDK, incluso después de reiniciar la aplicación (el estado es persistente). La única manera de volver a activar el seguimiento es llamando a resumeAllTracking().

Ejemplo de uso
SingularSDK.StopAllTracking();
SingularSDK.ResumeAllTracking Método
Descripción Reanudar el seguimiento para este usuario en esta aplicación.
Ejemplo de uso
SingularSDK.ResumeAllTracking();
SingularSDK.IsAllTrackingStopped Método
Descripción Comprueba el estado de seguimiento de este usuario en esta aplicación. Devuelve true si se ha detenido el seguimiento mediante StopAllTracking() y no se ha reanudado.
Ejemplo de uso
SingularSDK.IsAllTrackingStopped();