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 v1 and is already attached to a Project : migrations will be triggered on the first start running on plugin v2.
Your app is running on the plugin v2 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
You can programmatically update the plugin configuration from your Application
subclass in the native android
directory by using:
// Whether Batch should automatically identify user when running the plugin v2 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. BatchFlutterPlugin.getConfiguration(this).isProfileCustomIdMigrationEnabled = false // Whether Batch should automatically attach current installation's data (language/region/customDataAttributes...) // to the User's Profile when running the plugin v2 for the first time. BatchFlutterPlugin.getConfiguration(this).isProfileCustomDataMigrationEnabled = false
Or 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 user when running the plugin v2 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="com.batch.flutter.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 plugin v2 for the first time.--> <meta-data android:name="com.batch.flutter.profile_custom_data_migration_enabled" android:value="false"/> ... </application> </manifest>
iOS
You can programmatically update the plugin configuration from your AppDelegate
class in the native ios
directory by using :
// Whether Batch should automatically identify user when running the plugin v2 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. BatchFlutterPlugin.configuration.profileCustomIdMigrationEnabled = false // Whether Batch should automatically attach current installation's data (language/region/customDataAttributes...) // to the User's Profile when running the plugin v2 for the first time. BatchFlutterPlugin.configuration.profileCustomDataMigrationEnabled = false
Or add the following entries to your Info.plist
:
<plist version="1.0"> <dict> ... <!-- Whether Batch should automatically identify user when running the plugin v2 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.--> <key>BatchFlutterProfileCustomIdMigrationEnabled</key> <false/> <!-- Whether Batch should automatically attach current installation's data (language/region/customDataAttributes...)--> <!-- to the User's Profile when running the plugin v2 for the first time.--> <key>BatchFlutterProfileCustomDataMigrationEnabled</key> <false/> </dict> </plist>
Last updated