trackEventModel method
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);
}