300 lines
		
	
	
		
			9.9 KiB
		
	
	
	
		
			Objective-C
		
	
	
			
		
		
	
	
			300 lines
		
	
	
		
			9.9 KiB
		
	
	
	
		
			Objective-C
		
	
	
| //
 | |
| //  ADJConfig.h
 | |
| //  adjust
 | |
| //
 | |
| //  Created by Pedro Filipe on 30/10/14.
 | |
| //  Copyright (c) 2014 adjust GmbH. All rights reserved.
 | |
| //
 | |
| 
 | |
| #import <Foundation/Foundation.h>
 | |
| 
 | |
| #import "ADJLogger.h"
 | |
| #import "ADJAttribution.h"
 | |
| #import "ADJEventSuccess.h"
 | |
| #import "ADJEventFailure.h"
 | |
| #import "ADJSessionSuccess.h"
 | |
| #import "ADJSessionFailure.h"
 | |
| 
 | |
| /**
 | |
|  * @brief Optional delegate that will get informed about tracking results.
 | |
|  */
 | |
| @protocol AdjustDelegate
 | |
| 
 | |
| @optional
 | |
| 
 | |
| /**
 | |
|  * @brief Optional delegate method that gets called when the attribution information changed.
 | |
|  *
 | |
|  * @param attribution The attribution information.
 | |
|  *
 | |
|  * @note See ADJAttribution for details.
 | |
|  */
 | |
| - (void)adjustAttributionChanged:(nullable ADJAttribution *)attribution;
 | |
| 
 | |
| /**
 | |
|  * @brief Optional delegate method that gets called when an event is tracked with success.
 | |
|  *
 | |
|  * @param eventSuccessResponseData The response information from tracking with success
 | |
|  *
 | |
|  * @note See ADJEventSuccess for details.
 | |
|  */
 | |
| - (void)adjustEventTrackingSucceeded:(nullable ADJEventSuccess *)eventSuccessResponseData;
 | |
| 
 | |
| /**
 | |
|  * @brief Optional delegate method that gets called when an event is tracked with failure.
 | |
|  *
 | |
|  * @param eventFailureResponseData The response information from tracking with failure
 | |
|  *
 | |
|  * @note See ADJEventFailure for details.
 | |
|  */
 | |
| - (void)adjustEventTrackingFailed:(nullable ADJEventFailure *)eventFailureResponseData;
 | |
| 
 | |
| /**
 | |
|  * @brief Optional delegate method that gets called when an session is tracked with success.
 | |
|  *
 | |
|  * @param sessionSuccessResponseData The response information from tracking with success
 | |
|  *
 | |
|  * @note See ADJSessionSuccess for details.
 | |
|  */
 | |
| - (void)adjustSessionTrackingSucceeded:(nullable ADJSessionSuccess *)sessionSuccessResponseData;
 | |
| 
 | |
| /**
 | |
|  * @brief Optional delegate method that gets called when an session is tracked with failure.
 | |
|  *
 | |
|  * @param sessionFailureResponseData The response information from tracking with failure
 | |
|  *
 | |
|  * @note See ADJSessionFailure for details.
 | |
|  */
 | |
| - (void)adjustSessionTrackingFailed:(nullable ADJSessionFailure *)sessionFailureResponseData;
 | |
| 
 | |
| /**
 | |
|  * @brief Optional delegate method that gets called when a deferred deep link is about to be opened by the adjust SDK.
 | |
|  *
 | |
|  * @param deeplink The deep link url that was received by the adjust SDK to be opened.
 | |
|  *
 | |
|  * @return Boolean that indicates whether the deep link should be opened by the adjust SDK or not.
 | |
|  */
 | |
| - (BOOL)adjustDeeplinkResponse:(nullable NSURL *)deeplink;
 | |
| 
 | |
| /**
 | |
|  * @brief Optional SKAdNetwork pre 4.0 style delegate method that gets called when Adjust SDK sets conversion value for the user.
 | |
|  *
 | |
|  * @param conversionValue Conversion value used by Adjust SDK to invoke updateConversionValue: API.
 | |
|  */
 | |
| - (void)adjustConversionValueUpdated:(nullable NSNumber *)conversionValue;
 | |
| 
 | |
| /**
 | |
|  * @brief Optional SKAdNetwork 4.0 style delegate method that gets called when Adjust SDK sets conversion value for the user.
 | |
|  *        You can use this callback even with using pre 4.0 SKAdNetwork.
 | |
|  *        In that case you can expect coarseValue and lockWindow values to be nil.
 | |
|  *
 | |
|  * @param fineValue Conversion value set by Adjust SDK.
 | |
|  * @param coarseValue Coarse value set by Adjust SDK.
 | |
|  * @param lockWindow Lock window set by Adjust SDK.
 | |
|  */
 | |
