De 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 los usuarios y habilite la atribución para las instalaciones de aplicaciones, la reactivación 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.


Descripció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 reenví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.

Funciones compatibles:

  • Atribución de instalaciones: atribución de primer contacto a campañas de marketing
  • Atribución de reenganche: atribución multitoque para usuarios que regresan
  • Métricas de retención: seguimiento de la interacción basado en sesiones
  • Seguimiento de eventos: medición personalizada de eventos en la aplicación

Arquitectura de flujo de datos

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

  1. Recopilación del cliente: la aplicación recopila los datos necesarios del dispositivo y la aplicación
  2. Transmisión del servidor: la aplicación reenví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 respuestas: su servidor recibe y procesa la respuesta de Singular

Session Data Flow Diagram


Consideraciones clave

Requisitos críticos:

  • Procesamiento en tiempo real: las solicitudes se procesan individualmente, sin soporte por lotes
  • Orden secuencial: los eventos deben enviarse cronológicamente
  • Sin deduplicación: Singular no deduplica los datos; implemente la deduplicación del lado del servidor
  • Permanencia de los datos: los datos a nivel de dispositivo no se pueden eliminar después de su ingestión; valídelos 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 el momento de la transmisión
  • Paridad de funciones: admite todas las funciones del SDK cuando se proporcionan los datos adecuados
  • Implementación personalizada: adapta la integración a la arquitectura de 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 los usuarios para la atribución y el seguimiento.

Cuándo enviar sesiones

Desencadenantes de sesión

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

  • Instalaciones nuevas: primer inicio de la aplicación después de la instalación
  • Inicio desde 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 del periodo de tiempo de espera (recomendado: 60 segundos)

Lógica de tiempo de espera de la sesión

Implemente un tiempo de espera de sesión para evitar solicitudes SESSION excesivas durante breves periodos 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 SESSION si la aplicación permanece en segundo plano más allá del periodo de tiempo de espera
  • Seguimiento del ciclo de vida de la aplicación: utilice eventos y temporizadores del ciclo de vida de la aplicación para gestionar el estado de la sesión

Compatibilidad con enlaces profundos: envía siempre SESSION para las aplicaciones que se abren 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 atribución

Atribución basada en sesiones

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

Tipo de sesión Procesamiento de Singular Resultado de la atribución
Primera sesión (nueva instalación) Proceso de atribución de la instalación activado Atribuir la instalación a la campaña de marketing
Reenganche cualificado Proceso de atribución de reenganche activado Atribuir 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 Se cuenta para las métricas de actividad y compromiso del usuario

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


Requisitos de orden de eventos

La sincronización de la sesión y el evento influye directamente en la precisión de la atribución y la calidad de los datos .

Reglas de ordenación críticas:

  1. Sesión antes de los eventos: se debe recibir una única SESIÓN antes de cualquier evento de esa sesión
  2. Transmisión de eventos en tiempo real: los eventos dentro de la aplicación deben enviarse en tiempo real después de su sesión respectiva
  3. Procesamiento secuencial: un orden de sesión no válido da lugar a inconsistencias en los datos y errores de atribución

Opciones avanzadas

Funcionalidad ampliada

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

Funciones avanzadas: Revise las opciones S2S avanzadas para conocer los requisitos de enlaces profundos, 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 del dispositivo, la aplicación y la atribución.

URL del punto final

URL base y método

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

Formato de 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 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 de Singular para la autenticación API.

Recuperar desde: Singular UI → Menú principal → Herramientas para desarrolladores

Ejemplo: sdkKey_afdadsf7asf56

Importante: No utilice la clave API de informes, ya que las solicitudes serán rechazadas.


Identificadores de dispositivos

Identificadores específicos de la plataforma

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

Parámetro Plataforma Descripción
idfa iOS

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

Requisito ATT: iOS 14.5+ requiere la aceptación del usuario a través del marco de transparencia de seguimiento de aplicaciones

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

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

idfv iOS

