Servidor a servidor - Referencia de la API del punto final SESSION

Documento

Referencia de la API de punto final de SESIÓN

Realice un seguimiento de las sesiones de usuario y permita la atribución para las instalaciones de aplicaciones, el reenganche y las métricas de retención a través de la API REST de Singular utilizando la integración de servidor a servidor como alternativa a la implementación del SDK.


Visión general

Caso de uso de servidor a servidor

La API REST de Singular permite la integración directa de servidor a servidor en la que las aplicaciones envían datos específicos del dispositivo a su backend, que los transmite a los servidores de Singular para el procesamiento de la atribución y la generación de informes analíticos.

Capacidades soportadas:

  • Atribución de instalaciones: Atribución de primer contacto a campañas de marketing
  • Re-engagement Attribution: Atribución multitáctil para usuarios recurrentes
  • Métricas de retención: Seguimiento del compromiso basado en sesiones
  • Seguimiento de eventos: Medición personalizada de eventos dentro de la aplicación

Arquitectura de flujo de datos

La integración de servidor a servidor sigue un proceso de transmisión de datos en cuatro pasos.

  1. Recopilación de clientes: La aplicación recopila los datos necesarios del dispositivo y la aplicación
  2. Transmisión al servidor: La aplicación envía los datos recopilados a su servidor backend
  3. Llamada a la API de Singular: Su servidor envía los datos al punto final de la API REST de Singular
  4. Gestión de la respuesta: Su servidor recibe y procesa la respuesta de Singular

Session Data Flow Diagram


Consideraciones clave

Requisitos críticos:

  • Procesamiento en tiempo real: Solicitudes procesadas individualmente, sin soporte de lotes
  • Orden secuencial: Los eventos deben enviarse cronológicamente
  • Sin deduplicación: Singular no deduplica los datos; implemente la deduplicación en el servidor.
  • Permanencia de los datos: Los datos a nivel de dispositivo no pueden borrarse después de la ingesta; hay que validarlos antes de enviarlos.
  • Primero la sesión: la sesión debe establecerse antes de cualquier seguimiento de eventos

Ventajas de la integración:

  • Flexibilidad: Control total sobre la recopilación de datos y los plazos de transmisión
  • Paridad de funciones: Compatible con todas las funciones del SDK siempre que se proporcionen los datos adecuados.
  • Implementación personalizada: Adaptación de la integración a una arquitectura backend específica

Gestión de sesiones

El punto final SESSION notifica a Singular los eventos de apertura de la aplicación para inicializar las sesiones de usuario con fines de atribución y seguimiento.

Cuándo enviar sesiones

Activadores de sesión

Envíe solicitudes de SESIÓN para estos eventos del ciclo de vida de la aplicación:

  • Nuevas instalaciones: Primer lanzamiento de la aplicación tras la instalación
  • Lanzamiento en estado cerrado: La aplicación se abre desde un estado completamente cerrado
  • De segundo plano a primer plano: La aplicación vuelve al primer plano después de un tiempo de espera (recomendado: 60 segundos)

Lógica de tiempo de espera de sesión

Implemente el tiempo de espera de sesión para evitar un número excesivo de solicitudes de SESIÓN durante un breve periodo de tiempo en segundo plano de la aplicación.

Implementación recomendada:

  • Duración del tiempo de espera: 60 segundos (1 minuto)
  • Primer plano < Tiempo de espera: No enviar SESSION si la aplicación vuelve al primer plano dentro del periodo de tiempo de espera.
  • Primer plano > Tiempo de espera: Enviar SESIÓN si la aplicación permanece en segundo plano más allá del tiempo de espera
  • Seguimiento del ciclo de vida de la aplicación: Utiliza eventos y temporizadores del ciclo de vida de la aplicación para gestionar el estado de la sesión.

Soporte de enlaces profundos: Envíe siempre SESSION para aperturas de aplicaciones a través de enlaces profundos, enlaces universales o enlaces de aplicaciones con el parámetro openuri rellenado, independientemente del estado del tiempo de espera.


