285 lines
		
	
	
		
			9.1 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
			
		
		
	
	
			285 lines
		
	
	
		
			9.1 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
| //
 | |
| //  TDAnalytics+Multiple.h
 | |
| //  ThinkingSDK
 | |
| //
 | |
| //  Created by 杨雄 on 2023/8/17.
 | |
| //
 | |
| 
 | |
| #if __has_include(<ThinkingSDK/TDAnalytics.h>)
 | |
| #import <ThinkingSDK/TDAnalytics.h>
 | |
| #else
 | |
| #import "TDAnalytics.h"
 | |
| #endif
 | |
| 
 | |
| NS_ASSUME_NONNULL_BEGIN
 | |
| 
 | |
| @interface TDAnalytics (Multiple)
 | |
| 
 | |
| //MARK: track
 | |
| 
 | |
| /**
 | |
|  Empty the cache queue. When this api is called, the data in the current cache queue will attempt to be reported.
 | |
|  If the report succeeds, local cache data will be deleted.
 | |
|  @param appId appId
 | |
|  */
 | |
| + (void)flushWithAppId:(NSString * _Nullable)appId;
 | |
| 
 | |
| /**
 | |
|  Switch reporting status
 | |
|  @param status TDTrackStatus reporting status
 | |
|  @param appId appId
 | |
|  */
 | |
| + (void)setTrackStatus:(TDTrackStatus)status withAppId:(NSString * _Nullable)appId;
 | |
| 
 | |
| /**
 | |
|  Track Events
 | |
|  @param eventName event name
 | |
|  @param appId appId
 | |
|  */
 | |
| + (void)track:(NSString *)eventName withAppId:(NSString * _Nullable)appId;
 | |
| /**
 | |
|  Track Events
 | |
|  @param eventName  event name
 | |
|  @param properties event properties
 | |
|  @param appId appId
 | |
|  */
 | |
| + (void)track:(NSString *)eventName properties:(nullable NSDictionary *)properties withAppId:(NSString * _Nullable)appId;
 | |
| /**
 | |
|  Track Events
 | |
|  @param eventName event name
 | |
|  @param properties event properties
 | |
|  @param time event trigger time
 | |
|  @param timeZone event trigger time time zone
 | |
|  @param appId appId
 | |
|  */
 | |
| + (void)track:(NSString *)eventName properties:(nullable NSDictionary *)properties time:(NSDate *)time timeZone:(NSTimeZone *)timeZone withAppId:(NSString * _Nullable)appId;
 | |
| /**
 | |
|  Track Events
 | |
|  @param eventModel event Model
 | |
|  @param appId appId
 | |
|  */
 | |
| + (void)trackWithEventModel:(TDEventModel *)eventModel withAppId:(NSString * _Nullable)appId;
 | |
| /**
 | |
|  Timing Events
 | |
|  Record the event duration, call this method to start the timing, stop the timing when the target event is uploaded, and add the attribute #duration to the event properties, in seconds.
 | |
|  @param appId appId
 | |
|  */
 | |
| + (void)timeEvent:(NSString *)eventName withAppId:(NSString * _Nullable)appId;
 | |
| 
 | |
| 
 | |
| //MARK: user property
 | |
| 
 | |
| /**
 | |
|  Sets the user property, replacing the original value with the new value if the property already exists.
 | |
|  @param properties user properties
 | |
|  @param appId appId
 | |
|  */
 | |
| + (void)userSet:(NSDictionary *)properties withAppId:(NSString * _Nullable)appId;
 | |
| /**
 | |
|  Sets a single user attribute, ignoring the new attribute value if the attribute already exists.
 | |
|  @param properties user properties
 | |
|  @param appId appId
 | |
|  */
 | |
| + (void)userSetOnce:(NSDictionary *)properties withAppId:(NSString * _Nullable)appId;
 | |
| /**
 | |
|  Reset single user attribute.
 | |
|  @param propertyName user properties
 | |
|  @param appId appId
 | |
|  */
 | |
| + (void)userUnset:(NSString *)propertyName withAppId:(NSString * _Nullable)appId;
 | |
| /**
 | |
|  Reset user properties.
 | |
|  @param propertyNames user properties
 | |
| */
 | |
| + (void)userUnsets:(NSArray<NSString *> *)propertyNames withAppId:(NSString * _Nullable)appId;
 | |
| /**
 | |
|  Adds the numeric type user attributes.
 | |
|  @param properties user properties
 | |
|  @param appId appId
 | |
|  */
 | |
| + (void)userAdd:(NSDictionary *)properties withAppId:(NSString * _Nullable)appId;
 | |
