ARDKユーザーIDの使用
Lightship VPSなどの機能では、AR体験の特定のユーザーに関連付けられた情報が必要です。たとえば、VPSを使用してローカリゼーションリクエストを行うには、実際の場所のVPSが作動したロケーションをスキャンしているユーザーを把握する必要があります。
このような機能を使用するには、AR体験でARDKにユーザーIDを指定する必要があります。ユーザーIDは、アプリの特定のユーザーに割り当てられる一意の値です。ゲームにVPSコンポーネントがない場合でも、可能な場合にはユーザーIDを指定する必要があります。
ユーザーIDを指定しないと、ARDKでクライアントIDが生成されるため、リクエストする際はこのIDを使用します(詳細は、「ユーザーIDを指定できない場合の対処方法」を参照してください)。
ユーザーIDを生成し、使用することを強くお勧めします。正確なユーザー情報により、Nianticはデータプライバシーのベストプラクティスを維持できるようにサポートし、ユーザー間の機能の使用パターンを理解することができます。また、Nianticは、GDPRに準拠して行われるデータリクエスト(このページでは「データ管理リクエスト」と呼びます)を円滑に進められるようにユーザーIDを使用します。
ユーザーIDやクライアントIDは、プライバシー規制の個人情報とみなされる場合があります。Lightship ARDKやプライバシーに関する詳細は、 Lightship ARDKのデータプライバシーに関するよくある質問.を参照してください。
ユーザーIDの生成
ARDKでは、ユーザーIDの形式や長さに厳密な指定はありませんが、ユーザーIDの文字列はUTF8形式である必要があります。メールアドレスやログインIDなど、ユーザーに直接紐付くようなIDの使用は避けてください。ユーザーごとに一意のID(GUIDなど)を生成することをお勧めします。
エンドユーザーがデータ管理リクエストを行う場合は、そのユーザーのユーザーIDを引き出せるようにします。以下の「エンドユーザーのデータ管理リクエスト」に記載されているように、引き出したユーザーIDの情報はNianticに提供してください。ユーザーIDを引き出す方法については、状況によって異なりますが、次のような方法があります。
ユーザーIDとユーザーログイン情報をクラウドに安全に保存し、ユーザーがログイン情報を入力する際にユーザーIDを引き出す方法を提供します。
ユーザーがデータアクセスリクエストを行う方法をアプリ内に用意し、現在のアプリユーザー向けに生成されたユーザーIDを使用します。
ユーザーがログインする際に同一のユーザーIDを生成できる安全なWebサービスを提供します。この際、アプリでのプロセスと同じプロセスを使用します。
注釈
ARDK使用例のサンプルシーンでは、ユーザーIDを生成したり使用したりすることはありません(以下の「ユーザーIDを指定できない場合の対処方法」に記載されているように、クライアントIDを使用します)。ARDK使用例のシーンを本番アプリの作成用テンプレートとして使用しないことをお勧めします。その代わりに、可能な場合には、アプリでユーザーIDが生成され、使用されていることを確認する必要があります。
APIリクエスト時のユーザーIDの使用
アプリのアクティブユーザーが変更される度に、ユーザーIDを設定する必要があります。たとえば、アプリにログイン機能が搭載されているマルチプレイヤーゲームである場合は、ユーザーがログインし、ネットワーク接続されたARセッションを開始または再利用する際に、ユーザーIDを設定します。
ユーザーがログインする度に ArdkGlobalConfig.SetUserIdOnLogin() を呼び出します。上記の「ユーザーIDの生成」に記載されているように、作成したユーザーIDを指定します。
using Niantic.ARDK.Configuration; // Set the user id associated with the current user. ArdkGlobalConfig.SetUserIdOnLogin(your_generated_user_ID);
SetUserIdOnLogin()
を呼び出した時点で、ユーザーIDは、リクエストエンベロープに設定され、それ以降、ユーザーIDが必要なARDKのリクエストに自動的に使用されます。
ユーザーがログアウトする度に ArdkGlobalConfig.ClearUserIdOnLogout() を呼び出します。これによって、ユーザーIDはクリアされるため、ログアウトしたユーザーのユーザーIDが、その後のARDKのリクエストで使用されることはありません。
using Niantic.ARDK.Configuration; // Clear the user id set by SetUserIdOnLogin. ArdkGlobalConfig.ClearUserIdOnLogout();
SetUserIdOnLogin()
または ClearUserIdOnLogout()
から False
が返る場合は、デバイスストレージに問題があるか、 SetUserIdOnLogin()
にUTF8以外の形式の文字列が使用されている可能性があります。デバイスストレージに適切な権限があることや、userIdの文字列がUTF8形式になっていることを確認し、再度呼び出してみてください。
ユーザーIDを指定できない場合の対処方法
Nianticは、アプリで一度に一人のユーザーのみが使用することを意図している場合でも、常にユーザーIDを指定することを強くお勧めします。ただし、ユーザーIDを生成または指定できない状況に直面することがあります。
VPSなどのARDKの機能を使用し、リクエストにユーザーIDが指定されていない場合、ARDKではクライアントIDがランダムに使用されます。クライアントIDは、デバイスにインストールされた後、アプリを最初に実行したときに生成され、アプリがアンインストールされると削除されます。生成されたこのクライアントIDは、ARDKのリクエストの際にユーザーIDの代わりに使用されます。クライアントIDは、実行時に変更しないでください。アプリ内では、次のことを行うことができます。
生成されたクライアントIDにアクセスするには、 ArdkGlobalConfig.GetClientId() を使用します。以下に例を示します。
using Niantic.ARDK.Configuration; // Returns the clientId - a unique identifier generated for the user/device // in cases where a userId is not provided. string clientID = ArdkGlobalConfig.GetClientId();
クライアントIDをユーザーに提供することで、以下の「エンドユーザーのデータ管理リクエスト」に記載されているデータ管理リクエストを行うことができます。
アプリをアンインストールするとクライアントIDは失われるため、ユーザーがデータ管理リクエストを行う際にクライアントIDを取得または使用する方法をアプリ内に用意する必要がある点に注意してください。その方法はアプリの設計によって異なります。たとえば、アプリ内でクライアントIDの文字列と、データ管理リクエストの方法に関する説明やWebリンクを表示することができます。
エンドユーザーのデータ管理リクエスト
ユーザーの代わりにデータ管理リクエストを行うには、以下の情報が必要になります。
ユーザーID、またはクライアントID(ユーザーIDを使用していない場合)
アプリのバンドルID/パッケージ名
リクエストの種類(GDPR Delete、GDPR Report、またはその両方)
アプリに関連付けられたlightship.devのプロジェクト名
この情報は、 : https://lightship.dev/account/settings?tab=Users の形式で指定してください。
Nianticは、すべてのリクエストを30日以内に処理することを目指しています。リクエストの処理が完了すると、Nianticから、lightship.dev開発者アカウントに登録されているメールアドレス宛に通知メールが送信されます。