Procesamiento de la atribución

Atribución basada en sesión

Singular procesa las solicitudes de SESSION para determinar el tipo de atribución y activar los flujos de trabajo apropiados.

Tipo de sesión Procesamiento Singular Resultado de la atribución
Primera sesión (nueva instalación) Se activa el proceso de atribución de instalación Atribuye la instalación a la campaña de marketing
Reenganche cualificado Se activa el proceso de atribución de reconexión Atribuye el retorno del usuario a la campaña o al enlace profundo
Sesión estándar Sesión registrada para el seguimiento de la retención Cuenta para las métricas de actividad y compromiso del usuario

Más información: Preguntas frecuentes sobre la atribución del reenganche


Requisitos de orden de eventos

La sincronización de sesiones y eventos afecta directamente a la precisión de la atribución y a la calidad de los datos.

Reglas críticas de ordenación:

  1. Sesión antes que eventos: Una única SESIÓN debe recibirse antes que cualquier evento de esa sesión.
  2. Transmisión de eventos en tiempo real: Los eventos in-app deben enviarse en tiempo real después de su respectiva sesión
  3. Procesamiento secuencial: Un orden de sesión no válido provoca incoherencias en los datos y errores de atribución

Opciones avanzadas

Funcionalidad Extendida

La integración Singular S2S soporta capacidades avanzadas que requieren parámetros adicionales de SESIÓN.

Funciones avanzadas: Revise las Opciones Avanzadasde S2S para los requisitos de enlace profundo, SKAdNetwork y seguimiento entre dispositivos.


Especificación del punto final de la API

El punto final SESSION acepta solicitudes GET con parámetros de consulta que contienen datos de dispositivo, aplicación y atribución.

URL del punto final

URL base y método

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

Formato de la solicitud:

GET /api/v1/launch?param1=value1&param2=value2

Cuerpo de la solicitud: No proporcione el cuerpo de la solicitud; todos los parámetros deben enviarse como parámetros de consulta de URL utilizando el método GET.


Parámetros obligatorios

Todas las solicitudes de SESSION deben incluir estos parámetros obligatorios con los valores y el formato adecuados.

Autenticación de API

Clave SDK

Parámetro Tipo Descripción
a string

Clave SDK singular para la autenticación de la API.

Recuperar de: Singular UI → Menú principal → Herramientas para desarrolladores.

Ejemplo: sdkKey_afdadsf7asf56

Importante: No utilice Reporting API Key: las solicitudes serán rechazadas.


Identificadores de dispositivo

Identificadores específicos de plataforma

Los identificadores de dispositivo varían según la plataforma y la disponibilidad. Incluya todos los identificadores aplicables a su plataforma.

Parámetro Plataforma Descripción
idfa iOS

El identificador para anunciantes (IDFA)permite el seguimiento de anuncios y la atribución de campañas.

Requisito de ATT: iOS 14.5+ requiere que el usuario opte por el marco de transparencia de seguimiento de aplicaciones.

  • Omite el parámetro si IDFA no está disponible (el usuario rechaza la solicitud de ATT).
  • Nunca pase NULL o una cadena vacía
  • Recuperar IDFA

Ejemplo: DFC5A647-9043-4699-B2A5-76F03A97064B

idfv iOS

El identificador para proveedores (IDFV)es coherente para todas las aplicaciones del mismo proveedor.

Siempre obligatorio: Debe incluirse independientemente del estado de ATT o de la disponibilidad de IDFA.

Ejemplo: 21DB6612-09B3-4ECC-84AC-B353B0AF1334

aifa Android
(Google Play)

El ID de publicidad de Google (GAID)permite el seguimiento de publicidad restablecible por el usuario en Android.

  • Obligatorio en dispositivos Google Play
  • Omitir en dispositivos que no sean de Google Play
  • Omitir si no está disponible; nunca pasar NULL o una cadena vacía
  • Recuperar AIFA

Ejemplo: 8ecd7512-2864-440c-93f3-a3cabe62525b

asid Android
(Google Play)

