Profile data migration
To make it easier to collect data to a Profile, Batch has added two automatic ways to migrate old installation's data on a Profile:
- User will be automatically identified (logged-in) if he had a Batch
custom_user_id
set on the local storage. - User natives (language/region) and custom data will be automatically migrated to a Profile.
These migrations are triggered when your application on the dashboard is attached to a Project. Concretely this mean that there's two possible scenarios:
- Your app is running on the plugin v8 or before and is already attached to a Project : migrations will be triggered on the first start running on plugin v9.
- Your app is running on the plugin v9 but not attached to a Project: migrations will be triggered on the first start after your app is attached to a project.
These migrations are enabled by default, but you may want to disable them, to do so add the following :
Android
On Android, add the following meta-data tags to your AndroidManifest.xml
:
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application android:name=".MainApplication"...>
<!-- Whether Batch should automatically identify logged-in user when running the SDK for the first time.-->
<!-- This mean user with a custom_user_id will be automatically attached a to a Profile and could be targeted within a Project scope.-->
<meta-data android:name="batch.profile_custom_id_migration_enabled" android:value="false"/>
<!-- Whether Batch should automatically attach current installation's data (language/region/customDataAttributes...)-->
<!-- to the User's Profile when running the SDK for the first time.-->
<meta-data android:name="batch.profile_custom_data_migration_enabled" android:value="false"/>
...
</application>
</manifest>
iOS
On iOS, add the following entries to your Info.plist
:
<plist version="1.0">
<dict>
...
<key>BatchProfileCustomDataMigrationEnabled</key>
<false/>
<key>BatchProfileCustomIdMigrationEnabled</key>
<false/>
</dict>
</plist>
Expo
If you are using expo, please add the following keys to your app.json
:
// app.json/app.config.js
{
"expo": {
...,
"plugins": [
[
"@batch.com/react-native-plugin", {
"androidApiKey": "YOUR_ANDROID_BATCH_API_KEY",
"iosApiKey": "YOUR_IOS_BATCH_API_KEY",
"enableProfileCustomIDMigration": false,
"enableProfileCustomDataMigration": false
}
]
]
}
}