uloggdDesenvolvedores
Portal do desenvolvedoruloggd
ComeçarRecursosArcade
Portal do desenvolvedoruloggdArcadeHospedagemO frameSDKIdentidadeVerificação em outras linguagensEventos de dadosTestesPolítica de revisãoDeveres de privacidadeEngines

Eventos de dados

Quando um jogador revoga, esquece o seu jogo, troca o apelido ou exclui a conta, o uloggd avisa o seu servidor, e você repete o que ele fez.

A LGPD (art. 18 §6) obriga o uloggd a avisar todos com quem compartilhou os dados de um jogador quando ele os corrige ou apaga. No Arcade, esse alguém é você. Quando um jogador revoga o acesso do seu jogo, esquece o seu jogo, troca o apelido ou exclui a conta, o uloggd manda ao seu servidor um evento assinado, e você repete a correção ou a exclusão em até 15 dias.

Declare a URL

Todo lançamento que pede identify precisa declarar uma URL de eventos de dados; sem ela, é recusado com data_events_url_required. A URL segue as mesmas regras da URL de entrada (https, porta 443, um host público, veja Hospedagem), só que a origem e o caminho dela podem ser diferentes dos da entrada. Quem revisa confere que ela funciona.

Os eventos

eventQuandoO que você faz
grant_revokedO jogador revogou o acesso do seu jogo em Configurações > Arcade.Encerre as sessões do jogador, pare de usar o sub e o apelido que o uloggd entregou e apague o que você guarda com base naquele consentimento, exceto o que a lei deixa você manter. Se o jogador aceitar de novo depois, o sub é o mesmo.
grant_forgottenO jogador escolheu Esquecer este jogo.Apague tudo o que está ligado àquele sub. Se o jogador voltar, volta com um sub novo.
nickname_changedO jogador editou o apelido.Troque o apelido guardado pelo nickname do evento.
account_deletedA conta do jogador no uloggd foi excluída.Apague tudo o que está ligado àquele sub.

Só jogadores geram eventos: as identidades que quem revisa usa nas revisões nunca geram nenhum.

Entrega

POST /uloggd-events HTTP/1.1
Host: events.example.com
Content-Type: application/json

{"event_token":"eyJhbGciOiJFUzI1NiIs..."}
  • O uloggd envia à URL de eventos de dados do lançamento ao vivo do aplicativo, ou do lançamento aprovado mais recente quando nenhum está ao vivo. Nunca à sua URL de desenvolvimento, que troca só o endereço do jogo.
  • Qualquer 2xx respondido em até 5 segundos é uma entrega. Responda assim que o token for verificado, e faça o trabalho depois.
  • Redirecionamentos não são seguidos, e nenhum cookie é enviado.
  • Uma entrega que falha é tentada de novo depois de 1 minuto, 5 minutos, 30 minutos, 2 horas e 6 horas, e então a cada 12 horas por 7 dias. Depois disso, o evento é marcado como falho.
  • A seção Dados dos jogadores do portal mostra os eventos pendentes e os falhos, e enquanto as entregas falham você recebe no máximo um e-mail por dia por aplicativo.
  • O mesmo evento pode chegar mais de uma vez: uma entrega que estourou o tempo depois de você tratá-la é tentada de novo. Faça cada tratamento idempotente.
  • O jti do token é o id do evento, e é o mesmo em toda nova tentativa. Elimine duplicados por jti.
  • Os eventos de um jogador chegam um de cada vez e em ordem: o seguinte espera enquanto o anterior está sendo entregue ou aguarda a próxima tentativa.

Antes da aprovação

  • Até um lançamento do aplicativo ser aprovado ou estar ao vivo, não existe URL de eventos de dados para onde enviar.
  • Os eventos das permissões que você mesmo deu nos seus testes, no modo de teste ou na URL de desenvolvimento, esperam sem ser tentados.
  • Eles são entregues quando um lançamento com URL de eventos de dados é aprovado.
  • Um evento que ainda espera depois de 30 dias é descartado.

O token do evento

header  { "alg": "ES256", "typ": "uloggd-arcade-event+jwt", "kid": "arc-2026-10" }
payload {
  "iss": "https://uloggd.com",
  "aud": "ID_DO_SEU_APLICATIVO",
  "sub": "4f1c2b7e-...",
  "event": "nickname_changed",
  "nickname": "Ada L.",    só com nickname_changed
  "iat": 1791860000,
  "exp": 1792464800,       iat + 7 dias
  "jti": "5a0b13c4-..."
}

Confira-o como você confere um token de identidade (veja Identidade), com o mesmo conjunto de chaves e a mesma tolerância de 60 segundos no relógio, com estas diferenças: typ é uloggd-arcade-event+jwt; não há nonce, scope nem mode; e ele vale por 7 dias, então só o recuse depois que exp passar. Num servidor que não roda JavaScript, siga Verificação em outras linguagens.

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); // tratado depois da resposta
  res.status(204).end();
});

O seu dever

Os termos de desenvolvedor do Arcade exigem que você aja sobre cada evento em até 15 dias, e que apague os dados dos jogadores quando o seu aplicativo é removido do Arcade. Guarde um registro do que você fez com cada um.

Verificação em outras linguagens

Verificadores completos dos tokens de identidade e de eventos de dados, com as mesmas regras e os mesmos códigos de recusa do SDK para Node.

Testes

Desenvolva offline no simulador, e depois jogue o seu jogo dentro do uloggd, da sua máquina ou de um lançamento, antes de alguém revisá-lo.

Nesta página

Declare a URLOs eventosEntregaAntes da aprovaçãoO token do eventoO seu dever