El ID de conjunto de aplicaciones de Androidproporciona un seguimiento de aplicaciones cruzadas con conciencia de la privacidad para el mismo desarrollador.

Siempre obligatorio: Debe incluirse en los dispositivos Google Play independientemente de la disponibilidad del GAID.

Ejemplo: edee92a2-7b2f-45f4-a509-840f170fc6d9

amid Android
(Amazon)

ID de publicidad de Amazonpara dispositivos Amazon sin Google Play Services.

  • Requerido para dispositivos Amazon Fire
  • Omitir si no está disponible
  • Recuperar AMID

Ejemplo: df07c7dc-cea7-4a89-b328-810ff5acb15d

oaid Android
(OEM chinos)

Identificador de publicidad abierto (OAID) para dispositivos fabricados en China sin Google Play Services (Huawei, Xiaomi, OPPO, etc.).

  • Necesario para dispositivos OEM chinos sin Google Play
  • Omitir si no está disponible
  • Recuperar OAID

Ejemplo: 01234567-89abc-defe-dcba-987654321012

andi Android
(Sin Google Play)

Android ID es un identificador de 64 bits generado por el dispositivo.

Uso restringido: Prohibido en dispositivos Google Play; en su lugar, utiliza AIFA y ASID. Sólo enviar si no hay otros identificadores disponibles y la aplicación no se distribuye a través de Google Play.

Ejemplo: fc8d449516de0dfb

sdid PC, Xbox, PlayStation, Nintendo, MetaQuest, CTV

El identificador de dispositivo singular es un UUIDv4 generado por el cliente que representa una instalación de aplicación singular.

Identificador primario: Único identificador de dispositivo utilizado para aplicaciones de PC y consola.

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

sing Sólo para empresas

Identificador definido por el cliente para casos de uso especiales en los que los identificadores estándar no están disponibles.

Restringido: Sólo para clientes empresariales - debe ser habilitado por Singular Solution Engineer para cada aplicación. Póngase en contacto con CSM para obtener más información.

Ejemplo: da534a95-1b1b-47d4-94b6-07955ec85177


Parámetros del dispositivo

Información del dispositivo

Parámetro Descripción
p

Plataforma de la aplicación.

Valores permitidos (distingue entre mayúsculas y minúsculas):

  • Android
  • iOS
  • PC
  • Xbox
  • Playstation
  • Nintendo
  • MetaQuest
  • CTV

Ejemplo: Android

ip

Dirección IPv4 pública del dispositivo. Se admite IPv6, pero se recomienda IPv4 para la compatibilidad de atribución con las redes publicitarias.

Ejemplo: 172.58.29.235

ve

Versión del sistema operativo del dispositivo en el momento de la sesión.

Ejemplo: 9.2

ma
iOS, Android

Marca del dispositivo (nombre del fabricante). Debe utilizarse con mo(modelo).

Recuperar marca del dispositivo

Ejemplos: Samsung, LG, Apple

mo
iOS, Android

Modelo de dispositivo. Debe utilizarse con ma (make).

Recuperar modelo de dispositivo

Ejemplos: iPhone 4S, Galaxy SIII

lc
iOS, Android

Etiqueta de configuración regional IETF: código de idioma y país de dos letras separado por un guión bajo.

Recuperar configuración regional del dispositivo

Ejemplo: en_US

bd
iOS, Android

Identificador de construcción del dispositivo, codificado en URL.

Recuperar compilación de dispositivo

Ejemplo: Build%2F13D15


Parámetros de la aplicación

Información de la aplicación

Parámetro Descripción
i

Identificador de la aplicación (distingue mayúsculas de minúsculas).

  • Android: Nombre del paquete (por ejemplo, com.singular.app)
  • iOS: ID del paquete (por ejemplo, com.singular.app)
  • PC/Consola: Su identificador designado

Ejemplo: com.singular.app

app_v

Versión de la aplicación.

Ejemplo: 1.2.3

install

