Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
361a520
Add url strategy constants
shashanksu Jan 11, 2021
22d2e64
Update fallback mechanism when custom url is set
shashanksu Sep 2, 2020
f641379
Update negating customurl set flag
shashanksu Sep 14, 2020
ed8121d
Refac networking to add url strategy state and extract connection opt…
nonelse Sep 16, 2020
2e86746
Add empty test options library
nonelse Nov 3, 2020
7cf0345
Extract connection test options to new library
nonelse Nov 3, 2020
b881145
Move web view test options setup to teset app
nonelse Nov 3, 2020
7a2439b
add cost data to attribution data and callback
shashanksu Dec 1, 2020
3633286
Refac networking to add url strategy state and extract connection opt…
nonelse Sep 16, 2020
c99cf0d
Add log to print request url
shashanksu Jan 11, 2021
aaec6fe
minor cleanup
shashanksu Jan 12, 2021
546280b
remove unused imports
shashanksu Jan 12, 2021
c47b991
Fix mis-rebase
nonelse Jan 13, 2021
446e5e0
Added sent_at
nonelse Jan 14, 2021
bfee54e
rename test options package to com.adjust.test_options
uerceg Jan 14, 2021
6004c11
fix order of calls to set test options in web bridge test app
uerceg Jan 14, 2021
080ea35
Update README.md
danielsatriano Jan 14, 2021
db193f3
Update README.md
Alzbeta-Knerova Jan 14, 2021
077c995
Add third party sharing
nonelse Nov 30, 2020
44bd455
Add measurement consent
nonelse Nov 30, 2020
94d654f
Add test commands for tps and mc
nonelse Nov 30, 2020
742e09e
Save pre launch tps and mc
nonelse Dec 1, 2020
fac727d
Add entries to README to change later
nonelse Jan 14, 2021
0635a26
Add granular options to README
nonelse Jan 14, 2021
4d12025
Add tps and mc to web bridge
nonelse Jan 14, 2021
86b2f12
Add null check to add granular option
nonelse Jan 15, 2021
ebd9ea8
Fix mc sign kind
nonelse Jan 15, 2021
8b0c871
fix variable name
uerceg Jan 15, 2021
68be817
rename enableOrElseDisable to isEnabled
uerceg Jan 15, 2021
568a0f2
fix class name in adjust_third_party_sharing.js
uerceg Jan 15, 2021
7c7a733
fix handling of isEnabled field from test server in web bridge test app
uerceg Jan 15, 2021
3f80dda
rename method for building consent_management package
uerceg Jan 15, 2021
6601d68
update version number to 4.26.0
uerceg Jan 15, 2021
ebdaa74
update various gradle dependencies
uerceg Jan 15, 2021
e343112
update CHANGELOG
uerceg Jan 15, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Adjust/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ ext {
coreMinSdkVersion = 9
coreCompileSdkVersion = 30
coreTargetSdkVersion = 30
coreVersionName = '4.25.0'
coreVersionName = '4.26.0'
defaultVersionCode = 1

// POM.
adjustGroupId = 'com.adjust.sdk'
}

