trackEvent static method

Future<void> trackEvent({
  1. required String eventName,
  2. Map<String, dynamic>? properties,
})

Track an analytics event

eventName Name of the event properties Event properties

Throws GoMailerException if SDK is not initialized or event name is empty

Implementation

static Future<void> trackEvent({
  required String eventName,
  Map<String, dynamic>? properties,
}) async {
  _checkInitialization();

  if (eventName.isEmpty) {
    throw GoMailerException('Event name cannot be empty');
  }

  try {
    await _channel.invokeMethod('trackEvent', {
      'eventName': eventName,
      'properties': properties ?? {},
    });
    _log('Event tracked: $eventName', GoMailerLogLevel.debug);
  } catch (e) {
    _log('Failed to track event $eventName: $e', GoMailerLogLevel.error);
    throw GoMailerException('Failed to track event: $e');
  }
}