Indica si la sesión representa la primera sesión tras una instalación o reinstalación.

  • true - Primera sesión después de una nueva instalación o reinstalación
  • false - Sesión posterior (aplicación ya instalada)

Necesario para: Capacidad de seguimiento de la reinstalación

Ejemplo true

install_time
iOS, Android

Marca de tiempo Unix de la primera instalación de la aplicación.

Ejemplo: iOS, Android 1510040127

update_time
iOS, Android

Unix timestamp de la última actualización de la aplicación.

Ejemplo: 1510040127

att_authorization_status
iOS

Código de estado de App Tracking Transparency (ATT) (iOS 14.5+).

Valores de estado:

  • 0 - Indeterminado (no se muestra la indicación)
  • 1 - Restringido (seguimiento a nivel de dispositivo desactivado)
  • 2 - Denegado (autorización denegada al usuario)
  • 3 - Autorizado (usuario con autorización concedida)

Siempre obligatorio: Incluso si ATT no está implementado, pase 0 (indeterminado).

Ejemplo: 3


Parámetros de prevención del fraude

Instalar validación de origen

Parámetro Descripción
install_source
Android, PC

Nombre del paquete fuente de instalación o identificador de tienda.

Android: Instalar nombre de paquete fuente

Ejemplo de Android: com.android.vending (Google Play Store)

Tiendas compatibles con PC:

  • steam
  • epic
  • microsoftstore
  • humblestore
  • gog
  • autodistribuido
install_receipt
iOS

Recibo de instalación de iOS codificado en Base64 para validación de fraude.

Ejemplo (truncado): MIJF9wYJKoZIhvcNAQcCoIJF6DCCReQCAQExCzAJBgUrDgMCGgUAMII1m...


Parámetros de enlace profundo

Soporte de enlaces profundos

Parámetro Descripción
openuri
iOS, Android

Enlace profundo codificado como URL, enlace universal o enlace de aplicación que abrió la aplicación.

URL original: myapp://home/page?queryparam1=value1&queryparam2=value2

Ejemplo codificado: myapp%3A%2F%2Fhome%2Fpage%3Fqueryparam1%3Dvalue1%26queryparam2%3Dvalue2

ddl_enabled
iOS, Android

Indica si la aplicación espera una URL de enlace profundo diferido en la respuesta.

  • true - Esperar enlace profundo diferido en la respuesta
  • false - No esperar enlace profundo diferido

Ejemplo de respuesta:

{
  "deferred_deeplink": "myapp://deferred-deeplink",
  "status": "ok",
  "deferred_passthrough": "passthroughvalue"
}
singular_link_resolve_required
iOS, Android

Solicita la resolución de enlace corto singular a enlace largo. Debe utilizarse con openuri que contenga enlace corto singular.

  • true - Devuelve enlace largo ampliado
  • false - No resolver enlace

Ejemplo de respuesta:

{
  "status":"ok",
  "resolved_singular_link":"https://myapp.sng.link/A59c0/nha7?_dl=myapp%3A%2F%2Fdeeplink&_ddl=myapp%3A%2F%2Fdeferred-deeplink&_p=passthroughvalue"
}

Parámetros de atribución avanzada

Mejora de la atribución de plataformas

Parámetro Descripción
install_ref
Android (Google Play)

Información de referencia de instalación de Google codificada en URL JSON. Proporciona la atribución más precisa para las instalaciones de Android.

Estructura JSON:

{
   "installBeginTimestampSeconds":"1568939453",
   "referrer":"utm_source=google-play&utm_medium=organic",
   "clickTimestampSeconds":"0",
   "referrer_source":"service",
   "current_device_time":"1568944524"
}

Necesario para:

  • Exportaciones a nivel de usuario de Facebook
  • Uso compartido del destino de los datos
  • Precisión de postback

Más información: Documentación de Google Install Referrer

Ejemplo de URL codificada: %7B%22installBeginTimestampSeconds%22%3A%221568939453%22...

meta_ref
Android (Google Play)

