¿Cómo puedo activar mi script de estadísticas personalizado en cada "carga" de página?

Sabiendo que Discourse es una SPA y habiendo consultado algunos documentos sobre este tema, todavía no estoy seguro de cómo lograr esto:

  • Incluimos una biblioteca de JavaScript personalizada en el pie de página que interactúa con nuestra solución de estadísticas.
  • Queremos enriquecer las estadísticas activando eventos personalizados en cada “carga de página”, por ejemplo, cada vez que el usuario navega a una página “nueva”.

Pseudocódigo:

window.statistic = window.statistic || [];
window.statistic.push({
    action: "page.ready",
    data: {
        page: {
            path: "/c/new-to-this-forum-get-started-here/20/l/new",
            country: "WW",
            language: "en",
        }, user: {
            country: "DE",
            loginStatus: "logged_in"
        }
} });

¿Cómo y dónde en mi tema personalizado necesito colocar el código para lograr esto?

Gracias :slight_smile:

Probablemente querrás usar onPageChange de nuestra API de plugins.

En un tema, querrás agregar algo como esto a javascripts/discourse/api-initializers/your-initializer.js

import { withPluginApi } from "discourse/lib/plugin-api";

export default {
  name: "custom-script-name",

  initialize() {
    withPluginApi("0.8.36", (api) => {
      api.onPageChange(() => {
        // script que quieres ejecutar al cambiar de página aquí
      });
    });
  },
};

¡Gracias! Eso funcionó.

¿Sabes también cómo puedo obtener el idioma de la interfaz de usuario de la configuración del usuario?