Skip to content

Commit 08a9198

Browse files
authored
Merge pull request #13 from adjust/v4113
v4.11.3
2 parents d0577a5 + 5778b33 commit 08a9198

24 files changed

+219
-80
lines changed

CHANGELOG.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,17 @@
1+
### Version 4.11.3 (15th May 2017)
2+
#### Added
3+
- **[iOS][AND]** Added check if `sdk_click` package response contains attribution information.
4+
- **[iOS][AND]** Added sending of attributable parameters with every `sdk_click` package.
5+
6+
#### Changed
7+
- **[iOS][AND]** Replaced `assert` level logs with `warn` level.
8+
9+
#### Native SDKs
10+
- **[iOS]** [[email protected]][ios_sdk_v4.11.4]
11+
- **[AND]** [[email protected]][android_sdk_v4.11.4]
12+
13+
---
14+
115
### Version 4.11.2 (24th April 2017)
216
#### Added
317
- **[iOS]** Added nullability annotations to public headers for Swift 3.0 compatibility.
@@ -80,8 +94,10 @@
8094
[ios_sdk_v4.10.3]: https://github.com/adjust/ios_sdk/tree/v4.10.3
8195
[ios_sdk_v4.11.0]: https://github.com/adjust/ios_sdk/tree/v4.11.0
8296
[ios_sdk_v4.11.3]: https://github.com/adjust/ios_sdk/tree/v4.11.3
97+
[ios_sdk_v4.11.4]: https://github.com/adjust/ios_sdk/tree/v4.11.4
8398

8499
[android_sdk_v4.10.4]: https://github.com/adjust/android_sdk/tree/v4.10.4
85100
[android_sdk_v4.11.0]: https://github.com/adjust/android_sdk/tree/v4.11.0
86101
[android_sdk_v4.11.1]: https://github.com/adjust/android_sdk/tree/v4.11.1
87102
[android_sdk_v4.11.3]: https://github.com/adjust/android_sdk/tree/v4.11.3
103+
[android_sdk_v4.11.4]: https://github.com/adjust/android_sdk/tree/v4.11.4

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
4.11.2
1+
4.11.3

android/libs/adjust-android.jar

2.9 KB
Binary file not shown.

ext/Android/sdk

Submodule sdk updated 39 files

ext/iOS/sdk

index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ var AdjustConfig = function(appToken, environment) {
111111
this.appToken = appToken;
112112
this.environment = environment;
113113

114-
this.sdkPrefix = "react_native4.11.2";
114+
this.sdkPrefix = "react_native4.11.3";
115115
this.logLevel = null;
116116

117117
this.eventBufferingEnabled = null;

ios/Adjust/ADJActivityHandler.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ sessionParametersActionsArray:(NSArray*)sessionParametersActionsArray
5252
- (void)finishedTracking:(ADJResponseData *)responseData;
5353
- (void)launchEventResponseTasks:(ADJEventResponseData *)eventResponseData;
5454
- (void)launchSessionResponseTasks:(ADJSessionResponseData *)sessionResponseData;
55+
- (void)launchSdkClickResponseTasks:(ADJSdkClickResponseData *)sdkClickResponseData;
5556
- (void)launchAttributionResponseTasks:(ADJAttributionResponseData *)attributionResponseData;
5657
- (void)setEnabled:(BOOL)enabled;
5758
- (BOOL)isEnabled;

ios/Adjust/ADJActivityHandler.m

Lines changed: 79 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,12 @@ - (void)finishedTracking:(ADJResponseData *)responseData {
238238
return;
239239
}
240240

241+
// redirect sdk_click responses to attribution handler to check for attribution information
242+
if ([responseData isKindOfClass:[ADJSdkClickResponseData class]]) {
243+
[self.attributionHandler checkSdkClickResponse:(ADJSdkClickResponseData*)responseData];
244+
return;
245+
}
246+
241247
// check if it's an event response
242248
if ([responseData isKindOfClass:[ADJEventResponseData class]]) {
243249
[self launchEventResponseTasks:(ADJEventResponseData*)responseData];
@@ -261,6 +267,14 @@ - (void)launchSessionResponseTasks:(ADJSessionResponseData *)sessionResponseData
261267
}];
262268
}
263269

270+
- (void)launchSdkClickResponseTasks:(ADJSdkClickResponseData *)sdkClickResponseData {
271+
[ADJUtil launchInQueue:self.internalQueue
272+
selfInject:self
273+
block:^(ADJActivityHandler * selfI) {
274+
[selfI launchSdkClickResponseTasksI:selfI sdkClickResponseData:sdkClickResponseData];
275+
}];
276+
}
277+
264278
- (void)launchAttributionResponseTasks:(ADJAttributionResponseData *)attributionResponseData {
265279
[ADJUtil launchInQueue:self.internalQueue
266280
selfInject:self
@@ -399,27 +413,14 @@ - (void)setDeviceToken:(NSData *)deviceToken {
399413
}];
400414
}
401415

