Files
hjsq_android/analytics_sdk/lib/entity/app_install_event.dart
T
2026-10-08 11:37:25 +07:00

47 lines
1.3 KiB
Dart

import 'package:analytics_sdk/const/event_type.dart';
import 'package:analytics_sdk/manager/sdk_context.dart';
/// App 安装事件(客户端)
class AppInstallEvent {
/// 事件类型(固定)
final String event = EventType.appInstall.event;
/// 去重 ID(动态计算)
late final String eventId;
/// 落地页点击生成唯一ID, 复制到剪切板, 打开APP后读取剪切板
final String traceId;
/// 原生包是否开启归因:1 开启,0 关闭(默认)
final int attributionFlag;
late final Map<String, dynamic> _commonFields;
AppInstallEvent({
required this.traceId,
this.attributionFlag = 0,
}) {
_commonFields = SdkContext.generateCommonFields(event);
eventId = SdkContext.generateEventIdFromCommonFields(_commonFields, [
traceId,
attributionFlag.toString(),
]);
}
Map<String, dynamic> toJson() {
final payload = <String, dynamic>{
'trace_id': traceId,
'attribution_flag': attributionFlag,
};
return {..._commonFields, 'event_id': eventId, 'payload': payload};
}
factory AppInstallEvent.fromJson(Map<String, dynamic> json) {
return AppInstallEvent(
traceId: json['trace_id'] as String,
attributionFlag: (json['attribution_flag'] as int?) ?? 0,
);
}
}