ARDK and Data Privacy
Niantic collects a variety of data via ARDK - for example, geospatial data from device cameras to operate VPS, as well as telemetry to improve user experiences.
Some of this data may be considered personal information under privacy laws, as further explained in the Lightship Data Privacy FAQs. Niantic therefore provides developers with the ability to make a request to retrieve and/or delete this data on behalf of an end user (an “End User Data Management Request” or “request” for short).
In order to process End User Data Management Requests, you must provide Niantic with certain identifying fields:
ApplicationId - this is the Bundle ID/applicationId of your app on the Apple App Store/ Google Play Store.
UserId - this is a unique identifier that you MUST provide for each player to track their individual usage in AR.
ClientId - this is a device identifier for where the app is installed. It is a fallback in case a UserId is not provided.
If you do not provide the fields described above, Niantic may be unable to identify your end user, and therefore unable to process your request.
Setting the UserId
The UserId is the identifier that you use to identify a user. When the app launches, the user's identifier needs to be provided to ARDK using the Niantic.Lightship.AR.Settings namespace.
You need to call the PrivacyData.SetUserId(string userId) API every time the app launches with the user's identifier. This allows Niantic to map all the usage information about that player by this UserId.
Please provide the UserId
before triggering any call in the ARSession
class.
- When initializing XR manually, call
SetUserId(string userId);
after initializing the loaders and before calling any API in theARSession
class.
If a UserId is not set, a warning will appear in your logs noting this. If you do not provide a UserId, Niantic may not be able to process your request.
Making an End User Data Management Request
You can make an End User Data Management Requests via the lightship data privacy page in your user settings. You can make the following types of request via this page:
- Data retrieval request
- Data deletion request
- Both data retrieval and deletion.
You will need to provide the following information in order to make a request:
- The ApplicationID for the application your end user is making a request for.
- The UserId.
If you do not have a UserId, it is possible to make a request using the ClientID (see the Getting the ClientID section below for more information). Niantic does not recommend relying on ClientIds for these requests for the reasons outlined below.
Process
- Navigate to https://lightship.dev/account/settings?tab=users
- Enter the UserId OR the ClientId - only one of these is required. In case you provide both, we will default to using the UserId.
- Enter the
applicationId
in the App Bundle Id field. - The project name for the project whose Api Key you have used for that app.
- Select the type of request you might want.
- Click on the Request button.
- Once the request is complete, you will be notified via the email registered with your Lightship account.
- If Niantic is unable to process your request, a member of our support team may reach out to you with further information.
Getting the Application ID
The Application ID is the Bundle ID for your app on the iOS App Store/Google Play Store. You can get this in Unity through the Player Settings:
In iOS:
- Launch your game in Unity.
- Go to File > Build Settings > iOS > Player Settings > Player > Build Identifier.
- This is the Bundle ID for the Apple App Store.
In Android:
- Launch your game in Unity.
- Go to File > Build Settings > Android > Player Settings > Player > Package Name.
- This is the
applicationId
for the Android Play Store.
Getting the UserId
To get the user's UserId from the Ardk while the app is running, you can call the PrivacyData.SetUserId API.
Getting the ClientId
The ClientId is an identifier for the device in case a UserId is missing. You can get this from the Niantic.Lightship.AR.Settings namespace.
ARDK creates this identifier when the app runs for the first time and persists through app upgrades.
If the app has been uninstalled and reinstalled, the ClientId will change. We do not recommend relying on ClientIDs to perform End User Data Management Requests, only use them as a last resort.
If you have forgotten to set a UserID, it is your responsibility to ensure that you are recording all ClientID's generated by your end user through subsequent installs/uninstalls - without this information, Niantic may be unable to process your End User Data Management Request in full.