| - (void)adjustConversionValueUpdated:(nullable NSNumber *)fineValue
 | |
|                          coarseValue:(nullable NSString *)coarseValue
 | |
|                           lockWindow:(nullable NSNumber *)lockWindow;
 | |
| 
 | |
| @end
 | |
| 
 | |
| /**
 | |
|  * @brief Adjust configuration object class.
 | |
|  */
 | |
| @interface ADJConfig : NSObject<NSCopying>
 | |
| 
 | |
| /**
 | |
|  * @brief SDK prefix.
 | |
|  *
 | |
|  * @note Not to be used by users, intended for non-native adjust SDKs only.
 | |
|  */
 | |
| @property (nonatomic, copy, nullable) NSString *sdkPrefix;
 | |
| 
 | |
| /**
 | |
|  * @brief Default tracker to attribute organic installs to (optional).
 | |
|  */
 | |
| @property (nonatomic, copy, nullable) NSString *defaultTracker;
 | |
| 
 | |
| @property (nonatomic, copy, nullable) NSString *externalDeviceId;
 | |
| 
 | |
| /**
 | |
|  * @brief Adjust app token.
 | |
|  */
 | |
| @property (nonatomic, copy, readonly, nonnull) NSString *appToken;
 | |
| 
 | |
| /**
 | |
|  * @brief Adjust environment variable.
 | |
|  */
 | |
| @property (nonatomic, copy, readonly, nonnull) NSString *environment;
 | |
| 
 | |
| /**
 | |
|  * @brief Change the verbosity of Adjust's logs.
 | |
|  *
 | |
|  * @note You can increase or reduce the amount of logs from Adjust by passing
 | |
|  *       one of the following parameters. Use ADJLogLevelSuppress to disable all logging.
 | |
|  *       The desired minimum log level (default: info)
 | |
|  *       Must be one of the following:
 | |
|  *         - ADJLogLevelVerbose    (enable all logging)
 | |
|  *         - ADJLogLevelDebug      (enable more logging)
 | |
|  *         - ADJLogLevelInfo       (the default)
 | |
|  *         - ADJLogLevelWarn       (disable info logging)
 | |
|  *         - ADJLogLevelError      (disable warnings as well)
 | |
|  *         - ADJLogLevelAssert     (disable errors as well)
 | |
|  *         - ADJLogLevelSuppress   (suppress all logging)
 | |
|  */
 | |
| @property (nonatomic, assign) ADJLogLevel logLevel;
 | |
| 
 | |
| /**
 | |
|  * @brief Enable event buffering if your app triggers a lot of events.
 | |
|  *        When enabled, events get buffered and only get tracked each
 | |
|  *        minute. Buffered events are still persisted, of course.
 | |
|  */
 | |
| @property (nonatomic, assign) BOOL eventBufferingEnabled;
 | |
| 
 | |
| /**
 | |
|  * @brief Set the optional delegate that will inform you about attribution or events.
 | |
|  *
 | |
|  * @note See the AdjustDelegate declaration above for details.
 | |
|  */
 | |
| @property (nonatomic, weak, nullable) NSObject<AdjustDelegate> *delegate;
 | |
| 
 | |
| /**
 | |
|  * @brief Enables sending in the background.
 | |
|  */
 | |
| @property (nonatomic, assign) BOOL sendInBackground;
 | |
| 
 | |
| /**
 | |
|  * @brief Enables/disables reading of iAd framework data needed for ASA tracking.
 | |
|  */
 | |
| @property (nonatomic, assign) BOOL allowiAdInfoReading DEPRECATED_MSG_ATTRIBUTE("Apple Search Ads attribution with usage of iAd.framework has been sunset by Apple as of February 7th 2023");
 | |
| 
 | |
| /**
 | |
|  * @brief Enables/disables reading of AdServices framework data needed for attribution.
 | |
|  */
 | |
| @property (nonatomic, assign) BOOL allowAdServicesInfoReading;
 | |
| 
 | |
| /**
 | |
|  * @brief Enables/disables reading of IDFA parameter.
 | |
|  */
 | |
| @property (nonatomic, assign) BOOL allowIdfaReading;
 | |
| 
 | |
| /**
 | |
|  * @brief Enables delayed start of the SDK.
 | |
|  */
 | |
| @property (nonatomic, assign) double delayStart;
 | |
| 
 | |
| /**
 | |
|  * @brief Define how many seconds to wait for ATT status before sending the first data.
 | |
|  */
 | |
| @property (nonatomic, assign) NSUInteger attConsentWaitingInterval;
 | |
| 
 | |
| /**
 | |
|  * @brief User agent for the requests.
 | |
|  */
 | |
| @property (nonatomic, copy, nullable) NSString *userAgent;
 | |
| 
 | |
| /**
 | |
|  * @brief Set if the device is known.
 | |
|  */
 | |
