Skip to content

Commit

Permalink
Merge pull request #160 from tenjin/release-1.14.0
Browse files Browse the repository at this point in the history
Release 1.14.0
  • Loading branch information
giraldogdiego authored Feb 14, 2024
2 parents 00baae4 + e361eb6 commit fe44921
Show file tree
Hide file tree
Showing 17 changed files with 219 additions and 53 deletions.
5 changes: 5 additions & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -323,3 +323,8 @@ v1.13.0
----
- Add `optInOutUsingCMP` method to manage GDPR opt-in/opt-out through CMP consents
- Add `analytics_installation_id` parameter and getter method `getAnalyticsInstallationId`

v1.14.0
----
- Capture and send Google DMA parameters `ad_personalization` and `ad_user_data`
- Add `deferred_deeplink_url` and `click_id` to `getAttributionInfo` method
4 changes: 3 additions & 1 deletion TenjinSDK.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
//
// Created by Tenjin on 2016-05-20.
// Version 1.13.0
// Version 1.14.0

// Copyright (c) 2016 Tenjin. All rights reserved.
//
Expand Down Expand Up @@ -200,6 +200,8 @@ andDeferredDeeplink:(NSURL *)url

- (void)getAttributionInfo:(void (^)(NSDictionary *attributionInfo, NSError *error))completionHandler;

- (void)setGoogleDMAParametersWithAdPersonalization:(BOOL)adPersonalization adUserData:(BOOL)adUserData;

@end

//
Expand Down
2 changes: 1 addition & 1 deletion TenjinSDK.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "TenjinSDK"
s.version = "1.13.0"
s.version = "1.14.0"
s.summary = "TenjinSDK"
s.description = <<-DESC
Tenjin is a unique growth infrastructure platform that helps you streamline your mobile marketing.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -217,15 +217,26 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4)));
# pragma pop_macro("any")
#endif

@class NSString;
enum PurposeConsentStatus : NSInteger;

SWIFT_CLASS("_TtC9TenjinSDK10GDPRHelper")
@interface GDPRHelper : NSObject
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
- (NSString * _Nullable)getPurposeConsentsTCF SWIFT_WARN_UNUSED_RESULT;
- (BOOL)optIn SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
- (enum PurposeConsentStatus)getGoogleAdPersonalization SWIFT_WARN_UNUSED_RESULT;
- (enum PurposeConsentStatus)getGoogleAdUserData SWIFT_WARN_UNUSED_RESULT;
@end


@class NSString;
typedef SWIFT_ENUM(NSInteger, PurposeConsentStatus, open) {
PurposeConsentStatusConsentNull = 0,
PurposeConsentStatusConsentTrue = 1,
PurposeConsentStatusConsentFalse = 2,
};

@class NSDate;
@class NSEntityDescription;
@class NSManagedObjectContext;
Expand Down Expand Up @@ -281,6 +292,7 @@ SWIFT_CLASS("_TtC9TenjinSDK13TJNHTTPClient")

SWIFT_CLASS("_TtC9TenjinSDK16TenjinDatasource")
@interface TenjinDatasource : NSObject
+ (void)setBooleanValue:(BOOL)value key:(NSString * _Nonnull)key;
+ (void)setCacheEventsSetting:(BOOL)isCacheEventsEnabled;
+ (BOOL)getCacheEventsSetting SWIFT_WARN_UNUSED_RESULT;
+ (NSString * _Nonnull)getAnalyticsInstallationId SWIFT_WARN_UNUSED_RESULT;
Expand Down Expand Up @@ -523,15 +535,26 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4)));
# pragma pop_macro("any")
#endif

@class NSString;
enum PurposeConsentStatus : NSInteger;

SWIFT_CLASS("_TtC9TenjinSDK10GDPRHelper")
@interface GDPRHelper : NSObject
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
- (NSString * _Nullable)getPurposeConsentsTCF SWIFT_WARN_UNUSED_RESULT;
- (BOOL)optIn SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
- (enum PurposeConsentStatus)getGoogleAdPersonalization SWIFT_WARN_UNUSED_RESULT;
- (enum PurposeConsentStatus)getGoogleAdUserData SWIFT_WARN_UNUSED_RESULT;
@end


@class NSString;
typedef SWIFT_ENUM(NSInteger, PurposeConsentStatus, open) {
PurposeConsentStatusConsentNull = 0,
PurposeConsentStatusConsentTrue = 1,
PurposeConsentStatusConsentFalse = 2,
};

@class NSDate;
@class NSEntityDescription;
@class NSManagedObjectContext;
Expand Down Expand Up @@ -587,6 +610,7 @@ SWIFT_CLASS("_TtC9TenjinSDK13TJNHTTPClient")