| /**
 | |
|  Adds the numeric type user attribute.
 | |
|  @param propertyName  propertyName
 | |
|  @param propertyValue propertyValue
 | |
|  @param appId appId
 | |
|  */
 | |
| + (void)userAddWithName:(NSString *)propertyName andValue:(NSNumber *)propertyValue withAppId:(NSString * _Nullable)appId;
 | |
| /**
 | |
|  Appends an element to a property of an array type.
 | |
|  @param properties user properties
 | |
|  @param appId appId
 | |
|  */
 | |
| + (void)userAppend:(NSDictionary<NSString *, NSArray *> *)properties withAppId:(NSString * _Nullable)appId;
 | |
| /**
 | |
|  Appends an element to a property of an array type. It filters out elements that already exist.
 | |
|  @param properties user properties
 | |
| */
 | |
| + (void)userUniqAppend:(NSDictionary<NSString *, NSArray *> *)properties withAppId:(NSString * _Nullable)appId;
 | |
| /**
 | |
|  Delete the user attributes. This operation is not reversible and should be performed with caution.
 | |
|  @param appId appId
 | |
|  */
 | |
| + (void)userDeleteWithAppId:(NSString * _Nullable)appId;
 | |
| 
 | |
| 
 | |
| //MARK: super property & preset property
 | |
| 
 | |
| /**
 | |
|  Set the public event attribute, which will be included in every event uploaded after that. The public event properties are saved without setting them each time.
 | |
|  @param properties super properties
 | |
|  @param appId appId
 | |
|  */
 | |
| + (void)setSuperProperties:(NSDictionary *)properties withAppId:(NSString * _Nullable)appId;
 | |
| /**
 | |
|  Clears a public event attribute.
 | |
|  @param property property name
 | |
|  @param appId appId
 | |
|  */
 | |
| + (void)unsetSuperProperty:(NSString *)property withAppId:(NSString * _Nullable)appId;
 | |
| /**
 | |
|  Clear all public event attributes.
 | |
|  @param appId appId
 | |
|  */
 | |
| + (void)clearSuperPropertiesWithAppId:(NSString * _Nullable)appId;
 | |
| /**
 | |
|  Get the public event properties that have been set.
 | |
|  
 | |
|  @return super properties that have been set.
 | |
|  @param appId appId
 | |
|  */
 | |
| + (NSDictionary *)getSuperPropertiesWithAppId:(NSString * _Nullable)appId;
 | |
| /**
 | |
|  Set dynamic public properties. Each event uploaded after that will contain a public event attribute.
 | |
|  @param propertiesHandler  propertiesHandler.
 | |
|  @param appId appId
 | |
|  */
 | |
| + (void)setDynamicSuperProperties:(NSDictionary<NSString *, id> *(^)(void))propertiesHandler withAppId:(NSString * _Nullable)appId;
 | |
| /**
 | |
|  Get the SDK's preset properties.
 | |
|  
 | |
|  @return preset property object
 | |
|  @param appId appId
 | |
|  */
 | |
| + (TDPresetProperties *)getPresetPropertiesWithAppId:(NSString * _Nullable)appId;
 | |
| 
 | |
| //MARK: error callback
 | |
| 
 | |
| /**
 | |
|  Register TD error callback
 | |
|  
 | |
|  @param errorCallback code = 10001, ext = "string or json string", errorMsg = "error"
 | |
|  @param appId appId
 | |
|  */
 | |
| + (void)registerErrorCallback:(void(^)(NSInteger code, NSString * _Nullable errorMsg, NSString * _Nullable ext))errorCallback withAppId:(NSString * _Nullable)appId;
 | |
| 
 | |
| 
 | |
| //MARK: custom property
 | |
| 
 | |
| /**
 | |
|  Set the distinct ID to replace the default UUID distinct ID.
 | |
|  @param distinctId distinctId
 | |
|  @param appId appId
 | |
|  */
 | |
| + (void)setDistinctId:(NSString *)distinctId withAppId:(NSString * _Nullable)appId;
 | |
| 
 | |
| /**
 | |
|  Get distinct ID: The #distinct_id value in the reported data.
 | |
|  
 | |
|  @param appId appId
 | |
|  @return distinctId
 | |
|  */
 | |
| + (NSString *)getDistinctIdWithAppId:(NSString * _Nullable)appId;
 | |
| 
 | |
| /**
 | |
|  Set the account ID. Each setting overrides the previous value. Login events will not be uploaded.
 | |
|  @param accountId accountId
 | |
|  @param appId appId
 | |
|  */
 | |
