There are several new features and benefits of using the Experience Platform Mobile SDK. These SDKs offer extensions to augment core SDK functionality, server-side configuration, and new Adobe Experience Cloud solution functionality. The following table highlights some of the improvements in the Experience Platform Mobile SDK:
Core features | Experience Platform SDK | 4x SDK |
---|---|---|
Server-side, dynamic configuration | ✔️ | |
Programmatic configuration | ✔️ | ✔️ |
Configuration UI | Launch | Mobile Services |
Partner SDK extensions | ✔️ | |
Lifecycle metrics | ✔️ | ✔️ |
GET/POST postbacks | ✔️ | ✔️ |
Rules & Data Elements | ✔️ |
Solution | Experience Platform SDK | 4x SDK |
---|---|---|
Adobe Analytics | ✔️ | ✔️ |
Adobe Analytics - Media Analytics | ✔️ | ✔️ |
Adobe Analytics - Mobile Services | Messaging and Marketing Links | ✔️ |
Adobe Audience Manager | ✔️ | ✔️ |
Adobe Campaign Classic | ✔️ | |
Adobe Campaign Standard | Push and in-app messaging | Push only |
Adobe Target | ✔️ | ✔️ |
Places Service | ✔️ | |
Adobe Experience Platform Assurance | ✔️ |
If you need access to Experience Platform Launch, see the user permissions document. If you create a web property, you can also create a mobile property. If you do not see the option to create a mobile property, turn off your ad blocker, and refresh the page.
If your apps send data to the same Adobe Analytics report suites, use the same extensions, rules, and data elements. You should group all of these mobile apps into the same property. If your apps send data to different Adobe Analytics report suites or user different extensions per app, create separate mobile properties. If you group your mobile apps into one property, you can also split them into separate properties over time.
To delete a mobile property from Adobe Experience Platform Launch, please read the delete a property tutorial.
{% hint style="warning" %} If you delete a mobile property, you cannot undo this action! {% endhint %}
The Experience Platform SDK is available through Cocoapods and Gradle, and Github. For more information, please read the get the SDK tutorial.
Implementing two the SDKs in your app is not supported.
The Experience Platform SDK migrates the locally stored user contexts from the 4x SDKs. Using both SDKs will cause severe data quality issues. For more information, please read the upgrade to the Experience Platform SDKs tutorial.
For a complete list of supported platforms, please read the latest SDK versions document.
- Android versions 4.0 or later (API levels 14 or later)
- iOS versions 10 or later
- React Native versions 0.44.0 or later
- Flutter versions 1.10.0 or later
- Cordova 9.0.0 or later
- Xamarin - MonoAndroid 9.0+ and Xamarin.iOS 1.0+
- Unity 2019.3.10f1or later
{% tabs %} {% tab title="Android" %} The SDK uses the cache and shared preferences at these locations:
data/data/your.app.package/cache
data/data/your.app.package/shared_prefs {% endtab %}
{% tab title="iOS" %}
The SDK uses NSUserDefaults
using the prefix adobe.*
.
{% endtab %}
{% endtabs %}
Extension | iOS (KB) | Android (KB) |
---|---|---|
Core | 504 | 168 |
Adobe Analytics | 54 | 21 |
Adobe Audience Manager | 40 | 13 |
Adobe Target | 77 | 27 |
Profile | 20 | 8 |
Adobe Campaign Standard | 60 | 30 |
Places | 36 | 20 |
Places Monitor | 10 | 19 |
The size values in the table are provided as indicative estimates, with the following considerations:
- Mobile Core, which includes the Lifecycle, the Identity, and the Signals extensions, is required for all other extensions. The final app size increase can be calculated by adding the Mobile Core size to each of the enabled extensions. For example, the iOS app distribution using the Target and Analytics extensions will have a total size increase of 635 KB. (Core: 504 KB + Analytics: 54 KB + Target: 77 KB).
- The iOS (SDK extension versions 2+) estimates are based on Xcode’s App Thinning size report for one architecture. The Android (SDK extension versions 1+) size estimates listed refer to unsigned apps and do not account for proguarding.
Android developer documentation recommends that you should enable shrinking to remove unused code and resources in your release build to make your APK file as small as possible. For more information, please read the shrink, obfuscate, and optimize your app tutorial. Shrinking is accomplished by using ProGuard. The Experience Platform Mobile SDK for Android comes with default ProGuard rules that are included in the Core AAR
package (see proguard.txt
). You should use this default package when you implement.
Add the following rule to your custom ProGuard rules file, typically labeled proguard-rules.pro
. For more information, please read the shrink, obfuscate, and optimize your app tutorial.
-keep class com.adobe.marketing.mobile.* {
<init>(...);
}
Implementing push notification tracking and measurement with the SDK depends on the Experience Cloud solution being used.
- For the Adobe Campaign Standard extension, please read the Adobe Campaign standard push tracking tutorial.
- For the Adobe Campaign Classic extension, please read the Adobe Campaign Classic push notifications tracking tutorial.
- For the Adobe Analytics - Mobile Services extension, please read the set up tracking for Mobile Services push notifications tutorial.
Lifecycle metrics are out-of-the-box metrics that are automatically collected when the SDK is first implemented in your app. For more information, please read the documentation on Lifecycle metrics.
See the frequently asked questions for Analytics.
Yes, offline tracking is supported by default when sending XDM Experience events since these events have a required timestamp, and there is no separate setting for this as it used to be in the Adobe Analytics extension. The events are backed up in the persistence layer and then sent to the Edge Network in current session if possible, or queued until the next session when a network connection is available.
- Visit the SDK community forum to ask questions
- Contact Adobe Experience Cloud customer care for immediate assistance
You may encounter this error when using the AEP SDK for a tvOS app target, with the following message "'X' is unavailable in application extension for tvOS". This behavior is unexpected for tvOS targets and it seems to be an issue in Xcode where it apples additional checks for tvOSApplicationExtension API compatibility. Until this issue is resolved in the future Xcode versions, a workaround is to mark the classes or functions with the attribute: @available(tvOSApplicationExtension, unavailable) to suppress the error as in the examples below:
@available(tvOSApplicationExtension, unavailable)
class ErrorThrowingClass {
...
}
@available(tvOSApplicationExtension, unavailable)
func errorThrowingFunction() {
...
}