アプリのログイン機能の有無により、ユーザーIDを設定するベストなタイミングは異なります。
ログイン機能がないアプリ
ユーザーIDを設定しない、もしくは、アプリを起動した直後に端末ごとに一意な値をユーザーIDとして設定してください。
重複する可能性のある文字列をセットすると、同一ユーザーが複数のデバイスやブラウザを利用しているとみなされるため、デバイスIDを使用するなど端末ごとにユニークな値をユーザーIDに使用してください。
ログイン機能があるアプリ
ログインを行った直後、かつ、ログイン済みユーザーがアプリを起動した直後に、一意なユーザーIDを設定してください。
ログイン直後のタイミングでのみユーザーIDを送信する場合には、端末側の電波状況などにより送信されないケースが発生する可能性が考えられます。できるだけ、ログイン直後とアプリ起動時どちらも設定を行ってください。
また、一意なユーザーIDには、貴社データベースで保持されている情報と照合できるような値を設定すると、データの連携がスムーズになります。
なお、一度設定したユーザーIDを変更すると、別のユーザーとして認識されます。
ログアウトされた場合など、暫定的な値だとしても設定したユーザーIDの変更を行わないでください。
未ログインの状態でも各種API操作を行いたいアプリ
プッシュAPIなど各API機能は、ユーザーIDを指定して利用しますが、未ログイン状態でも使用できるアプリの場合、ログインするまではユーザーIDを設定しないケースが想定されます。
そのため、各API機能を利用したい場合には、未ログインユーザーがアプリを起動した時点で、端末ごとに一意な値をユーザーIDとして設定してください。
この場合、未ログインユーザーがログインし、ユーザーIDが再度設定されると、ユーザーIDが変更されることになります。
結果として、ログイン前とログイン後で異なるユーザーとして判定され、行動データはログイン後のユーザーに合流しません。
補足
ログイン有無によるセグメントを行いたい場合
ログイン状態をユーザープロフィールに設定してください。
ログイン/未ログインでユーザーIDを変更すると、異なるユーザーとして認識されます。
アプリリリースよりRepro導入が後の場合
すでに公開済みのアプリにReproを導入すると、Repro導入以前からログイン済みのユーザーがアプリをアップデートし、再ログインするまでユーザーIDが設定されないケースが発生します。
こちらを防ぐためには、ログイン後だけではなく、ログイン状態でアプリが起動されたタイミングでも必ずユーザーIDの設定を行ってください。
ユーザーID変更における影響
以下のような影響が発生します。
- ログイン前後で行動履歴が紐付かないことによる、リテンション率の低下
- ログイン前後、新たなユーザーが登録されることによる、全ユーザー数の増加
ユーザーID未設定の状態からユーザーIDを設定した場合は、同一ユーザーとしてイベント実行履歴/ユーザープロフィールが引き継がれます。
ユーザーIDとアナリティクス機能の関係性
ログイン機能のあるアプリのRepro上の計測に関しては、あわせて「ログイン機能があるのですが、Reproにはどのように認識されますか?」のFAQも、ご覧ください。