| + (void)login:(NSString *)accountId withAppId:(NSString * _Nullable)appId;
 | |
| 
 | |
| /**
 | |
|  Get account ID: The #account_id value in the reported data.
 | |
|  
 | |
|  @param appId appId
 | |
|  @return accountId
 | |
|  */
 | |
| + (NSString *)getAccountIdWithAppId:(NSString * _Nullable)appId;
 | |
| 
 | |
| /**
 | |
|  Clearing the account ID will not upload user logout events.
 | |
|  @param appId appId
 | |
|  */
 | |
| + (void)logoutWithAppId:(NSString * _Nullable)appId;
 | |
| 
 | |
| /**
 | |
|  Set the network conditions for uploading. By default, the SDK will set the network conditions as 3G, 4G and Wifi to upload data
 | |
|  @param type network type
 | |
|  @param appId appId
 | |
|  */
 | |
| + (void)setUploadingNetworkType:(TDReportingNetworkType)type withAppId:(NSString * _Nullable)appId;
 | |
| 
 | |
| /// Format the time output in the format of SDK
 | |
| /// @param date date
 | |
| /// @param appId appId
 | |
| /// @return date string
 | |
| + (NSString *)timeStringWithDate:(NSDate *)date withAppId:(NSString * _Nullable)appId;
 | |
| 
 | |
| #if TARGET_OS_IOS
 | |
| 
 | |
| /**
 | |
|  Enable Auto-Tracking
 | |
|  @param eventType Auto-Tracking type
 | |
|  @param appId appId
 | |
|  */
 | |
| + (void)enableAutoTrack:(TDAutoTrackEventType)eventType withAppId:(NSString * _Nullable)appId API_UNAVAILABLE(macos);
 | |
| /**
 | |
|  Enable auto tracking with super properties.
 | |
|  @param eventType  Auto-Tracking type
 | |
|  @param properties super properties
 | |
|  @param appId appId
 | |
|  */
 | |
| + (void)enableAutoTrack:(TDAutoTrackEventType)eventType properties:(NSDictionary * _Nullable)properties withAppId:(NSString * _Nullable)appId API_UNAVAILABLE(macos);
 | |
| 
 | |
| /**
 | |
|  Enable the auto tracking function.
 | |
|  @param eventType  Auto-Tracking type
 | |
|  @param callback In the callback, eventType indicates the type of automatic collection, properties indicates the event properties before storage, and this block can return a dictionary for adding new properties
 | |
|  @param appId appId
 | |
|  */
 | |
| + (void)enableAutoTrack:(TDAutoTrackEventType)eventType callback:(NSDictionary *(^_Nullable)(TDAutoTrackEventType eventType, NSDictionary *properties))callback withAppId:(NSString * _Nullable)appId API_UNAVAILABLE(macos);
 | |
| 
 | |
| /**
 | |
|  Set and Update the value of a custom property for Auto-Tracking
 | |
|  @param eventType  A list of TDAutoTrackEventType, indicating the types of automatic collection events that need to be enabled
 | |
|  @param properties properties
 | |
|  @param appId appId
 | |
|  */
 | |
| + (void)setAutoTrackProperties:(TDAutoTrackEventType)eventType properties:(NSDictionary * _Nullable)properties withAppId:(NSString * _Nullable)appId API_UNAVAILABLE(macos);
 | |
| 
 | |
| /**
 | |
|  Ignore the Auto-Tracking of a UIViewController
 | |
|  @param controllers Ignore the name of the UIViewController
 | |
|  @param appId appId
 | |
|  */
 | |
| + (void)ignoreAutoTrackViewControllers:(NSArray<NSString *> *)controllers withAppId:(NSString * _Nullable)appId API_UNAVAILABLE(macos);
 | |
| 
 | |
| /**
 | |
|  Ignore the Auto-Tracking  of click UIView
 | |
|  @param aClass ignored UIView  Class
 | |
|  @param appId appId
 | |
|  */
 | |
| + (void)ignoreViewType:(Class)aClass withAppId:(NSString * _Nullable)appId API_UNAVAILABLE(macos);
 | |
| 
 | |
| /**
 | |
|  Dynamic super properties in  auto track  environment
 | |
|  Set dynamic public properties for auto track event
 | |
|  */
 | |
| + (void)setAutoTrackDynamicProperties:(NSDictionary<NSString *, id> *(^)(void))dynamicSuperProperties withAppId:(NSString * _Nullable)appId API_UNAVAILABLE(macos);
 | |
| 
 | |
| #endif
 | |
| 
 | |
| @end
 | |
| 
 | |
| NS_ASSUME_NONNULL_END
 |