Sto utilizzando una fork dell’ottimo componente tema Matomo. Questo permette di tracciare le visualizzazioni di pagina con Matomo. La mia fork è un tentativo di aggirare alcuni problemi. È sostanzialmente identica. Il comportamento descritto di seguito si verifica anche con il componente upstream.
Il componente utilizza il callback onPageChange per configurare un’API/struttura di Matomo.
Il problema che riscontro è che, a volte, il callback onPageChange viene eseguito prima che il titolo della pagina sia generato. Questo comportamento è incoerente. A volte il titolo è completamente formato, altre volte no.
Il risultato è che la cronologia dei log di Matomo presenta un mix di titoli di pagina completi e incompleti.
Analizzando il codice sorgente di Discourse, questo viene chiamato prima del trigger page:changed:
Tutto sembra funzionare correttamente: il titolo dovrebbe essere aggiornato al momento dell’esecuzione di onPageChange. Non è così, o almeno non in modo coerente.
C’è un altro problema che potrebbe essere correlato. onPageChange viene talvolta chiamato due volte. Questo è il mio workaround (e la motivazione della fork):
Nel caso in cui onPageChange venga chiamato due volte per la stessa visualizzazione di pagina, una delle due chiamate fornisce un argomento url diverso dalla posizione corrente della finestra. Lo controllo ed esco anticipatamente.
(Noto che gestisco l’evento page:changed tramite onAppEvent invece di onPageChange, ma osservo lo stesso comportamento in entrambi i casi.)
Ciò che ho scoperto è che, se creo un nuovo argomento, il titolo dell’argomento non viene impostato nella chiamata a api.onPageChange eseguita immediatamente dopo la creazione dell’argomento. In tal caso, viene utilizzato invece il titolo del sito. Sembra che accada lo stesso sul tuo sito? Se non vedi alcun titolo, assicurati di aver compilato le impostazioni del sito title e site description. Queste impostazioni si trovano nella scheda “Required” della pagina delle impostazioni del sito.
Grazie per aver indagato, Simon. Non è quello che vedo io. Ho preparato una registrazione dello schermo e ti invierò un link fuori banda, insieme a un riferimento alla fonte del componente del tema in uso.
In sintesi, i titoli non vengono visualizzati nella prima chiamata a un argomento da un’app già caricata. Nella pagina di ingresso (cioè la prima volta che l’app viene caricata) vedo il titolo in onPageChanged, così come in tutte le pagine successive alla prima. La registrazione dovrebbe rendere tutto molto più chiaro, spero