Skip to content

Commit a01d2e0

Browse files
authored
Merge pull request #534 from adjust/v4290
Version 4.29.0
2 parents 8790a53 + e9a645b commit a01d2e0

File tree

71 files changed

+2361
-3341
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+2361
-3341
lines changed

Adjust.podspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
Pod::Spec.new do |s|
22
s.name = "Adjust"
3-
s.version = "4.28.0"
3+
s.version = "4.29.0"
44
s.summary = "This is the iOS SDK of adjust. You can read more about it at http://adjust.com."
55
s.homepage = "https://github.com/adjust/ios_sdk"
66
s.license = { :type => 'MIT', :file => 'MIT-LICENSE' }
77
s.author = { "Christian Wellenbrock" => "[email protected]" }
8-
s.source = { :git => "https://github.com/adjust/ios_sdk.git", :tag => "v4.28.0" }
8+
s.source = { :git => "https://github.com/adjust/ios_sdk.git", :tag => "v4.29.0" }
99
s.ios.deployment_target = '6.0'
1010
s.tvos.deployment_target = '9.0'
1111
s.framework = 'SystemConfiguration'

Adjust.xcodeproj/project.pbxproj

Lines changed: 120 additions & 162 deletions
Large diffs are not rendered by default.

Adjust/ADJActivityHandler.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
#import "Adjust.h"
1010
#import "ADJResponseData.h"
1111
#import "ADJActivityState.h"
12-
#import "ADJDeviceInfo.h"
12+
#import "ADJPackageParams.h"
1313
#import "ADJSessionParameters.h"
1414
#import "ADJThirdPartySharing.h"
1515

@@ -110,8 +110,9 @@
110110
- (void)trackMeasurementConsent:(BOOL)enabled;
111111
- (void)trackSubscription:(ADJSubscription * _Nullable)subscription;
112112
- (void)updateAttStatusFromUserCallback:(int)newAttStatusFromUser;
113+
- (void)trackAdRevenue:(ADJAdRevenue * _Nullable)adRevenue;
113114

114-
- (ADJDeviceInfo * _Nullable)deviceInfo;
115+
- (ADJPackageParams * _Nullable)packageParams;
115116
- (ADJActivityState * _Nullable)activityState;
116117
- (ADJConfig * _Nullable)adjustConfig;
117118
- (ADJSessionParameters * _Nullable)sessionParameters;

Adjust/ADJActivityHandler.m

Lines changed: 90 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
// Copyright (c) 2013 adjust GmbH. All rights reserved.
77
//
88

9+
#import <UIKit/UIKit.h>
10+
911
#import "ADJActivityPackage.h"
1012
#import "ADJActivityHandler.h"
1113
#import "ADJPackageBuilder.h"
@@ -14,7 +16,6 @@
1416
#import "ADJTimerCycle.h"
1517
#import "ADJTimerOnce.h"
1618
#import "ADJUtil.h"
17-
#import "UIDevice+ADJAdditions.h"
1819
#import "ADJAdjustFactory.h"
1920
#import "ADJAttributionHandler.h"
2021
#import "NSString+ADJAdditions.h"
@@ -87,7 +88,7 @@ @interface ADJActivityHandler()
8788
@property (nonatomic, assign) NSInteger iAdRetriesLeft;
8889
@property (nonatomic, assign) NSInteger adServicesRetriesLeft;
8990
@property (nonatomic, strong) ADJInternalState *internalState;
90-
@property (nonatomic, strong) ADJDeviceInfo *deviceInfo;
91+
@property (nonatomic, strong) ADJPackageParams *packageParams;
9192
@property (nonatomic, strong) ADJTimerOnce *delayStartTimer;
9293
@property (nonatomic, strong) ADJSessionParameters *sessionParameters;
9394
// weak for object that Activity Handler does not "own"
@@ -562,7 +563,7 @@ - (void)sendIad3ClickPackage:(ADJActivityHandler *)selfI
562563
}];
563564
}
564565
ADJPackageBuilder *clickBuilder = [[ADJPackageBuilder alloc]
565-
initWithDeviceInfo:selfI.deviceInfo
566+
initWithPackageParams:selfI.packageParams
566567
activityState:selfI.activityState
567568
config:selfI.adjustConfig
568569
sessionParameters:self.sessionParameters
@@ -597,7 +598,7 @@ - (void)sendAdServicesClickPackage:(ADJActivityHandler *)selfI
597598
}];
598599
}
599600
ADJPackageBuilder *clickBuilder = [[ADJPackageBuilder alloc]
600-
initWithDeviceInfo:selfI.deviceInfo
601+
initWithPackageParams:selfI.packageParams
601602
activityState:selfI.activityState
602603
config:selfI.adjustConfig
603604
sessionParameters:self.sessionParameters
@@ -760,6 +761,14 @@ - (void)trackMeasurementConsent:(BOOL)enabled {
760761
}];
761762
}
762763

