You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+68-11
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,62 @@
1
1
# Optimizely Android X SDK Changelog
2
2
3
+
4
+
## 4.0.0
5
+
January 17th, 2024
6
+
7
+
### New Features
8
+
9
+
The 4.0.0 release introduces a new primary feature, [Advanced Audience Targeting](https://docs.developers.optimizely.com/feature-experimentation/docs/optimizely-data-platform-advanced-audience-targeting) enabled through integration with [Optimizely Data Platform (ODP)](https://docs.developers.optimizely.com/optimizely-data-platform/docs)
You can use ODP, a high-performance [Customer Data Platform (CDP)](https://www.optimizely.com/optimization-glossary/customer-data-platform/), to easily create complex real-time segments (RTS) using first-party and 50+ third-party data sources out of the box. You can create custom schemas that support the user attributes important for your business, and stitch together user behavior done on different devices to better understand and target your customers for personalized user experiences. ODP can be used as a single source of truth for these segments in any Optimizely or 3rd party tool.
18
+
19
+
With ODP accounts integrated into Optimizely projects, you can build audiences using segments pre-defined in ODP. The SDK will fetch the segments for given users and make decisions using the segments. For access to ODP audience targeting in your Feature Experimentation account, please contact your Customer Success Manager.
20
+
21
+
This version includes the following changes:
22
+
23
+
* New API added to `OptimizelyUserContext`:
24
+
- `fetchQualifiedSegments()`: this API will retrieve user segments from the ODP server. The fetched segments will be used for audience evaluation. The fetched data will be stored in the local cache to avoid repeated network delays.
25
+
- When an `OptimizelyUserContext` is created, the SDK will automatically send an identify request to the ODP server to facilitate observing user activities.
26
+
27
+
* New APIs added to `OptimizelyClient`:
28
+
- `sendODPEvent()`: customers can build/send arbitrary ODP events that will bind user identifiers and data to user profiles in ODP.
29
+
- `createUserContext()` with anonymous user IDs: user-contexts can be created without a userId. The SDK will create and use a persistent `VUID` specific to a device when userId is not provided.
*[Send Optimizely Data Platform data using Advanced Audience Targeting](https://docs.developers.optimizely.com/feature-experimentation/docs/send-odp-data-using-advanced-audience-targeting-android)
44
+
45
+
### Breaking Changes
46
+
47
+
*`ODPManager` in the SDK is enabled by default. Unless an ODP account is integrated into the Optimizely projects, most `ODPManager` functions will be ignored. If needed, `ODPManager` can be disabled when `OptimizelyClient` is instantiated.
48
+
* minimum Android API level requirements upgraded to 21 or higher.
49
+
50
+
### Bug Fixes
51
+
* support arbitrary client names to be included in logx and odp events. ([#459](https://github.com/optimizely/android-sdk/pull/459)).
52
+
* Added catch block to capture resource not found exception. ([#460](https://github.com/optimizely/android-sdk/pull/460)).
53
+
* Added a proguard rule to suppress warning for java.beans.Transient. Upgraded Java to 11. ([#471](https://github.com/optimizely/android-sdk/pull/471)).
54
+
* Added a proguard rule to keep ODPEvent and added sample codes for ODP. ([#456](https://github.com/optimizely/android-sdk/pull/456)).
- This build has support for audience evaluation by version. It also supports number 'greater than or equal to' and 'less than or equal to'.
218
-
- This build also supports getting the current config string.
275
+
- This build also supports getting the current config string.
219
276
220
277
For a complete list see the [release notes](https://github.com/optimizely/java-sdk/releases/tag/3.6.0) for java sdk 3.6.0
221
278
@@ -224,7 +281,7 @@ Using Java SDK 3.6.0
224
281
## 3.6.0
225
282
July 13th, 2020
226
283
227
-
This build has support for Feature JSON. It also includes an update to the test application
284
+
This build has support for Feature JSON. It also includes an update to the test application
228
285
with feature flag example and package level log setting.
229
286
230
287
Using Java SDK 3.5.0
@@ -352,10 +409,10 @@ This minor release updates the SDK to use the Optimizely Java SDK 3.1.0 which in
352
409
## 3.0.1
353
410
April 23, 2019
354
411
355
-
This patch release fixes some git hub issues mentioned below.
412
+
This patch release fixes some git hub issues mentioned below.
356
413
357
414
### Bug Fixes
358
-
* The Logger security exception is handled a little more cleanly for logging. ([#270](https://github.com/optimizely/android-sdk/pull/270))
415
+
* The Logger security exception is handled a little more cleanly for logging. ([#270](https://github.com/optimizely/android-sdk/pull/270))
359
416
* There was the possibility to start too many intents for event handling. ([#268](https://github.com/optimizely/android-sdk/pull/268))
360
417
* The proguard rules have been cleaned up and tested. ([#266](https://github.com/optimizely/android-sdk/pull/266))
361
418
* This also includes using Optimizely Java SDK 3.0.1. The Java SDK patch allows for using the Optimizely Android aar with older versions of org.json which are included in the android framework.
@@ -421,7 +478,7 @@ This is the release candidate for the 3.0 SDK, which includes a number of improv
421
478
422
479
### New Features
423
480
* Support for number-valued and boolean-valued attributes. ([#213](https://github.com/optimizely/java-sdk/pull/213))
424
-
* Support for audiences with new match conditions for attribute values, including “substring” and “exists” matches for strings; “greater than”, “less than”, exact, and “exists” matches for numbers; and “exact”, and “exists” matches for booleans.
481
+
* Support for audiences with new match conditions for attribute values, including “substring” and “exists” matches for strings; “greater than”, “less than”, exact, and “exists” matches for numbers; and “exact”, and “exists” matches for booleans.
425
482
* Built-in datafile version compatibility checks so that SDKs will not initialize with a newer datafile it is not compatible with. ([#209](https://github.com/optimizely/java-sdk/pull/209))
426
483
* Audience combinations within an experiment are unofficially supported in this release.
427
484
@@ -435,18 +492,18 @@ This is the release candidate for the 3.0 SDK, which includes a number of improv
435
492
* fix for exact match when dealing with integers and doubles. Created a new Numeric match type.
436
493
* make a copy of attributes passed in to avoid any concurrency problems. Addresses GitHub issue in Optimizely Andriod SDK.
437
494
* allow single root node for audience.conditions, typedAudience.conditions, and Experiment.audienceCombinations.
438
-
495
+
439
496
## 3.0.0-RC
440
497
November 9, 2018
441
498
442
499
This is a RC candidate for major release 3.0.0 with support of new audience match types.
443
500
### New Features
444
501
* Support for number-valued and boolean-valued attributes. ([#213](https://githu
445
502
b.com/optimizely/java-sdk/pull/213))
446
-
* Support for audiences with new match conditions for attribute values, including “substring” and “exists” matches for strings; “greater than”, “less than”, exact, and “exists” matches for numbers; and “exact”, and “exists” matches for booleans.
503
+
* Support for audiences with new match conditions for attribute values, including “substring” and “exists” matches for strings; “greater than”, “less than”, exact, and “exists” matches for numbers; and “exact”, and “exists” matches for booleans.
447
504
* Built-in datafile version compatibility checks so that SDKs will not initialize with a newer datafile it is not compatible with. ([#209](https://github.com/op
448
505
timizely/java-sdk/pull/209))
449
-
* Audience combinations within an experiment are unofficially supported in this
506
+
* Audience combinations within an experiment are unofficially supported in this
450
507
release.
451
508
452
509
### Breaking Changes
@@ -479,7 +536,7 @@ Update credits
479
536
## 2.1.0
480
537
August 2nd, 2018
481
538
482
-
This release is the 2.x general availability launch of the Android SDK, which includes a number of significant new features that are now stable and fully supported. [Feature Management](https://developers.optimizely.com/x/solutions/sdks/reference/?language=android#feature-introduction) is now generally available, which introduces new APIs and which replaces the SDK's variable APIs (`getVariableBoolean`, etc.) with the feature variable APIs (`getFeatureVariableBoolean`, etc.).
539
+
This release is the 2.x general availability launch of the Android SDK, which includes a number of significant new features that are now stable and fully supported. [Feature Management](https://developers.optimizely.com/x/solutions/sdks/reference/?language=android#feature-introduction) is now generally available, which introduces new APIs and which replaces the SDK's variable APIs (`getVariableBoolean`, etc.) with the feature variable APIs (`getFeatureVariableBoolean`, etc.).
483
540
484
541
The primary difference between the new Feature Variable APIs and the older, Variable APIs is that they allow you to link your variables to a Feature (a new type of entity defined in the Optimizely UI) and to a feature flag in your application. This in turn allows you to run Feature Tests and Rollouts on both your Features and Feature Variables. For complete details of the Feature Management APIs, see the "New Features" section below.
485
542
@@ -518,7 +575,7 @@ optimizelyManager.initialize(this, new OptimizelyStartListener() {
518
575
```
519
576
520
577
### Deprecations
521
-
* Version 2.1.0 deprecates the Variable APIs: `getVariableBoolean`, `getVariableFloat`, `getVariableInteger`, and `getVariableString`
578
+
* Version 2.1.0 deprecates the Variable APIs: `getVariableBoolean`, `getVariableFloat`, `getVariableInteger`, and `getVariableString`
522
579
523
580
* Replace use of the Variable APIs with Feature Management's Feature Variable APIs, described above
524
581
@@ -633,7 +690,7 @@ April 25, 2018
633
690
634
691
- Release 1.6.1
635
692
636
-
This is a patch release for 1.6.0 and 1.5.1 Optimizely SDKs.
693
+
This is a patch release for 1.6.0 and 1.5.1 Optimizely SDKs.
@@ -104,11 +104,11 @@ This project includes 5 library modules and a test app.
104
104
105
105
### Android Studio
106
106
107
-
Android Studio is an IDE that wraps gradle. Everything you can do in Android Studio can be done from the command line tools.
107
+
Android Studio is an IDE that wraps gradle. Everything you can do in Android Studio can be done from the command line tools.
108
108
109
109
You can import this project into Android Studio by opening Android Studio and selecting `Import Project` from the first dialog or from the `File` menu. Simply select the project's root `build.gradle` file and Android Studio will do the rest.
110
110
111
-
Tests can be run by right clicking the file in the project pane or by clicking the method name in source and selecting run. You will be prompted to create an AVD or connect a device if one isn't connected.
111
+
Tests can be run by right clicking the file in the project pane or by clicking the method name in source and selecting run. You will be prompted to create an AVD or connect a device if one isn't connected.
0 commit comments