trackCustomAppEvent static method
Implementation
static Future<void> trackCustomAppEvent(TrackCustomAppEventArgs args) async {
final phoneNumber = await _getLoggedInPhoneNumber();
final eventObject = <String, dynamic>{
'category': args.category,
'action': args.action,
'label': args.label ?? '${args.category}_${args.action}',
};
if (phoneNumber != null) {
eventObject['property'] = 'phone_number';
eventObject['value'] = phoneNumber;
}
final properties = args.properties ?? [];
if (properties.length > _maxCustomEventProperties) {
debugPrint(
'trackCustomAppEvent: only first $_maxCustomEventProperties properties are tracked, '
'${properties.length - _maxCustomEventProperties} dropped',
);
}
for (var i = 0; i < properties.length && i < _maxCustomEventProperties; i++) {
final idx = i + 1;
eventObject['property_$idx'] = properties[i].name;
eventObject['value_$idx'] = properties[i].value;
}
await sendCustomEventToSnowPlow(eventObject);
}