Seguimiento de eventos en la aplicación

Documento

Seguimiento de eventos dentro de la aplicación

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.

Eventos y atributos estándar

Singular admite una serie de eventos estándar. Estos eventos de uso común suelen ser compatibles con las redes publicitarias 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.

Envío de eventos

En su código, envíe eventos a Singular utilizando los métodos eventJSON o event (recomendamos eventJSON para facilitar la lectura).

Limitaciones de eventos personalizados:

  • Recomendamos encarecidamente pasar los nombres y atributos de los eventos en inglés para garantizar la compatibilidad con socios y soluciones de análisis de terceros si tiene previsto utilizarlos.
  • Losnombres de eventos están limitados a 32 caracteres ASCII. Las cadenas en caracteres no ASCII deben tener menos de 32 bytes una vez convertidas a UTF-8.
  • Los atributos y valores están limitados a 500 caracteres ASCII.

Método Singular.eventJSON

Notifica un evento de usuario a Singular con información adicional en formato JSONObject.

Firmas

Singular.eventJSON(String name, JSONObject args)
Nota: 'args' es un JSONObject que contiene uno o varios pares clave-valor. La clave es una cadena y el valor puede ser cualquier tipo permitido como valor JSONObject.

Ejemplos de uso

JavaKotlin
// Example 1:

// Send the standard event sng_tutorial_complete with the

// recommended standard attributes


JSONObject att = new JSONObject();
try {
    att.put(Attributes.sngAttrContent.toString(), "Telugu");
    att.put(Attributes.sngAttrContentId.toString(), 32);
    att.put(Attributes.sngAttrContentType.toString(), "video");
    att.put(Attributes.sngAttrSuccess.toString(), 92);
} catch (JSONException e) {
    e.printStackTrace(); // Or log the exception


}
Singular.eventJSON(Events.sngTutorialComplete.toString(), att);

// Example 2:

// Send a custom event named "bonus_points_earned" with custom attributes

JSONObject att = new JSONObject();
try {
    att.put("Points", 500);
    att.put("score", 650);
} catch (JSONException e) {
    e.printStackTrace(); // Or log the exception


}
Singular.eventJSON("Bonus Points Earned", att);

Método Singular.event

Notifica un evento de usuario a Singular con o sin información adicional.

Firmas

Singular.event(String eventName)
Singular.event(String eventName, Object... args)

Nota: 'args' es uno o varios pares clave-valor (véase el ejemplo siguiente). La clave es una cadena y el valor puede ser cualquier tipo permitido como valor JSONObject (es decir, JSONObject, JSONArray, String, Boolean, Integer, Long, Double o NULL).

La lista 'args' debe contener un número par de elementos o el evento será rechazado por Singular.

Ejemplos de uso

JavaKotlin
// Example 1:

// Send the standard event "Subscribe" (sng_subscribe) without any attributes

Singular.event(Events.sngSubscribe.toString());

// Example 2:

// Send the standard event "sng_tutorial_complete" with the 

//recommended standard attributes
Singular.event(Events.sngTutorialComplete.toString(),
    Attributes.sngAttrContent.toString(), "Spanish",
    Attributes.sngAttrContentId.toString(), 52,
    Attributes.sngAttrContentType.toString(), "video",
    Attributes.sngAttrSuccess.toString(), 46
);

// Example 3:

// Send a custom event named "SignUp" without any custom attributes

Singular.event("SignUp");

// Example 4:

// Send a custom event named "bonus_points_earned" with a custom attribute

Singular.event("Bonus Points Earned", "Points", 500);

Seguimiento de ingresos en la aplicación

Singular captura eventos de ingresos de compras dentro de la aplicación (IAP), suscripciones e ingresos personalizados para medir el rendimiento de la campaña y el retorno de la inversión publicitaria (ROAS). Los datos de ingresos están disponibles a través de tres canales clave:

  • Informes interactivos en el panel de control de Singular
  • Registros de exportación detallados y destinos de datos ETL para análisis personalizados
  • Postbacks en tiempo real a plataformas externas

Este seguimiento exhaustivo de los ingresos permite tomar decisiones basadas en datos sobre el gasto en marketing y la optimización de campañas, al tiempo que proporciona flexibilidad en la forma de consumir y analizar los datos.

Limitaciones de los eventos de ingresos
  • Si se utilizan nombres de eventos de ingresos personalizados, éstos están limitados a 32 caracteres ASCII. Para caracteres no ASCII, el límite es de 32 bytes una vez convertidos a UTF-8.
  • Los nombres de atributos de eventos y los valores de atributos están limitados a 500 caracteres ASCII.
  • Los códigos de moneda deben escribirse TODO EN MAYÚSCULAS y ajustarse al código de moneda ISO 4217 de tres letras:

    USD, EUR, INR