SWIFT_CLASS("_TtC9TenjinSDK16TenjinDatasource")
@interface TenjinDatasource : NSObject
+ (void)setBooleanValue:(BOOL)value key:(NSString * _Nonnull)key;
+ (void)setCacheEventsSetting:(BOOL)isCacheEventsEnabled;
+ (BOOL)getCacheEventsSetting SWIFT_WARN_UNUSED_RESULT;
+ (NSString * _Nonnull)getAnalyticsInstallationId SWIFT_WARN_UNUSED_RESULT;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -199,4 +199,6 @@ andDeferredDeeplink:(NSURL *)url

- (void)getAttributionInfo:(void (^)(NSDictionary *attributionInfo, NSError *error))completionHandler;

- (void)setGoogleDMAParametersWithAdPersonalization:(BOOL)adPersonalization adUserData:(BOOL)adUserData;

@end
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,21 @@ import _Concurrency
public typealias ID = Swift.ObjectIdentifier
@objc deinit
}
@_inheritsConvenienceInitializers @objc public class GDPRHelper : ObjectiveC.NSObject {
@objc public enum PurposeConsentStatus : Swift.Int {
case ConsentNull
case ConsentTrue
case ConsentFalse
public init?(rawValue: Swift.Int)
public typealias RawValue = Swift.Int
public var rawValue: Swift.Int {
get
}
}
@_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objc public class GDPRHelper : ObjectiveC.NSObject {
@objc public func getPurposeConsentsTCF() -> Swift.String?
@objc public func optIn() -> Swift.Bool
@objc override dynamic public init()
@objc public func getGoogleAdPersonalization() -> PurposeConsentStatus
@objc public func getGoogleAdUserData() -> PurposeConsentStatus
@objc deinit
}
@_hasMissingDesignatedInitializers @objc public class RequestHelper : ObjectiveC.NSObject {
Expand All @@ -49,6 +61,8 @@ extension CoreData.NSManagedObjectContext {
public func executeAndMergeChanges(using batchDeleteRequest: CoreData.NSBatchDeleteRequest) throws
}
@_inheritsConvenienceInitializers @objc public class TenjinDatasource : ObjectiveC.NSObject {
@objc public static func setBooleanValue(_ value: Swift.Bool, key: Swift.String)
public static func getOptionalBoolean(_ key: Swift.String) -> Swift.Bool?
@objc public static func setCacheEventsSetting(_ isCacheEventsEnabled: Swift.Bool)
@objc public static func getCacheEventsSetting() -> Swift.Bool
@objc public static func getAnalyticsInstallationId() -> Swift.String
Expand All @@ -71,3 +85,6 @@ extension CoreData.NSManagedObjectContext {
@objc public func urlSession(_ session: Foundation.URLSession, didReceive challenge: Foundation.URLAuthenticationChallenge, completionHandler: @escaping (Foundation.URLSession.AuthChallengeDisposition, Foundation.URLCredential?) -> Swift.Void)
@objc deinit
}
extension PurposeConsentStatus : Swift.Equatable {}
extension PurposeConsentStatus : Swift.Hashable {}
extension PurposeConsentStatus : Swift.RawRepresentable {}
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,21 @@ import _Concurrency
public typealias ID = Swift.ObjectIdentifier
@objc deinit
}
@_inheritsConvenienceInitializers @objc public class GDPRHelper : ObjectiveC.NSObject {
@objc public enum PurposeConsentStatus : Swift.Int {
case ConsentNull
case ConsentTrue
case ConsentFalse
public init?(rawValue: Swift.Int)
public typealias RawValue = Swift.Int
public var rawValue: Swift.Int {
get
}
}
@_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objc public class GDPRHelper : ObjectiveC.NSObject {
@objc public func getPurposeConsentsTCF() -> Swift.String?
@objc public func optIn() -> Swift.Bool
@objc override dynamic public init()
@objc public func getGoogleAdPersonalization() -> PurposeConsentStatus
@objc public func getGoogleAdUserData() -> PurposeConsentStatus
@objc deinit
}
@_hasMissingDesignatedInitializers @objc public class RequestHelper : ObjectiveC.NSObject {
Expand All @@ -49,6 +61,8 @@ extension CoreData.NSManagedObjectContext {
public func executeAndMergeChanges(using batchDeleteRequest: CoreData.NSBatchDeleteRequest) throws
}
@_inheritsConvenienceInitializers @objc public class TenjinDatasource : ObjectiveC.NSObject {
@objc public static func setBooleanValue(_ value: Swift.Bool, key: Swift.String)
public static func getOptionalBoolean(_ key: Swift.String) -> Swift.Bool?
@objc public static func setCacheEventsSetting(_ isCacheEventsEnabled: Swift.Bool)
@objc public static func getCacheEventsSetting() -> Swift.Bool
@objc public static func getAnalyticsInstallationId() -> Swift.String
Expand All @@ -71,3 +85,6 @@ extension CoreData.NSManagedObjectContext {
@objc public func urlSession(_ session: Foundation.URLSession, didReceive challenge: Foundation.URLAuthenticationChallenge, completionHandler: @escaping (Foundation.URLSession.AuthChallengeDisposition, Foundation.URLCredential?) -> Swift.Void)
@objc deinit
}
extension PurposeConsentStatus : Swift.Equatable {}
extension PurposeConsentStatus : Swift.Hashable {}
extension PurposeConsentStatus : Swift.RawRepresentable {}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
#define kTenjinConversionEndpoint @"conversion-values"

//this line replaced by build script
#define kTenjinTenjinSDKVersion @"1.13.0"
#define kTenjinTenjinSDKVersion @"1.14.0"


#define kTenjinPlatformIos @"ios"
Expand Down Expand Up @@ -51,10 +51,15 @@
#define kTenjinCoarseConversionValue @"coarse_conversion_value"
#define kTenjinLockWindow @"lock_window"
#define kTenjinRetryEnabled @"retry_enabled"
#define kTenjinGoogleAdPersonalization @"ad_personalization"
#define kTenjinGoogleAdUserData @"ad_user_data"
#define kTenjinIABTCF @"iab_tcf"
#define kTenjinGoogleAdPersonalizationKey @"TENJIN_GOOGLE_AD_PERSONALIZATION"
#define kTenjinGoogleAdUserDataKey @"TENJIN_GOOGLE_AD_USER_DATA"

//one hour in seconds
#define kTenjinMaxWait 3600

#define kTenjinStartupMaxRetries 5
#define kTenjinRetrySleepBaseInSeconds 2.0
#define kTenjinRetrySleepCapInSeconds 30.0
#define kTenjinRetrySleepCapInSeconds 15.0
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -217,15 +217,26 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4)));
# pragma pop_macro("any")
#endif

@class NSString;
enum PurposeConsentStatus : NSInteger;

SWIFT_CLASS("_TtC9TenjinSDK10GDPRHelper")
@interface GDPRHelper : NSObject
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
- (NSString * _Nullable)getPurposeConsentsTCF SWIFT_WARN_UNUSED_RESULT;
- (BOOL)optIn SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
- (enum PurposeConsentStatus)getGoogleAdPersonalization SWIFT_WARN_UNUSED_RESULT;
- (enum PurposeConsentStatus)getGoogleAdUserData SWIFT_WARN_UNUSED_RESULT;
@end


@class NSString;
typedef SWIFT_ENUM(NSInteger, PurposeConsentStatus, open) {
PurposeConsentStatusConsentNull = 0,
PurposeConsentStatusConsentTrue = 1,
PurposeConsentStatusConsentFalse = 2,
};

@class NSDate;
@class NSEntityDescription;
@class NSManagedObjectContext;
Expand Down Expand Up @@ -281,6 +292,7 @@ SWIFT_CLASS("_TtC9TenjinSDK13TJNHTTPClient")

SWIFT_CLASS("_TtC9TenjinSDK16TenjinDatasource")
@interface TenjinDatasource : NSObject
+ (void)setBooleanValue:(BOOL)value key:(NSString * _Nonnull)key;
+ (void)setCacheEventsSetting:(BOOL)isCacheEventsEnabled;
+ (BOOL)getCacheEventsSetting SWIFT_WARN_UNUSED_RESULT;
+ (NSString * _Nonnull)getAnalyticsInstallationId SWIFT_WARN_UNUSED_RESULT;
Expand Down Expand Up @@ -523,15 +535,26 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4)));
# pragma pop_macro("any")
#endif

