track method

  1. @override
Future<RawEvent?> track(
  1. TrackEvent event
)
override

Implementation

@override
track(event) async {
  final anonId = event.anonymousId;
  if (anonId != null && anonId.isNotEmpty) {
    Adjust.addGlobalPartnerParameter('anonymous_id', anonId);
  }

  if (adjustSettings == null) {
    return event;
  }

  final token = mappedCustomEventToken(event.event, adjustSettings!);
  if (token != null) {
    final adjEvent = AdjustEvent(token);

    final properties = event.properties;
    if (properties != null) {
      for (final entry in properties.entries) {
        adjEvent.addCallbackParameter(entry.key, entry.value.toString());
      }

      final revenue = extract<double>('revenue', properties);
      final currency =
          extract<String>('currency', properties, defaultValue: 'USD');
      final orderId = extract<String>('orderId', properties);

      if (revenue != null && currency != null) {
        adjEvent.setRevenue(revenue, currency);
      }

      if (orderId != null) {
        adjEvent.transactionId = orderId;
      }
    }

    Adjust.trackEvent(adjEvent);
  }
  return event;
}