Referencia de endpoints de API para PC y consola

Referencia de endpoints de la API para PC y Consola

Referencia completa de la API para los endpoints server-to-server de PC y Consola, que proporciona especificaciones detalladas de parámetros y ejemplos de implementación para el seguimiento de sesiones y el reporte de eventos.

Referencias relacionadas: PC y consola usan los mismos endpoints de S2S que el resto del conjunto. Consulta la referencia del endpoint SESSION y la referencia del endpoint EVENT para los equivalentes de dispositivos móviles y web. Esta referencia cubre los endpoints de sesión y evento de PC y consola.

Función Enterprise: La atribución de juegos de PC y Consola es una función enterprise. Para obtener más información, lee las Preguntas frecuentes sobre atribución de juegos de PC y Consola o comunícate con tu Customer Success Manager.

Guía de integración: Para obtener instrucciones completas de implementación y prácticas recomendadas, consulta la Guía de integración S2S de PC y Consola .


Endpoint de notificación de sesiones

Reporta los inicios de juego y las sesiones a Singular para la atribución de instalaciones, el seguimiento de re-engagement y el análisis de retención de usuarios.

Especificación del endpoint

Método URL
POST https://s2s.singular.net/api/v1/launch

Los parámetros se envían como un cuerpo de solicitud application/x-www-form-urlencoded . Incluye el siguiente encabezado obligatorio:

Content-Type: application/x-www-form-urlencoded

Propósito

Usa el endpoint de notificación de sesiones para reportar todos los inicios de juego (primeras sesiones y sesiones repetidas) casi en tiempo real. El primer inicio de juego que Singular recibe para una instalación identificada por el Singular Device ID activa el proceso de atribución.

Flujo de trabajo de atribución:

  • Primera sesión: Activa la comparación de la atribución de instalación con los clics de campañas web
  • Sesiones posteriores: Se registran para el análisis de actividad del usuario, retención y re-engagement
  • Reporte en tiempo real: Envía las notificaciones de sesión lo más cerca posible del inicio real del juego

Parámetros de sesión

Parámetros obligatorios

Parámetro Detalles
a

Tipo: String
Obligatorio. SDK Key de Singular para la autenticación de la API.
Obténla desde: Singular UI → Menú principal → Developer Tools .

Importante: No uses la Reporting API Key. Las solicitudes serán rechazadas.

Ejemplo: sdkKey_afdadsf7asf56

p

Tipo: String
Obligatorio. Distingue entre mayúsculas y minúsculas. Plataforma donde el usuario juega.
Valores admitidos:
Ejemplo: PC

  • PC
  • Xbox
  • Playstation
  • Nintendo
  • MetaQuest
i

Tipo: String
Obligatorio. Distingue entre mayúsculas y minúsculas. Se recomienda la notación DNS inversa. Identificador de juego único para tu juego.

Crítico: Debe coincidir exactamente con el Product ID del Web SDK para que la atribución funcione. Usa el mismo valor en todas las plataformas para el mismo juego.

Ejemplo: com.singular.game

sdid

Tipo: UUIDv4
Obligatorio. Se recomienda el formato UUID versión 4. Singular Device ID que identifica una instalación de juego y la actividad del usuario únicas.
Generación: Creado por el juego/servidor en el primer inicio, persiste durante toda la vida útil de la instalación del juego.
Ejemplo: 49c2d3a6-326e-4ec5-a16b-0a47e34ed953

os

Tipo: String
Obligatorio. Se admiten valores personalizados. Sistema operativo o sistema de juego.
Valores recomendados por plataforma:
PC: windows, linux, macos, steamos
Xbox: xbox_one, xbox_360, xbox_series_s, xbox_series_x
PlayStation: playstation_3, playstation_4, playstation_5
Nintendo: nintendo_switch
Meta Quest: metaquest, metaquest_2, metaquest_pro
Ejemplo: windows

install_source

Tipo: String
Obligatorio. Se admiten valores personalizados. Tienda de juegos o método de distribución.
Valores recomendados:
Se admiten valores personalizados.
Ejemplo: steam

  • steam
  • epicgamestore
  • microsoftstore
  • gog
  • humblestore
  • xbox
  • playstation
  • nintendo
  • metaquest
  • selfdistributed
ip

Tipo: String
Obligatorio. Formato IPv4 o IPv6. No es obligatorio si use_ip=true . Dirección IP del dispositivo en el momento del inicio del juego.

Alternativa: Usa use_ip=true para extraer la IP del encabezado de la solicitud HTTP en lugar de pasarla explícitamente.

