現在のユーザーの場所に基づいて、社内広告を提供する方法はありますか?

こんにちは!

現在のユーザーの場所に基づいて、社内広告を配信するDiscourseの方法があるか確認したいだけです。広告配信の準備は整っていると思いますが、Discourse経由で現在のユーザーの場所を見つける方法はありますか?

Discourseの方法がない場合(サードパーティツールの利用が必要な場合など)、サインアップ時のIPアドレスも把握していますが、それらを使用してユーザーの場所を特定する方法はありますか?

よろしくお願いします!

こんにちは、hyphalosさん! :blob_wave:

既存または架空の広告プラグインのコンテキストに関係なく、Discourse には、管理者ビューのユーザープロファイルから利用できる組み込み機能があります。

エンドポイントは次のとおりです: https://your-discourse.com/admin/users/ip-info.json?ip={user_ip}、GET リクエストで。

@Canapin

迅速なご対応ありがとうございます!

これのために短いPythonスクリプトを作成しようとしましたが、JSONではなくWebページしか返ってきません。GET URLに.jsonを追加すると、{}しか返ってきません。しかし、ユーザーID (https://your-discourse.com/admin/users/{user_id}/ip-info.json?ip={user_ip}) を使用してリクエストを行うと、IPアドレスとともにユーザーの情報が表示されるようです。

ブラウザからそのURLにアクセスしようとしましたが、「おっと!そのページは存在しないか、プライベートです。」というエラーが表示されるだけでした。

ちなみに、私たちのDiscourseは現在Stableバージョン(v3.1.1)です。

これを使用するにはMaxMindライセンスが必要ですか?そうでない場合、提供されたエンドポイントが間違っている可能性はありますか? /admin/users/{user_id}.jsonからは応答がありますが、/admin/users/ip-info?ip={user_ip}からは適切な応答が得られません。DiscourseサイトからHTMLの空白のWebページしか取得できません。

また、あなたが共有してくれたような、Discourseが提供する便利なエンドポイントのリストへのリンクはありますか?

ありがとうございます!

それは、https://your-discourse.com/admin/users/{user_id}.json の内容しか返さないためです。ip-info の部分は無視され、ここでは有効なエンドポイントではありません。

そして、はい、そのことは考えていませんでした :person_facepalming: しかし、場所を返すには Maxmind キーが必要だと思います。

まとめると:

  1. ユーザーのIPを取得したい場合は、https://your-discourse.com/admin/users/{user_id}.json にGETリクエスト(管理者認証が必要)を行う必要があります。IPは他のユーザー情報とともに返されます。

  2. IPの場所を特定したい場合は、Maxmind キー(app.yml に追加する必要があります)が必要で、このエンドポイントにGETリクエストを行います:https://your-discourse.com/admin/users/ip-info.json?ip={user_ip}

APIドキュメントがあります:https://docs.discourse.org/
しかし、すべてエンドポイントがここにリストされているわけではありません。Discourse のAPIは非常に簡単にリバースエンジニアリングできます:Reverse engineer the Discourse API

@Canapinさん、ありがとうございます。これが求めていたものだと思います。MaxMindのライセンスを取得できるか確認し、そこから進めていきます。ライセンスを取得して再試行した場合は、このスレッドを更新します。よろしくお願いします!

「いいね!」 1

こんにちは、@Canapin さん。

MaxMind のライセンスを無料で取得でき、API https://your-discourse.com/admin/users/ip-info.json?ip={user_ip} . が正常に動作しました。ありがとうございます!

追加の質問があります。IP を取得して上記の API を呼び出すにはユーザー ID が必要ですが、匿名ユーザーについてはどうでしょうか?彼らにも広告を配信したい場合、ユーザー ID がない場合はどうなりますか?それでも可能でしょうか、それともこれはサインインしているユーザー専用ですか?

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