764+
- (void)trackAdRevenue:(ADJAdRevenue *)adRevenue {
765+
[ADJUtil launchInQueue:self.internalQueue
766+
selfInject:self
767+
block:^(ADJActivityHandler * selfI) {
768+
[selfI trackAdRevenueI:selfI adRevenue:adRevenue];
769+
}];
770+
}
771+
763772
- (void)writeActivityState {
764773
[ADJUtil launchInQueue:self.internalQueue
765774
selfInject:self
@@ -779,7 +788,7 @@ - (void)trackAttStatusUpdateI:(ADJActivityHandler *)selfI {
779788
double now = [NSDate.date timeIntervalSince1970];
780789

781790
ADJPackageBuilder *infoBuilder = [[ADJPackageBuilder alloc]
782-
initWithDeviceInfo:selfI.deviceInfo
791+
initWithPackageParams:selfI.packageParams
783792
activityState:selfI.activityState
784793
config:selfI.adjustConfig
785794
sessionParameters:selfI.sessionParameters
@@ -845,7 +854,7 @@ - (void)teardown
845854
self.adjustDelegate = nil;
846855
self.adjustConfig = nil;
847856
self.internalState = nil;
848-
self.deviceInfo = nil;
857+
self.packageParams = nil;
849858
self.delayStartTimer = nil;
850859
self.logger = nil;
851860
}
@@ -888,7 +897,7 @@ - (void)initI:(ADJActivityHandler *)selfI
888897
kForegroundTimerInterval = ADJAdjustFactory.timerInterval;
889898
kBackgroundTimerInterval = ADJAdjustFactory.timerInterval;
890899

891-
selfI.deviceInfo = [ADJDeviceInfo deviceInfoWithSdkPrefix:selfI.adjustConfig.sdkPrefix];
900+
selfI.packageParams = [ADJPackageParams packageParamsWithSdkPrefix:selfI.adjustConfig.sdkPrefix];
892901

893902
// read files that are accessed only in Internal sections
894903
selfI.sessionParameters = [[ADJSessionParameters alloc] init];
@@ -1159,7 +1168,7 @@ - (void)trackNewSessionI:(double)now withActivityHandler:(ADJActivityHandler *)s
11591168
- (void)transferSessionPackageI:(ADJActivityHandler *)selfI
11601169
now:(double)now {
11611170
ADJPackageBuilder *sessionBuilder = [[ADJPackageBuilder alloc]
1162-
initWithDeviceInfo:selfI.deviceInfo
1171+
initWithPackageParams:selfI.packageParams
11631172
activityState:selfI.activityState
11641173
config:selfI.adjustConfig
11651174
sessionParameters:selfI.sessionParameters
@@ -1234,7 +1243,7 @@ - (void)eventI:(ADJActivityHandler *)selfI
12341243

12351244
// create and populate event package
12361245
ADJPackageBuilder *eventBuilder = [[ADJPackageBuilder alloc]
1237-
initWithDeviceInfo:selfI.deviceInfo
1246+
initWithPackageParams:selfI.packageParams
12381247
activityState:selfI.activityState
12391248
config:selfI.adjustConfig
12401249
sessionParameters:selfI.sessionParameters
@@ -1275,7 +1284,7 @@ - (void)adRevenueI:(ADJActivityHandler *)selfI
12751284

12761285
// Create and submit ad revenue package.
12771286
ADJPackageBuilder *adRevenueBuilder = [[ADJPackageBuilder alloc]
1278-
initWithDeviceInfo:selfI.deviceInfo
1287+
initWithPackageParams:selfI.packageParams
12791288
activityState:selfI.activityState
12801289
config:selfI.adjustConfig
12811290
sessionParameters:selfI.sessionParameters
@@ -1307,7 +1316,7 @@ - (void)trackSubscriptionI:(ADJActivityHandler *)selfI
13071316

13081317
// Create and submit ad revenue package.
13091318
ADJPackageBuilder *subscriptionBuilder = [[ADJPackageBuilder alloc]
1310-
initWithDeviceInfo:selfI.deviceInfo
1319+
initWithPackageParams:selfI.packageParams
13111320
activityState:selfI.activityState
13121321
config:selfI.adjustConfig
13131322
sessionParameters:selfI.sessionParameters
@@ -1352,7 +1361,7 @@ - (void)disableThirdPartySharingI:(ADJActivityHandler *)selfI {
13521361

13531362
// build package
13541363
ADJPackageBuilder *dtpsBuilder = [[ADJPackageBuilder alloc]
1355-
initWithDeviceInfo:selfI.deviceInfo
1364+
initWithPackageParams:selfI.packageParams
13561365
activityState:selfI.activityState
13571366
config:selfI.adjustConfig
13581367
sessionParameters:selfI.sessionParameters
@@ -1389,7 +1398,7 @@ - (BOOL)trackThirdPartySharingI:(ADJActivityHandler *)selfI
13891398

13901399
// build package
13911400
ADJPackageBuilder *tpsBuilder = [[ADJPackageBuilder alloc]
1392-
initWithDeviceInfo:selfI.deviceInfo
1401+
initWithPackageParams:selfI.packageParams
13931402
activityState:selfI.activityState
13941403
config:selfI.adjustConfig
13951404
sessionParameters:selfI.sessionParameters
@@ -1426,7 +1435,7 @@ - (BOOL)trackMeasurementConsentI:(ADJActivityHandler *)selfI
14261435

14271436
// build package
14281437
ADJPackageBuilder *tpsBuilder = [[ADJPackageBuilder alloc]
1429-
initWithDeviceInfo:selfI.deviceInfo
1438+
initWithPackageParams:selfI.packageParams
14301439
activityState:selfI.activityState
14311440
config:selfI.adjustConfig
14321441
sessionParameters:selfI.sessionParameters
@@ -1446,6 +1455,42 @@ - (BOOL)trackMeasurementConsentI:(ADJActivityHandler *)selfI
14461455
return YES;
14471456
}
14481457

1458+
- (void)trackAdRevenueI:(ADJActivityHandler *)selfI
1459+
adRevenue:(ADJAdRevenue *)adRevenue
1460+
{
1461+
if (!selfI.activityState) {
1462+
return;
1463+
}
1464+
if (![selfI isEnabledI:selfI]) {
1465+
return;
1466+
}
1467+
if (selfI.activityState.isGdprForgotten) {
1468+
return;
1469+
}
1470+
if (![selfI checkAdRevenueI:selfI adRevenue:adRevenue]) {
1471+
return;
1472+
}
1473+
1474+
double now = [NSDate.date timeIntervalSince1970];
1475+
1476+
// Create and submit ad revenue package.
1477+
ADJPackageBuilder *adRevenueBuilder = [[ADJPackageBuilder alloc] initWithPackageParams:selfI.packageParams
1478+
activityState:selfI.activityState
1479+
config:selfI.adjustConfig
1480+
sessionParameters:selfI.sessionParameters
1481+
trackingStatusManager:self.trackingStatusManager
1482+
createdAt:now];
1483+
1484+
ADJActivityPackage *adRevenuePackage = [adRevenueBuilder buildAdRevenuePackage:adRevenue
1485+
isInDelay:[selfI.internalState isInDelayedStart]];
1486+
[selfI.packageHandler addPackage:adRevenuePackage];
1487+
if (selfI.adjustConfig.eventBufferingEnabled) {
1488+
[selfI.logger info:@"Buffered event %@", adRevenuePackage.suffix];
1489+
} else {
1490+
[selfI.packageHandler sendFirstPackage];
1491+
}
1492+
}
1493+
14491494
- (void)launchEventResponseTasksI:(ADJActivityHandler *)selfI
14501495
eventResponseData:(ADJEventResponseData *)eventResponseData {
14511496
[selfI updateAdidI:selfI adid:eventResponseData.adid];
@@ -1710,7 +1755,7 @@ - (void)setEnabledI:(ADJActivityHandler *)selfI enabled:(BOOL)enabled {
17101755
}
17111756

17121757
- (void)checkForiAdI:(ADJActivityHandler *)selfI {
1713-
[[UIDevice currentDevice] adjCheckForiAd:selfI queue:selfI.internalQueue];
1758+
[ADJUtil checkForiAd:selfI queue:selfI.internalQueue];
17141759
}
17151760

17161761
- (BOOL)shouldFetchAdServicesI:(ADJActivityHandler *)selfI {
@@ -1727,7 +1772,7 @@ - (void)checkForAdServicesAttributionI:(ADJActivityHandler *)selfI {
17271772
if ([selfI shouldFetchAdServicesI:selfI]) {
17281773
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
17291774
NSError *error = nil;
1730-
NSString *token = [[UIDevice currentDevice] adjFetchAdServicesAttribution:&error];
1775+
NSString *token = [ADJUtil fetchAdServicesAttribution:&error];
17311776
[selfI setAdServicesAttributionToken:token error:error];
17321777
});
17331778
}
@@ -1842,7 +1887,7 @@ - (void)appWillOpenUrlI:(ADJActivityHandler *)selfI
18421887
selfI.activityState.lastInterval = lastInterval;
18431888
}];
18441889
ADJPackageBuilder *clickBuilder = [[ADJPackageBuilder alloc]
1845-
initWithDeviceInfo:selfI.deviceInfo
1890+
initWithPackageParams:selfI.packageParams
18461891
activityState:selfI.activityState
18471892
config:selfI.adjustConfig
18481893
sessionParameters:selfI.sessionParameters
@@ -1946,7 +1991,7 @@ - (void)setDeviceTokenI:(ADJActivityHandler *)selfI
19461991
// send info package
19471992
double now = [NSDate.date timeIntervalSince1970];
19481993
ADJPackageBuilder *infoBuilder = [[ADJPackageBuilder alloc]
1949-
initWithDeviceInfo:selfI.deviceInfo
1994+
initWithPackageParams:selfI.packageParams
19501995
activityState:selfI.activityState
19511996
config:selfI.adjustConfig
19521997
sessionParameters:selfI.sessionParameters
@@ -1995,7 +2040,7 @@ - (void)setPushTokenI:(ADJActivityHandler *)selfI
19952040
// send info package
19962041
double now = [NSDate.date timeIntervalSince1970];
19972042
ADJPackageBuilder *infoBuilder = [[ADJPackageBuilder alloc]
1998-
initWithDeviceInfo:selfI.deviceInfo
2043+
initWithPackageParams:selfI.packageParams
19992044
activityState:selfI.activityState
20002045
config:selfI.adjustConfig
20012046
sessionParameters:selfI.sessionParameters
@@ -2036,7 +2081,7 @@ - (void)setGdprForgetMeI:(ADJActivityHandler *)selfI {
20362081
// Send GDPR package
20372082
double now = [NSDate.date timeIntervalSince1970];
20382083
ADJPackageBuilder *gdprBuilder = [[ADJPackageBuilder alloc]
2039-
initWithDeviceInfo:selfI.deviceInfo
2084+
initWithPackageParams:selfI.packageParams
20402085
activityState:selfI.activityState
20412086
config:selfI.adjustConfig
20422087
sessionParameters:selfI.sessionParameters
@@ -2668,6 +2713,21 @@ - (BOOL)checkActivityStateI:(ADJActivityHandler *)selfI {
26682713
return YES;
26692714
}
26702715

2716+
- (BOOL)checkAdRevenueI:(ADJActivityHandler *)selfI
2717+
adRevenue:(ADJAdRevenue *)adRevenue {
2718+
if (adRevenue == nil) {
2719+
[selfI.logger error:@"Ad revenue missing"];
2720+
return NO;
2721+
}
2722+
2723+
if (![adRevenue isValid]) {
2724+
[selfI.logger error:@"Ad revenue not initialized correctly"];
2725+
return NO;
2726+
}
2727+
2728+
return YES;
2729+
}
2730+
26712731
- (void)registerForSKAdNetworkAttribution {
26722732
if (!self.adjustConfig.isSKAdNetworkHandlingActive) {
26732733
return;
@@ -2705,6 +2765,13 @@ - (void)checkConversionValue:(ADJResponseData *)responseData {
27052765
}
27062766

27072767
[ADJUtil updateSkAdNetworkConversionValue:conversionValue];
2768+
2769+
if ([self.adjustDelegate respondsToSelector:@selector(adjustConversionValueUpdated:)]) {
2770+
[self.logger debug:@"Launching conversion value updated delegate"];
2771+
[ADJUtil launchInMainThread:self.adjustDelegate
2772+
selector:@selector(adjustConversionValueUpdated:)
2773+
withObject:conversionValue];
2774+
}
27082775
}
27092776

27102777
- (void)updateAttStatusFromUserCallback:(int)newAttStatusFromUser {
@@ -2737,37 +2804,28 @@ - (BOOL)canGetAttStatus {
27372804
}
27382805

27392806
- (BOOL)trackingEnabled {
2740-
return UIDevice.currentDevice.adjTrackingEnabled;
2807+
return [ADJUtil trackingEnabled];
27412808
}
27422809

27432810
- (int)attStatus {
2744-
int readAttStatus = UIDevice.currentDevice.adjATTStatus;
2745-
2811+
int readAttStatus = [ADJUtil attStatus];
27462812
[self updateAttStatus:readAttStatus];
2747-
2748-
// does not need to track AttStatus update, since it will be send with package
2749-
27502813
return readAttStatus;
27512814
}
27522815

27532816
- (void)checkForNewAttStatus {
2754-
int readAttStatus = UIDevice.currentDevice.adjATTStatus;
2755-
2817+
int readAttStatus = [ADJUtil attStatus];
27562818
BOOL didUpdateAttStatus = [self updateAttStatus:readAttStatus];
2757-
27582819
if (!didUpdateAttStatus) {
27592820
return;
27602821
}
2761-
27622822
[self.activityHandler trackAttStatusUpdate];
27632823
}
27642824
- (void)updateAttStatusFromUserCallback:(int)newAttStatusFromUser {
27652825
BOOL didUpdateAttStatus = [self updateAttStatus:newAttStatusFromUser];
2766-
27672826
if (!didUpdateAttStatus) {
27682827
return;
27692828
}
2770-
27712829
[self.activityHandler trackAttStatusUpdate];
27722830
}
27732831

Adjust/ADJActivityState.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
@property (nonatomic, assign) BOOL askingAttribution;
1717
@property (nonatomic, assign) BOOL isThirdPartySharingDisabled;
1818

19-
@property (nonatomic, copy) NSString *uuid;
19+
@property (nonatomic, copy) NSString *dedupeToken;
2020
@property (nonatomic, copy) NSString *deviceToken;
2121
@property (nonatomic, assign) BOOL updatePackages;
2222

0 commit comments

Comments
 (0)