A partir del 18 de junio de 2025: Meta Advanced Mobile Measurement (AMM)elimina la necesidad de implementar Meta Install Referrer. No se recomienda si AMM está activado.

Meta Install Referrer codificado en URL JSON para datos granulares de atribución a nivel de usuario.

Estructura JSON:

{
  "install_referrer": {
    "utm_source":"apps.facebook.com",
    "utm_campaign": "fb4a",
    "utm_content": {
      "source":{
        "data":"c7e6b890bf18a059c2185650bdb1af3dced7...",
        "nonce":"24859720343e2381daee9f39ae61"
        },
      "app":533744218636280,
      "t":1731181327
      },
    "is_ct":1,
    "actual_timestamp":1731181444
  }
}

Más información: Meta Referrer FAQ

attribution_token
iOS

Apple Search Ads attribution token del marco AdServices (iOS 14.3+).

Recuperación mediante: attributionToken()al iniciar la aplicación por primera vez tras la instalación o reinstalación.

Ejemplo (truncado): KztLg%2FIkNsWDMuBMOU%2BySnkPU5myJb4OFmeaMUE%2BTqQJP...


Parámetros opcionales

Los parámetros opcionales mejoran las capacidades de seguimiento y admiten funciones avanzadas.

Parámetros de marca de tiempo

Parámetro Descripción
utime

Marca de tiempo Unix de 10 dígitos de la sesión.

Ejemplo 1483228800

umilisec

Marca de tiempo Unix de 13 dígitos con milisegundos.

Ejemplo: 1483228800000


Parámetros de red y ubicación

Parámetro Descripción
use_ip

Indica a Singular que extraiga la dirección IP de la petición HTTP en lugar del parámetro ip.

Limitaciones:

  • Impide la geolocalización basada en IP por parte de Singular.
  • Proporcione el código de país de dos letras a través del parámetro country
  • Mutuamente excluyente con el parámetro ip: no utilice ambos.
  • Debe suministrar ip o use_ippara evitar el rechazo de datos

Ejemplo: true

country

Código de país de dos letras ISO 3166-1 alpha-2.

Obligatorio cuando: Dirección IP no disponible o use_ip=true

Ejemplo: US

ua

Cadena de agente de usuario codificada en URL.

En bruto: Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15...

