ユーザーID¶
アプリケーションの固有のユーザーIDを設定できます。ユーザーIDを設定すると、エンドユーザーが複数の端末やブラウザを使っている場合に、異なる端末やブラウザから上がってくるセッション情報を同一ユーザーのものとみなすことができるようになります。
セットするのは、以下のようなユーザーを一意に特定できる文字列です。
- サービスで使用している会員ID
警告
デバイスに対して1度設定したユーザーIDの値と異なる値を送信すると、当該デバイスへ最後にセットされたユーザーIDと当該デバイスが紐付き、過去に紐付いていたユーザーは当該デバイスとの紐付きが解消されます。
1度ユーザーIDを設定すると、異なる値が再度設定されたタイミングより別のユーザーの行動履歴としてみなされるため、 ユーザーIDとして設定する値の定義は慎重に検討してください 。
ユーザーIDをセットする¶
警告
以下のような値は、ユーザーIDとして推奨しません。
- 氏名のような重複する可能性のある文字列異なるユーザーが利用した場合であっても、同じ値であれば、同一ユーザーが複数のデバイスやブラウザを利用しているとみなされます
- メールアドレスや電話番号のようなユーザーが任意で変更可能な文字列セットするユーザーIDが変更された場合、異なる値であれば別のユーザーが端末やブラウザを利用しているという扱いになりますまた、セキュリティ観点でも暗号化などを行うことが推奨されます
あわせて「ユーザーIDを考える」も参考にしてください。
ユーザーIDをセットします。文字数の上限は191文字です。
[Repro setUserID:@"xxxxxxxxxxxx"];
Repro.set(userID: "xxxxxxxxxxxx")
Repro.setUserID("xxxxxxxxxxxx");
Repro.setUserID("xxxxxxxxxxxx")
ReproCpp::setUserID("xxxxxxxxxxxx");
Repro.SetUserID ("xxxxxxxxxxxx");
Repro.setUserID("xxxxxxxxxxxx");
Repro.setUserID("xxxxxxxxxxxx");
await Repro.setUserID("xxxxxxxxxxxx");
アプリ内において、ユーザーを一意に特定することが不可能な場合は、代替手段として デバイスID をユーザーIDとしてセットすることも可能です。
注釈
ログイン機能がある場合、未ログインの状態で、ユーザーIDをセットしないようにしてください。ユーザーIDがセットされていない状態で記録された行動履歴・ユーザープロフィールは、ユーザーIDをセットした後も引き継がれますが、ログイン前にユーザーIDを明示的に指定してしまった場合、ログイン前とログイン後の行動履歴・ユーザープロフィールが別のユーザーのものとして取り扱われてしまいます。
詳しくは「ユーザーIDを設定するタイミングのベストプラクティスを教えて下さい」で解説します。
ユーザーIDを取得する¶
セットしたユーザーIDを取得します。
NSString* userID = [Repro getUserID];
let userID = Repro.userID()
String userID = Repro.getUserID();
val userID = Repro.getUserID()
const char* userID = ReproCpp::getUserID();
string userID = Repro.GetUserID ();
// retrieve userID via callback function
Repro.getUserID(function(userID) {
...
});
// retrieve userID via callback function
Repro.getUserID((error, userID) => {
...
});
final userId = await Repro.getUserID();