402-
- (void)setIadDate:(NSDate *)iAdImpressionDate withPurchaseDate:(NSDate *)appPurchaseDate {
403-
if (iAdImpressionDate == nil) {
404-
[self.logger debug:@"iAdImpressionDate not received"];
405-
return;
406-
}
407-
408-
[self.logger debug:@"iAdImpressionDate received: %@", iAdImpressionDate];
409-
410-
411-
double now = [NSDate.date timeIntervalSince1970];
412-
ADJPackageBuilder *clickBuilder = [[ADJPackageBuilder alloc]
413-
initWithDeviceInfo:self.deviceInfo
414-
activityState:self.activityState
415-
config:self.adjustConfig
416-
createdAt:now];
417-
418-
clickBuilder.purchaseTime = appPurchaseDate;
419-
clickBuilder.clickTime = iAdImpressionDate;
420-
421-
ADJActivityPackage *clickPackage = [clickBuilder buildClickPackage:@"iad"];
422-
[self.sdkClickHandler sendSdkClick:clickPackage];
416+
- (void)setIadDate:(NSDate *)iAdImpressionDate
417+
withPurchaseDate:(NSDate *)appPurchaseDate
418+
{
419+
[ADJUtil launchInQueue:self.internalQueue
420+
selfInject:self
421+
block:^(ADJActivityHandler * selfI) {
422+
[selfI setIadDateI:selfI iAdImpressionDate:iAdImpressionDate withPurchaseDate:appPurchaseDate];
423+
}];
423424
}
424425

425426
- (void)setAttributionDetails:(NSDictionary *)attributionDetails
@@ -485,6 +486,10 @@ - (void)sendIad3ClickPackage:(ADJActivityHandler *)selfI
485486
attributionDetails:(NSDictionary *)attributionDetails
486487
{
487488
double now = [NSDate.date timeIntervalSince1970];
489+
if (selfI.activityState != nil) {
490+
double lastInterval = now - selfI.activityState.lastActivity;
491+
selfI.activityState.lastInterval = lastInterval;
492+
}
488493
ADJPackageBuilder *clickBuilder = [[ADJPackageBuilder alloc]
489494
initWithDeviceInfo:selfI.deviceInfo
490495
activityState:selfI.activityState
@@ -493,7 +498,7 @@ - (void)sendIad3ClickPackage:(ADJActivityHandler *)selfI
493498

494499
clickBuilder.attributionDetails = attributionDetails;
495500

496-
ADJActivityPackage *clickPackage = [clickBuilder buildClickPackage:@"iad3"];
501+
ADJActivityPackage *clickPackage = [clickBuilder buildClickPackage:@"iad3" sessionParameters:selfI.sessionParameters];
497502
[selfI.sdkClickHandler sendSdkClick:clickPackage];
498503
}
499504

@@ -716,7 +721,8 @@ - (void)initI:(ADJActivityHandler *)selfI
716721
startsSending:[selfI toSendI:selfI
717722
sdkClickHandlerOnly:NO]];
718723

719-
selfI.sdkClickHandler = [ADJAdjustFactory sdkClickHandlerWithStartsPaused:[selfI toSendI:selfI
724+
selfI.sdkClickHandler = [ADJAdjustFactory sdkClickHandlerWithStartsPaused:selfI
725+
startsSending:[selfI toSendI:selfI
720726
sdkClickHandlerOnly:YES]];
721727

722728
[[UIDevice currentDevice] adjSetIad:selfI triesV3Left:kTryIadV3];
@@ -930,6 +936,21 @@ - (void)launchSessionResponseTasksI:(ADJActivityHandler *)selfI
930936
self.internalState.sessionResponseProcessed = YES;
931937
}
932938

939+
- (void)launchSdkClickResponseTasksI:(ADJActivityHandler *)selfI
940+
sdkClickResponseData:(ADJSdkClickResponseData *)sdkClickResponseData {
941+
[selfI updateAdidI:selfI adid:sdkClickResponseData.adid];
942+
943+
BOOL toLaunchAttributionDelegate = [selfI updateAttributionI:selfI attribution:sdkClickResponseData.attribution];
944+
945+
// try to update and launch the attribution changed delegate
946+
if (toLaunchAttributionDelegate) {
947+
[selfI.logger debug:@"Launching attribution changed delegate"];
948+
[ADJUtil launchInMainThread:selfI.adjustDelegate
949+
selector:@selector(adjustAttributionChanged:)
950+
withObject:sdkClickResponseData.attribution];
951+
}
952+
}
953+
933954
- (void)launchAttributionResponseTasksI:(ADJActivityHandler *)selfI
934955
attributionResponseData:(ADJAttributionResponseData *)attributionResponseData {
935956
[selfI updateAdidI:selfI adid:attributionResponseData.adid];
@@ -1034,6 +1055,9 @@ - (void)appWillOpenUrlI:(ADJActivityHandler *)selfI
10341055
}
10351056

10361057
double now = [NSDate.date timeIntervalSince1970];
1058+
double lastInterval = now - selfI.activityState.lastActivity;
1059+
selfI.activityState.lastInterval = lastInterval;
1060+
10371061
ADJPackageBuilder *clickBuilder = [[ADJPackageBuilder alloc]
10381062
initWithDeviceInfo:selfI.deviceInfo
10391063
activityState:selfI.activityState
@@ -1044,7 +1068,7 @@ - (void)appWillOpenUrlI:(ADJActivityHandler *)selfI
10441068
clickBuilder.clickTime = [NSDate date];
10451069
clickBuilder.deeplink = [url absoluteString];
10461070

1047-
ADJActivityPackage *clickPackage = [clickBuilder buildClickPackage:@"deeplink"];
1071+
ADJActivityPackage *clickPackage = [clickBuilder buildClickPackage:@"deeplink" sessionParameters:selfI.sessionParameters];
10481072
[selfI.sdkClickHandler sendSdkClick:clickPackage];
10491073
}
10501074

@@ -1133,6 +1157,37 @@ - (void)setDeviceTokenI:(ADJActivityHandler *)selfI
11331157
[selfI.packageHandler sendFirstPackage];
11341158
}
11351159

1160+
- (void)setIadDateI:(ADJActivityHandler *)selfI
1161+
iAdImpressionDate:(NSDate *)iAdImpressionDate
1162+
withPurchaseDate:(NSDate *)appPurchaseDate
1163+
{
1164+
if (iAdImpressionDate == nil) {
1165+
[self.logger debug:@"iAdImpressionDate not received"];
1166+
return;
1167+
}
1168+
1169+
[self.logger debug:@"iAdImpressionDate received: %@", iAdImpressionDate];
1170+
1171+
double now = [NSDate.date timeIntervalSince1970];
1172+
if (selfI.activityState != nil) {
1173+
double lastInterval = now - selfI.activityState.lastActivity;
1174+
selfI.activityState.lastInterval = lastInterval;
1175+
}
1176+
1177+
ADJPackageBuilder *clickBuilder = [[ADJPackageBuilder alloc]
1178+
initWithDeviceInfo:self.deviceInfo
1179+
activityState:self.activityState
1180+
config:self.adjustConfig
1181+
createdAt:now];
1182+
1183+
clickBuilder.purchaseTime = appPurchaseDate;
1184+
clickBuilder.clickTime = iAdImpressionDate;
1185+
1186+
ADJActivityPackage *clickPackage = [clickBuilder buildClickPackage:@"iad" sessionParameters:selfI.sessionParameters];
1187+
[self.sdkClickHandler sendSdkClick:clickPackage];
1188+
}
1189+
1190+
11361191
#pragma mark - private
11371192

11381193
- (BOOL)isEnabledI:(ADJActivityHandler *)selfI {

ios/Adjust/ADJAdjustFactory.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@
2424
+ (id<ADJActivityHandler>)activityHandlerWithConfig:(ADJConfig *)adjustConfig
2525
sessionParametersActionsArray:(NSArray*)sessionParametersActionsArray
2626
deviceToken:(NSData*)deviceToken;
27-
+ (id<ADJSdkClickHandler>)sdkClickHandlerWithStartsPaused:(BOOL)startsSending;
27+
+ (id<ADJSdkClickHandler>)sdkClickHandlerWithStartsPaused:(id<ADJActivityHandler>)activityHandler
28+
startsSending:(BOOL)startsSending;
2829

2930
+ (id<ADJLogger>)logger;
3031
+ (double)sessionInterval;

ios/Adjust/ADJAdjustFactory.m

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,13 +122,14 @@ + (ADJBackoffStrategy *)sdkClickHandlerBackoffStrategy {
122122
startsSending:startsSending];
123123
}
124124

125-
+ (id<ADJSdkClickHandler>)sdkClickHandlerWithStartsPaused:(BOOL)startsSending
125+
+ (id<ADJSdkClickHandler>)sdkClickHandlerWithStartsPaused:(id<ADJActivityHandler>)activityHandler
126+
startsSending:(BOOL)startsSending
126127
{
127128
if (internalSdkClickHandler == nil) {
128-
return [ADJSdkClickHandler handlerWithStartsSending:startsSending];
129+
return [ADJSdkClickHandler handlerWithActivityHandler:activityHandler startsSending:startsSending];
129130
}
130131

131-
return [internalSdkClickHandler initWithStartsSending:startsSending];
132+
return [internalSdkClickHandler initWithActivityHandler:activityHandler startsSending:startsSending];
132133
}
133134

134135
+ (BOOL)testing {

0 commit comments

Comments
 (0)