Referencia de la API del endpoint EVENT server-to-server

Referencia de la API del endpoint EVENT

Registra eventos in-app e ingresos para el análisis de atribución y la optimización de campañas usando la API REST de Singular mediante una integración server-to-server como alternativa a la implementación del SDK.


Descripción general

Caso de uso server-to-server

La API EVENT permite el seguimiento de eventos in-app en el que las apps reenvían los datos de interacción del usuario a tu backend, que los transmite a los servidores de Singular para la atribución de eventos y los reportes de análisis de ingresos.

Capacidades compatibles:

  • Atribución de eventos: Conecta las acciones del usuario con las campañas de marketing
  • Seguimiento de ingresos: Mide y atribuye las compras in-app y las transacciones
  • Eventos personalizados: Registra cualquier interacción del usuario, desde registros hasta finalizaciones de nivel
  • Propiedades de eventos: Adjunta datos contextuales a los eventos para un análisis más profundo

Arquitectura del flujo de datos

El seguimiento de eventos server-to-server sigue un proceso de transmisión de datos de cuatro pasos.

  1. Recolección en el cliente: La app recopila los datos del evento y los identificadores del dispositivo
  2. Transmisión al servidor: La app reenvía los datos del evento a tu servidor backend
  3. Consulta al device graph: El servidor recupera o actualiza los detalles del dispositivo desde el device graph de Singular
  4. Llamada a la API de eventos: El servidor envía el evento al endpoint de la API REST de Singular

Diagrama del flujo de datos de eventos


Requisitos críticos

Prerrequisitos:

  • SESSION antes de los eventos: La SESSION debe establecerse antes de cualquier seguimiento de eventos
  • Orden secuencial: Un orden de sesión inválido genera inconsistencias de datos y errores de atribución

Restricciones de integración:

  • Procesamiento en tiempo real: Las solicitudes se procesan individualmente—sin soporte de lotes (batch)
  • Eventos cronológicos: Los eventos deben enviarse en el orden en que ocurrieron
  • Sin deduplicación: Singular no deduplica los datos—implementa la deduplicación del lado del servidor para evitar duplicados
  • Permanencia de los datos: Los datos a nivel de dispositivo no se pueden eliminar después de la ingesta—valídalos antes de enviarlos

Directrices para el seguimiento de eventos

Implementa el seguimiento de eventos siguiendo las prácticas recomendadas de Singular para las convenciones de nombres y la estructura de datos.

Definición de eventos

Definir eventos

Antes de implementar la integración S2S, define la lista completa de eventos que tu organización quiere registrar para el análisis del rendimiento de las campañas.

Guía de planificación de eventos: Definir eventos in-app

Impacto del nombre del evento: Los nombres de eventos enviados a Singular determinan directamente cómo aparecen los eventos en los reportes, las exportaciones y los postbacks.


Nomenclatura estándar de eventos

Prácticas recomendadas:


Limitaciones de caracteres

Restricciones de longitud:

  • Nombres de eventos: Máximo 32 caracteres ASCII (32 bytes al convertir a UTF-8 para caracteres no ASCII)
  • Atributos de eventos: Máximo 500 caracteres ASCII por clave y valor de atributo

Selección del endpoint de la API

Singular ofrece dos versiones del endpoint EVENT optimizadas para diferentes arquitecturas de integración.

Selección del endpoint: Elige el endpoint según tu arquitectura de integración y tu estrategia de identificadores de dispositivo. El caso de uso determina el endpoint correcto.

Event Endpoint V1

Casos de uso de V1

Usa el Event Endpoint V1 para integraciones que dependen de identificadores de dispositivo específicos de la plataforma (IDFA, IDFV, AIFA, ASID, etc.).

Recomendado para:

  • Puramente del lado del servidor: Integraciones del lado del servidor sin implementación del SDK de Singular
  • Híbrido (sin SDID): Integraciones híbridas en las que el SDK de Singular no usa el Singular Device ID (SDID)

URL del endpoint:

GET https://s2s.singular.net/api/v1/evt

Event Endpoint V2

Casos de uso de V2

Usa el Event Endpoint V2 para integraciones híbridas en las que el SDK de Singular registra las sesiones usando el SDID y el servidor envía los eventos usando el mismo SDID.

