自動バッジ有効期限切れ

Discourse のユーザーに、定期的にエンゲージメントを維持している人への特典を提供したいと考えています。例えば、月に少なくとも 1 人の新規ユーザーを招待したユーザーにのみ特典を提供したいと考えています。

「プロモーター」というバッジを所有するすべてのユーザーにそのような特典を与えるように設定することはできますが、「プロモーター」バッジはユーザーが 1 人の訪問者を招待するだけで取得でき、そのバッジは永久に保持されてしまいます。

1 ヶ月後に「プロモーター」(または他の)バッジが自動的に削除され、ユーザーが再度それを獲得する必要があるように、バッジの有効期限を自動的に設定する方法はありますか?

あるいは、私が目指していること(ユーザーに月次のエンゲージメントを要求すること)に対して、より良いアプローチはありますか?

よろしくお願いいたします。

確かに面白いアイデアですね。

@codinghorror、つまりそのような機能はまだ存在しないということですね?:slight_smile:
これを実装するための回避策(手動であっても)はありますか?今私が直面している主な問題は、バッジがユーザーに付与された時期に関する情報さえ表示できないことです。これはどこか(API を通じてであっても)で確認できますか?

おそらく、Discourse Data Explorer を使って SQL クエリを再現し、時間制限を追加することで新しい「期限付き」バッジを作成できるでしょう。#plugin:data-explorer カテゴリや (Superseded) What cool data explorer queries have you come up with? のコレクションに、すでにそのようなクエリがあるかどうかは確認していません。もし何か見つけたら、ぜひこのトピックで共有していただけると嬉しいです!

アバターの隣の3行の下にある「バッジ」をクリックしてください。各バッジには、そのバッジを持っているユーザーの数が表示されています。その数字をクリックすると、バッジを取得した日付とともに、バッジを持っている各ユーザーが一覧表示されます。

しかし、なぜ有効期限付きのバッジが必要なのでしょうか?個人的には、ユーザーがイライラすると思います。

これは実際、コミュニティ空間でよく寄せられる要望です。ユーザーの最近の/現在の行動に紐づくバッジと、コミュニティで活動し続けているかどうかに関わらず、一度取得すれば永久に保持できる歴史的なバッジの付与との違いです。特に数年運営されているコミュニティではこの点が重要です。Facebook では「トップファン」バッジがこの仕組みを採用しており、これは固定されたものではなく、ページへの参加が減るとバッジが失われる可能性があります。

ユーザーからバッジを手動で削除した場合、必要なアクションを実行すれば再度バッジを獲得できますか?

これについては、基になるSQLクエリに時間要素が組み込まれた新しいバッジを作成するというアドバイスが引き続き有効だと思います。

クエリのヘルプが必要な場合は、#data-reportingでトピックを開始できます。:+1: