trackEventModel method

void trackEventModel(
  1. TrackEventModel eventModel
)

Special Event Reporting First event: With #first_check_id field with parameter extraID, event type track, and #first_check_id default device id.

Event update/rewrite: The event type is track_update/track_overwrite. The event type matches the data to be updated/rewritten according to #event_name and #event_id The #event_id value is extraID.

Implementation

void trackEventModel(TrackEventModel eventModel) {
  Map<String, dynamic> finalProperties = new Map<String, dynamic>();
  if (this._getDynamicSuperProperties != null) {
    finalProperties = this._getDynamicSuperProperties!();
  }

  if (eventModel.properties != null) {
    finalProperties.addAll(eventModel.properties!);
  }

  _searchDate(finalProperties);

  Map<String, dynamic> params = {
    'appId': this._appId,
    'eventName': eventModel.eventName,
    'properties': finalProperties,
    'extraID': eventModel.extraID
  };

  switch (eventModel.eventType) {
    case ThinkingAnalyticsTrackEventType.TRACK_FIRST:
      params['eventType'] = 'track_first';
      break;
    case ThinkingAnalyticsTrackEventType.TRACK_UPDATE:
      params['eventType'] = 'track_update';
      break;
    case ThinkingAnalyticsTrackEventType.TRACK_OVERWRITE:
      params['eventType'] = 'track_overwrite';
      break;
    default:
  }

  if (null != eventModel.dateTime) {
    params['timestamp'] = eventModel.dateTime!.millisecondsSinceEpoch;
  }

  if (null != eventModel.timeZone) {
    params['timeZone'] = eventModel.timeZone;
  }

  _channel.invokeMethod<void>('trackEventModel', params);
}