Mejores prácticas

  • Singular recomienda pasar eventos utilizando la convención de nomenclatura de eventos y atributos estándar de Singular.
  • Si se utilizan nombres de eventos de ingresos personalizados, deben enviarse en inglés para mejorar la compatibilidad con las devoluciones de la red publicitaria.
  • Los eventos de ingresos sólo deben enviarse a Singular cuando el importe de ingresos sea mayor o menor que 0.

Compras dentro de la aplicación sin suscripción

Para informar de eventos de ingresos a Singular, pase el objeto Purchase recibido de la biblioteca de facturación de Google a los métodos SDK revenue o customRevenue. Esto tiene dos ventajas:

  • Singular obtiene todos los detalles de la transacción, lo que enriquece sus informes de Singular.
  • Singular obtiene el recibo de la transacción de Google, que puede utilizarse para validar la transacción en el contexto de la lucha contra el fraude dentro de la aplicación.

Notas:

  • customRevenue te permite pasar un nombre de evento personalizado, de modo que podrás ver los ingresos en los informes de Singular desglosados por los diferentes tipos de eventos de ingresos.
  • Cualquier ingreso informado 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.

Método de ingresos

Envíe un evento de ingresos a Singular con el objeto Purchase.

Firmas

Singular.revenue(String currency, double amount, Object purchase)

Ejemplos de uso

JavaKotlin
Singular.revenue("USD", 5.50, purchase);

Método customRevenue

Envía un evento de ingresos a Singular con un nombre de evento personalizado y el objeto Purchase.

Firmas

Singular.customRevenue(String eventName, String currency, double amount, Object purchase)

Ejemplos de uso

JavaKotlin
Singular.customRevenue("MyCustomRevenue", "USD", 5.50, purchase);

Ingresos de Suscripción

Seguimiento de suscripciones:

Singular le permite realizar un seguimiento de sus suscripciones y renovaciones dentro de su aplicación, proporcionando información sobre el comportamiento del usuario y la generación de ingresos. Consulte nuestra completa guía sobre cómo implementar eventos de suscripción utilizando el SDK de Singular. [Guía técnica de implementación de eventos de suscripción]


Ingresos personalizados sin validación de compra

Aunque recomendamos encarecidamente informar de los eventos de ingresos de la forma descrita anteriormente, también puede utilizar revenue y customRevenue sin pasar el objeto de compra. En su lugar, puede pasar la divisa y el importe de la transacción, así como detalles opcionales del producto.

El método customRevenue también permite pasar un nombre de evento personalizado.

Tenga en cuenta que si utiliza estos métodos, Singular no obtiene el recibo de la transacción y no puede validar la transacción.

Método revenue

Envía un evento de ingresos a Singular con el importe de los ingresos, la moneda y detalles opcionales.

Firmas

Singular.revenue(String currency, double amount)
Singular.revenue(String currency, double amount, String productSKU, String productName, String productCategory, int productQuantity, double productPrice)
Singular.revenue(String currency, double amount, Map<String, Object> attributes)

Ejemplos de uso

JavaKotin

Sin detalles del producto

Singular.revenue("USD", 5.50);

Con detalles del producto

Singular.revenue("EUR", 5.00, "SKU1928375", "Reservation Fee", "Fee" , 1, 5.00);

Con detalles del producto en un mapa de atributos

Map<string, object="Object"> attributes = new HashMap<>();
attributes.put("product_id", "com.app.premium");
attributes.put("transaction_id", "T12345");
attributes.put("quantity", 1);
attributes.put("is_trial", false);

// Call the revenue method

Singular.revenue("USD", 9.99, attributes);

Método customRevenue

Envía eventos de ingresos personalizados a Singular especificando el nombre del evento, el importe de los ingresos, el código de moneda y cualquier atributo de transacción adicional. Singular procesa estos eventos para realizar un seguimiento de los ingresos dentro de la aplicación.

Firmas

Singular.customRevenue(String eventName, String currency, double amount)
Singular.customRevenue(String eventName, String currency, double amount, String productSKU, String productName, String productCategory, int productQuantity, double productPrice)
Singular.customRevenue(String eventName, String currency, double amount, Map<String, Object> attributes)

Ejemplos de uso

JavaKotin

Sin detalles del producto

Singular.customRevenue("MyCustomRevenue", "USD", 5.50);

Con detalles del producto

Singular.customRevenue("MyCustomRevenue", "EUR", 5.00, "SKU1928375", "Reservation Fee", "Fee" , 1, 5.00);

Con detalles del producto en un mapa de atributos

Map<string, object="Object"> attributes = new HashMap<>();
attributes.put("product_id", "com.app.premium");
attributes.put("transaction_id", "T12345");
attributes.put("quantity", 1);
attributes.put("is_trial", false);

// Call the revenue method

Singular.customRevenue("MyCustomRevenue", "USD", 9.99, attributes);

Seguimiento de Eventos Híbrido (Avanzado)

Singular recomienda enviar todos los eventos e ingresos a través del SDK de Singular integrado en su aplicación. Sin embargo, Singular puede recopilar 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 Segment

Para habilitar Segment para 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Í.