@class NSString;
enum PurposeConsentStatus : NSInteger;

SWIFT_CLASS("_TtC9TenjinSDK10GDPRHelper")
@interface GDPRHelper : NSObject
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
- (NSString * _Nullable)getPurposeConsentsTCF SWIFT_WARN_UNUSED_RESULT;
- (BOOL)optIn SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
- (enum PurposeConsentStatus)getGoogleAdPersonalization SWIFT_WARN_UNUSED_RESULT;
- (enum PurposeConsentStatus)getGoogleAdUserData SWIFT_WARN_UNUSED_RESULT;
@end


@class NSString;
typedef SWIFT_ENUM(NSInteger, PurposeConsentStatus, open) {
PurposeConsentStatusConsentNull = 0,
PurposeConsentStatusConsentTrue = 1,
PurposeConsentStatusConsentFalse = 2,
};

@class NSDate;
@class NSEntityDescription;
@class NSManagedObjectContext;
Expand Down Expand Up @@ -587,6 +610,7 @@ SWIFT_CLASS("_TtC9TenjinSDK13TJNHTTPClient")

SWIFT_CLASS("_TtC9TenjinSDK16TenjinDatasource")
@interface TenjinDatasource : NSObject
+ (void)setBooleanValue:(BOOL)value key:(NSString * _Nonnull)key;
+ (void)setCacheEventsSetting:(BOOL)isCacheEventsEnabled;
+ (BOOL)getCacheEventsSetting SWIFT_WARN_UNUSED_RESULT;
+ (NSString * _Nonnull)getAnalyticsInstallationId SWIFT_WARN_UNUSED_RESULT;
Expand Down Expand Up @@ -829,15 +853,26 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4)));
# pragma pop_macro("any")
#endif

