kgrier
(Kirk Grier)
2023 年 1 月 12 日午前 6:07
1
3.1.0.beta1 (9e55a1ca88) を実行中
当社のセルフホストサイトでは、すべてのユーザーが登録済みで、匿名ユーザーは不可、すべてのアカウントはリクエストから通常1〜2時間以内にモデレーターが承認する必要があります。
新しく登録したユーザーが2名いることに気づきました。一方は作成から8時間経過しているにもかかわらず、「訪問日数」が2日と報告されています。もう一方は作成から1日前で、「訪問日数」が3日と報告されています。
検索したところ、「訪問日数の異常」という投稿が見つかりましたが、関連性はなさそうです。何を確認すれば、何が間違っているのか、あるいは我々が間違っているのかを知ることができますか?
ご協力ありがとうございます。カーク
「いいね!」 2
こんにちは、ようこそ @kgrier さん
これらのユーザーについて際立った点はありますか?たとえば、どのように、またはいつ作成されたかなど。何か共通点はありますか?
「いいね!」 2
kgrier
(Kirk Grier)
2023 年 1 月 19 日午前 7:53
3
申し訳ありません、返信が遅れました。サンタバーバラでの少しの過剰な降雨で足止めされていました。
当社の全ユーザーはセルフ登録するため、アカウントはそのように作成され、その後フォーラムにアクセスできるようになる前にモデレーターによる承認が必要になります。ユーザーが2100時に登録し、0100時に承認された場合、2日間として表示される「深夜のラップアラウンド」の問題があるかと思いましたが、私が投稿した3日間のユーザーがいました。
これがどのくらい前から起こっているのかは分かりません。私はそれほど注意深く見ていませんでしたが、当社のモデレーターの一人が見ていました。新しいユーザーごとにこの問題が発生するかどうか、受信登録を監視しています。
これに役立つData Explorerクエリがあれば教えてください。実行して報告します。
ご協力/ご洞察に感謝いたします。
「いいね!」 2
Moin
2023 年 1 月 19 日午前 9:23
4
しかし、3日間のユーザーは1日以上前に作成されました。そのため、深夜(1日目)より前に登録し、数時間後(2日目)にアクセスし、さらに1日後(3日目)にアクセスすることも可能です。これは2日未満なので、1日と表示されるのは正しいです。
metaでも2日差を見ました
「いいね!」 3
既存のものは見つかりませんでしたが、このようなものではどうでしょうか。
SELECT u.id AS user_id,
u.created_at,
u.approved_at,
us.days_visited
FROM users u
JOIN user_stats us ON u.id = us.user_id
WHERE u.approved_at IS NOT NULL
ORDER BY u.created_at DESC
もう少し読みやすくするために、以下のようなものもあります。
SELECT u.id AS user_id,
CONCAT(u.created_at::date, ' at ', to_char(u.created_at, 'HH:MM')) "user_created",
CONCAT(u.approved_at::date, ' at ', to_char(u.approved_at, 'HH:MM')) "user_approved",
us.days_visited
FROM users u
JOIN user_stats us ON u.id = us.user_id
WHERE u.approved_at IS NOT NULL
ORDER BY u.created_at DESC
「いいね!」 1
kgrier
(Kirk Grier)
2023 年 1 月 19 日午後 6:40
6
ありがとうございます!新しいユーザーが登録されたので、ユーザーを承認して実行する機会がありました。モデレーターはクエリにアクセスできるため、将来的には役立つ情報が見られることを願っています。
「いいね!」 2
「訪問日数」の値は、正確に午前0時(UTC)になると変更されると思います。ユーザーは午前0時(UTC)になる前に参加してから、その時間が経過するまでアクティブにしていると、「訪問日数」が増加します。
(以下は@Moinの回答と同様です。)
kgrier
(Kirk Grier)
2023 年 1 月 19 日午後 7:30
8
Metaでもこれが発生するのは良いことです。一人だけだと、間違っていることがわかります
「作成済み:1日前」は、アカウントの作成タイムスタンプはユーザーが登録したときであり、承認されたときではない(登録は訪問なので理にかなっている)ように見えるため、昨日と解釈しました。「2日間訪問済み」はUTCのロールオーバーで見えましたが、「3日間訪問済み」には到達できませんでした。もしそうなら、「作成済み」は「2日前」になるのではないでしょうか?
その「3日間のユーザー」は1月11日以降戻ってきていないため、現在のレポートは正しく見えます - 1月9日から1月11日まで。
しかし、Data ExplorerはUser Activityの1月9日ではなく、1月10日の作成を示しています。ローカルタイムとUTCの違いが発生しているのでしょうか?時間レポートでタイムゾーンを記載することは可能でしょうか?これらの2つのクエリは1分間隔で実行されました。
Discourseは「訪問」とみなすものと期間を記録しますか?もしそうなら、サイト上のユーザーの日時をクエリできますか?これは賑やかなサイトでは大量のデータになりますが、最後のX日間のみ保持することもできるかもしれません。これにより、タイムライン上にマッピングできます。
いくつかのテストアカウントを作成して、レポートで何が起こるかを確認できます。大したことではありませんが、レポートの背後にあるアカウンティングを理解していない場合、他の統計についても疑問を抱かせます。
DEレポート
現在のユーザー情報:
「いいね!」 2
はい。プロフィールを表示する際は、ローカルタイムゾーンがUTCでない限り、UTCではなくローカルタイムゾーンで表示されます。DEは保存されているUTC値を表示します
「いいね!」 2
kgrier
(Kirk Grier)
2023 年 1 月 20 日午前 4:08
10
ClawdiaWolfさん、ありがとうございます。
編集:先ほど投稿した「3日間」のユーザーについてテストを行ったところ、クエリを修正して初回と最終ログインを含めました。彼は44時間弱ログインしており、00:00 UTCの深夜を3回またいでいたため、3日間となりました。
「1日前」と表示されているにもかかわらず「訪問日数 3」となっているのは、ユーザーアクティビティの表示に何か奇妙なことが起こっているようです。これはデータの単純化しすぎの結果のように思えます。
私の意見では、UTCタイムスタンプをそのまま表示し、ユーザーに解釈させるのが一番良いと思います。「1日前」というのは曖昧です。1日になるには何時間前である必要がありますか?0000 UTCをまたげば十分なようです。つまり、2359 UTCに作成されたユーザーは、0001 UTCにユーザーアクティビティを見ている場合、「1日前」ということでしょうか?
技術的には正しいかもしれませんが、UTCタイムゾーンにいる場合、そのユーザーは「昨日、つまり1日前」に作成されたことになりますが、それ以外の場所では正しくない、あるいは理解されないでしょう。管理者視点からアクティビティを理解する上で、本当に役立つのかどうかはわかりません。
まだ理解が不十分であることは承知しており、皆様には引き続き教育していただき感謝しています。今のところ、詳細な正確性が必要な場合は、ユーザーイベントを理解するためにDEクエリを使用するようモデレーターに指示しました。
「いいね!」 1
これを UX に渡します。何も壊れていないようですが(ただし、表示方法をより明確にできる可能性はあります)。もし後で何か見つかったら、いつでも元に戻すことができます。
「いいね!」 1