Pular para o conteúdo
Blog

Retenção de jogadores no FiveM: quem volta e quem parou

Meça a retenção no FiveM: jogadores novos e recorrentes, retenção de 1, 7 e 30 dias, coortes semanais e horários de pico, com SQL ou na aba Crescimento.

Por Termi

4 min de leitura
  • Players
  • Retention
  • Analytics
Nesta página

Um servidor de FiveM com 80 jogadores no pico pode parecer saudável e mesmo assim perder a maior parte dos jogadores novos depois de uma noite. O contador de jogadores só mostra quem está online. A retenção mostra se as pessoas que acharam você na semana passada continuam jogando, e costuma revelar um problema semanas antes de o pico da noite começar a cair.

O que medir

  • Jogadores novos e recorrentes por dia. Um número estável feito todo dia de caras novas quer dizer que o servidor não segura ninguém.
  • Retenção de 1, 7 e 30 dias. Dos jogadores que entraram pela primeira vez, quantos jogaram de novo esse número de dias depois ou mais tarde.
  • Coortes semanais. Jogadores agrupados pela semana em que entraram pela primeira vez, e a parte de cada grupo que jogou em cada semana seguinte. Uma coorte que cai mais rápido que as outras aponta para algo que mudou naquela semana.
  • Duração do primeiro dia. Jogadores novos que saem em menos de 10 minutos e nunca voltam costumam ter travado na fila, no criador de personagem ou na whitelist.
  • Horários de pico. Quando seus jogadores estão online de verdade, para que reinícios e eventos caiam na hora certa.
  • Frequentes que pararam de vir. Alguém que jogou quatro dias por semana durante um mês e depois sumiu merece uma mensagem.

Meça você mesmo

Tudo isso vem de um único dado: qual jogador jogou em qual dia. Uma tabela com uma linha por jogador por dia basta:

player_days.sql
CREATE TABLE player_days (
  license VARCHAR(64) NOT NULL,
  day DATE NOT NULL,
  PRIMARY KEY (license, day)
);

Preencha a tabela com um script do servidor quando um jogador entra. Este exemplo usa oxmysql e a licença Rockstar do jogador como ID:

server.lua
AddEventHandler('playerJoining', function()
  local license = GetPlayerIdentifierByType(source, 'license')
  if not license then return end
  MySQL.insert('INSERT IGNORE INTO player_days (license, day) VALUES (?, UTC_DATE())', { license })
end)

Um jogador que continua online depois da meia-noite UTC conta só no dia em que entrou, o que basta para a retenção. A retenção de 7 dias dos jogadores novos dos últimos 90 dias vira então uma consulta só no MySQL ou MariaDB:

retention.sql
SELECT
  COUNT(*) AS new_players,
  SUM(last_day >= first_day + INTERVAL 7 DAY) AS back_after_7_days
FROM (
  SELECT license, MIN(day) AS first_day, MAX(day) AS last_day
  FROM player_days
  GROUP BY license
) AS players
WHERE first_day BETWEEN UTC_DATE() - INTERVAL 90 DAY
                    AND UTC_DATE() - INTERVAL 7 DAY;

Troque o 7 por 1 ou 30 para os outros dois números. Divida back_after_7_days por new_players e você tem a proporção.

Deixe de fora os jogadores novos dos últimos 7 dias. Quem entrou ontem ainda não teve como voltar depois de uma semana, e contar essa pessoa faz a retenção parecer pior do que é.

A aba Crescimento no FiveDock

O FiveDock monta a mesma tabela a partir das entradas e saídas que o agente dele já registra para a Black Box, e guarda essa tabela por 400 dias, mais tempo que os logs. Abra um servidor e escolha a aba Crescimento, ao lado de Jogadores e Console.

  • Free mostra os jogadores novos e recorrentes por dia dos últimos 30 dias.
  • City adiciona a retenção de 1, 7 e 30 dias, coortes semanais, quanto durou o primeiro dia dos jogadores novos e quantos voltaram, e um gráfico de horários de pico no seu fuso horário.
  • Metro e Enterprise dão o nome dos frequentes que pararam de vir (quatro dias ou mais em cinco semanas, depois nada por 7 a 30 dias) e incluem esses jogadores no resumo semanal, ao lado dos resources que mudaram no servidor pouco antes de eles saírem.

Essa última lista é a mais útil quando um script novo quebrou algo para um grupo de jogadores que nunca abriu um ticket. Veja na página de preços.

Perguntas frequentes

Qual é uma boa retenção para um servidor de FiveM?

Não existe uma referência comum para FiveM. Compare o seu servidor com ele mesmo: a mesma semana do mês passado, ou a coorte de antes de uma grande atualização. Uma coorte que cai mais rápido que as anteriores é o sinal para olhar.

Funciona num servidor com whitelist?

Funciona, e os números do primeiro dia pesam ainda mais lá. Um jogador que passou pela whitelist e saiu em menos de 10 minutos costuma ter tido um problema com o criador de personagem ou a área inicial.

Por qual identificador devo contar os jogadores?

A license da Rockstar existe em todo jogador e não muda com uma conta nova de Discord ou Steam. Personagens não são jogadores: uma licença com três personagens continua sendo uma pessoa.

Todos os artigos