@class NSString;
enum PurposeConsentStatus : NSInteger;

SWIFT_CLASS("_TtC9TenjinSDK10GDPRHelper")
@interface GDPRHelper : NSObject
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
- (NSString * _Nullable)getPurposeConsentsTCF SWIFT_WARN_UNUSED_RESULT;
- (BOOL)optIn SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
- (enum PurposeConsentStatus)getGoogleAdPersonalization SWIFT_WARN_UNUSED_RESULT;
- (enum PurposeConsentStatus)getGoogleAdUserData SWIFT_WARN_UNUSED_RESULT;
@end


@class NSString;
typedef SWIFT_ENUM(NSInteger, PurposeConsentStatus, open) {
PurposeConsentStatusConsentNull = 0,
PurposeConsentStatusConsentTrue = 1,
PurposeConsentStatusConsentFalse = 2,
};

@class NSDate;
@class NSEntityDescription;
@class NSManagedObjectContext;
Expand Down Expand Up @@ -893,6 +928,7 @@ SWIFT_CLASS("_TtC9TenjinSDK13TJNHTTPClient")

SWIFT_CLASS("_TtC9TenjinSDK16TenjinDatasource")
@interface TenjinDatasource : NSObject
+ (void)setBooleanValue:(BOOL)value key:(NSString * _Nonnull)key;
+ (void)setCacheEventsSetting:(BOOL)isCacheEventsEnabled;
+ (BOOL)getCacheEventsSetting SWIFT_WARN_UNUSED_RESULT;
+ (NSString * _Nonnull)getAnalyticsInstallationId SWIFT_WARN_UNUSED_RESULT;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -199,4 +199,6 @@ andDeferredDeeplink:(NSURL *)url

- (void)getAttributionInfo:(void (^)(NSDictionary *attributionInfo, NSError *error))completionHandler;

- (void)setGoogleDMAParametersWithAdPersonalization:(BOOL)adPersonalization adUserData:(BOOL)adUserData;

@end
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,21 @@ import _Concurrency
public typealias ID = Swift.ObjectIdentifier
@objc deinit
}
@_inheritsConvenienceInitializers @objc public class GDPRHelper : ObjectiveC.NSObject {
@objc public enum PurposeConsentStatus : Swift.Int {
case ConsentNull
case ConsentTrue
case ConsentFalse
public init?(rawValue: Swift.Int)
public typealias RawValue = Swift.Int
public var rawValue: Swift.Int {
get
}
}
@_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objc public class GDPRHelper : ObjectiveC.NSObject {
@objc public func getPurposeConsentsTCF() -> Swift.String?
@objc public func optIn() -> Swift.Bool
@objc override dynamic public init()
@objc public func getGoogleAdPersonalization() -> PurposeConsentStatus
@objc public func getGoogleAdUserData() -> PurposeConsentStatus
@objc deinit
}
@_hasMissingDesignatedInitializers @objc public class RequestHelper : ObjectiveC.NSObject {
Expand All @@ -49,6 +61,8 @@ extension CoreData.NSManagedObjectContext {
public func executeAndMergeChanges(using batchDeleteRequest: CoreData.NSBatchDeleteRequest) throws
}
@_inheritsConvenienceInitializers @objc public class TenjinDatasource : ObjectiveC.NSObject {
@objc public static func setBooleanValue(_ value: Swift.Bool, key: Swift.String)
public static func getOptionalBoolean(_ key: Swift.String) -> Swift.Bool?
@objc public static func setCacheEventsSetting(_ isCacheEventsEnabled: Swift.Bool)
@objc public static func getCacheEventsSetting() -> Swift.Bool
@objc public static func getAnalyticsInstallationId() -> Swift.String
Expand All @@ -71,3 +85,6 @@ extension CoreData.NSManagedObjectContext {
@objc public func urlSession(_ session: Foundation.URLSession, didReceive challenge: Foundation.URLAuthenticationChallenge, completionHandler: @escaping (Foundation.URLSession.AuthChallengeDisposition, Foundation.URLCredential?) -> Swift.Void)
@objc deinit
}
extension PurposeConsentStatus : Swift.Equatable {}
extension PurposeConsentStatus : Swift.Hashable {}
extension PurposeConsentStatus : Swift.RawRepresentable {}
Loading

0 comments on commit fe44921

Please sign in to comment.