| @property (nonatomic, assign) BOOL isDeviceKnown;
 | |
| 
 | |
| /**
 | |
|  * @brief Set if cost data is needed in attribution response.
 | |
|  */
 | |
| @property (nonatomic, assign) BOOL needsCost;
 | |
| 
 | |
| /**
 | |
|  * @brief Adjust app secret id.
 | |
|  */
 | |
| @property (nonatomic, copy, readonly, nullable) NSString *secretId;
 | |
| 
 | |
| /**
 | |
|  * @brief Adjust app secret.
 | |
|  */
 | |
| @property (nonatomic, copy, readonly, nullable) NSString *appSecret;
 | |
| 
 | |
| /**
 | |
|  * @brief Adjust set app secret.
 | |
|  */
 | |
| - (void)setAppSecret:(NSUInteger)secretId
 | |
|                info1:(NSUInteger)info1
 | |
|                info2:(NSUInteger)info2
 | |
|                info3:(NSUInteger)info3
 | |
|                info4:(NSUInteger)info4;
 | |
| 
 | |
| 
 | |
| @property (nonatomic, assign, readonly) BOOL isSKAdNetworkHandlingActive;
 | |
| 
 | |
| - (void)deactivateSKAdNetworkHandling;
 | |
| 
 | |
| /**
 | |
|  * @brief Adjust url strategy.
 | |
|  */
 | |
| @property (nonatomic, copy, readwrite, nullable) NSString *urlStrategy;
 | |
| 
 | |
| /**
 | |
|  * @brief Enables/disables linkMe
 | |
|  */
 | |
| @property (nonatomic, assign) BOOL linkMeEnabled;
 | |
| 
 | |
| /**
 | |
|  * @brief Get configuration object for the initialization of the Adjust SDK.
 | |
|  *
 | |
|  * @param appToken The App Token of your app. This unique identifier can
 | |
|  *                 be found it in your dashboard at http://adjust.com and should always
 | |
|  *                 be 12 characters long.
 | |
|  * @param environment The current environment your app. We use this environment to
 | |
|  *                    distinguish between real traffic and artificial traffic from test devices.
 | |
|  *                    It is very important that you keep this value meaningful at all times!
 | |
|  *                    Especially if you are tracking revenue.
 | |
|  *
 | |
|  * @returns Adjust configuration object.
 | |
|  */
 | |
| + (nullable ADJConfig *)configWithAppToken:(nonnull NSString *)appToken
 | |
|                                environment:(nonnull NSString *)environment;
 | |
| 
 | |
| - (nullable id)initWithAppToken:(nonnull NSString *)appToken
 | |
|                     environment:(nonnull NSString *)environment;
 | |
| 
 | |
| /**
 | |
|  * @brief Configuration object for the initialization of the Adjust SDK.
 | |
|  *
 | |
|  * @param appToken The App Token of your app. This unique identifier can
 | |
|  *                 be found it in your dashboard at http://adjust.com and should always
 | |
|  *                 be 12 characters long.
 | |
|  * @param environment The current environment your app. We use this environment to
 | |
|  *                    distinguish between real traffic and artificial traffic from test devices.
 | |
|  *                    It is very important that you keep this value meaningful at all times!
 | |
|  *                    Especially if you are tracking revenue.
 | |
|  * @param allowSuppressLogLevel If set to true, it allows usage of ADJLogLevelSuppress
 | |
|  *                              and replaces the default value for production environment.
 | |
|  *
 | |
|  * @returns Adjust configuration object.
 | |
|  */
 | |
| + (nullable ADJConfig *)configWithAppToken:(nonnull NSString *)appToken
 | |
|                                environment:(nonnull NSString *)environment
 | |
|                      allowSuppressLogLevel:(BOOL)allowSuppressLogLevel;
 | |
| 
 | |
| - (nullable id)initWithAppToken:(nonnull NSString *)appToken
 | |
|                     environment:(nonnull NSString *)environment
 | |
|           allowSuppressLogLevel:(BOOL)allowSuppressLogLevel;
 | |
| 
 | |
| /**
 | |
|  * @brief Check if adjust configuration object is valid.
 | |
|  *
 | |
|  * @return Boolean indicating whether adjust config object is valid or not.
 | |
|  */
 | |
| - (BOOL)isValid;
 | |
|  
 | |
| /**
 | |
|  * @brief Enable COPPA (Children's Online Privacy Protection Act) compliant for the application.
 | |
|  */
 | |
| @property (nonatomic, assign) BOOL coppaCompliantEnabled;
 | |
| 
 | |
| /**
 | |
|  * @brief Enables caching of device ids to read it only once
 | |
|  */
 | |
| @property (nonatomic, assign) BOOL readDeviceInfoOnceEnabled;
 | |
| 
 | |
| @end
 |