Codificado: Mozilla%2F5.0%20(iPhone%3B%20CPU%20iPhone%20OS%2014_0...

c
iOS, Android

Tipo de conexión de red.

Valores permitidos: wifi, carrier

Ejemplo: wifi

cn
iOS, Android

Nombre del proveedor de Internet.

Ejemplo: Comcast


Propiedades personalizadas

Parámetro Descripción
global_properties

Objeto JSON codificado en URL con pares clave-valor personalizados.

Límites:

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

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

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


Soporte de seguimiento de desinstalación

Parámetro Descripción
apns_token
iOS

Token de dispositivo Apple Push Notification Service (APNs) codificado en hexadecimal.

  • Necesario para el seguimiento de la desinstalación de iOS
  • Debe ser una cadena codificada hexadecimalmente
  • Recuperar token APNs

Ejemplo: b0adf7c9730763f88e1a048e28c68a9f806ed032fb522debff5bfba010a9b052

fcm
Android

Token de dispositivo de Firebase Cloud Messaging.

Ejemplo: bk3RNwTe3H0CI2k_HHwgIpoDKCIZvvD...MExUdFQ3P1


Parámetros de privacidad de datos

Parámetro Descripción
data_sharing_options

JSON Consentimiento del usuario final codificado en URL para compartir datos. Debe persistir y transmitirse en todas las solicitudes posteriores de SESSION y EVENT.

El usuario ha dado su consentimiento (Opted-In):

{"limit_data_sharing":false}

Usuario rechazado (Opted-Out):

{"limit_data_sharing":true}

URL codificada Ejemplo: %7B%22limit_data_sharing%22%3Atrue%7D

dnt
iOS, Android

Estado de Do Not Track.

  • 1 - Do Not Track activado
  • 0 - Do Not Track desactivado

Ejemplo: 0

dntoff
iOS, Android

Indica si Do Not Track está desactivado.

  • 0 - Do Not Track activado (OFF=falso)
  • 1 - Do Not Track desactivado (OFF=verdadero)

Ejemplo: 1


Compatibilidad entre dispositivos

Parámetro Descripción
custom_user_id

Su ID de usuario interno para el seguimiento entre dispositivos.

Ejemplo: 123456789abcd


Soporte SKAdNetwork

Parámetro Descripción
skan_conversion_value
iOS

Último valor de conversión de SKAdNetwork en el momento de la sesión.

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

Ejemplo: 7

skan_first_call_timestamp
iOS

Marca de tiempo Unix de la primera llamada a la API SKAdNetwork.

Ejemplo: 1483228800

skan_last_call_timestamp
iOS

Unix timestamp de la última llamada a la API de SKAdNetwork en el momento de la sesión.

Ejemplo: 1483228800


Soporte ICM de Google Ads (Beta)

Parámetro Descripción
odm_info
iOS

Requerido para Google Ads Integrated Conversion Measurement (Beta).

Documentación de Google Ads ICM

odm_error
iOS

Necesario para la Medición de conversiones integrada de Google Ads (Beta).

Documentación de Google Ads ICM


Ejemplos de solicitud

El código de ejemplo demuestra la integración del punto final SESSION en varios lenguajes de programación.

Descargo de responsabilidad del ejemplo: es posible que los ejemplos de código no incluyan todos los parámetros necesarios. Valide la lista completa de parámetros antes de la implementación de producción. Utilice i (identificador de aplicación) único para el desarrollo y las pruebas.

PYTHONCURLHTTPJAVA

Ejemplo de 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',
    'aifa': '8ecd7512-2864-440c-93f3-a3cabe62525b',
    'asid': 'edee92a2-7b2f-45f4-a509-840f170fc6d9',
    'install': 'true',
    'n': 'MyCoolAppName',
    'bd': 'Build/13D15',
    'app_v': '1.2.3',
    'openuri': 'myapp://home/page?queryparam1=value1',
    'ddl_enabled': 'true',
    'install_source': 'com.android.vending',
    'install_time': 1510040127,
    'update_time': 1510090877
}

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

Códigos de respuesta y errores

El punto final SESSION devuelve códigos de estado HTTP y respuestas JSON que indican el éxito o el fracaso de la solicitud.

Documentación completa sobre errores: S2S Response Codes & Error Handling


Pruebas y validación

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

Procedimiento de prueba

Validación de extremo a extremo

  1. Registre el dispositivo de prueba: Obtenga el ID de publicidad del dispositivo y añádalo a Singular SDK Console
  2. Habilitar registro en consola: Añadir identificador de dispositivo en SDK Console para capturar datos de prueba
  3. Usar ID de aplicación de desarrollo: Sustituya el identificador de la aplicación con la versión de desarrollo (por ejemplo, com.singular.app.dev) para separar los datos de prueba de los de producción.
  4. Iniciar aplicación: Abrir la aplicación desde el estado finalizado para activar la sesión
  5. Validar datos del cliente: Confirme que la aplicación envía todos los puntos de datos Singular necesarios a su servidor.
  6. Verifique la solicitud del servidor: Confirme que su servidor envía la solicitud de SESIÓN a https://s2s.singular.net/api/v1/launchcon todos los parámetros requeridos.
  7. Compruebe la consola SDK: En cuestión de segundos, el evento SESSION debería aparecer en la consola SDK.
  8. Repita las pruebas: Compruebe que SESSION se activa en cada entrada de la aplicación y en cada operación en primer plano.

SDK Console Session Event

Verificación crítica: Confirme que el evento SESSION se produce al abrir la aplicación/en primer plano ANTES de cualquier solicitud EVENT. Un orden no válido provoca errores de atribución.

Indicador de éxito: Si SESSION aparece en la consola del SDK, habrá completado con éxito la prueba de integración de extremo a extremo.


Recursos adicionales

Documentación de pruebas

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