Recomendado para:

  • Híbrido (basado en SDID): El SDK de Singular registra las sesiones con SDID y los eventos del lado del servidor usan el mismo SDID
  • Identificadores simplificados: Implementaciones que evitan identificadores de dispositivo específicos de la plataforma (IDFA, AIFA, etc.)

URL del endpoint:

GET https://s2s.singular.net/api/v2/evt

Habilitación de la cuenta: El endpoint V2 requiere la configuración de la cuenta de Singular para el uso de SDID. Contacta a tu Solution Engineer o CSM para habilitarlo.


Variante Web (p=Web)

Las integraciones web usan este mismo endpoint EVENT con p=Web . No hay llamada de SESSION web: el primer __PAGE_VISIT__ evento con conversion_event=true establece el touchpoint de atribución en lugar de un lanzamiento.

Guía completa: Para conocer el patrón completo asistido por el navegador (persistencia del SDID, __PAGE_VISIT__ secuenciación, web-to-app, y deferred deep linking por portapapeles), consulta la Guía de implementación de Web S2S .

Parámetros específicos de Web

Estos parámetros aplican cuando p=Web . Los parámetros compartidos ( a , i , ip , sdid , custom_user_id ) se definen en Fundamentos de S2S .

Parámetro Detalles
conversion_event

boolean

Establécelo en true solo en el evento de atribución __PAGE_VISIT__ ; false en todos los demás eventos web. Un evento que no es de conversión y que llega antes que su evento de conversión se difiere brevemente para esperar una coincidencia.

Ejemplo: true

attribution_data

JSON

JSON codificado en URL de los datos de campaña extraídos de la landing URL, enviado en el __PAGE_VISIT__ evento. Consulta attribution_data y los click IDs web para conocer los mapeos de campos.

Ejemplo: %7B%22partner_name%22%3A%22Snapchat%22%2C%22is_attributed%22%3A%22true%22%7D

web_url

string

La landing URL de la campaña que contenía los parámetros de marketing (UTM / wp* / pc* ). Se usa para la atribución (creación del touchpoint).

Ejemplo: http://my.landing.page/?utm_campaign=test&utm_source=test

web_page_referrer

string

El referrer ( document.referrer ). Se usa para la clasificación de source/type orgánico.

Ejemplo: https://www.google.com/

Click IDs web: envía los click IDs de los partners ( ScCid , ttclid , gclid / gbraid / wbraid , dclid , fbclid , rdt_uuid ) dentro del parámetro de evento e .


Identificadores de dispositivo requeridos

Los requisitos de identificadores de dispositivo varían según la versión del endpoint y la plataforma. Revisa los requisitos específicos de cada plataforma a continuación.

Identificadores del endpoint V1

Identificadores específicos de la plataforma

El Event Endpoint V1 requiere identificadores de publicidad específicos de la plataforma según el sistema operativo del dispositivo y el método de distribución de la app.

Estos son parámetros S2S compartidos definidos una sola vez en Fundamentos de S2S .


Identificadores del endpoint V2

Requisito de solo SDID

El Event Endpoint V2 requiere únicamente el Singular Device ID (SDID) para todas las plataformas, lo que simplifica la identificación del dispositivo.

Parámetro Detalles
sdid

Plataformas: iOS, Android, Web, PC, Xbox, PlayStation, Nintendo, MetaQuest, CTV

El Singular Device ID obtenido del SDK de Singular o generado del lado del cliente.

  • iOS/Android: Requiere la habilitación de la cuenta para el uso de SDID—el método de callback del SDK proporciona el SDID después de la inicialización
  • Simplificación de identificadores: Elimina la necesidad de los parámetros AIFA, ASID, IDFA, IDFV
  • Web: Se obtiene del Singular Web SDK
  • PC/Consola/CTV: UUIDv4 generado por el cliente que representa una instalación única de la app
  • Obtener el SDID

Ejemplo: 40009df0-d618-4d81-9da1-cbb3337b8dec


Parámetros requeridos

Todas las solicitudes EVENT deben incluir estos parámetros requeridos además de los identificadores de dispositivo.

Formato de los parámetros: Todos los parámetros deben enviarse como parámetros de consulta de URL usando el método GET. No envíes parámetros en el cuerpo de la solicitud en JSON.

Autenticación de la API

Estos son parámetros S2S compartidos definidos una sola vez en Fundamentos de S2S .


Parámetros del dispositivo

Estos son parámetros S2S compartidos definidos una sola vez en Fundamentos de S2S .


Parámetros de la aplicación