Identificador para proveedores (IDFV) Se mantiene constante en 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 identificador de publicidad de Google (GAID) permite el seguimiento publicitario restablecible por el usuario en Android.

  • Requerido en dispositivos Google Play
  • Omítase en dispositivos que no sean de Google Play
  • Omítase si no está disponible; nunca se debe pasar NULL o una cadena vacía
  • Recuperar AIFA

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

asid Android
(Google Play)

ID de configuración de la aplicación Android Proporciona un seguimiento entre aplicaciones que respeta la privacidad para el mismo desarrollador.

Siempre necesario: debe incluirse en los dispositivos Google Play independientemente de la disponibilidad de GAID

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

amid Android
(Amazon)

Identificador de publicidad de Amazon para dispositivos Amazon sin Google Play Services.

  • Necesario para dispositivos Amazon Fire
  • Omítase si no está disponible
  • Recuperar AMID

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

oaid Android
(fabricantes chinos)

Identificador publicitario 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)

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

Uso restringido: prohibido en dispositivos Google Play; utilice AIFA y ASID en su lugar. Envíelo solo 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 ID de dispositivo único es un UUIDv4 generado por el cliente que representa la instalación única de la aplicación.

Identificador principal: único identificador de dispositivo utilizado para aplicaciones de PC y consola

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

sing Solo para empresas

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

Restringido: solo para clientes empresariales ; debe ser habilitado por el ingeniero de soluciones de Singular 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 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 la marca del dispositivo

Ejemplos: Samsung, LG, Apple

mo
iOS, Android

Modelo del dispositivo. Debe utilizarse con ma (marca).

Recuperar el modelo del dispositivo

Ejemplos: iPhone 4S, Galaxy SIII

lc
iOS, Android

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

Recuperar la configuración regional del dispositivo

Ejemplo: en_US

bd
iOS, Android

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

Recuperar la compilación del 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 entre mayúsculas y 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 es la primera sesión tras la instalación o reinstalación.

  • true - Primera sesión tras una instalación nueva/reinstalación
  • false - Sesión posterior (aplicación ya instalada)

Requerido para: Capacidades de seguimiento de reinstalación

Ejemplo: true

install_time
iOS, Android

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

Ejemplo: 1510040127

update_time
iOS, Android

Marca de tiempo Unix de la última actualización de la aplicación.

Ejemplo: 1510040127

att_authorization_status
iOS

Código de estado de transparencia de seguimiento de aplicaciones (ATT) (iOS 14.5+).

Valores de estado:

  • 0 - Indeterminado (no se muestra el mensaje)
  • 1 - Restringido (seguimiento a nivel del dispositivo desactivado)
  • 2 - Denegado (el usuario ha denegado la autorización)
  • 3 - Autorizado (el usuario ha concedido la autorización)

Siempre requerido: incluso si ATT no está implementado, pasar 0 (indeterminado).

Ejemplo: 3


Parámetros de prevención del fraude

Validación de la fuente de instalación

Parámetro Descripción
install_source
Android, PC

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

Android:Instalar nombre del paquete fuente

Ejemplo para 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 la validación de fraudes.

Ejemplo (truncado):MIJF9wYJKoZIhvcNAQcCoIJF6DCCReQCAQExCzAJBgUrDgMCGgUAMII1m...


Parámetros de enlaces profundos

Compatibilidad con enlaces profundos

Parámetro Descripción
openuri
iOS, Android

Enlace profundo codificado en 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 como respuesta.

  • true - Espera un enlace profundo diferido en respuesta
  • false - No espera un enlace profundo diferido en respuesta

Respuesta de ejemplo:

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

Solicita la resolución del enlace corto de Singular a un enlace largo. Debe utilizarse con openuri que contenga el enlace corto de Singular. -

  • true - Devuelve el enlace largo expandido
  • false - No resolver enlace

Respuesta de ejemplo:

