// // TTTracker.h // TTTracker // // Created by fengyadong on 2017-3-14. // Copyright (c) 2017 toutiao. All rights reserved. // #import #import "TTInstallIDManager.h" #ifndef TOBSDK #import "TTTrackerHeader.h" #import "TTInstallBaseMacro.h" #endif //+----------------+----------+----------+---------+--------------------------+ //| Key | Type | Required | Default | Meaning | //+----------------+----------+----------+---------+--------------------------+ //| user_id | String | NO | NULL | login user_id | //| need_encrypt | BOOL | NO | YES | whether encrypt | //| user_unique_id | String | NO | NULL | unique_id for login user | //+----------------+----------+----------+---------+--------------------------+ typedef NSDictionary *_Nullable(^TTTrackerConfigParamsBlock)(void); /** 捕获一个即将被缓存的log */ typedef void(^TTTrackerLogHookBlock)(NSDictionary * _Nonnull hookedLog); @interface TTTracker : NSObject @property (nonatomic, copy, readonly) NSString * _Nonnull appID;/** 应用唯一标示 */ @property (nonatomic, copy, readonly) NSString * _Nonnull channel;/** 应用发布的渠道名 */ //可选配置 @property (nonatomic, copy) TTTrackerConfigParamsBlock _Nullable configParamsBlock;/** 外部使用方配置是否加密等参数 */ @property (nonatomic, copy) TTCustomHeaderBlock _Nullable customHeaderBlock;/** 使用方自定义Header参数 */ @property (nonatomic, copy, readonly) NSDictionary *_Nullable configParams;/** 配置信息参数 */ @property (atomic, copy, readonly) NSDictionary *_Nullable logHookDict; //是否开启session YES开启NO关闭 default= YES ⚠️必须在+startWithAppID:channel:appName前设置才有效 @property (nonatomic, assign) BOOL sessionEnalbe; //==================================单例方法====================================== + (instancetype _Nonnull)sharedInstance; //==================================初始化方法==================================== /** 启动tracker服务 @param appID 应用标示,由头条数据仓库组统一分配 @param appName 应用名,需向头条申请 @param channel 渠道名称,建议正式版App Store 内测版local_test 灰度版用发布的渠道名,如pp */ + (void)startWithAppID:(NSString *_Nonnull)appID channel:(NSString *_Nonnull)channel appName:(NSString *_Nonnull)appName; /** 用户登录状态发生变更的时候需要调用此接口,传入当前的用户的user_unique_id @param uniqueID 用户当前的user_unique_id */ - (void)setCurrentUserUniqueID:(NSString *_Nullable)uniqueID; /** 用户登录状态发生变更的时候需要调用此接口,传入当前的用户的user_unique_id,并且关心SSID重新获取的时机 @param uniqueID 用户当前的user_unique_id @param didRetriveBlock 重新获取SSID的回调 */ - (void)setCurrentUserUniqueID:(NSString *_Nullable)uniqueID didRetriveSSIDBlock:(TTInstallDidRegisterBlock _Nullable)didRetriveBlock; //=============================== V3 Interface =================================== /** v3格式日志打点 @param event 事件名称 @param params 额外参数 */ + (void)eventV3:(NSString *_Nonnull)event params:(NSDictionary *_Nullable)params; //================================== 钩子方法 ====================================== /** 捕获一条即将被缓存的埋点日志,做一些额外的事情,比如监控等 @param serviceID 本业务标示建议公司名.产品线.具体业务 比如bytedance.toutiao.ad @param logHookBlock 一条即将被缓存的埋点日志 */ - (void)registerWithServiceID:(NSString *_Nonnull)serviceID willCacheOneLogBlock:(TTTrackerLogHookBlock _Nullable)logHookBlock; //=============================== Debug模式配置 ==================================== /** 设置当前环境是否为内测版本 @param isInHouseVersion 是否为内测版本 */ - (void)setIsInHouseVersion:(BOOL)isInHouseVersion; /** 设置debug阶段埋点验证工具的域名和端口号,一般在应用的高级调试中设置 @param hostName 返回当前验证工具所在的pc主机的ip和端口号,形如:10.2.201.7:10304 */ - (void)setDebugLogServerHost:(NSString *_Nonnull)hostName; /** 设置debug阶段埋点验证工具的完整url地址,一般在二维码扫描回调里调用此方法 @param serverAddress 返回能连接到当前验证工具的完整url地址 */ - (void)setDebugLogServerAddress:(NSString *_Nonnull)serverAddress; @end