Questo componente del tema ti consente di inviare dati sull’utilizzo del tuo sito a Segment.
Il componente supporta la chiamata a segment.identify quando un utente accede per la prima volta al sito. Per i siti che utilizzano SSO, puoi inviare a Segment l’ID Discourse dell’utente o il loro external_id. Il componente ti permette di tracciare le visualizzazioni delle pagine Discourse: Latest, Categorie, Categoria, Tag e Argomento. Consente inoltre di tracciare la creazione di argomenti e post, i like, le segnalazioni e i segnalibri.
Installazione
Segui la guida Installing a theme or theme component per installare il componente. Utilizza https://github.com/scossar/discourse-segment-theme-component per installarlo direttamente dal suo repository Git. Puoi anche scaricarlo da qui.
Configurazione
Aggiungi la tua Chiave di Scrittura di Segment all’impostazione segment write key. Quindi seleziona gli eventi che desideri tracciare:
Le chiamate al metodo page di Segment vengono effettuate per gli utenti anonimi, mentre il metodo identify di Segment viene chiamato solo per gli utenti connessi.
So che sono estremamente in ritardo, ma ho una richiesta che spero possiate soddisfare.
Potreste aggiungere, oltre all’ID utente, anche l’indirizzo email dell’utente quando gli utenti sono connessi a Discourse?
In Segment sto cercando di combinare i dati di Discourse con i dati degli utenti per capire quali utenti potrebbero essere gli stessi sul sito web della mia azienda, per comprendere chi sta visitando Discourse e chi il sito web, ma al momento non riesco a mettere in relazione gli utenti perché l’ID utente di Discourse non corrisponde all’ID utente del sito.
Se potessi metterli in relazione quando l’indirizzo email è lo stesso su Discourse e sul sito, sarebbe molto utile.
Plugin incredibile, grazie @simon! Lo uso da alcuni mesi e ho notato che ogni tanto perde gli eventi topic_created. Non riesco a individuare alcun pattern in questi errori, quindi ho pensato di scrivere qui. Hai qualche idea? Ci sono dei log che posso controllare per gli errori?
Tecnicamente è possibile. Tuttavia, ho alcune preoccupazioni in materia di sicurezza e privacy riguardo all’aggiunta dell’indirizzo email al payload. Ci rifletterò e chiederò al team di Discourse cosa ne pensano. Se l’indirizzo email verrà aggiunto al payload, sarà presente un’impostazione del tema che, per impostazione predefinita, non include l’indirizzo email.
Mi occuperò di questo. Se dovessi individuare un pattern, fammelo sapere.
Proverò a trovare il tempo la prossima settimana per testare il componente e apportare alcuni aggiornamenti. Una volta completato, lo sposterò dal mio repository GitHub personale al repository GitHub di Discourse.
@simon Capisco il tuo punto e condivido le preoccupazioni sulla sicurezza, tuttavia sono un amministratore del Discourse da cui estraggo questi dati, quindi potrei recuperare gli stessi indirizzi email degli utenti semplicemente prendendo l’ID fornito e consultando i record utente per collegare l’ID all’indirizzo email corrispondente. È già disponibile, anche se manualmente.
Inoltre, dopo aver parlato con altri membri della mia organizzazione, potremmo decidere di attendere fino a quando non avremo configurato OAuth, in modo che i nostri utenti debbano utilizzare lo stesso ID per accedere sia al nostro sistema che al sistema Discourse.
Comunque, penso che sarebbe comunque una bella funzionalità da avere, nel caso in cui una soluzione del genere non fosse disponibile per qualcun altro nella community.
Questa sembra l’approccio ideale. Il componente tema Segment potrebbe essere aggiornato per aggiungere un’opzione che includa il provider_uid fornito dal tuo provider di autenticazione.
Sono contento che tu abbia sollevato la questione. Il componente di tracciamento Segment attualmente ha un’opzione per aggiungere l’external_id dell’utente per i siti che utilizzano DiscourseConnect. Guardandolo ora, vedo che sta utilizzando il vecchio nome di impostazione per DiscourseConnect: sta verificando se l’impostazione enable_sso è abilitata. Questo deve essere modificato in enable_discourse_connect. Lo correggerò domani.
Grazie mille, un campo provider_uid sarebbe fantastico: dovrebbe permetterci di associare le azioni degli utenti sul nostro sito e su Discourse, entrambi dopo che sono stati inviati a Segment.
Ho risolto il problema relativo al tracciamento degli utenti basato sul loro external_id nel caso in cui DiscourseConnect sia abilitato come provider di autenticazione per il sito Discourse.
Finora non sono riuscito a individuare la causa per cui la creazione di alcuni argomenti a volte non viene tracciata. Per me funziona senza alcun problema.
Ho aggiornato il nome utilizzato per l’evento “Topic Bookmarked”. In precedenza, il nome dell’evento inviato a Segment era “Thread Bookmarked”. Non ricordo il motivo di quella scelta. Spero che la modifica del nome dell’evento in “Topic Bookmarked” non causi problemi con le analisi di nessuno.
Quando ho controllato la schermata del debugger in Segment, l’unica cosa inviata nella chiamata identify era un User Id e un indirizzo IP. È possibile passare anche un indirizzo email con la chiamata identify?
Se abilitata, l’indirizzo email dell’utente verrà trasmesso insieme alla chiamata identify. Se aggiorni il componente del tema sul tuo sito Discourse all’ultima versione, questa impostazione sarà disponibile.
Un piccolo problema che ho riscontrato durante i test è che, se l’impostazione è disabilitata, l’indirizzo email dell’utente corrente continuerà a comparire su Segment per tutta la durata della sessione. Questo è legato al modo in cui Segment gestisce le cose dal loro lato. Quando l’impostazione è disabilitata, Discourse smette immediatamente di inviare gli indirizzi email degli utenti a Segment.
Non ho dimenticato la richiesta di passare il provider_uid a Segment, ma mentre esaminavo questa funzionalità mi chiedevo se potrebbe essere utile passare altri identificatori a Segment. In particolare, mi chiedevo se fosse utile passare il nome e il nome utente dell’utente alla chiamata identify.
Ad ogni modo, anche Nome e Nome utente sarebbero utili. Una soluzione a lungo termine consisterebbe nell’implementare un modo per inviare tutto ciò che è incluso di base e anche eventuali Campi Utente aggiuntivi creati in Discourse.
Il motivo è che alcune destinazioni richiedono un dato specifico per funzionare. Sarebbe davvero utile avere un’interfaccia utente per costruire il payload direttamente all’interno di Discourse. Anche se fosse limitata ai campi standard documentati nella documentazione di Segment https://segment.com/docs/connections/spec/identify/.
Mi scuso per la risposta tardiva. Ho approfondito ulteriormente. Al momento non è possibile impostare il provider_uid tramite un componente tema perché Discourse non invia il provider_uid al client. Forse questa è una funzionalità che potrebbe essere abilitata tramite un’impostazione del sito in futuro, ma affinché funzioni, saranno necessarie alcune modifiche al codice principale di Discourse.
Nessun problema. Grazie per il follow-up e per aver approfondito la questione. Speriamo di poter trovare un altro modo per collegare i nostri utenti Discourse su Discourse e sul nostro sito.