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="true"/>

        <!-- 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="true"/>
        ...
    </application>
</manifest>

iOS

On iOS, add the following entries to your Info.plist :

<plist version="1.0">
  <dict>
    ...
    <key>BatchProfileCustomDataMigrationEnabled</key>
    <true/>
    <key>BatchProfileCustomIdMigrationEnabled</key>
    <true/>
  </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
        }
      ]
    ]
  }
}