uloggdDesarrolladores
Portal de desarrolladoresuloggd
EmpezarRecursosArcade
Portal de desarrolladoresuloggdArcadeAlojamientoEl frameSDKIdentidadVerificación en otros lenguajesEventos de datosPruebasPolítica de revisiónDeberes de privacidadMotores

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

eventCuándoQué haces
grant_revokedEl 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_forgottenEl jugador eligió Olvidar este juego.Borra todo lo ligado a ese sub. Si el jugador vuelve, lo hace con un sub nuevo.
nickname_changedEl jugador editó el apodo.Sustituye el apodo guardado por el nickname del evento.
account_deletedSe 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 jti del token es el id del evento, y es el mismo en cada reintento. Elimina duplicados por jti.
  • 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.

En esta página

Declara la URLLos eventosEntregaAntes de la aprobaciónEl token del eventoTu deber