Ejemplo: 172.58.29.235


Parámetros opcionales

Se admiten los siguientes parámetros opcionales.

Parámetro Detalles
install_ref

Tipo: String
Opcional. Solo en el primer inicio. Información de Google Install Referrer codificada en URL como JSON. Proporciona la atribución más precisa para juegos nativos de PC distribuidos a través de la tienda Google Play Games.

Requisitos:

  • Requiere implementar el Play Games PC SDK para pasar el valor
  • Debe enviarse únicamente en el primer inicio del juego

Consulta la documentación de Install Referrer de Google Play para PC nativo para conocer los detalles de implementación.
Ejemplo: %7B%22install_time_epoch_seconds%22%3A%221568939453%22
%2C%22install_referrer%22%3A%22utm_source%3Dgoogle-play%26utm_medium%3Dorganic%22%7D

match_id

Tipo: String
Opcional. Solo en el primer inicio. Identificador para la comparación determinística de atribución entre los clics web y las instalaciones del juego.

Requisitos:

  • Debe enviarse únicamente en el primer inicio del juego
  • Debe coincidir con el valor de la implementación del Web SDK
  • Si es PII, debe cifrarse con hash usando SHA-256

Consulta Atribución por Match ID para conocer los detalles de implementación.
Ejemplo: matchid_12345

av

Tipo: String
Opcional. Versión de la aplicación o identificador de compilación del juego.
Ejemplo: 1.1.5.581823a

global_properties

Tipo: JSON
Opcional. JSON codificado en URL. Hasta 5 propiedades, 200 caracteres máximo cada una. Pares clave-valor guardados para el usuario y persistidos en todas las solicitudes posteriores.
No enviar un valor establecido previamente lo anula.
Ejemplo: %7B%22key1%22%3A%22value1%22%7D

install

Tipo: Boolean
Opcional. Bandera de instalación que indica la primera sesión después de la instalación del juego. Obligatoria para las funciones de seguimiento de reinstalaciones.
Ejemplo: true

utime

Tipo: Integer
Opcional. Marca de tiempo UNIX (segundos). Marca de tiempo del inicio del juego en tiempo UNIX.
Ejemplo: 1483228800

umilisec

Tipo: Integer
Opcional. Marca de tiempo UNIX (milisegundos). Marca de tiempo del inicio del juego en tiempo UNIX.
Ejemplo: 1483228800000

ve

Tipo: String
Opcional. Ejemplo: 9.2

Versión del OS del dispositivo en el momento de la sesión.
ua