Estos son parámetros S2S compartidos definidos una sola vez en Fundamentos de S2S .


Parámetros del evento

Parámetro Detalles
n

string

Nombre del evento que se está registrando.

Ejemplo: sng_add_to_cart


Parámetros opcionales

Los parámetros opcionales enriquecen el seguimiento de eventos con contexto y funcionalidad adicionales.

Parámetros de timestamp

Parámetro Detalles
utime

integer

Timestamp Unix de 10 dígitos del evento.

Ejemplo: 1483228800

umilisec

integer

Timestamp Unix de 13 dígitos con milisegundos.

Ejemplo: 1483228800000


Atributos del evento

Compatibilidad con Conversion API de partners: Para reenviar estos eventos a los partners de redes publicitarias mediante las integraciones de Conversion API de Singular, incluye los atributos de evento opcionales estándar (datos propios con hash, como eventId y ehash). Consulta Atributos de evento estándar para integraciones de Conversion API.

Parámetro Detalles
e

JSON

Cadena JSON codificada en URL que especifica atributos de evento personalizados.

Estructura JSON:

{
  "sng_attr_content_id": 5581,
  "sng_attr_content": "XBox",
  "sng_attr_content_type": "electronics"
}

Ejemplo codificado en URL:

%7B%22sng_attr_content_id%22%3A5581%2C%22sng_attr_content%22%3A%22XBox%22%2C%22sng_attr_content_type%22%3A%22electronics%22%7D
global_properties

JSON

Objeto JSON codificado en URL que contiene pares clave-valor personalizados aplicados globalmente al evento.

Límites:

  • Máximo 5 pares clave-valor
  • Máximo 200 caracteres por clave y valor

JSON: {"key1":"value1","key2":"value2"}

Codificado en URL: %7B%22key1%22%3A%22value1%22%2C%22key2%22%3A%22value2%22%7D


Parámetros de red

Estos son parámetros S2S compartidos definidos una sola vez en Fundamentos de S2S .


Privacidad de datos

Estos son parámetros S2S compartidos definidos una sola vez en Fundamentos de S2S .


Soporte cross-device

Estos son parámetros S2S compartidos definidos una sola vez en Fundamentos de S2S .


Soporte de SKAdNetwork

Parámetro Detalles
skan_conversion_value
iOS

integer

El conversion value de SKAdNetwork más reciente al momento del evento.

Más información: Implementación de SKAdNetwork

Ejemplo: 7

skan_first_call_timestamp
iOS

integer

Timestamp Unix de la primera llamada a la API de SKAdNetwork.

Ejemplo: 1483228800

skan_last_call_timestamp
iOS

integer

Timestamp Unix de la llamada más reciente a la API de SKAdNetwork al momento del evento.

Ejemplo: 1483228800


Seguimiento de ingresos

Registra las compras in-app y los eventos de ingresos con la validación adecuada y el manejo correcto de la moneda.

Parámetros de ingresos requeridos

Seguimiento básico de ingresos

Parámetros mínimos requeridos para el seguimiento de eventos de ingresos cuando realizas tu propia validación de ingresos.

Práctica recomendada: Valida los eventos de ingresos con las App Stores en tu lado del servidor antes de enviar la solicitud del evento a Singular. Si realizas tu propia validación, solo se requieren estos parámetros.

Parámetro Detalles
is_revenue_event

boolean

Especifica si el evento es un evento de ingresos.

  • Se puede omitir si el nombre del evento es __iap__ o si se proporciona un amt distinto de cero

Ejemplo: true

amt

number

Importe de la transacción en la moneda.

  • Úsalo junto con el parámetro cur

Ejemplo: 2.51

cur

string

Código de moneda de tres letras en mayúsculas ISO 4217 .

  • Úsalo junto con el parámetro amt

Ejemplo: USD


Parámetros de validación de ingresos

Ingresos validados por Singular

Parámetros opcionales para que Singular realice la validación de ingresos del lado del servidor con las App Stores.

Requisitos de validación:

  • Requerido si dependes de Singular para la validación de ingresos con las App Stores
  • Confirma la sintaxis correcta de los valores del recibo de compra y de la firma
  • Un formato incorrecto hace que Singular bloquee los ingresos y genere un __iapinvalid__ evento
Parámetro Detalles
purchase_receipt
iOS, Android

JSON

Recibo recibido de la transacción de compra.

