88 lines
3.2 KiB
Objective-C
88 lines
3.2 KiB
Objective-C
//
|
||
// KBMaiPointReporter.h
|
||
// keyBoard
|
||
//
|
||
|
||
#import <Foundation/Foundation.h>
|
||
|
||
#ifndef KB_MAI_POINT_BASE_URL
|
||
#define KB_MAI_POINT_BASE_URL @"http://192.168.2.21:35310/api"
|
||
#endif
|
||
|
||
#ifndef KB_MAI_POINT_PATH_NEW_ACCOUNT
|
||
#define KB_MAI_POINT_PATH_NEW_ACCOUNT @"/newAccount"
|
||
#endif
|
||
|
||
#ifndef KB_MAI_POINT_PATH_GENERIC_DATA
|
||
#define KB_MAI_POINT_PATH_GENERIC_DATA @"/genericData"
|
||
#endif
|
||
|
||
NS_ASSUME_NONNULL_BEGIN
|
||
|
||
extern NSString * const KBMaiPointErrorDomain;
|
||
extern NSString * const KBMaiPointEventTypePageExposure;
|
||
extern NSString * const KBMaiPointEventTypeClick;
|
||
|
||
typedef void (^KBMaiPointReportCompletion)(BOOL success, NSError * _Nullable error);
|
||
|
||
typedef NS_ENUM(NSInteger, KBMaiPointGenericReportType) {
|
||
/// 未知/默认类型(按需扩展,具体含义以服务端约定为准)
|
||
KBMaiPointGenericReportTypeUnknown = 0,
|
||
/// 点击
|
||
KBMaiPointGenericReportTypeClick = 1,
|
||
/// 曝光
|
||
KBMaiPointGenericReportTypeExposure = 2,
|
||
/// 页面/进入
|
||
KBMaiPointGenericReportTypePage = 3,
|
||
};
|
||
|
||
/// Lightweight reporter for Mai point tracking. Safe for app + extension.
|
||
@interface KBMaiPointReporter : NSObject
|
||
|
||
+ (instancetype)sharedReporter;
|
||
|
||
/// 统一埋点:POST /genericData
|
||
/// - eventType: 建议取值 `page_exposure` / `click`
|
||
/// - eventName: 统一事件名(如 enter_xxx / click_xxx)
|
||
/// - value: 事件参数字典(内部会自动注入 token;无 token 时为 @"")
|
||
- (void)reportEventType:(NSString *)eventType
|
||
eventName:(NSString *)eventName
|
||
value:(nullable NSDictionary *)value
|
||
completion:(KBMaiPointReportCompletion _Nullable)completion;
|
||
|
||
/// 页面曝光快捷方法:内部会补齐 page_id
|
||
- (void)reportPageExposureWithEventName:(NSString *)eventName
|
||
pageId:(NSString *)pageId
|
||
extra:(nullable NSDictionary *)extra
|
||
completion:(KBMaiPointReportCompletion _Nullable)completion;
|
||
|
||
/// 点击快捷方法:内部会补齐 page_id / element_id
|
||
- (void)reportClickWithEventName:(NSString *)eventName
|
||
pageId:(NSString *)pageId
|
||
elementId:(NSString *)elementId
|
||
extra:(nullable NSDictionary *)extra
|
||
completion:(KBMaiPointReportCompletion _Nullable)completion;
|
||
|
||
/// POST /newAccount with type + account.
|
||
- (void)reportNewAccountWithType:(NSString *)type
|
||
account:(nullable NSString *)account
|
||
completion:(KBMaiPointReportCompletion _Nullable)completion;
|
||
|
||
//- (void)reportGenericDataWithEvent:(NSString *)event
|
||
// account:(nullable NSString *)account
|
||
// completion:(KBMaiPointReportCompletion _Nullable)completion;
|
||
|
||
/// POST /genericData with type + event + account.
|
||
- (void)reportGenericDataWithEventType:(KBMaiPointGenericReportType)type
|
||
account:(nullable NSString *)account
|
||
completion:(KBMaiPointReportCompletion _Nullable)completion;
|
||
|
||
/// Generic POST for future endpoints.
|
||
- (void)postPath:(NSString *)path
|
||
parameters:(NSDictionary *)parameters
|
||
completion:(KBMaiPointReportCompletion _Nullable)completion;
|
||
|
||
@end
|
||
|
||
NS_ASSUME_NONNULL_END
|