C'è un modo per mostrare annunci interni in base alla posizione dell'utente?

Ciao!

Volevo solo verificare, esiste un modo in Discourse per mostrare annunci interni basati sulla posizione dell’utente corrente? Capisco che abbiamo: House Ads in the official Ad Plugin pronto per la pubblicazione degli annunci, ma vorrei solo sapere se c’è un modo per trovare la posizione dell’utente corrente tramite Discourse.

Se non esiste un modo in Discourse per farlo (come richiedere uno strumento di terze parti), so che abbiamo anche gli IP per le iscrizioni, esiste un modo per utilizzarli per determinare la posizione di un utente?

Saluti!

Ciao hyphalos! :blob_wave:

Indipendentemente dal contesto di un plugin pubblicitario esistente o ipotetico, esiste una funzionalità integrata per questo in Discourse disponibile dalla vista admin del profilo di un utente:

L’endpoint è: https://your-discourse.com/admin/users/ip-info.json?ip={user_ip}, con una richiesta GET.

Ciao @Canapin,

Grazie per la tua rapida risposta!

Ho provato a creare un breve script Python per questo, ma mi restituisce solo una pagina web e non JSON. Quando ho aggiunto .json all’URL GET, restituisce solo {}. Tuttavia, quando effettuo la richiesta con l’ID utente (https://your-discourse.com/admin/users/{user_id}/ip-info.json?ip={user_ip}), sembra che le informazioni dell’utente con l’indirizzo IP vengano visualizzate.

Ho persino provato a visitare quell’URL dal browser, solo per ottenere un Oops! That page doesn’t exist or is private.

A titolo informativo, la nostra Discourse è attualmente sulla versione Stable (v3.1.1).

Volevo solo chiedere, ho bisogno di una licenza MaxMind affinché questo funzioni? In caso contrario, è possibile che l’endpoint fornito non sia corretto? Ricevo una risposta da /admin/users/{user_id}.json, ma per qualche motivo non ricevo una risposta corretta da /admin/users/ip-info?ip={user_ip}. Ricevo solo una pagina web vuota dal nostro sito Discourse in HTML.

Inoltre, esiste un link all’elenco degli endpoint utili che Discourse fornisce, come quello che hai condiviso?

Grazie!

Questo perché restituisce solo il contenuto di https://your-discourse.com/admin/users/{user_id}.json. Ignora la parte ip-info, non è un endpoint valido qui.

E sì, non ci avevo pensato :person_facepalming: ma sì, penso che probabilmente avrai bisogno di una chiave Maxmind per restituire la posizione.

Quindi, per riassumere:

  1. Se vuoi ottenere l’IP di un utente, devi effettuare una richiesta GET (con credenziali di amministratore) a https://your-discourse.com/admin/users/{user_id}.json. Restituirà l’IP tra le altre informazioni dell’utente.

  2. Se vuoi localizzare l’IP, hai bisogno di una chiave Maxmind (da aggiungere in app.yml) ed effettuare una richiesta GET a questo endpoint: https://your-discourse.com/admin/users/ip-info.json?ip={user_ip}.

C’è la documentazione dell’API: https://docs.discourse.org/
Ma non tutti gli endpoint sono elencati qui. L’API di Discourse è molto facile da decodificare, tuttavia: Reverse engineer the Discourse API. È così che ho ottenuto le informazioni qui.

Grazie @Canapin, penso che questo sia ciò di cui avevo bisogno. Vedrò se riesco a procurarmi una licenza MaxMind e da lì andrò avanti. Aggiornerò questo thread se acquisterò una licenza e riproverò. Saluti!

1 Mi Piace

Ciao @Canapin ,

Ho acquisito una licenza gratuita MaxMind e l’API https://your-discourse.com/admin/users/ip-info.json?ip={user_ip} . funziona benissimo, grazie!

Ho un’ulteriore domanda, dato che questo richiede l’ID utente per ottenere l’IP e quindi chiamare questa API sopra, cosa succede agli utenti anonimi? E se volessimo mostrare annunci pubblicitari anche a loro, ma non hanno un ID utente? Sarebbe ancora possibile, o questo è strettamente per gli utenti con accesso effettuato?

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.