Tipo: String
Opcional. Cadena de User Agent codificada en URL.
Sin procesar: Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15...
Ejemplo: Mozilla%2F5.0%20(iPhone%3B%20CPU%20iPhone%20OS%2014_0...

use_ip

Tipo: Boolean
Opcional. 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 un código de país de dos letras a través del parámetro country .
  • Mutuamente excluyente con el parámetro ip : no uses ambos.
  • Debes proporcionar ip o use_ip para evitar el rechazo de datos.

Ejemplo: true

data_sharing_options

Tipo: JSON
Opcional. Consentimiento del usuario final para compartir datos, en JSON codificado en URL. Debe persistir y pasarse en todas las solicitudes SESSION y EVENT posteriores.
El usuario dio su consentimiento (opt-in):
El usuario rechazó (opt-out):
Ejemplo: %7B%22limit_data_sharing%22%3Atrue%7D

{"limit_data_sharing":false}
{"limit_data_sharing":true}
custom_user_id

Tipo: String
Opcional. Tu ID de usuario interno para el tracking multidispositivo.

Sin PII: No pases información de identificación personal. Usa un identificador interno con hash u otro tipo de anonimización, no direcciones de correo electrónico, números de teléfono ni nombres sin procesar.

Ejemplo: 123456789abcd


Ejemplos de solicitud

Implementaciones de ejemplo

CURL PYTHON JAVASCRIPT

Solicitud de sesión básica

curl -X POST "https://s2s.singular.net/api/v1/launch" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "a=your_sdk_key" \
  --data-urlencode "i=com.singular.game" \
  --data-urlencode "sdid=49c2d3a6-326e-4ec5-a16b-0a47e34ed953" \
  --data-urlencode "p=PC" \
  --data-urlencode "os=windows" \
  --data-urlencode "install_source=steam" \
  --data-urlencode "ip=172.58.29.235"

Primer inicio con Match ID

curl -X POST "https://s2s.singular.net/api/v1/launch" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "a=your_sdk_key" \
  --data-urlencode "i=com.singular.game" \
  --data-urlencode "sdid=49c2d3a6-326e-4ec5-a16b-0a47e34ed953" \
  --data-urlencode "p=PC" \
  --data-urlencode "os=windows" \
  --data-urlencode "install_source=steam" \
  --data-urlencode "ip=172.58.29.235" \
  --data-urlencode "match_id=abc123def456" \
  --data-urlencode "install=true"

Endpoint de notificación de eventos

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

Reporta los eventos dentro del juego a Singular para el análisis, la optimización de campañas y el reenvío a partners.

V2 obligatorio a partir del 15 de julio de 2026. Las cuentas creadas el 15 de julio de 2026 o después deben usar el Event Endpoint V2 (basado en SDID); V1 no está disponible para cuentas nuevas. Los clientes existentes que ya están integrados con V1 no se ven afectados. Comunícate con tu Customer Success Manager de Singular si deseas migrar a V2.

Especificación del endpoint

Método URL
POST https://s2s.singular.net/api/v2/evt

Los parámetros se envían como un cuerpo de solicitud application/x-www-form-urlencoded . Incluye el siguiente encabezado obligatorio:

Content-Type: application/x-www-form-urlencoded

Propósito

Usa el endpoint de notificación de eventos para reportar todos los eventos deseados dentro del juego casi en tiempo real. Los datos de eventos se usan para el análisis, el reporte, la optimización de partners y la medición del rendimiento de las campañas.

Prácticas recomendadas para eventos:

  • Eventos estándar: Usa los nombres de eventos estándar de Singular para el mapeo automático con los partners
  • Reporte en tiempo real: Envía los eventos lo más cerca posible del momento en que ocurren
  • Eventos de ingresos: Incluye los parámetros de ingresos para el seguimiento de compras y el análisis de ROI

Parámetros de evento

Parámetros obligatorios

Parámetro Detalles
a

Tipo: String
Obligatorio. SDK Key de Singular para la autenticación de la API.
Obténla desde: Singular UI → Menú principal → Developer Tools .

Importante: No uses la Reporting API Key. Las solicitudes serán rechazadas.

Ejemplo: sdkKey_afdadsf7asf56

p

Tipo: String
Obligatorio. Distingue entre mayúsculas y minúsculas. Plataforma donde el usuario juega.
Valores admitidos: PC, Xbox, Playstation, Nintendo, MetaQuest
Ejemplo: PC

i

Tipo: String
Obligatorio. Distingue entre mayúsculas y minúsculas. Se recomienda la notación DNS inversa. Identificador de juego único para tu juego.
Debe coincidir con el valor usado en las notificaciones de sesión y en el Product ID del Web SDK.
Ejemplo: com.singular.game

sdid

Tipo: UUIDv4
Obligatorio. Singular Device ID que identifica una instalación de juego única.
Debe coincidir con el SDID usado en las notificaciones de sesión.
Ejemplo: 49c2d3a6-326e-4ec5-a16b-0a47e34ed953

n

Tipo: String
Obligatorio. 32 caracteres ASCII máximo. Nombre del evento que identifica una acción o hito dentro del juego.

Recomendado: Usa los nombres de eventos estándar de Singular para la integración automática con partners.

Ejemplo: sng_achievement_unlocked

os

Tipo: String
Obligatorio. Se admiten valores personalizados. Sistema operativo o sistema de juego.
Debe coincidir con el valor usado en las notificaciones de sesión.
Ejemplo: windows

install_source

Tipo: String
Obligatorio. Se admiten valores personalizados. Tienda de juegos o método de distribución.
Debe coincidir con el valor usado en las notificaciones de sesión.
Ejemplo: steam

ip

Tipo: String
Obligatorio. Formato IPv4 o IPv6. No es obligatorio si use_ip=true . Dirección IP del dispositivo en el momento del evento.
Ejemplo: 172.58.29.235


Parámetros opcionales

Se admiten los siguientes parámetros opcionales.

Parámetro Detalles
e

Tipo: JSON
Opcional. JSON codificado en URL, 500 caracteres ASCII máximo por atributo. Atributos de evento personalizados que proporcionan información detallada sobre el evento.

Recomendado: Usa los nombres de atributos estándar de Singular para la compatibilidad con partners.

Ejemplo: %7B%22sng_attr_content_id%22%3A5581%7D

is_revenue_event

Tipo: Boolean
Obligatorio para eventos de ingresos. Marca el evento como 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

Tipo: Number
Obligatorio para eventos de ingresos. Monto de la moneda para el evento de ingresos.
Úsalo con el parámetro cur .
Ejemplo: 2.51

cur

Tipo: String
Obligatorio para eventos de ingresos. Código de moneda de tres letras ISO-4217 para el evento de ingresos.
Úsalo con el parámetro amt .
Referencia: Códigos de moneda ISO-4217
Ejemplo: EUR

av

Tipo: String
Opcional. Versión de la aplicación o identificador de compilación del juego.
Ejemplo: 1.1.5.581823a

global_properties

Tipo: JSON
Opcional. JSON codificado en URL. Hasta 5 propiedades, 200 caracteres máximo cada una. Pares clave-valor guardados para el usuario.
Deben persistir en todas las solicitudes posteriores si se establecen.
Ejemplo: %7B%22key1%22%3A%22value1%22%7D

utime

Tipo: Integer
Opcional. Marca de tiempo UNIX (segundos). Marca de tiempo del evento en tiempo UNIX.
Ejemplo: 1483228800

umilisec

Tipo: Integer
Opcional. Marca de tiempo UNIX (milisegundos). Marca de tiempo del evento en tiempo UNIX.
Ejemplo: 1483228800000

ve

Tipo: String
Opcional. Ejemplo: 9.2

Versión del OS del dispositivo en el momento de la sesión.
ua

Tipo: String
Opcional. Cadena de User Agent codificada en URL.
Sin procesar: Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15...
Ejemplo: Mozilla%2F5.0%20(iPhone%3B%20CPU%20iPhone%20OS%2014_0...

use_ip

Tipo: Boolean
Opcional. 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 un código de país de dos letras a través del parámetro country .
  • Mutuamente excluyente con el parámetro ip : no uses ambos.
  • Debes proporcionar ip o use_ip para evitar el rechazo de datos.

Ejemplo: true

data_sharing_options

Tipo: JSON
Opcional. Consentimiento del usuario final para compartir datos, en JSON codificado en URL. Debe persistir y pasarse en todas las solicitudes SESSION y EVENT posteriores.
El usuario dio su consentimiento (opt-in):
El usuario rechazó (opt-out):
Ejemplo: %7B%22limit_data_sharing%22%3Atrue%7D

{"limit_data_sharing":false}
{"limit_data_sharing":true}
custom_user_id

Tipo: String
Opcional. Tu ID de usuario interno para el tracking multidispositivo.

Sin PII: No pases información de identificación personal. Usa un identificador interno con hash u otro tipo de anonimización, no direcciones de correo electrónico, números de teléfono ni nombres sin procesar.

Ejemplo: 123456789abcd


Ejemplos de solicitud

Implementaciones de ejemplo

CURL PYTHON JAVASCRIPT

Evento estándar

curl -X POST "https://s2s.singular.net/api/v2/evt" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "a=your_sdk_key" \
  --data-urlencode "i=com.singular.game" \
  --data-urlencode "sdid=49c2d3a6-326e-4ec5-a16b-0a47e34ed953" \
  --data-urlencode "p=PC" \
  --data-urlencode "os=windows" \
  --data-urlencode "install_source=steam" \
  --data-urlencode "n=sng_level_achieved" \
  --data-urlencode 'e={"sng_attr_level":"5","sng_attr_score":"1250"}' \
  --data-urlencode "ip=172.58.29.235"

Evento de ingresos

curl -X POST "https://s2s.singular.net/api/v2/evt" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "a=your_sdk_key" \
  --data-urlencode "i=com.singular.game" \
  --data-urlencode "sdid=49c2d3a6-326e-4ec5-a16b-0a47e34ed953" \
  --data-urlencode "p=PC" \
  --data-urlencode "os=windows" \
  --data-urlencode "install_source=steam" \
  --data-urlencode "n=__iap__" \
  --data-urlencode "is_revenue_event=true" \
  --data-urlencode "amt=9.99" \
  --data-urlencode "cur=USD" \
  --data-urlencode "ip=172.58.29.235"

Manejo de respuestas

Ambos endpoints devuelven respuestas JSON consistentes que requieren la validación del campo de estado para determinar el éxito o el error.

Formato de respuesta

Importante: Todas las respuestas devuelven códigos de estado HTTP 200. Valida siempre el campo status del cuerpo de la respuesta para determinar el éxito ( ok ) o el error ( error ).

Para obtener la documentación completa de los códigos de respuesta y las estrategias de manejo de errores, consulta Códigos de respuesta S2S y manejo de errores .


Recursos adicionales