buildscript {
ext.kotlin_version = '1.4.0'
ext.kotlin_version = '1.4.21'

repositories {
jcenter()
Expand Down
2 changes: 1 addition & 1 deletion Adjust/example-app-fbpixel/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ dependencies {
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation "androidx.constraintlayout:constraintlayout:2.0.4"
implementation 'com.google.android.gms:play-services-ads-identifier:17.0.0'
implementation 'com.android.installreferrer:installreferrer:2.1'
implementation 'com.android.installreferrer:installreferrer:2.2'

implementation project(':sdk-core')
implementation project(':sdk-plugin-webbridge')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
.logLine { border-bottom:1px solid #ccc; padding:4px 2px; font-family:courier; font-size:11px; }
</style>
<script type="text/javascript" src="adjust_event.js"></script>
<script type="text/javascript" src="adjust_third_party_sharing.js"></script>
<script type="text/javascript" src="adjust_config.js"></script>
<script type="text/javascript" src="adjust.js"></script>
</head>
Expand Down
2 changes: 1 addition & 1 deletion Adjust/example-app-java/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ dependencies {
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation "androidx.constraintlayout:constraintlayout:2.0.4"
implementation 'com.google.android.gms:play-services-ads-identifier:17.0.0'
implementation 'com.android.installreferrer:installreferrer:2.1'
implementation 'com.android.installreferrer:installreferrer:2.2'

implementation project(':sdk-core')
}
2 changes: 1 addition & 1 deletion Adjust/example-app-keyboard/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ dependencies {
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation "androidx.constraintlayout:constraintlayout:2.0.4"
implementation 'com.google.android.gms:play-services-ads-identifier:17.0.0'
implementation 'com.android.installreferrer:installreferrer:2.1'
implementation 'com.android.installreferrer:installreferrer:2.2'

implementation project(':sdk-core')
}
2 changes: 1 addition & 1 deletion Adjust/example-app-kotlin/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ dependencies {
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation "androidx.constraintlayout:constraintlayout:2.0.4"
implementation 'com.google.android.gms:play-services-ads-identifier:17.0.0'
implementation 'com.android.installreferrer:installreferrer:2.1'
implementation 'com.android.installreferrer:installreferrer:2.2'

implementation project(':sdk-core')
}
2 changes: 1 addition & 1 deletion Adjust/example-app-tv/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ dependencies {
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation "androidx.constraintlayout:constraintlayout:2.0.4"
implementation 'com.google.android.gms:play-services-ads-identifier:17.0.0'
implementation 'com.android.installreferrer:installreferrer:2.1'
implementation 'com.android.installreferrer:installreferrer:2.2'

implementation project(':sdk-core')
}
2 changes: 1 addition & 1 deletion Adjust/example-app-webbridge/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ dependencies {
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation "androidx.constraintlayout:constraintlayout:2.0.4"
implementation 'com.google.android.gms:play-services-ads-identifier:17.0.0'
implementation 'com.android.installreferrer:installreferrer:2.1'
implementation 'com.android.installreferrer:installreferrer:2.2'

implementation project(':sdk-core')
implementation project(':sdk-plugin-webbridge')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
.logLine { border-bottom:1px solid #ccc; padding:4px 2px; font-family:courier; font-size:11px; }
</style>
<script type="text/javascript" src="adjust_event.js"></script>
<script type="text/javascript" src="adjust_third_party_sharing.js"></script>
<script type="text/javascript" src="adjust_config.js"></script>
<script type="text/javascript" src="adjust.js"></script>
</head>
Expand Down
1 change: 0 additions & 1 deletion Adjust/sdk-core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ android {
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}

}

dependencies {
Expand Down
198 changes: 165 additions & 33 deletions Adjust/sdk-core/src/main/java/com/adjust/sdk/ActivityHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@
import android.net.Uri;
import android.os.Handler;

import com.adjust.sdk.network.ActivityPackageSender;
import com.adjust.sdk.network.IActivityPackageSender;
import com.adjust.sdk.network.UtilNetworking;
import com.adjust.sdk.scheduler.SingleThreadCachedScheduler;
import com.adjust.sdk.scheduler.ThreadExecutor;
import com.adjust.sdk.scheduler.TimerCycle;
Expand Down Expand Up @@ -358,6 +361,7 @@ public void run() {
public void finishedTrackingActivity(ResponseData responseData) {
// redirect session responses to attribution handler to check for attribution information
if (responseData instanceof SessionResponseData) {
logger.debug("Finished tracking session");
attributionHandler.checkSessionResponse((SessionResponseData)responseData);
return;
}
Expand Down Expand Up @@ -628,6 +632,26 @@ public void run() {
});
}

@Override
public void trackThirdPartySharing(final AdjustThirdPartySharing adjustThirdPartySharing) {
executor.submit(new Runnable() {
@Override
public void run() {
trackThirdPartySharingI(adjustThirdPartySharing);
}
});
}

@Override
public void trackMeasurementConsent(final boolean consentMeasurement) {
executor.submit(new Runnable() {
@Override
public void run() {
trackMeasurementConsentI(consentMeasurement);
}
});
}

@Override
public void trackAdRevenue(final String source, final JSONObject adRevenueJson) {
executor.submit(new Runnable() {
Expand Down Expand Up @@ -694,21 +718,6 @@ public AdjustAttribution getAttribution() {
return attribution;
}

@Override
public String getBasePath() {
return this.basePath;
}

@Override
public String getGdprPath() {
return this.gdprPath;
}

@Override
public String getSubscriptionPath() {
return this.subscriptionPath;
}

public InternalState getInternalState() {
return internalState;
}
Expand All @@ -730,10 +739,7 @@ private void initI() {
readSessionPartnerParametersI(adjustConfig.context);

if (adjustConfig.startEnabled != null) {
if (adjustConfig.preLaunchActionsArray == null) {
adjustConfig.preLaunchActionsArray = new ArrayList<IRunActivityHandler>();
}
adjustConfig.preLaunchActionsArray.add(new IRunActivityHandler() {
adjustConfig.preLaunchActions.preLaunchActionsArray.add(new IRunActivityHandler() {
@Override
public void run(ActivityHandler activityHandler) {
activityHandler.setEnabledI(adjustConfig.startEnabled);
Expand Down Expand Up @@ -799,8 +805,24 @@ public void run(ActivityHandler activityHandler) {
SharedPreferencesManager sharedPreferencesManager = new SharedPreferencesManager(getContext());
if (sharedPreferencesManager.getGdprForgetMe()) {
gdprForgetMe();
} else if (sharedPreferencesManager.getDisableThirdPartySharing()) {
disableThirdPartySharing();
} else {
if (sharedPreferencesManager.getDisableThirdPartySharing()) {
disableThirdPartySharing();
}
for (AdjustThirdPartySharing adjustThirdPartySharing :
adjustConfig.preLaunchActions.preLaunchAdjustThirdPartySharingArray)
{
trackThirdPartySharing(adjustThirdPartySharing);
}
if (adjustConfig.preLaunchActions.lastMeasurementConsentTracked != null) {
trackMeasurementConsent(
adjustConfig.preLaunchActions.
lastMeasurementConsentTracked.booleanValue());
}

adjustConfig.preLaunchActions.preLaunchAdjustThirdPartySharingArray =
new ArrayList<>();
adjustConfig.preLaunchActions.lastMeasurementConsentTracked = null;
}
}

Expand Down Expand Up @@ -841,15 +863,44 @@ public void run() {

UtilNetworking.setUserAgent(adjustConfig.userAgent);

this.basePath = adjustConfig.basePath;
this.gdprPath = adjustConfig.gdprPath;
this.subscriptionPath = adjustConfig.subscriptionPath;

packageHandler = AdjustFactory.getPackageHandler(this, adjustConfig.context, toSendI(false));

attributionHandler = AdjustFactory.getAttributionHandler(this, toSendI(false));

sdkClickHandler = AdjustFactory.getSdkClickHandler(this, toSendI(true));
IActivityPackageSender packageHandlerActivitySender =
new ActivityPackageSender(
adjustConfig.urlStrategy,
adjustConfig.basePath,
adjustConfig.gdprPath,
adjustConfig.subscriptionPath,
deviceInfo.clientSdk);
packageHandler = AdjustFactory.getPackageHandler(
this,
adjustConfig.context,
toSendI(false),
packageHandlerActivitySender);

IActivityPackageSender attributionHandlerActivitySender =
new ActivityPackageSender(
adjustConfig.urlStrategy,
adjustConfig.basePath,
adjustConfig.gdprPath,
adjustConfig.subscriptionPath,
deviceInfo.clientSdk);

attributionHandler = AdjustFactory.getAttributionHandler(
this,
toSendI(false),
attributionHandlerActivitySender);

IActivityPackageSender sdkClickHandlerActivitySender =
new ActivityPackageSender(
adjustConfig.urlStrategy,
adjustConfig.basePath,
adjustConfig.gdprPath,
adjustConfig.subscriptionPath,
deviceInfo.clientSdk);

sdkClickHandler = AdjustFactory.getSdkClickHandler(
this,
toSendI(true),
sdkClickHandlerActivitySender);

if (isToUpdatePackagesI()) {
updatePackagesI();
Expand All @@ -869,7 +920,7 @@ public void onInstallReferrerRead(ReferrerDetails referrerDetails) {
}
});

preLaunchActionsI(adjustConfig.preLaunchActionsArray);
preLaunchActionsI(adjustConfig.preLaunchActions.preLaunchActionsArray);
sendReftagReferrerI();
}

Expand Down Expand Up @@ -1082,6 +1133,21 @@ private void startFirstSessionI() {
if (sharedPreferencesManager.getDisableThirdPartySharing()) {
disableThirdPartySharingI();
}
for (AdjustThirdPartySharing adjustThirdPartySharing :
adjustConfig.preLaunchActions.preLaunchAdjustThirdPartySharingArray)
{
trackThirdPartySharingI(adjustThirdPartySharing);
}
if (adjustConfig.preLaunchActions.lastMeasurementConsentTracked != null) {
trackMeasurementConsentI(
adjustConfig.preLaunchActions.
lastMeasurementConsentTracked.booleanValue());
}

adjustConfig.preLaunchActions.preLaunchAdjustThirdPartySharingArray =
new ArrayList<>();
adjustConfig.preLaunchActions.lastMeasurementConsentTracked = null;


activityState.sessionCount = 1; // this is the first session
transferSessionPackageI(now);
Expand Down Expand Up @@ -1306,6 +1372,8 @@ private void launchSdkClickResponseTasksI(SdkClickResponseData sdkClickResponseD
}

private void launchSessionResponseTasksI(SessionResponseData sessionResponseData) {
logger.debug("Launching SessionResponse tasks");

// try to update adid from response
updateAdidI(sessionResponseData.adid);

Expand Down Expand Up @@ -1511,12 +1579,29 @@ private void setEnabledI(boolean enabled) {

if (sharedPreferencesManager.getGdprForgetMe()) {
gdprForgetMeI();
} else if (sharedPreferencesManager.getDisableThirdPartySharing()) {
disableThirdPartySharingI();
} else {
if (sharedPreferencesManager.getDisableThirdPartySharing()) {
disableThirdPartySharingI();
}
for (AdjustThirdPartySharing adjustThirdPartySharing :
adjustConfig.preLaunchActions.preLaunchAdjustThirdPartySharingArray)
{
trackThirdPartySharingI(adjustThirdPartySharing);
}
if (adjustConfig.preLaunchActions.lastMeasurementConsentTracked != null) {
trackMeasurementConsentI(
adjustConfig.preLaunchActions.
lastMeasurementConsentTracked.booleanValue());
}

adjustConfig.preLaunchActions.preLaunchAdjustThirdPartySharingArray =
new ArrayList<>();
adjustConfig.preLaunchActions.lastMeasurementConsentTracked = null;
}

// check if install was tracked
if (!sharedPreferencesManager.getInstallTracked()) {
logger.debug("Detected that install was not tracked at enable time");
long now = System.currentTimeMillis();
trackNewSessionI(now);
}
Expand Down Expand Up @@ -2112,6 +2197,53 @@ private void disableThirdPartySharingI() {
}
}

private void trackThirdPartySharingI(final AdjustThirdPartySharing adjustThirdPartySharing) {
if (!checkActivityStateI(activityState)) {
adjustConfig.preLaunchActions.preLaunchAdjustThirdPartySharingArray.add(
adjustThirdPartySharing);
return;
}
if (!isEnabledI()) { return; }
if (activityState.isGdprForgotten) { return; }

long now = System.currentTimeMillis();
PackageBuilder packageBuilder = new PackageBuilder(
adjustConfig, deviceInfo, activityState, sessionParameters, now);

ActivityPackage activityPackage =
packageBuilder.buildThirdPartySharingPackage(adjustThirdPartySharing);
packageHandler.addPackage(activityPackage);

if (adjustConfig.eventBufferingEnabled) {
logger.info("Buffered event %s", activityPackage.getSuffix());
} else {
packageHandler.sendFirstPackage();
}
}

private void trackMeasurementConsentI(final boolean consentMeasurement) {
if (!checkActivityStateI(activityState)) {
adjustConfig.preLaunchActions.lastMeasurementConsentTracked = consentMeasurement;
return;
}
if (!isEnabledI()) { return; }
if (activityState.isGdprForgotten) { return; }

long now = System.currentTimeMillis();
PackageBuilder packageBuilder = new PackageBuilder(
adjustConfig, deviceInfo, activityState, sessionParameters, now);

ActivityPackage activityPackage =
packageBuilder.buildMeasurementConsentPackage(consentMeasurement);
packageHandler.addPackage(activityPackage);

if (adjustConfig.eventBufferingEnabled) {
logger.info("Buffered event %s", activityPackage.getSuffix());
} else {
packageHandler.sendFirstPackage();
}
}

private void trackAdRevenueI(String source, JSONObject adRevenueJson) {
if (!checkActivityStateI(activityState)) { return; }
if (!isEnabledI()) { return; }
Expand Down
Loading