Guía de integración de juegos para PC y consola
Guía completa para implementar la atribución de juegos de PC y consola con Singular, que permite una medición y análisis precisos de las campañas en plataformas de escritorio y de videojuegos.
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 la atribución de juegos de PC y consola o comunícate con tu Customer Success Manager.
Referencias S2S compartidas: Esta guía cubre las especificidades de PC y consola. Para conocer los componentes básicos de servidor a servidor compartidos (endpoints, autenticación y parámetros comunes), consulta el hub de Fundamentos de S2S . Para consultar la referencia completa de parámetros de sesión y evento, consulta la Referencia de endpoints de la API de PC y consola .
Descripción general
Opciones de integración
Singular ofrece dos enfoques para la atribución de juegos de PC y consola. Selecciona el método que mejor se adapte a tus requisitos de implementación y necesidades de atribución.
| Método | Descripción | Caso de uso |
|---|---|---|
| Singular Links de PC/consola |
Recomendado: Integración simplificada mediante enlaces de tracking de Singular para atribución probabilística. No requiere Web SDK. Método de atribución: Probabilística (coincidencia basada en IP) |
La implementación más rápida con menor esfuerzo de integración. Ideal para campañas que dirigen a los usuarios a tiendas de terceros (Steam, Epic, etc.) o cuando la integración del Web SDK no es viable. |
| Web SDK + Match ID |
Avanzado: Atribución mejorada mediante el Web SDK de Singular en las páginas de destino con coincidencia determinística a través del Match ID. Métodos de atribución: Probabilística (basada en IP) y determinística (Match ID) |
Máxima precisión de atribución cuando los usuarios se autentican en las páginas de destino. Necesario para las funciones de Web Attribution de Singular y la atribución determinística. |
Nota de implementación: Ambos métodos requieren implementar la integración de la API de servidor a servidor (S2S) de PC/consola para reportar sesiones y eventos del juego. La diferencia radica en cómo se hace tracking de los clics de las campañas web y cómo se hacen coincidir con las instalaciones del juego.
Comparación de flujos de atribución
Flujo de Singular Links de PC/consola:
- El usuario hace clic en el Singular Link: El usuario hace clic en el enlace de tracking de Singular en la campaña de marketing
- Redirección a la página de destino: El usuario es redirigido a una página de destino o tienda (no se requiere Web SDK)
- Descarga e instalación: El usuario descarga e instala el juego
- Primer lanzamiento: El usuario abre el juego por primera vez
- Reporte S2S: El juego reporta la sesión mediante la API de S2S
- Atribución probabilística: Singular hace coincidir la instalación del juego con el clic en el Singular Link en función de la dirección IP
Flujo de Web SDK + Match ID:
- El usuario hace clic en el enlace de la campaña: El usuario hace clic en un anuncio o enlace de la campaña de marketing
- Página de destino con Web SDK: El usuario llega a una página de destino con el Web SDK de Singular implementado
- Captura del clic: El Web SDK captura los datos del clic y genera un Match ID
- Autenticación del usuario (opcional): Si el usuario inicia sesión, el Match ID puede pasarse al juego para la atribución determinística
- Descarga e instalación: El usuario descarga e instala el juego
- Primer lanzamiento: El usuario abre el juego y, opcionalmente, recupera el Match ID
- Reporte S2S con Match ID: El juego reporta la sesión mediante la API de S2S con o sin Match ID
- Coincidencia de atribución: Singular realiza la coincidencia determinística (si se proporciona el Match ID) o la coincidencia probabilística (basada en IP)
Integración de servidor a servidor
Independientemente del método de atribución elegido, implementar la integración de la API de S2S es obligatorio para toda la atribución de juegos de PC y consola.
Capacidades de integración:
- Tracking de sesiones del juego: Reporta las sesiones y la actividad de los usuarios a lo largo de los lanzamientos del juego
- Atribución de instalaciones: Atribuye nuevas instalaciones del juego a las campañas de marketing
- Análisis de eventos: Haz tracking de los eventos dentro del juego y las interacciones de los usuarios para el análisis del embudo
- Medición de ingresos: Mide las compras dentro del juego y el rendimiento de la monetización
- Compatibilidad multiplataforma: Tracking unificado en PC, Xbox, PlayStation, Nintendo y Meta Quest
Requisitos previos
Antes de implementar la integración de PC y consola, asegúrate de cumplir con los siguientes requisitos.
| Componente | Requisito |
|---|---|
| SDK Key |
Obtén la SDK Key de Singular en Dashboard → Developer Tools → SDK Integration → SDK Keys |
| Configuración de la app |
Agrega el juego de PC o consola a la página de apps de Singular. Para varias plataformas del mismo título, agrégalas todas a la misma "App" de Singular. |
| Selección del método de atribución |
Elige el enfoque de atribución según tus requisitos de implementación:
|
Recursos de documentación
Referencia completa de la API y guías de implementación para la integración de PC y consola.
Documentación de integración:
- Referencia de la API de S2S: Referencia de endpoints de S2S de PC y consola
- Preguntas frecuentes sobre atribución: Preguntas frecuentes sobre la atribución de juegos de PC y consola
- Web SDK (opcional): Descripción general y primeros pasos del Web SDK
- Singular Links: Descripción general de Singular Links
Método 1: Singular Links de PC/consola (recomendado)
Enfoque de integración simplificado que usa enlaces de tracking de Singular para la atribución probabilística sin requerir la implementación del Web SDK en las páginas de destino.
Implementación recomendada: Este método ofrece la vía más rápida hacia la atribución de PC/consola con un mínimo esfuerzo de integración. Ideal para la mayoría de los casos de uso.
Descripción general
Cómo funciona
Los Singular Links de PC/consola permiten la atribución al capturar los datos del clic directamente en el enlace de tracking, lo que elimina la necesidad de implementar el Web SDK en las páginas de destino.
Beneficios clave:
- No requiere Web SDK: Redirige a los usuarios a cualquier página de destino, incluidas las tiendas de terceros (Steam, Epic, etc.)
- Integración simplificada: Solo requiere la implementación de la API de S2S del lado del juego
- Despliegue rápido: Crea y lanza campañas rápidamente sin modificar las páginas de destino
- Destinos flexibles: Compatibilidad con una única redirección a cualquier URL de destino
Método de atribución:
- Probabilística (basada en IP): Singular hace coincidir la instalación del juego con el clic en el Singular Link en función de la dirección IP y las características del dispositivo
Pasos de implementación
Paso 1: Requisitos previos
Asegúrate de cumplir con los siguientes requisitos antes de crear Singular Links de PC/consola.
Obligatorio: Los app sites de PC/consola deben estar configurados en la pantalla de Apps de Singular, y se debe enviar al menos una sesión del juego mediante la API de S2S para que el app site sea elegible para la creación de Singular Links de PC/consola.
Paso 2: Crear el Singular Link de PC/consola
Crea Singular Links de PC/consola en el dashboard de Singular para hacer tracking de los clics de la campaña y habilitar la atribución.
Pasos de configuración:
- Ir a Manage Links: En el dashboard de Singular, ve a Attribution → Manage Links
- Seleccionar la App: Elige una App que tenga app sites de PC/consola configurados
- Crear un nuevo enlace: Haz clic en el botón Create New Link
- Seleccionar el tipo de plataforma: En el campo Platform Tracking Type, selecciona "PC/Console"
- Configurar el destino: Selecciona un app site específico de PC/consola o elige la opción "Track all app sites under this app"
- Definir la URL de destino: Configura la URL de redirección (página de destino, página de tienda, etc.)
- Configurar los ajustes de atribución: Define las ventanas de atribución y los parámetros de tracking según sea necesario
- Generar el enlace: Guarda y genera el enlace de tracking de Singular
Tipos de enlace: Los enlaces de PC/consola admiten Custom Sources y determinadas Partner Integrations. Se admiten tanto los enlaces de clic como los de impresión.
Paso 3: Implementar la integración de S2S
Implementa la integración de la API de servidor a servidor para reportar las sesiones y los eventos del juego. Consulta la sección Conceptos de integración a continuación para conocer todos los detalles de la implementación de S2S.
Implementación requerida:
- Notificación de sesión: Reporta los lanzamientos del juego mediante el Session Notification Endpoint
- Tracking de eventos: Reporta los eventos y los ingresos dentro del juego mediante el Event Notification Endpoint
- Identificación del dispositivo: Genera y conserva un identificador de dispositivo único (SDID)
Paso 4: Lanzar campañas
Usa los Singular Links de PC/consola generados en las campañas de marketing para habilitar el tracking de atribución.
Configuración de la campaña:
- Copiar el enlace de tracking: Copia el Singular Link generado desde Manage Links
- Configurar la campaña: Usa el Singular Link como URL de destino de la campaña
- Lanzar la campaña: Activa la campaña con el Singular Link
- Monitorear la atribución: Consulta los datos de atribución en los reportes de Singular a medida que los usuarios hacen clic en los enlaces y abren el juego
Coincidencia de atribución
Cómo funciona la atribución
Al usar Singular Links de PC/consola, Singular realiza la coincidencia de atribución probabilística en función de la dirección IP y el momento.
Proceso de atribución:
- El usuario hace clic en el Singular Link: Singular captura los datos del clic, incluidas la dirección IP y la marca de tiempo
- El usuario descarga el juego: El usuario procede a descargar e instalar el juego
- Lanzamiento del juego: El usuario abre el juego por primera vez
- Reporte S2S: El juego reporta la sesión a Singular mediante la API de S2S, incluida la dirección IP del usuario
- Coincidencia probabilística: Singular hace coincidir la instalación del juego con el clic en el Singular Link en función de la dirección IP dentro de la ventana de atribución
- Atribución completa: La instalación se atribuye a la fuente de la campaña
Precisión de la atribución: La atribución probabilística ofrece una coincidencia fiable para la mayoría de los casos de uso. Para una mayor precisión de atribución con coincidencia determinística, considera implementar el método Web SDK + Match ID.
Método 2: Web SDK + Match ID (avanzado)
Enfoque de integración avanzado que usa el Web SDK de Singular en las páginas de destino con un Match ID opcional para la atribución determinística cuando los usuarios se autentican.
Función avanzada: Este método requiere la implementación del Web SDK en las páginas de destino y un esfuerzo de integración adicional. Considera este enfoque si necesitas las funciones de Web Attribution de Singular o la atribución determinística mediante Match ID.
Descripción general
Cuándo usar este método
Implementa el enfoque Web SDK + Match ID cuando tu caso de uso requiera capacidades de atribución mejoradas más allá de la coincidencia probabilística básica.
Casos de uso:
- Web Attribution: Necesitas las funciones de Web Attribution y el análisis web de Singular
- Atribución determinística: Los usuarios se autentican en las páginas de destino y quieres la máxima precisión de atribución
- Tracking entre dispositivos: Los usuarios pueden descargar el juego en un dispositivo diferente al de la visita a la página de destino
- Análisis avanzado: Necesitas métricas detalladas de interacción web antes de la instalación del juego
Métodos de atribución:
- Probabilística (basada en IP): Coincidencia automática basada en la dirección IP (igual que los Singular Links de PC/consola)
- Determinística (Match ID): Coincidencia precisa mediante un identificador único que se pasa de la página de destino al juego cuando el usuario se autentica
Pasos de implementación
Paso 1: Implementar el Web SDK
Implementa el Web SDK de Singular en las páginas de destino de marketing para capturar los datos del clic y habilitar la atribución.
Requisito del Web SDK: La atribución de PC y consola que usa este método requiere la implementación del Web SDK de Singular en las páginas de destino de marketing. El Web SDK captura los datos del clic y habilita la coincidencia de atribución cuando los usuarios instalan y abren tu juego.
Implementación del Web SDK:
- Sigue la guía del Web SDK: Descripción general y primeros pasos del Web SDK
-
Configuración del Product ID:
El Product ID del Web SDK debe coincidir con el identificador del juego (parámetro
i) usado en la integración de S2S - Despliegue en la página de destino: Despliega el Web SDK en todas las páginas de destino de marketing
Alineación de la configuración: El Product ID del Web SDK debe coincidir exactamente con el identificador del juego en la integración de S2S para que la atribución funcione. Esta alineación permite a Singular conectar los clics web con las instalaciones del juego.
Paso 2: Implementar la integración de S2S
Implementa la integración de la API de servidor a servidor para reportar las sesiones y los eventos del juego. Consulta la sección Conceptos de integración a continuación para conocer todos los detalles de la implementación de S2S.
Implementación requerida:
- Notificación de sesión: Reporta los lanzamientos del juego mediante el Session Notification Endpoint
- Tracking de eventos: Reporta los eventos y los ingresos dentro del juego mediante el Event Notification Endpoint
- Identificación del dispositivo: Genera y conserva un identificador de dispositivo único (SDID)
Paso 3: Implementar el Match ID (opcional)
Para la atribución determinística, implementa el Match ID para pasar un identificador único de la página de destino al juego cuando los usuarios se autentican.
Función opcional: La implementación del Match ID solo es necesaria si quieres atribución determinística. El Web SDK por sí solo ofrece atribución probabilística sin Match ID.
Implementación del Match ID:
-
Recuperar el Match ID:
Usa el método
getMatchID()del Web SDK después de la autenticación del usuario - Pasarlo al juego: Implementa un mecanismo para pasar el Match ID de la web al juego (parámetro de consulta, API, etc.)
-
Incluirlo en la primera sesión:
Reporta el Match ID en la primera sesión del juego mediante el parámetro
match_id
Consulta la sección Implementación del Match ID a continuación para conocer los pasos detallados de la integración del Match ID.
Coincidencia de atribución
Cómo funciona la atribución
Al usar el Web SDK, Singular realiza la coincidencia de atribución mediante métodos probabilísticos o determinísticos, según si se proporciona el Match ID.
Atribución probabilística (sin Match ID):
- El usuario hace clic en la campaña: El usuario hace clic en el enlace de la campaña de marketing
- Visita a la página de destino: El Web SDK captura los datos del clic, incluida la dirección IP
- El usuario descarga el juego: El usuario descarga e instala el juego
- Lanzamiento del juego: El usuario abre el juego por primera vez
- Reporte S2S: El juego reporta la sesión a Singular mediante la API de S2S
- Coincidencia por IP: Singular hace coincidir la instalación del juego con el clic web en función de la dirección IP
Atribución determinística (con Match ID):
- El usuario hace clic en la campaña: El usuario hace clic en el enlace de la campaña de marketing
- Visita a la página de destino: El Web SDK genera un Match ID único
- El usuario se autentica: El usuario inicia sesión en la página de destino
- Match ID recuperado: La implementación recupera el Match ID del Web SDK
- Match ID pasado al juego: El Match ID se pasa al juego mediante un parámetro de consulta, una API u otro mecanismo
- El usuario descarga el juego: El usuario descarga e instala el juego
- Lanzamiento del juego con Match ID: El usuario abre el juego y recupera el Match ID almacenado
-
Reporte S2S con Match ID:
El juego reporta la primera sesión incluyendo el parámetro
match_id - Coincidencia determinística: Singular hace coincidir la instalación del juego con el clic web usando el Match ID para una atribución precisa
Conceptos de integración
Conceptos básicos y requisitos para implementar la integración de S2S de PC y consola con Singular. Estos conceptos aplican a ambos métodos de atribución.
Autenticación
Todas las solicitudes a la API de S2S de PC y consola de Singular requieren la autenticación con la SDK key en el parámetro
a
. Para conocer los aspectos técnicos de la autenticación compartida (dónde encontrar tu SDK Key y cómo se pasa), consulta
Autenticación en Fundamentos de S2S
.
Privacidad del usuario
Singular recomienda ofrecer a los usuarios finales la posibilidad de aceptar o rechazar el tracking. Para conocer los parámetros de privacidad compartidos, incluidos
data_sharing_options
y Limit Data Sharing, consulta
Parámetros de privacidad en Fundamentos de S2S
.
Plataformas compatibles
Definición de plataforma
La plataforma representa dónde juega el usuario y debe pasarse en el parámetro
p
en todas las solicitudes de la API de S2S.
Valores de plataforma admitidos:
-
pc- Plataformas de computadora personal -
xbox- Consolas de videojuegos Microsoft Xbox -
playstation- Consolas de videojuegos Sony PlayStation -
nintendo- Consolas de videojuegos Nintendo -
metaquest- Visores de realidad virtual Meta Quest
Sistemas operativos y tiendas
Además de la plataforma, especifica el sistema operativo/de juego mediante el parámetro
os
y la tienda de distribución mediante el parámetro
install_source
.
|
Plataforma
(
p
)
|
Sistema operativo/de juego
(
os
)
|
Tienda
(
install_source
)
|
|---|---|---|
| pc |
|
|
| xbox |
|
|
| playstation |
|
|
| nintendo |
|
|
| metaquest |
|
|
Valores personalizados: Se admiten valores personalizados para los parámetros de sistema operativo y tienda, pero Singular recomienda usar los valores estandarizados anteriores para mayor consistencia y claridad en los reportes.
Identificador del juego
Identificación de la aplicación
El identificador del juego asocia los eventos del juego con un juego específico y debe pasarse en el parámetro
i
en cada solicitud.
Requisitos del identificador:
-
Formato:
Se admite cualquier valor, pero Singular recomienda la notación DNS inversa (por ejemplo,
com.singular.game) - Consistencia multiplataforma: Debe usarse el mismo identificador del juego para el mismo juego en todas las plataformas compatibles
- Alineación con el Web SDK (solo Método 2): Si usas el método Web SDK + Match ID, el identificador del juego debe coincidir con el Product ID del Web SDK configurado en las páginas de destino para que la atribución funcione
Alineación con el Web SDK: Si usas el método de atribución Web SDK + Match ID, el identificador del juego usado en la integración de S2S debe coincidir exactamente con el Product ID configurado en tu implementación del Web SDK de Singular . Esta alineación es esencial para que Singular atribuya las instalaciones del juego a los clics de las campañas web. Este requisito no aplica al método de Singular Links de PC/consola.
Ejemplos de configuración:
| Implementación | Configuración |
|---|---|
| Web SDK (Método 2) |
|
| API de S2S (PC) |
|
| API de S2S (Xbox) |
|
| API de S2S (PlayStation) |
|
Identificación del dispositivo
Tracking único de instalaciones del juego
El identificador de instalación/dispositivo asocia los eventos del juego a lo largo de múltiples sesiones del juego para la misma instalación y debe pasarse en el parámetro
sdid
en cada solicitud.
Especificaciones del identificador:
- Formato: Se recomienda el formato UUID Version 4
- Generación: Valor generado por el juego/servidor en el primer lanzamiento del juego (instalación)
- Persistencia: Debe persistir durante toda la vida de la instalación del juego
- Unicidad: Cada instalación del juego requiere un identificador único
Ejemplo:
sdid=40009df0-d618-4d81-9da1-cbb3337b8dec
Implementación del Match ID
El Match ID habilita la atribución determinística para las campañas web al pasar un identificador único del Web SDK a la instalación del juego. Esta función solo está disponible al usar el método de atribución Web SDK + Match ID.
Función avanzada opcional: La implementación del Match ID solo es necesaria si usas el método de atribución Web SDK + Match ID y quieres atribución determinística. El método de Singular Links de PC/consola no admite el Match ID.
Cómo funciona el Match ID:
- El Web SDK genera el Match ID: El Web SDK de Singular crea un Match ID único cuando el usuario visita la página de destino
- Recuperar el Match ID: Usa los métodos del Web SDK para recuperar el Match ID de la página de destino después de la autenticación del usuario
- Pasarlo al juego: Tu implementación pasa el Match ID de la página web al juego durante el proceso de descarga/instalación (por ejemplo, parámetro de consulta, deep link, cookie)
-
Reportarlo en el primer lanzamiento:
El juego incluye el Match ID en la primera notificación de sesión a Singular mediante el parámetro
match_id - Coincidencia determinística: Singular usa el Match ID para una coincidencia de atribución precisa
Métodos de Match ID del Web SDK
Implementación nativa
El Web SDK de Singular ofrece métodos nativos para recuperar, definir y borrar los valores del Match ID en las páginas de destino.
Métodos disponibles:
| Parámetro | Detalles |
|---|---|
getMatchID()
|
Recupera el Match ID único generado por el Web SDK de Singular para la sesión web actual. Devuelve: Una cadena que contiene el valor del Match ID |
setMatchID(matchId)
|
Define un Match ID personalizado para la sesión web actual en lugar de usar el valor generado por Singular.
Parámetros:
|
clearMatchID()
|
Borra el Match ID personalizado definido mediante
|
Ejemplos de implementación
Implementación nativa del Web SDK
Usa estos métodos directamente después de la inicialización del Web SDK de Singular para recuperar y gestionar los valores del Match ID.
Recuperar el Match ID
// Get the Singular-generated Match ID
const matchId = window.singularSdk.getMatchID();
console.log('Match ID:', matchId);
// Store Match ID for passing to game
localStorage.setItem('singular_match_id', matchId);
Definir un Match ID personalizado
// Set your own Match ID value
const customMatchId = 'your-custom-match-id-123';
window.singularSdk.setMatchID(customMatchId);
console.log('Custom Match ID set:', customMatchId);
Borrar el Match ID
// Clear custom Match ID and revert to default
window.singularSdk.clearMatchID();
// Get the new default Match ID
const defaultMatchId = window.singularSdk.getMatchID();
console.log('Default Match ID restored:', defaultMatchId);
Ejemplo completo con botón de descarga
// Initialize Web SDK
const config = new SingularConfig(sdkKey, sdkSecret, productId)
.withInitFinishedCallback(() => {
console.log('Singular SDK initialized');
});
singularSdk.init(config);
// Handle download button click
document.getElementById('download-button').addEventListener('click', function() {
// Get Match ID before redirecting to download
const matchId = window.singularSdk.getMatchID();
// Pass Match ID to download page via query parameter
const downloadUrl = `https://example.com/download?match_id=${matchId}`;
// Redirect to download page
window.location.href = downloadUrl;
});
Implementación con Google Tag Manager
Usa la plantilla de etiqueta oficial de Singular Singular Web Tracking en Google Tag Manager para recuperar el Match ID. No escribas manualmente una etiqueta de HTML personalizado que llame directamente al SDK; la plantilla carga e inicializa el Web SDK por ti y expone el Match ID a través de un Track Type.
- En GTM, crea una nueva etiqueta y elige la plantilla Singular Web Tracking (de Singular Labs) como el tipo de etiqueta (Tag Type). Agrégala desde la Community Template Gallery si aún no está en tu contenedor.
- Establece el Track Type en Get Match ID .
-
Establece la
Data Layer Key
con un nombre de tu elección, por ejemplo
getMatchIDValue. La plantilla escribe el Match ID actual en esta clave del dataLayer. -
Crea una
Data Layer Variable
de GTM que lea
getMatchIDValue. -
Pasa el valor de esa variable a tu juego, por ejemplo agregándolo como
match_iden la URL de la tienda o de descarga que se usa para dirigir al usuario al juego.
Dispara la etiqueta Get Match ID en el trigger que se ejecuta justo antes de la transferencia al juego (por ejemplo, el clic en el botón de descarga o "Play on PC") para que el Match ID esté poblado antes de la redirección.
Valida la configuración en tu propio contenedor: confirma que la Data Layer Variable devuelve un Match ID no vacío antes de que se dispare la redirección. Un valor vacío significa que la etiqueta base de Singular Web Tracking aún no se ha inicializado en la página.
Pasar el Match ID al juego
Estrategias de implementación
Después de recuperar el Match ID del Web SDK, implementa un mecanismo para pasar el valor de la página de destino a la instalación del juego.
Enfoques comunes:
| Método | Implementación | Caso de uso |
|---|---|---|
| Parámetro de consulta |
Agrega el Match ID a la URL de descarga como parámetro de consulta.
|
Descargas directas donde la página de descarga puede extraer el parámetro y pasarlo al instalador del juego |
| Almacenamiento en cookie |
Almacena el Match ID en una cookie propia (first-party) accesible por la página de descarga del juego.
|
Flujos de varias páginas donde el Match ID debe persistir entre navegaciones de página |
| Local Storage |
Almacena el Match ID en el local storage del navegador.
|
Escenarios del mismo dominio donde la página de destino y la página de descarga comparten el almacenamiento |
| Deep Link |
Incorpora el Match ID en un esquema de deep link personalizado para el lanzamiento directo del juego.
|
Implementaciones avanzadas con manejadores de protocolo personalizados |
| API del lado del servidor |
Envía el Match ID a una API del servidor; el juego lo recupera mediante una solicitud autenticada. |
Implementaciones seguras que requieren validación del lado del servidor y autenticación del usuario |
Implementación de la API de S2S
Reportar el Match ID
Una vez que el juego recupera el Match ID de la implementación web, inclúyelo en la primera notificación de sesión a Singular para la coincidencia de atribución.
Momento crítico: El Match ID debe incluirse en la primera notificación de sesión (instalación) del juego para que la atribución funcione. Enviar el Match ID en sesiones posteriores no habilita la coincidencia de atribución.
Solicitud de sesión con Match ID:
import requests
def report_first_session_with_match_id(sdk_key, game_id, device_id, platform, match_id):
"""
Report first game session with Match ID for attribution
"""
session_url = "https://s2s.singular.net/api/v1/launch"
params = {
'a': sdk_key,
'i': game_id,
'sdid': device_id,
'p': platform,
'os': 'windows',
'install_source': 'steam',
'ip': get_user_ip(),
'match_id': match_id # Include Match ID for attribution
}
response = requests.get(session_url, params=params)
return response.json()
# Example: First launch with Match ID
report_first_session_with_match_id(
sdk_key='your_sdk_key_here',
game_id='com.singular.game',
device_id='40009df0-d618-4d81-9da1-cbb3337b8dec',
platform='pc',
match_id='abc123def456' # Retrieved from landing page
)
curl -G "https://s2s.singular.net/api/v1/launch" \
--data-urlencode "a=your_sdk_key_here" \
--data-urlencode "i=com.singular.game" \
--data-urlencode "sdid=40009df0-d618-4d81-9da1-cbb3337b8dec" \
--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"
async function reportFirstSessionWithMatchId(config) {
const sessionUrl = 'https://s2s.singular.net/api/v1/launch';
const params = new URLSearchParams({
'a': config.sdkKey,
'i': config.gameId,
'sdid': config.deviceId,
'p': config.platform,
'os': config.osVersion,
'install_source': config.store,
'ip': await getUserIP(),
'match_id': config.matchId // Include Match ID
});
const response = await fetch(`${sessionUrl}?${params.toString()}`);
return await response.json();
}
// Example: First launch with Match ID
reportFirstSessionWithMatchId({
sdkKey: 'your_sdk_key_here',
gameId: 'com.singular.game',
deviceId: '40009df0-d618-4d81-9da1-cbb3337b8dec',
platform: 'pc',
osVersion: 'windows',
store: 'steam',
matchId: 'abc123def456' // Retrieved from landing page
});
Prácticas recomendadas del Match ID
Lista de verificación de implementación
Requisitos completos de implementación:
- Integración del Web SDK: Implementa el Web SDK de Singular en las páginas de destino con un Product ID coincidente
-
Recuperación del Match ID:
Usa
getMatchID()para recuperar el valor después de la autenticación del usuario - Transmisión del valor: Implementa un mecanismo seguro para pasar el Match ID de la web al juego
- Almacenamiento en el juego: Almacena el Match ID en el juego hasta el reporte de la primera sesión/lanzamiento
-
Solo la primera sesión:
Incluye el parámetro
match_idúnicamente en la primera notificación de sesión - Validación del valor: Verifica que el valor del Match ID coincida entre las implementaciones web y del juego
- Pruebas: Prueba el flujo completo desde el clic en la página de destino hasta la instalación del juego y la atribución
Para conocer todos los detalles de la metodología de atribución y la resolución de problemas, consulta las Preguntas frecuentes sobre la atribución de juegos de PC y consola .
Tracking de sesiones del juego
Reportar las sesiones del juego a Singular es obligatorio en la integración de PC y consola, ya que habilita la atribución de instalaciones, el tracking de reengagement y el análisis de retención de usuarios.
Session Notification Endpoint
Requisito de implementación
Llama al Session Notification Endpoint cada vez que se abra el juego para notificar a Singular sobre la sesión del juego.
Referencia de la API: Para conocer la especificación completa del endpoint, consulta la documentación del Session Notification Endpoint .
Procesamiento de sesiones
Flujo de atribución
Las notificaciones de sesión permiten a Singular realizar múltiples funciones de atribución y análisis en función del contexto de la sesión.
Lógica de procesamiento:
- Primera sesión (instalación): Si es la primera sesión del juego después de una instalación única, Singular reconoce la nueva instalación y activa el proceso de atribución de instalaciones
- Sesión de reengagement: Si la sesión califica como reengagement (próximamente), Singular activa el proceso de atribución de reengagement (consulta las Preguntas frecuentes sobre reengagement )
- Sesión regular: De lo contrario, se marca como sesión del juego para el tracking de actividad y retención del usuario
Prácticas recomendadas de implementación
Recopilación asincrónica de datos
Al recopilar datos para reportar una sesión del juego, espera a que las funciones asincrónicas devuelvan un resultado y gestionen las distintas funcionalidades antes de enviar la notificación de sesión.
Consideraciones críticas de temporización:
- Atribución con Match ID (Método 2): Al usar el método Web SDK + Match ID, reporta la primera sesión del juego solo después de que el Match ID esté potencialmente disponible
- Consentimiento del usuario: Si el juego ofrece la aceptación (opt-in) del marketing y análisis de Singular, espera a que se recopile el consentimiento antes de reportar la sesión del juego
- Identificador del dispositivo: Asegúrate de que el SDID se genere y almacene antes de la primera notificación de sesión
Ejemplo de solicitud de sesión
Implementación de muestra
import requests
def report_game_session(sdk_key, game_id, device_id, platform, os_version, store):
"""
Report game session to Singular
"""
session_url = "https://s2s.singular.net/api/v1/launch"
params = {
'a': sdk_key,
'i': game_id,
'sdid': device_id,
'p': platform,
'os': os_version,
'install_source': store,
'ip': get_user_ip()
}
try:
response = requests.get(session_url, params=params, timeout=10)
if response.status_code == 200:
data = response.json()
if data.get('status') == 'ok':
print("Session reported successfully")
return True
else:
print(f"Session error: {data.get('reason')}")
return False
else:
print(f"HTTP error: {response.status_code}")
return False
except Exception as e:
print(f"Exception reporting session: {e}")
return False
# Example usage
report_game_session(
sdk_key='your_sdk_key_here',
game_id='com.singular.game',
device_id='40009df0-d618-4d81-9da1-cbb3337b8dec',
platform='pc',
os_version='windows',
store='steam'
)
curl -G "https://s2s.singular.net/api/v1/launch" \
--data-urlencode "a=your_sdk_key_here" \
--data-urlencode "i=com.singular.game" \
--data-urlencode "sdid=40009df0-d618-4d81-9da1-cbb3337b8dec" \
--data-urlencode "p=pc" \
--data-urlencode "os=windows" \
--data-urlencode "install_source=steam" \
--data-urlencode "ip=172.58.29.235"
async function reportGameSession(config) {
const sessionUrl = 'https://s2s.singular.net/api/v1/launch';
const params = new URLSearchParams({
'a': config.sdkKey,
'i': config.gameId,
'sdid': config.deviceId,
'p': config.platform,
'os': config.osVersion,
'install_source': config.store,
'ip': await getUserIP()
});
try {
const response = await fetch(`${sessionUrl}?${params.toString()}`);
const data = await response.json();
if (data.status === 'ok') {
console.log('Session reported successfully');
return true;
} else {
console.error('Session error:', data.reason);
return false;
}
} catch (error) {
console.error('Exception reporting session:', error);
return false;
}
}
// Example usage
reportGameSession({
sdkKey: 'your_sdk_key_here',
gameId: 'com.singular.game',
deviceId: '40009df0-d618-4d81-9da1-cbb3337b8dec',
platform: 'pc',
osVersion: 'windows',
store: 'steam'
});
Tracking de eventos dentro del juego
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.
Haz tracking de los eventos dentro del juego y las interacciones de los usuarios para analizar el rendimiento de las campañas de marketing, optimizar los embudos de usuarios y medir la interacción a lo largo del recorrido del jugador.
Planificación de eventos
Definición de eventos
Antes de implementar la integración de S2S, define los eventos de los que tu organización quiere hacer tracking para el análisis de campañas y la medición del comportamiento de los usuarios.
Guía de planificación de eventos: Definir eventos dentro del juego
Event Notification Endpoint
Reporte de eventos
Llama al Event Notification Endpoint cuando ocurra un evento en el juego para notificar a Singular para el análisis de atribución y la optimización de campañas.
Referencia de la API: Para conocer la especificación completa del endpoint, consulta la documentación del Event Notification Endpoint .
El nombre del evento incluido en la llamada a la API determina cómo se identifica el evento en los reportes, exports y postbacks de Singular.
Prácticas recomendadas para nombrar eventos
Eventos estándar
Singular recomienda usar la convención de nomenclatura estándar de eventos y atributos para agilizar la integración con partners y la compatibilidad de análisis.
Pautas de implementación:
- Eventos estándar: Usa la convención de nomenclatura estándar de eventos de Singular para el mapeo automático con partners y la simplificación de la integración
- Idioma inglés: Pasa los nombres y atributos de eventos personalizados en inglés para garantizar la compatibilidad con partners externos y soluciones de análisis
- Límites de caracteres: Los nombres de eventos están limitados a 32 caracteres ASCII (32 bytes para la conversión a UTF-8)
- Límites de atributos: Los atributos y valores de eventos están limitados a 500 caracteres ASCII
Tracking de eventos de ingresos
Medición de ingresos
Haz tracking de los ingresos de las compras dentro del juego para analizar el rendimiento de las campañas y el ROI, con los datos disponibles en reportes, log exports y postbacks.
Implementación de eventos de ingresos: Usa el Event Notification Endpoint con parámetros de ingresos adicionales para designar los eventos de ingresos.
Parámetros de ingresos requeridos:
-
is_revenue_event=true- Marca el evento como evento de ingresos (opcional si el nombre del evento es__iap__o el importe es mayor que cero) -
amt=1.99- Importe de ingresos -
cur=USD- Código de moneda ISO 4217
Ejemplos de solicitud de eventos
Implementaciones de muestra
Evento estándar
import requests
def report_game_event(sdk_key, game_id, device_id, platform, event_name, event_attributes=None):
"""
Report in-game event to Singular
"""
event_url = "https://s2s.singular.net/api/v1/evt"
params = {
'a': sdk_key,
'i': game_id,
'sdid': device_id,
'p': platform,
'n': event_name,
'ip': get_user_ip()
}
if event_attributes:
import json
params['e'] = json.dumps(event_attributes)
response = requests.get(event_url, params=params)
return response.json()
# Example: Level complete event
report_game_event(
sdk_key='your_sdk_key_here',
game_id='com.singular.game',
device_id='40009df0-d618-4d81-9da1-cbb3337b8dec',
platform='pc',
event_name='sng_level_achieved',
event_attributes={
'level': '5',
'score': '1250'
}
)
Evento de ingresos
def report_revenue_event(sdk_key, game_id, device_id, platform, amount, currency):
"""
Report revenue event to Singular
"""
event_url = "https://s2s.singular.net/api/v1/evt"
params = {
'a': sdk_key,
'i': game_id,
'sdid': device_id,
'p': platform,
'n': '__iap__',
'is_revenue_event': 'true',
'amt': amount,
'cur': currency,
'ip': get_user_ip()
}
response = requests.get(event_url, params=params)
return response.json()
# Example: $9.99 purchase
report_revenue_event(
sdk_key='your_sdk_key_here',
game_id='com.singular.game',
device_id='40009df0-d618-4d81-9da1-cbb3337b8dec',
platform='pc',
amount=9.99,
currency='USD'
)
Evento estándar
curl -G "https://s2s.singular.net/api/v1/evt" \
--data-urlencode "a=your_sdk_key_here" \
--data-urlencode "i=com.singular.game" \
--data-urlencode "sdid=40009df0-d618-4d81-9da1-cbb3337b8dec" \
--data-urlencode "p=pc" \
--data-urlencode "n=sng_level_achieved" \
--data-urlencode 'e={"level":"5","score":"1250"}' \
--data-urlencode "ip=172.58.29.235"
Evento de ingresos
curl -G "https://s2s.singular.net/api/v1/evt" \
--data-urlencode "a=your_sdk_key_here" \
--data-urlencode "i=com.singular.game" \
--data-urlencode "sdid=40009df0-d618-4d81-9da1-cbb3337b8dec" \
--data-urlencode "p=pc" \
--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"
Evento estándar
async function reportGameEvent(config) {
const eventUrl = 'https://s2s.singular.net/api/v1/evt';
const params = new URLSearchParams({
'a': config.sdkKey,
'i': config.gameId,
'sdid': config.deviceId,
'p': config.platform,
'n': config.eventName,
'ip': await getUserIP()
});
if (config.attributes) {
params.append('e', JSON.stringify(config.attributes));
}
const response = await fetch(`${eventUrl}?${params.toString()}`);
return await response.json();
}
// Example: Level complete
reportGameEvent({
sdkKey: 'your_sdk_key_here',
gameId: 'com.singular.game',
deviceId: '40009df0-d618-4d81-9da1-cbb3337b8dec',
platform: 'pc',
eventName: 'sng_level_achieved',
attributes: {
level: '5',
score: '1250'
}
});
Evento de ingresos
async function reportRevenueEvent(config) {
const eventUrl = 'https://s2s.singular.net/api/v1/evt';
const params = new URLSearchParams({
'a': config.sdkKey,
'i': config.gameId,
'sdid': config.deviceId,
'p': config.platform,
'n': '__iap__',
'is_revenue_event': 'true',
'amt': config.amount,
'cur': config.currency,
'ip': await getUserIP()
});
const response = await fetch(`${eventUrl}?${params.toString()}`);
return await response.json();
}
// Example: $9.99 purchase
reportRevenueEvent({
sdkKey: 'your_sdk_key_here',
gameId: 'com.singular.game',
deviceId: '40009df0-d618-4d81-9da1-cbb3337b8dec',
platform: 'pc',
amount: 9.99,
currency: 'USD'
});
Próximos pasos
Completa tu integración de PC y consola con recursos y soporte adicionales.
Recursos adicionales
Documentación y soporte
- Referencia de la API: Referencia de endpoints de S2S de PC y consola
- Preguntas frecuentes sobre atribución: Preguntas frecuentes sobre la atribución de juegos de PC y consola
- Web SDK (opcional): Descripción general y primeros pasos del Web SDK
- Planificación de eventos: Definir eventos dentro del juego
- Eventos estándar: Referencia de eventos estándar de Singular
- Códigos de respuesta: Códigos de respuesta y manejo de errores de S2S
Canales de soporte
Obtener ayuda
Comunícate con el equipo de Singular para obtener asistencia de implementación y soporte técnico.
- Solution Engineer: Consulta con un Solution Engineer de Singular sobre funciones avanzadas y planificación de la integración
- Customer Success Manager: Comunícate con tu CSM para la habilitación de funciones Enterprise y la configuración de la cuenta
- Equipo de soporte: Envía tickets de soporte para problemas técnicos y asistencia en la resolución de problemas