{
  "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 avanzados

Mejora de la atribución de la plataforma

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

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

Estructura JSON de Android:

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

Estructura JSON de PC nativa:

{
   "install_time_epoch_seconds":"1568939453",
   "install_referrer":"utm_source=google-play&utm_medium=organic"
}

Requerido para:

  • Exportaciones a nivel de usuario de Facebook
  • Compartir el destino de los datos
  • Precisión de las respuestas

Más información:

 

Ejemplo codificado en URL:%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á habilitado.

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

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: Preguntas frecuentes sobre Meta Referrer

attribution_token
iOS

Token de atribución de Apple Search Ads del marco AdServices (iOS 14.3+).

Recuperar utilizando:attributionToken() al iniciar la aplicación por primera vez después de 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 solicitud HTTP en lugar del parámetro ip.

Limitaciones:

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

Ejemplo: true

country

ISO 3166-1alfa-2 código de país de dos letras.

Requerido cuando: la dirección IP no está disponible o use_ip=true

Ejemplo: US

ua

Cadena de agente de usuario codificada en URL.

Sin procesar: 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 operador 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"}

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


Soporte para seguimiento de desinstalación

Parámetro Descripción
apns_token
iOS

Token de dispositivo del Servicio de notificaciones push de Apple (APNs) codificado en hexadecimal. Requerido para el seguimiento de desinstalaciones en iOS.

  • Necesario para el seguimiento de desinstalaciones en iOS
  • Debe ser una cadena codificada en hexadecimal
  • 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

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

Usuario consentido (optado por participar):

{"limit_data_sharing":false}

Usuario rechazado (optado por no participar):

{"limit_data_sharing":true}

Ejemplo codificado en URL: %7B%22limit_data_sharing%22%3Atrue%7D

dnt
iOS, Android

Estado de «No rastrear».

  • 1 - No rastrear habilitado
  • 0 - No rastrear desactivado

Ejemplo: 0

dntoff
iOS, Android

Indica si «No rastrear» está desactivado.

  • 0 - No rastrear habilitado (DESACTIVADO = falso)
  • 1 - No rastrear desactivado (DESACTIVADO=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


Compatibilidad con SKAdNetwork

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

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

Ejemplo: 7

Parámetro Descripción
skan_conversion_value
iOS
skan_first_call_timestamp
iOS

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

Ejemplo: 1483228800

skan_last_call_timestamp
iOS

Marca de tiempo Unix de la llamada más reciente a la API de SKAdNetwork en el momento de la sesión.

Ejemplo: 1483228800


Compatibilidad con Google Ads ICM (Beta)

Parámetro Descripción
odm_info
iOS

Necesario para la medición de conversiones integrada de Google Ads (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 muestra 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 en producción. Utilice un identificador de aplicación ( i ) único para el desarrollo y las pruebas.

PYTHONCURLHTTPJAVA

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',
    '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: Códigos de respuesta S2S y gestión de errores


Pruebas y validación

Verifique la integración S2S antes de la implementación en producción utilizando la consola Singular SDK para la validación de datos en tiempo real.

Procedimiento de prueba

Validación de extremo a extremo

  1. Registrar dispositivo de prueba: Obtenga el ID de publicidad del dispositivo y añádalo a la consola SDK de Singular
  2. Habilite el registro de la consola: añada el identificador del dispositivo en la consola SDK para capturar los datos de prueba
  3. Utilice el ID de la aplicación de desarrollo: sustituya el identificador de la aplicación por la versión de desarrollo (por ejemplo, com.singular.app.dev) para separar la prueba de los datos de producción
  4. Iniciar la aplicación: abra la aplicación desde el estado terminado para activar la sesión
  5. Validar datos del cliente: confirme que la aplicación envía todos los puntos de datos de Singular necesarios a su servidor
  6. Verificar la solicitud del servidor: confirme que su servidor envía la solicitud SESSION a https://s2s.singular.net/api/v1/launch con todos los parámetros necesarios
  7. Compruebe la consola SDK: en cuestión de segundos, el evento SESSION debería aparecer en la consola SDK
  8. Repetir pruebas: valida los desencadenantes de SESSION en cada entrada de la aplicación y 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 incorrecto provoca errores de atribución.

Indicador de éxito: si SESSION aparece en la consola SDK, ¡ha completado con éxito la prueba de integración de extremo a extremo!


Recursos adicionales

Documentación de pruebas

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