Eventos de datos
Cuando un jugador revoca, olvida tu juego, cambia el apodo o elimina la cuenta, uloggd avisa a tu servidor, y tú repites lo que hizo.
La ley brasileña de protección de datos (LGPD, art. 18 §6) obliga a uloggd a avisar a todos con quienes compartió los datos de un jugador cuando este los corrige o los borra. En Arcade, ese alguien eres tú. Cuando un jugador revoca el acceso de tu juego, olvida tu juego, cambia el apodo o elimina la cuenta, uloggd envía a tu servidor un evento firmado, y tú repites la corrección o el borrado en un plazo de 15 días.
Declara la URL
Todo lanzamiento que pide identify debe declarar una URL de eventos de
datos; sin ella, se rechaza con data_events_url_required. La URL sigue las
mismas reglas que la URL de entrada (https, puerto 443, un host público,
consulta Alojamiento), salvo que su origen
y su ruta pueden ser distintos de los de la entrada. Quien revisa comprueba
que funciona.
Los eventos
event | Cuándo | Qué haces |
|---|---|---|
grant_revoked | El jugador revocó el acceso de tu juego en Ajustes > Arcade. | Cierra las sesiones del jugador, deja de usar el sub y el apodo que te dio uloggd y borra lo que guardas con base en ese consentimiento, salvo lo que la ley te permita conservar. Si el jugador vuelve a aceptar más tarde, el sub es el mismo. |
grant_forgotten | El jugador eligió Olvidar este juego. | Borra todo lo ligado a ese sub. Si el jugador vuelve, lo hace con un sub nuevo. |
nickname_changed | El jugador editó el apodo. | Sustituye el apodo guardado por el nickname del evento. |
account_deleted | Se eliminó la cuenta de uloggd del jugador. | Borra todo lo ligado a ese sub. |
Solo los jugadores generan eventos: las identidades que usa quien revisa en una revisión nunca generan ninguno.
Entrega
POST /uloggd-events HTTP/1.1
Host: events.example.com
Content-Type: application/json
{"event_token":"eyJhbGciOiJFUzI1NiIs..."}- uloggd envía a la URL de eventos de datos del lanzamiento en vivo de la aplicación, o de su lanzamiento aprobado más reciente cuando ninguno está en vivo. Nunca a tu URL de desarrollo, que solo cambia la dirección del juego.
- Cualquier 2xx respondido en menos de 5 segundos es una entrega. Responde en cuanto el token esté verificado, y haz el trabajo después.
- No se siguen redirecciones, y no se envía ninguna cookie.
- Una entrega fallida se reintenta tras 1 minuto, 5 minutos, 30 minutos, 2 horas y 6 horas, y luego cada 12 horas durante 7 días. Después, el evento se marca como fallido.
- La sección Datos de los jugadores del portal muestra los eventos pendientes y los fallidos, y mientras las entregas fallan recibes como mucho un correo al día por aplicación.
- El mismo evento puede llegar más de una vez: una entrega que agotó el tiempo después de que la trataras se reintenta. Haz que cada tratamiento sea idempotente.
- El
jtidel token es el id del evento, y es el mismo en cada reintento. Elimina duplicados porjti. - Los eventos de un jugador llegan de uno en uno y en orden: el siguiente espera mientras el anterior se está entregando o aguarda su reintento.
Antes de la aprobación
- Hasta que un lanzamiento de la aplicación esté aprobado o en vivo, no hay URL de eventos de datos a la que enviar.
- Los eventos de los permisos que diste tú mismo en tus pruebas, en modo de prueba o en la URL de desarrollo, esperan sin intentarse.
- Se entregan cuando se aprueba un lanzamiento con URL de eventos de datos.
- Un evento que sigue esperando después de 30 días se descarta.
El token del evento
header { "alg": "ES256", "typ": "uloggd-arcade-event+jwt", "kid": "arc-2026-10" }
payload {
"iss": "https://uloggd.com",
"aud": "ID_DE_TU_APLICACION",
"sub": "4f1c2b7e-...",
"event": "nickname_changed",
"nickname": "Ada L.", solo con nickname_changed
"iat": 1791860000,
"exp": 1792464800, iat + 7 días
"jti": "5a0b13c4-..."
}Compruébalo como compruebas un token de identidad (consulta
Identidad), con el mismo conjunto de
llaves y la misma tolerancia de 60 segundos en el reloj, con estas
diferencias: typ es uloggd-arcade-event+jwt; no hay nonce, scope ni
mode; y vale durante 7 días, así que recházalo solo cuando exp haya
pasado. En un servidor que no ejecuta JavaScript, sigue
Verificación en otros lenguajes.
import { verifyEventToken } from "@uloggd/arcade-sdk/server";
app.post("/uloggd-events", express.json({ limit: "8kb" }), async (req, res) => {
let event;
try {
event = await verifyEventToken(req.body.event_token, {
appId: process.env.ULOGGD_APP_ID,
});
} catch {
return res.status(400).end();
}
// { subject, event, nickname?, id, issuedAt }
await jobs.enqueue(event); // se trata después de la respuesta
res.status(204).end();
});Tu deber
Los términos de desarrollador de Arcade te exigen actuar sobre cada evento en un plazo de 15 días, y borrar los datos de los jugadores cuando tu aplicación se quita de Arcade. Guarda un registro de lo que hiciste con cada uno.
Verificación en otros lenguajes
Verificadores completos de los tokens de identidad y de eventos de datos, con las mismas reglas y los mismos códigos de rechazo que el SDK para Node.
Pruebas
Desarrolla sin conexión en el simulador, y luego juega tu juego dentro de uloggd, desde tu máquina o desde un lanzamiento, antes de que nadie lo revise.