Pagina Informazioni: Guida di riferimento per le statistiche del sito

:bookmark: Questa è una guida di riferimento che descrive come vengono calcolate le statistiche nella pagina /about e dove trovare il codice Ruby per ciascuna statistica.

:person_raising_hand: Livello utente richiesto: Tutti gli utenti

Statistiche della pagina About

Tutti i siti Discourse dispongono di una pagina /about integrata (ad esempio, ecco la pagina About per Meta) che contiene un elenco di amministratori e moderatori del sito, insieme ad alcune statistiche relative al sito stesso.

Queste statistiche includono tutti gli utenti, inclusi gli account di amministratore e moderatore. Alcune statistiche includono anche account anonimi (se abilitati sul sito).

Se l’impostazione del sito share anonymized statistics è abilitata (di default è abilitata), le “Statistiche del sito” nella pagina /about saranno esposte come file JSON recuperabile all’indirizzo /about.json.

Se un sito è pubblico, la pagina /about insieme a queste statistiche sarà disponibile pubblicamente.

:gem: Il codice Ruby per le statistiche principali si trova in: discourse/lib/statistics.rb. Il modello Stat che orchestra le statistiche principali e quelle dei plugin si trova in discourse/app/models/stat.rb.

Di seguito è descritta la modalità di calcolo di ciascuna di queste statistiche.

Argomenti

Il numero di argomenti creati entro il periodo di tempo indicato. Questa statistica non include gli argomenti non elencati o i messaggi privati.

topics = Topic.listable_topics

{
  last_day: topics.where("created_at > ?", 1.day.ago).count,
  "7_days": topics.where("created_at > ?", 7.days.ago).count,
  "30_days": topics.where("created_at > ?", 30.days.ago).count,
  count: topics.count,
}

Post

Il numero di post creati entro il periodo di tempo indicato. I messaggi privati sono inclusi qui e contati come post regolari.

{
  last_day: Post.where("created_at > ?", 1.day.ago).count,
  "7_days": Post.where("created_at > ?", 7.days.ago).count,
  "30_days": Post.where("created_at > ?", 30.days.ago).count,
  count: Post.count,
}

Iscrizioni

Il numero di utenti validi che hanno registrato nuovi account entro il periodo di tempo indicato. Un “utente valido” è un utente reale che è anche attivato, non sospeso e non silenziato. Se must approve users è abilitato, vengono contati solo gli utenti approvati.

def self.valid_users
  users = User.real.activated.not_suspended.not_silenced
  users = users.approved if SiteSetting.must_approve_users
  users
end

{
  last_day: valid_users.where("created_at > ?", 1.day.ago).count,
  "7_days": valid_users.where("created_at > ?", 7.days.ago).count,
  "30_days": valid_users.where("created_at > ?", 30.days.ago).count,
  count: valid_users.count,
}

:gem: Un utente reale è definito qui: discourse/app/models/user.rb — esclude gli utenti di sistema/bot e gli account ombra degli utenti anonimi.

Utenti attivi

Il numero di utenti validi che hanno visitato il sito entro il periodo di tempo indicato. Utilizza lo stesso filtro valid_users delle Iscrizioni (esclude utenti inattivi, sospesi e silenziati). Include gli utenti in modalitĂ  anonima, ma non include gli utenti senza account.

{
  last_day: valid_users.where("last_seen_at > ?", 1.day.ago).count,
  "7_days": valid_users.where("last_seen_at > ?", 7.days.ago).count,
  "30_days": valid_users.where("last_seen_at > ?", 30.days.ago).count,
}

Utenti partecipanti

Il numero di utenti validi che hanno eseguito un’azione (creato un argomento, un post, un like, ecc.) entro il periodo di tempo indicato. Se la chat è abilitata, vengono contati anche gli utenti che hanno inviato messaggi chat o aggiunto reazioni chat.

{
  last_day: participating_users_count(1.day.ago),
  "7_days": participating_users_count(7.days.ago),
  "30_days": participating_users_count(30.days.ago),
}

:gem: L’implementazione completa si trova in discourse/lib/statistics.rb.

Like

Il numero totale di like ricevuti da tutti gli argomenti e i post entro il periodo di tempo indicato.

likes = UserAction.where(action_type: UserAction::LIKE)

{
  last_day: likes.where("created_at > ?", 1.day.ago).count,
  "7_days": likes.where("created_at > ?", 7.days.ago).count,
  "30_days": likes.where("created_at > ?", 30.days.ago).count,
  count: likes.count,
}

Visitatori e Visitatori UE

Quando l’impostazione del sito display eu visitor stats è abilitata, la pagina About mostrerà anche i conteggi stimati dei visitatori (totali e basati nell’UE). Questi vengono calcolati combinando i dati di visita degli utenti registrati con i visitatori anonimi stimati in base ai rapporti delle visualizzazioni di pagina.

:gem: Consulta i metodi visitors e eu_visitors in discourse/lib/statistics.rb per il calcolo completo.

Messaggi Chat

Il numero di messaggi chat inviati su tutti i canali chat. Quando la chat è abilitata, vengono registrate anche le seguenti statistiche: utenti chat (utenti distinti che hanno inviato messaggi) e canali chat (canali aperti).

Queste statistiche sono registrate come statistiche del plugin dal plugin chat tramite register_stat in plugins/chat/plugin.rb. Le query sottostanti si trovano in plugins/chat/lib/chat/statistics.rb.

6 Mi Piace