Skip to content

Commit 6633322

Browse files
committed
feat: app set id support
1 parent f720f67 commit 6633322

File tree

9 files changed

+47
-0
lines changed

9 files changed

+47
-0
lines changed

Adjust/example-app-fbpixel/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ dependencies {
3030
implementation "androidx.constraintlayout:constraintlayout:2.1.1"
3131
implementation 'com.google.android.gms:play-services-ads-identifier:17.1.0'
3232
implementation 'com.android.installreferrer:installreferrer:2.2'
33+
implementation 'com.google.android.gms:play-services-appset:16.0.2'
3334

3435
implementation project(':sdk-core')
3536
implementation project(':sdk-plugin-webbridge')

Adjust/example-app-java/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ dependencies {
3434
implementation "androidx.constraintlayout:constraintlayout:2.1.1"
3535
implementation 'com.google.android.gms:play-services-ads-identifier:17.1.0'
3636
implementation 'com.android.installreferrer:installreferrer:2.2'
37+
implementation 'com.google.android.gms:play-services-appset:16.0.2'
3738

3839
implementation project(':sdk-core')
3940
}

Adjust/example-app-keyboard/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ dependencies {
3434
implementation "androidx.constraintlayout:constraintlayout:2.1.1"
3535
implementation 'com.google.android.gms:play-services-ads-identifier:17.1.0'
3636
implementation 'com.android.installreferrer:installreferrer:2.2'
37+
implementation 'com.google.android.gms:play-services-appset:16.0.2'
3738

3839
implementation project(':sdk-core')
3940
}

Adjust/example-app-kotlin/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ dependencies {
3434
implementation "androidx.constraintlayout:constraintlayout:2.1.1"
3535
implementation 'com.google.android.gms:play-services-ads-identifier:17.1.0'
3636
implementation 'com.android.installreferrer:installreferrer:2.2'
37+
implementation 'com.google.android.gms:play-services-appset:16.0.2'
3738

3839
implementation project(':sdk-core')
3940
}

Adjust/example-app-tv/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ dependencies {
3434
implementation "androidx.constraintlayout:constraintlayout:2.1.1"
3535
implementation 'com.google.android.gms:play-services-ads-identifier:17.1.0'
3636
implementation 'com.android.installreferrer:installreferrer:2.2'
37+
implementation 'com.google.android.gms:play-services-appset:16.0.2'
3738

3839
implementation project(':sdk-core')
3940
}

Adjust/example-app-webbridge/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ dependencies {
2828
implementation "androidx.constraintlayout:constraintlayout:2.1.1"
2929
implementation 'com.google.android.gms:play-services-ads-identifier:17.1.0'
3030
implementation 'com.android.installreferrer:installreferrer:2.2'
31+
implementation 'com.google.android.gms:play-services-appset:16.0.2'
3132

3233
implementation project(':sdk-core')
3334
implementation project(':sdk-plugin-webbridge')

Adjust/sdk-core/src/main/java/com/adjust/sdk/DeviceInfo.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ class DeviceInfo {
8080
String appInstallTime;
8181
String appUpdateTime;
8282
int uiMode;
83+
String appSetId;
8384

8485
DeviceInfo(Context context, String sdkPrefix) {
8586
Resources resources = context.getResources();
@@ -111,6 +112,7 @@ class DeviceInfo {
111112
appInstallTime = getAppInstallTime(context);
112113
appUpdateTime = getAppUpdateTime(context);
113114
uiMode = getDeviceUiMode(configuration);
115+
appSetId = Reflection.getAppSetId(context, AdjustFactory.getLogger());
114116
}
115117

116118
void reloadPlayIds(final AdjustConfig adjustConfig) {

Adjust/sdk-core/src/main/java/com/adjust/sdk/PackageBuilder.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,7 @@ private Map<String, String> getSessionParameters(boolean isInDelay) {
286286
PackageBuilder.addBoolean(parameters, "tracking_enabled", deviceInfo.isTrackingEnabled);
287287
PackageBuilder.addString(parameters, "fire_adid", Util.getFireAdvertisingId(adjustConfig));
288288
PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", Util.getFireTrackingEnabled(adjustConfig));
289+
PackageBuilder.addString(parameters, "google_app_set_id", deviceInfo.appSetId);
289290

290291
if (!containsPlayIds(parameters) && !containsFireIds(parameters)) {
291292
logger.warn("Google Advertising ID or Fire Advertising ID not detected, " +
@@ -375,6 +376,7 @@ public Map<String, String> getEventParameters(AdjustEvent event, boolean isInDel
375376
PackageBuilder.addBoolean(parameters, "tracking_enabled", deviceInfo.isTrackingEnabled);
376377
PackageBuilder.addString(parameters, "fire_adid", Util.getFireAdvertisingId(adjustConfig));
377378
PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", Util.getFireTrackingEnabled(adjustConfig));
379+
PackageBuilder.addString(parameters, "google_app_set_id", deviceInfo.appSetId);
378380

379381
if (!containsPlayIds(parameters) && !containsFireIds(parameters)) {
380382
logger.warn("Google Advertising ID or Fire Advertising ID not detected, " +
@@ -460,6 +462,7 @@ private Map<String, String> getInfoParameters(String source) {
460462
PackageBuilder.addBoolean(parameters, "tracking_enabled", deviceInfo.isTrackingEnabled);
461463
PackageBuilder.addString(parameters, "fire_adid", Util.getFireAdvertisingId(adjustConfig));
462464
PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", Util.getFireTrackingEnabled(adjustConfig));
465+
PackageBuilder.addString(parameters, "google_app_set_id", deviceInfo.appSetId);
463466

464467
if (!containsPlayIds(parameters) && !containsFireIds(parameters)) {
465468
logger.warn("Google Advertising ID or Fire Advertising ID not detected, " +
@@ -513,6 +516,7 @@ private Map<String, String> getClickParameters(String source) {
513516
PackageBuilder.addBoolean(parameters, "tracking_enabled", deviceInfo.isTrackingEnabled);
514517
PackageBuilder.addString(parameters, "fire_adid", Util.getFireAdvertisingId(adjustConfig));
515518
PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", Util.getFireTrackingEnabled(adjustConfig));
519+
PackageBuilder.addString(parameters, "google_app_set_id", deviceInfo.appSetId);
516520

517521
if (!containsPlayIds(parameters) && !containsFireIds(parameters)) {
518522
logger.warn("Google Advertising ID or Fire Advertising ID not detected, " +
@@ -621,6 +625,7 @@ private Map<String, String> getAttributionParameters(String initiatedBy) {
621625
PackageBuilder.addBoolean(parameters, "tracking_enabled", deviceInfo.isTrackingEnabled);
622626
PackageBuilder.addString(parameters, "fire_adid", Util.getFireAdvertisingId(adjustConfig));
623627
PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", Util.getFireTrackingEnabled(adjustConfig));
628+
PackageBuilder.addString(parameters, "google_app_set_id", deviceInfo.appSetId);
624629

625630
if (!containsPlayIds(parameters) && !containsFireIds(parameters)) {
626631
logger.warn("Google Advertising ID or Fire Advertising ID not detected, " +
@@ -682,6 +687,7 @@ private Map<String, String> getGdprParameters() {
682687
PackageBuilder.addBoolean(parameters, "tracking_enabled", deviceInfo.isTrackingEnabled);
683688
PackageBuilder.addString(parameters, "fire_adid", Util.getFireAdvertisingId(adjustConfig));
684689
PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", Util.getFireTrackingEnabled(adjustConfig));
690+
PackageBuilder.addString(parameters, "google_app_set_id", deviceInfo.appSetId);
685691

686692
if (!containsPlayIds(parameters) && !containsFireIds(parameters)) {
687693
logger.warn("Google Advertising ID or Fire Advertising ID not detected, " +
@@ -742,6 +748,7 @@ private Map<String, String> getDisableThirdPartySharingParameters() {
742748
PackageBuilder.addBoolean(parameters, "tracking_enabled", deviceInfo.isTrackingEnabled);
743749
PackageBuilder.addString(parameters, "fire_adid", Util.getFireAdvertisingId(adjustConfig));
744750
PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", Util.getFireTrackingEnabled(adjustConfig));
751+
PackageBuilder.addString(parameters, "google_app_set_id", deviceInfo.appSetId);
745752

746753
if (!containsPlayIds(parameters) && !containsFireIds(parameters)) {
747754
logger.warn("Google Advertising ID or Fire Advertising ID not detected, " +
@@ -816,6 +823,7 @@ private Map<String, String> getDisableThirdPartySharingParameters() {
816823
PackageBuilder.addBoolean(parameters, "tracking_enabled", deviceInfo.isTrackingEnabled);
817824
PackageBuilder.addString(parameters, "fire_adid", Util.getFireAdvertisingId(adjustConfig));
818825
PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", Util.getFireTrackingEnabled(adjustConfig));
826+
PackageBuilder.addString(parameters, "google_app_set_id", deviceInfo.appSetId);
819827

820828
if (!containsPlayIds(parameters) && !containsFireIds(parameters)) {
821829
logger.warn("Google Advertising ID or Fire Advertising ID not detected, " +
@@ -881,6 +889,7 @@ private Map<String, String> getMeasurementConsentParameters(
881889
PackageBuilder.addBoolean(parameters, "tracking_enabled", deviceInfo.isTrackingEnabled);
882890
PackageBuilder.addString(parameters, "fire_adid", Util.getFireAdvertisingId(adjustConfig));
883891
PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", Util.getFireTrackingEnabled(adjustConfig));
892+
PackageBuilder.addString(parameters, "google_app_set_id", deviceInfo.appSetId);
884893

885894
if (!containsPlayIds(parameters) && !containsFireIds(parameters)) {
886895
logger.warn("Google Advertising ID or Fire Advertising ID not detected, " +
@@ -940,6 +949,7 @@ private Map<String, String> getAdRevenueParameters(String source, JSONObject adR
940949
PackageBuilder.addBoolean(parameters, "tracking_enabled", deviceInfo.isTrackingEnabled);
941950
PackageBuilder.addString(parameters, "fire_adid", Util.getFireAdvertisingId(adjustConfig));
942951
PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", Util.getFireTrackingEnabled(adjustConfig));
952+
PackageBuilder.addString(parameters, "google_app_set_id", deviceInfo.appSetId);
943953

944954
if (!containsPlayIds(parameters) && !containsFireIds(parameters)) {
945955
logger.warn("Google Advertising ID or Fire Advertising ID not detected, " +
@@ -1031,6 +1041,7 @@ private Map<String, String> getAdRevenueParameters(AdjustAdRevenue adjustAdReven
10311041
PackageBuilder.addBoolean(parameters, "tracking_enabled", deviceInfo.isTrackingEnabled);
10321042
PackageBuilder.addString(parameters, "fire_adid", Util.getFireAdvertisingId(adjustConfig));
10331043
PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", Util.getFireTrackingEnabled(adjustConfig));
1044+
PackageBuilder.addString(parameters, "google_app_set_id", deviceInfo.appSetId);
10341045

10351046
if (!containsPlayIds(parameters) && !containsFireIds(parameters)) {
10361047
logger.warn("Google Advertising ID or Fire Advertising ID not detected, " +
@@ -1121,6 +1132,7 @@ private Map<String, String> getSubscriptionParameters(AdjustPlayStoreSubscriptio
11211132
PackageBuilder.addBoolean(parameters, "tracking_enabled", deviceInfo.isTrackingEnabled);
11221133
PackageBuilder.addString(parameters, "fire_adid", Util.getFireAdvertisingId(adjustConfig));
11231134
PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", Util.getFireTrackingEnabled(adjustConfig));
1135+
PackageBuilder.addString(parameters, "google_app_set_id", deviceInfo.appSetId);
11241136

11251137
if (!containsPlayIds(parameters) && !containsFireIds(parameters)) {
11261138
logger.warn("Google Advertising ID or Fire Advertising ID not detected, " +

Adjust/sdk-core/src/main/java/com/adjust/sdk/Reflection.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import java.lang.reflect.Constructor;
66
import java.lang.reflect.Field;
7+
import java.lang.reflect.InvocationTargetException;
78
import java.lang.reflect.Method;
89
import java.util.Map;
910

@@ -96,6 +97,32 @@ public static ReferrerDetails getVivoReferrer(Context context, ILogger logger) {
9697
return referrerDetails;
9798
}
9899

100+
public static String getAppSetId(Context context, ILogger logger) {
101+
try {
102+
Class appSetClass = Class.forName("com.google.android.gms.appset.AppSet");
103+
Method getClientMethod = appSetClass.getMethod("getClient", Context.class);
104+
Object appSetIdClientObject = getClientMethod.invoke(null, context);
105+
Method getAppSetIdInfoMethod = appSetIdClientObject.getClass().getMethod("getAppSetIdInfo");
106+
Object taskWithAppSetInfoObject = getAppSetIdInfoMethod.invoke(appSetIdClientObject);
107+
Class tasksClass = Class.forName("com.google.android.gms.tasks.Tasks");
108+
Method awaitMethod = tasksClass.getMethod("await", Class.forName("com.google.android.gms.tasks.Task"));
109+
Object appSetInfoObject = awaitMethod.invoke(null, taskWithAppSetInfoObject);
110+
Method getIdMethod = appSetInfoObject.getClass().getMethod("getId");
111+
112+
return (String) getIdMethod.invoke(appSetInfoObject);
113+
} catch (ClassNotFoundException e) {
114+
logger.error("ClassNotFoundException while retrieving app set id with error: %s", e.getMessage());
115+
} catch (NoSuchMethodException e) {
116+
logger.error("NoSuchMethodException while retrieving app set id with error: %s", e.getMessage());
117+
} catch (InvocationTargetException e) {
118+
logger.error("InvocationTargetException while retrieving app set id with error: %s", e.getMessage());
119+
} catch (Exception e) {
120+
logger.error("Exception while retrieving app set id with error: %s", e.getMessage());
121+
}
122+
123+
return null;
124+
}
125+
99126
public static Class forName(String className) {
100127
try {
101128
Class classObject = Class.forName(className);

0 commit comments

Comments
 (0)