MoEngage Personalize Plugin
Personalize Experience Plugin for MoEngage Platform
SDK Installation
To add the MoEngage Flutter SDK to your application, edit your application's pubspec.yaml file and add the below dependency to it:
dependencies:
moengage_personalize: $latestSdkVersion
replace $latestSdkVersion with the latest SDK version.
Run flutter packages get to install the SDK.
Note: This plugin is dependent on moengage_flutter plugin. Make sure you have installed the moengage_flutter plugin as well.
Refer to the Documentation for complete integration guide.
Usage
Initialization
import 'package:moengage_personalize/moengage_personalize.dart';
final personalize = MoEngagePersonalize('<YOUR_APP_ID>');
Fetch experience metadata
Retrieve metadata for all experiences matching the given statuses:
try {
final meta = await personalize.fetchExperiencesMeta(
[ExperienceStatus.active, ExperienceStatus.paused],
);
for (final exp in meta.experiences) {
print('${exp.experienceKey}: ${exp.status}');
}
} on PersonalizeError catch (e) {
print('Error: ${e.code} — ${e.message}');
}
Fetch experiences
Fetch fully resolved experience campaigns by key:
try {
final result = await personalize.fetchExperiences(
['welcome_banner', 'home_hero'],
attributes: {'locale': 'en'},
);
for (final exp in result.experiences) {
print('${exp.experienceKey}: ${exp.payload}');
}
for (final failure in result.failures) {
print('Failed: ${failure.reason} for ${failure.experienceKeys}');
}
} on PersonalizeError catch (e) {
print('Error: ${e.code} — ${e.message}');
}
Fetch a single experience
Convenience wrapper for a single key:
final result = await personalize.fetchExperience('welcome_banner');
Track experiences shown
Call when one or more experience campaigns are rendered:
personalize.experiencesShown([experienceCampaign]);
Track experience clicked
Call when the user interacts with an experience:
personalize.experienceClicked(experienceCampaign);
Track offerings shown
Call when one or more offerings inside an experience are rendered:
personalize.offeringsShown([
{'offer_id': 'promo_123', 'position': '1'},
]);
Track offering clicked
Call when the user clicks a specific offering:
personalize.offeringClicked(
experienceCampaign,
{'offer_id': 'promo_123'},
);