①1つの organization に複数の user を紐付け、user がログインをすることで、所属する organization の情報を扱うことができるアプリケーション
②user の role には管理者と一般がある
③①でいう情報とは、item, itemのラベル, user情報(管理者のみ) の3つ
④表示するコンテンツを main, sub, support にわけて、それぞれを最大1つまで同時に立ち上げることができる
・main: 立ち上げると sub, support は閉じられる
・sub: 立ち上げると support は閉じられる
・support: 立ち上げても他のコンテンツは閉じられない
GA4
「誰がいつ何をしたか」はGA4に記録を残す
Cloud SQLは結構なコストになりそうなので、GA4にログを残す方針でやってみる。
react-ga4 を使ってみる
ログイン情報を取得したら、user_properties にログイン情報をセットする
ReactGA.gtag("set", "user_properties", {
organizationId: xxxx,
userId: xxxx,
role: xxxx,
ip: xxxx,
});
custom event を作って、何かしらの動きがあったらGA4に送信
表示するコンテンツを切り替えた場合(例 main に item 一覧を立ち上げる)
ReactGA.event({
category: "Contents",
action: "Open Main",
label: "item 一覧",
nonInteraction: false,
});
APIをたたいて、DBの内容を更新した場合(例 item の情報を update した)
ReactGA.event({
category: "Call an API",
action: "Update",
label: "Item",
value: 5, // item_id
nonInteraction: false,
});
当初、IPアドレスの取得は auth0 のログから確認すればよいと考えたが、1日分しか情報を残さないらしいので、GA4にIPも送ってみることにした