Ejemplo (iOS):

MIISqwYJKoZI...cNqts0jvcNvPcK7yuj0KhJ9nTTQ54kDKfReihzc6aw==

Ejemplo (Android, codificado en URL):

%7B%22orderId%22%3A%22GPA.1234%22%2C%22packageName%22%3A%22com.example%22%2C%22productId%22%3A%22com.example.product%22...
receipt_signature
Android

string

Firma usada para firmar el recibo de compra (solo Android).

Ejemplo:

TyVJfHg8OAoW7W4wuJt...5agEDMnNXvhfrw==
purchase_product_id

string

Identificador SKU del producto.

Ejemplo: com.example.product

purchase_transaction_id

string

Identificador de la transacción.

Ejemplo (iOS): 380000123004321

Ejemplo (Android): GPA.1234-1234-1234-12345


Ejemplos de solicitudes

El código de muestra demuestra la integración del endpoint EVENT en varios lenguajes de programación.

Aviso sobre los ejemplos: Las muestras de código pueden no incluir todos los parámetros requeridos. Valida la lista completa de parámetros antes de la implementación en producción. Usa un i (identificador de app) único para desarrollo/pruebas.

PYTHON CURL HTTP JAVA

Ejemplo en Python

import requests

params = {
    'a': 'sdk_key_here',
    'p': 'Android',
    'i': 'com.singular.app',
    'ip': '10.1.2.3',
    've': '9.2',
    'ma': 'samsung',
    'mo': 'SM-G935F',
    'lc': 'en_US',
    'bd': 'Build/13D15',
    'aifa': '8ecd7512-2864-440c-93f3-a3cabe62525b',
    'asid': 'edee92a2-7b2f-45f4-a509-840f170fc6d9',
    'n': 'sng_add_to_cart'
}

response = requests.get('https://s2s.singular.net/api/v1/evt', params=params)
print(response.json())

Códigos de respuesta y errores

El endpoint EVENT devuelve códigos de estado HTTP y respuestas JSON que indican el éxito o el fallo de la solicitud.

Documentación completa de errores: Códigos de respuesta S2S y manejo de errores


Pruebas y validación

Verifica la integración de eventos S2S antes del despliegue en producción usando la SDK Console de Singular para la validación de datos en tiempo real.

Procedimiento de prueba

Validación de extremo a extremo

  1. Registrar dispositivo de prueba: Obtén el ID de publicidad del dispositivo y agrégalo a la SDK Console de Singular
  2. Habilitar el logging en la consola: Agrega el identificador del dispositivo en la SDK Console para capturar los datos de prueba
  3. Usar un App ID de desarrollo: Sobrescribe el identificador de la app con la versión de desarrollo (p. ej., com.singular.app.dev ) para separar los datos de prueba de los de producción
  4. Compilar y lanzar: Compila o abre la app desde un estado terminado
  5. Validar los datos del cliente: Confirma que la app envía todos los data points requeridos de Singular a tu servidor
  6. Verificar la SESSION: Confirma que tu servidor envía la solicitud de SESSION a https://s2s.singular.net/api/v1/launch con todos los parámetros requeridos
  7. Revisar la SDK Console (Session): En cuestión de segundos, el evento de SESSION debería aparecer en la SDK Console

Evento de sesión en la SDK Console


Prueba de eventos

  1. Disparar el evento: Procede a disparar un evento en la app
  2. Validar los datos del evento: Confirma que el evento se envió a tu servidor con todos los data points requeridos de Singular
  3. Verificar la solicitud del servidor: Confirma que tu servidor envía la solicitud EVENT a https://s2s.singular.net/api/v1/evt con todos los parámetros requeridos
  4. Revisar la SDK Console (Event): En cuestión de segundos, el EVENT debería aparecer en la SDK Console
  5. Repetir las pruebas: Valida que todos los eventos se envíen con los valores esperados

Evento en la SDK Console

Verificaciones críticas:

  • Confirma que el evento de SESSION ocurre al abrir/pasar la app a primer plano ANTES de que se reciba el EVENT
  • Confirma que los data points requeridos del EVENT coinciden con los data points de la SESSION

Indicador de éxito: Si los eventos aparecen en la SDK Console, ¡has completado con éxito una prueba de integración de eventos de extremo a extremo!


Recursos adicionales

Documentación de pruebas

Guía completa de pruebas: Guía de pruebas de integración S2S