Mobile Core API reference
clearUpdatedConfiguration
Programmatic updates made to the configuration can be cleared via the clearUpdatedConfiguration
API. For more information about configuration in Mobile Core, please refer to the Configuration API reference.
collectMessageInfo
User interactions with local or push notifications can be tracked by invoking the collectMessageInfo
API. Please refer to this page for more information about tracking local and push notification message interactions.
collectLaunchInfo
You can provide the user information to the SDK from various launch points in your application.
If the Adobe Analytics extension is enabled in your SDK, collecting this launch data results in an Analytics request being sent. Other extensions in the SDK might use the collected data, for example, as a rule condition for an In-App Message.
The Android SDK automatically registers an Application.ActivityLifecycleCallbacks
and listens for onActivityResumed
. When an activity is resumed, SDK collects the data from the activity. Currently, it is being used in the following scenarios:
- Tracking deep link clickthrough
- Tracking push message clickthrough
- Tracking Local Notification clickthrough
Swift
This method should be called to support the following use cases:
- Tracking deep link clickthroughs
- From
application(_:didFinishLaunchingWithOptions:)
- Extract
userInfo
fromurl: UIApplication.LaunchOptionsKey
- From
- Tracking push message clickthrough
- From
application(_:didReceiveRemoteNotification:fetchCompletionHandler:)
- From
Syntax
Copied to your clipboardpublic static func collectLaunchInfo(_ userInfo: [String: Any])
Example
Copied to your clipboardMobileCore.collectLaunchInfo(userInfo)
Objective-C
This method should be called to support the following use cases:
- Tracking deep link clickthroughs
- From
application:didFinishLaunchingWithOptions
- Extract
userInfo
fromUIApplicationLaunchOptionsURLKey
- Tracking push message clickthrough
- From
application:didReceiveRemoteNotification:fetchCompletionHandler:
- From
Syntax
Copied to your clipboard@objc(collectLaunchInfo:)public static func collectLaunchInfo(_ userInfo: [String: Any])
Example
Copied to your clipboard[AEPMobileCore collectLaunchInfo:launchOptions];
The Android SDK automatically registers an Application.ActivityLifecycleCallbacks
and listens for onActivityResumed
. When an activity is resumed, SDK collects the data from the activity. Currently, it is being used in the following scenarios:
- Tracking deep link clickthrough
- Tracking push message clickthrough
- Tracking Local Notification clickthrough
Swift
This method should be called to support the following use cases:
- Tracking deep link clickthroughs
- From
application(_:didFinishLaunchingWithOptions:)
- Extract
userInfo
fromurl: UIApplication.LaunchOptionsKey
- From
- Tracking push message clickthrough
- From
application(_:didReceiveRemoteNotification:fetchCompletionHandler:)
- From
Syntax
Copied to your clipboardpublic static func collectLaunchInfo(_ userInfo: [String: Any])
Example
Copied to your clipboardMobileCore.collectLaunchInfo(userInfo)
Objective-C
This method should be called to support the following use cases:
- Tracking deep link clickthroughs
- From
application:didFinishLaunchingWithOptions
- Extract
userInfo
fromUIApplicationLaunchOptionsURLKey
- Tracking push message clickthrough
- From
application:didReceiveRemoteNotification:fetchCompletionHandler:
- From
Syntax
Copied to your clipboard@objc(collectLaunchInfo:)public static func collectLaunchInfo(_ userInfo: [String: Any])
Example
Copied to your clipboard[AEPMobileCore collectLaunchInfo:launchOptions];
collectPii
The collectPii
method lets the SDK to collect sensitive or personally identifiable information (PII).
Although this method enables the collection of sensitive data, no data is sent to any Adobe or other third-party endpoints. To send the data to an endpoint, use a PII type postback.
Java
Syntax
Copied to your clipboardpublic static void collectPii(@NonNull final Map<String, String> data)
Example
Copied to your clipboardMap<String, String> data = new HashMap<String, String>();data.put("firstname", "customer");//The rule to trigger a PII needs to be setup for this call//to result in a network sendMobileCore.collectPii(data);
Swift
Syntax
Copied to your clipboardpublic static func collectPii(_ data: [String: Any])
Example
Copied to your clipboardMobileCore.collectPii(["key1" : "value1","key2" : "value2"]);
Objective-C
Syntax
Copied to your clipboard@objc(collectPii:)public static func collectPii(_ data: [String: Any])
Example
Copied to your clipboard[AEPMobileCore collectPii:data:@{@"key1" : @"value1",@"key2" : @"value2"}];
Java
Syntax
Copied to your clipboardpublic static void collectPii(@NonNull final Map<String, String> data)
Example
Copied to your clipboardMap<String, String> data = new HashMap<String, String>();data.put("firstname", "customer");//The rule to trigger a PII needs to be setup for this call//to result in a network sendMobileCore.collectPii(data);
Swift
Syntax
Copied to your clipboardpublic static func collectPii(_ data: [String: Any])
Example
Copied to your clipboardMobileCore.collectPii(["key1" : "value1","key2" : "value2"]);
Objective-C
Syntax
Copied to your clipboard@objc(collectPii:)public static func collectPii(_ data: [String: Any])
Example
Copied to your clipboard[AEPMobileCore collectPii:data:@{@"key1" : @"value1",@"key2" : @"value2"}];
configureWithAppId
The configureWithAppId
API can be used to download the configuration for the provided app ID and apply the configuration to the current session. For more information about configuration in Mobile Core, please refer to the Configuration API reference.
configureWithFileInAssets
You can bundle a JSON configuration file in the app's assets folder and use configureWithFileInAssets
API to replace or complement the configuration that was downloaded using the configureWithAppId
API. For more information about configuration in Mobile Core, please refer to the Configuration API reference.
configureWithFileInPath
You can bundle a JSON configuration file in you app package and use configureWithFileInPath
API to replace or complement the configuration that was downloaded using the configureWithAppId
API. For more information about configuration in Mobile Core, please refer to the Configuration API reference.
dispatch / dispatchEvent
This method can be used to send an event through the Mobile Core for other extensions to consume.
Java
Syntax
Copied to your clipboardpublic static void dispatchEvent(@NonNull final Event event)
Example
Copied to your clipboardfinal Map<String, Object> eventData = new HashMap<>();eventData.put("sampleKey", "sampleValue");final Event sampleEvent = new Event.Builder("SampleEventName", "SampleEventType", "SampleEventSource").setEventData(eventData).build();MobileCore.dispatchEvent(sampleEvent);
Swift
Syntax
Copied to your clipboardpublic static func dispatch(event: Event)
Example
Copied to your clipboardlet event = Event(name: "Sample Event Name", type: EventType.custom, source: EventType.custom, data: ["sampleKey": "sampleValue"])MobileCore.dispatch(event: event)
Objective-C
Syntax
Copied to your clipboard@objc(dispatch:)public static func dispatch(event: Event)
Example
Copied to your clipboardAEPEvent *event = [[AEPEvent alloc] initWithName:@"Sample Event Name" type:AEPEventType.custom source:AEPEventType.custom data:@{@"sampleKey": @"sampleValue"}];[AEPMobileCore dispatch:event];
Java
Syntax
Copied to your clipboardpublic static void dispatchEvent(@NonNull final Event event)
Example
Copied to your clipboardfinal Map<String, Object> eventData = new HashMap<>();eventData.put("sampleKey", "sampleValue");final Event sampleEvent = new Event.Builder("SampleEventName", "SampleEventType", "SampleEventSource").setEventData(eventData).build();MobileCore.dispatchEvent(sampleEvent);
Swift
Syntax
Copied to your clipboardpublic static func dispatch(event: Event)
Example
Copied to your clipboardlet event = Event(name: "Sample Event Name", type: EventType.custom, source: EventType.custom, data: ["sampleKey": "sampleValue"])MobileCore.dispatch(event: event)
Objective-C
Syntax
Copied to your clipboard@objc(dispatch:)public static func dispatch(event: Event)
Example
Copied to your clipboardAEPEvent *event = [[AEPEvent alloc] initWithName:@"Sample Event Name" type:AEPEventType.custom source:AEPEventType.custom data:@{@"sampleKey": @"sampleValue"}];[AEPMobileCore dispatch:event];
dispatch / dispatchEventWithResponseCallback
This method can be used to send an event through the Mobile Core for other extensions to consume. The provided event is used as a trigger and in return a response event is provided as a callback. The callback is invoked with a null event if the response could not be provided within the given timeout.
Java
Syntax
Copied to your clipboardpublic static void dispatchEventWithResponseCallback(@NonNull final Event event, final long timeoutMS, @NonNull final AdobeCallbackWithError<Event> responseCallback)
Example
Copied to your clipboardfinal Map<String, Object> eventData = new HashMap<>();eventData.put("sampleKey", "sampleValue");final Event sampleEvent = new Event.Builder("My Event", "SampleEventType", "SampleEventSource").setEventData(eventData).build();MobileCore.dispatchEventWithResponseCallback(sampleEvent, 5000L, new AdobeCallbackWithError<Event>() {// handle response event});
Swift
Syntax
Copied to your clipboardpublic static func dispatch(event: Event, timeout: TimeInterval = 1, responseCallback: @escaping (Event?) -> Void)
Example
Copied to your clipboardlet event = Event(name: "My Event", type: EventType.custom, source: EventType.custom, data: ["sampleKey": "sampleValue"])MobileCore.dispatch(event: event) { (responseEvent) in// handle responseEvent}
Objective-C
Syntax
Copied to your clipboard@objc(dispatch:timeout:responseCallback:)public static func dispatch(event: Event, timeout: TimeInterval = 1, responseCallback: @escaping (Event?) -> Void)
Example
Copied to your clipboardAEPEvent *event = [[AEPEvent alloc] initWithName:@"My Event" type:AEPEventType.custom source:AEPEventType.custom data:@{@"sampleKey": @"sampleValue"}];[AEPMobileCore dispatch:event responseCallback:^(AEPEvent * _Nullable responseEvent) {// handle responseEvent}];
Java
Syntax
Copied to your clipboardpublic static void dispatchEventWithResponseCallback(@NonNull final Event event, final long timeoutMS, @NonNull final AdobeCallbackWithError<Event> responseCallback)
Example
Copied to your clipboardfinal Map<String, Object> eventData = new HashMap<>();eventData.put("sampleKey", "sampleValue");final Event sampleEvent = new Event.Builder("My Event", "SampleEventType", "SampleEventSource").setEventData(eventData).build();MobileCore.dispatchEventWithResponseCallback(sampleEvent, 5000L, new AdobeCallbackWithError<Event>() {// handle response event});
Swift
Syntax
Copied to your clipboardpublic static func dispatch(event: Event, timeout: TimeInterval = 1, responseCallback: @escaping (Event?) -> Void)
Example
Copied to your clipboardlet event = Event(name: "My Event", type: EventType.custom, source: EventType.custom, data: ["sampleKey": "sampleValue"])MobileCore.dispatch(event: event) { (responseEvent) in// handle responseEvent}
Objective-C
Syntax
Copied to your clipboard@objc(dispatch:timeout:responseCallback:)public static func dispatch(event: Event, timeout: TimeInterval = 1, responseCallback: @escaping (Event?) -> Void)
Example
Copied to your clipboardAEPEvent *event = [[AEPEvent alloc] initWithName:@"My Event" type:AEPEventType.custom source:AEPEventType.custom data:@{@"sampleKey": @"sampleValue"}];[AEPMobileCore dispatch:event responseCallback:^(AEPEvent * _Nullable responseEvent) {// handle responseEvent}];
getApplication
You can use the getApplication
method to get the previously set Android Application
instance. The Application
instance is mainly provided for third-party extensions.
Android
Java
MobileCore.getApplication
will return null
if the Application
object was destroyed or if MobileCore.setApplication
was not previously called.
Syntax
Copied to your clipboard@Nullablepublic static Application getApplication()
Example
Copied to your clipboardApplication app = MobileCore.getApplication();if (app != null) {...}
Java
MobileCore.getApplication
will return null
if the Application
object was destroyed or if MobileCore.setApplication
was not previously called.
Syntax
Copied to your clipboard@Nullablepublic static Application getApplication()
Example
Copied to your clipboardApplication app = MobileCore.getApplication();if (app != null) {...}
getLogLevel
This API gets the current log level being used in the SDK.
The logLevel getter has been deprecated. To get the log level in the Swift AEP 3.x SDKs, please use Log.logFilter
instead.
Swift
Syntax
Copied to your clipboardpublic static var logFilter: LogLevel
This variable is part of the Log
class within AEPServices
.
Example
Copied to your clipboardvar logLevel = Log.logFilter
Objective-C
Syntax
Copied to your clipboard@objc public static var logFilter: LogLevel
Example
Copied to your clipboardAEPLogLevel logLevel = [AEPLog logFilter];
Java
Syntax
Copied to your clipboard@NonNullpublic static LoggingMode getLogLevel()
Example
Copied to your clipboardLoggingMode mode = MobileCore.getLogLevel();
The logLevel getter has been deprecated. To get the log level in the Swift AEP 3.x SDKs, please use Log.logFilter
instead.
Swift
Syntax
Copied to your clipboardpublic static var logFilter: LogLevel
This variable is part of the Log
class within AEPServices
.
Example
Copied to your clipboardvar logLevel = Log.logFilter
Objective-C
Syntax
Copied to your clipboard@objc public static var logFilter: LogLevel
Example
Copied to your clipboardAEPLogLevel logLevel = [AEPLog logFilter];
getPrivacyStatus
You can use the getPrivacyStatus
API to retrieve the current privacy status. For more information about privacy in Mobile Core, please see Privacy and GDPR
getSdkIdentities
The following SDK identities are locally stored:
- Company Context - IMS Org IDs
- Experience Cloud ID (MID)
- User IDs
- Integration codes (ADID, push IDs)
- Data source IDs (DPID, DPUUID)
- Analytics IDs (AVID, AID, VID, and associated RSIDs)
- Target legacy IDs (TNTID, TNT3rdpartyID)
- Audience Manager ID (UUID)
To retrieve data as a JSON string from the SDKs and send this data to your servers, use the getSdkIdentities
method.
You must call the API below and retrieve identities stored in the SDK, before the user opts out.
This API does not include the identities stored in the Edge Identity extension. To retrieve the identities from the Edge Identity extension, use getIdentities.
Java
Syntax
Copied to your clipboardvoid getSdkIdentities(@NonNull AdobeCallback<String> callback);
- callback is invoked with the SDK identities as a JSON string. If an instance of
AdobeCallbackWithError
is provided, and you are fetching the attributes from the Mobile SDK, the timeout value is 5000ms. If the operation times out or an unexpected error occurs, thefail
method is called with the appropriateAdobeError
.
Example
Copied to your clipboardMobileCore.getSdkIdentities(new AdobeCallback<String>() {@Overridepublic void call(String value) {// handle the json string}});
Swift
Syntax
Copied to your clipboardstatic func getSdkIdentities(completion: @escaping (String?, Error?) -> Void)
- callback is invoked with the SDK identities as a JSON string.
- completionHandler is invoked with the SDK identities as a JSON string, or error if an unexpected error occurs or the request times out. The default timeout is 1000ms.
Example
Copied to your clipboardMobileCore.getSdkIdentities { (content, error) in// handle completion}
Objective-C
Syntax
Copied to your clipboard@objc(getSdkIdentities:)static func getSdkIdentities(completion: @escaping (String?, Error?) -> Void)
- callback is invoked with the SDK identities as a JSON string.
- completionHandler is invoked with the SDK identities as a JSON string, or error if an unexpected error occurs or the request times out. The default timeout is 1000ms.
Example
Copied to your clipboard[AEPMobileCore getSdkIdentities:^(NSString * _Nullable content, NSError * _Nullable error) {if (error) {// handle error here} else {// handle the retrieved identities}}];
Java
Syntax
Copied to your clipboardvoid getSdkIdentities(@NonNull AdobeCallback<String> callback);
- callback is invoked with the SDK identities as a JSON string. If an instance of
AdobeCallbackWithError
is provided, and you are fetching the attributes from the Mobile SDK, the timeout value is 5000ms. If the operation times out or an unexpected error occurs, thefail
method is called with the appropriateAdobeError
.
Example
Copied to your clipboardMobileCore.getSdkIdentities(new AdobeCallback<String>() {@Overridepublic void call(String value) {// handle the json string}});
Swift
Syntax
Copied to your clipboardstatic func getSdkIdentities(completion: @escaping (String?, Error?) -> Void)
- callback is invoked with the SDK identities as a JSON string.
- completionHandler is invoked with the SDK identities as a JSON string, or error if an unexpected error occurs or the request times out. The default timeout is 1000ms.
Example
Copied to your clipboardMobileCore.getSdkIdentities { (content, error) in// handle completion}
Objective-C
Syntax
Copied to your clipboard@objc(getSdkIdentities:)static func getSdkIdentities(completion: @escaping (String?, Error?) -> Void)
- callback is invoked with the SDK identities as a JSON string.
- completionHandler is invoked with the SDK identities as a JSON string, or error if an unexpected error occurs or the request times out. The default timeout is 1000ms.
Example
Copied to your clipboard[AEPMobileCore getSdkIdentities:^(NSString * _Nullable content, NSError * _Nullable error) {if (error) {// handle error here} else {// handle the retrieved identities}}];
log
This is the API used to log from the SDK.
This API was deprecated in v2.0.0 of the Mobile Core extension. Use the com.adobe.marketing.mobile.services.Log
instead.
Java
The MobileCore
logging APIs use the android.util.Log
APIs to log messages to Android. Based on the LoggingMode
that is passed to MobileCore.log()
, the following Android method is called:
LoggingMode.VERBOSE
usesandroid.util.Log.v
LoggingMode.DEBUG
usesandroid.util.Log.d
LoggingMode.WARNING
usesandroid.util.Log.w
LoggingMode.ERROR
usesandroid.util.Log.e
All log messages from the Adobe Experience SDK to Android use the same log tag of AdobeExperienceSDK
. For example, if logging an error message is using MobileCore.log()
, the call to android.util.Log.e
looks like Log.e("AdobeExperienceSDK", tag + " - " + message)
.
Syntax
Copied to your clipboardpublic static void log(final LoggingMode mode, final String tag, final String message)
Example
Copied to your clipboardMobileCore.log(LoggingMode.DEBUG, "MyClassName", "Provided data was null");
Output
Copied to your clipboardD/AdobeExperienceSDK: MyClassName - Provided data was null
Swift
The log messages from the Adobe Experience SDK are printed to the Apple System Log facility and use a common format that contains the tag AEP SDK
. For example, if logging an error message using Log.error(label:_ message:_)
, the printed output looks like [AEP SDK ERROR <label>]: message
.
Syntax
Copied to your clipboardpublic static func trace(label: String, _ message: String) {public static func debug(label: String, _ message: String)public static func warning(label: String, _ message: String) {public static func error(label: String, _ message: String) {
Example
Copied to your clipboardLog.trace(label: "testLabel", "Test message")Log.debug(label: "testLabel", "Test message")Log.warning(label: "testLabel", "Test message")Log.error(label: "testLabel", "Test message")
Objective-C
The log messages from the Adobe Experience SDK are printed to the Apple System Log facility and use a common format that contains the tag AEP SDK
. For example, if logging an error message using [AEPLog errorWithLabel: _ message:_]
, the printed output looks like [AEP SDK ERROR <label>]: message
.
Syntax
Copied to your clipboard@objc(traceWithLabel:message:)public static func trace(label: String, _ message: String)@objc(debugWithLabel:message:)public static func debug(label: String, _ message: String)@objc(warningWithLabel:message:)public static func warning(label: String, _ message: String)@objc(errorWithLabel:message:)public static func error(label: String, _ message: String)
Example
Copied to your clipboard[AEPLog traceWithLabel:@"testLabel" message:@"testMessage"];[AEPLog debugWithLabel:@"testLabel" message:@"testMessage"];[AEPLog warningWithLabel:@"testLabel" message:@"testMessage"];[AEPLog errorWithLabel:@"testLabel" message:@"testMessage"];
This API was deprecated in v2.0.0 of the Mobile Core extension. Use the com.adobe.marketing.mobile.services.Log
instead.
Java
The MobileCore
logging APIs use the android.util.Log
APIs to log messages to Android. Based on the LoggingMode
that is passed to MobileCore.log()
, the following Android method is called:
LoggingMode.VERBOSE
usesandroid.util.Log.v
LoggingMode.DEBUG
usesandroid.util.Log.d
LoggingMode.WARNING
usesandroid.util.Log.w
LoggingMode.ERROR
usesandroid.util.Log.e
All log messages from the Adobe Experience SDK to Android use the same log tag of AdobeExperienceSDK
. For example, if logging an error message is using MobileCore.log()
, the call to android.util.Log.e
looks like Log.e("AdobeExperienceSDK", tag + " - " + message)
.
Syntax
Copied to your clipboardpublic static void log(final LoggingMode mode, final String tag, final String message)
Example
Copied to your clipboardMobileCore.log(LoggingMode.DEBUG, "MyClassName", "Provided data was null");
Output
Copied to your clipboardD/AdobeExperienceSDK: MyClassName - Provided data was null
Swift
The log messages from the Adobe Experience SDK are printed to the Apple System Log facility and use a common format that contains the tag AEP SDK
. For example, if logging an error message using Log.error(label:_ message:_)
, the printed output looks like [AEP SDK ERROR <label>]: message
.
Syntax
Copied to your clipboardpublic static func trace(label: String, _ message: String) {public static func debug(label: String, _ message: String)public static func warning(label: String, _ message: String) {public static func error(label: String, _ message: String) {
Example
Copied to your clipboardLog.trace(label: "testLabel", "Test message")Log.debug(label: "testLabel", "Test message")Log.warning(label: "testLabel", "Test message")Log.error(label: "testLabel", "Test message")
Objective-C
The log messages from the Adobe Experience SDK are printed to the Apple System Log facility and use a common format that contains the tag AEP SDK
. For example, if logging an error message using [AEPLog errorWithLabel: _ message:_]
, the printed output looks like [AEP SDK ERROR <label>]: message
.
Syntax
Copied to your clipboard@objc(traceWithLabel:message:)public static func trace(label: String, _ message: String)@objc(debugWithLabel:message:)public static func debug(label: String, _ message: String)@objc(warningWithLabel:message:)public static func warning(label: String, _ message: String)@objc(errorWithLabel:message:)public static func error(label: String, _ message: String)
Example
Copied to your clipboard[AEPLog traceWithLabel:@"testLabel" message:@"testMessage"];[AEPLog debugWithLabel:@"testLabel" message:@"testMessage"];[AEPLog warningWithLabel:@"testLabel" message:@"testMessage"];[AEPLog errorWithLabel:@"testLabel" message:@"testMessage"];
registerEventListener
An EventListener can be registered with MobileCore to be notified when Events matching a type and source are dispatched.
Java
Syntax
Copied to your clipboardpublic static void registerEventListener(@NonNull final String eventType, @NonNull final String eventSource, @NonNull final AdobeCallback<Event> callback)
Example
Copied to your clipboardMobileCore.registerEventListener(EventType.CONFIGURATION, EventSource.RESPONSE_CONTENT, new AdobeCallback<Event>() {@Overridepublic void call(Event value) {// handle event}});
Swift
Syntax
Copied to your clipboardpublic static func registerEventListener(type: String, source: String, listener: @escaping EventListener)
Example
Copied to your clipboardMobileCore.registerEventListener(type: EventType.configuration, source: EventSource.responseContent, listener: { event in// handle event})
Objective-C
Syntax
Copied to your clipboard@objc(registerEventListenerWithType:source:listener:)public static func registerEventListener(type: String, source: String, listener: @escaping EventListener)
Example
Copied to your clipboard[AEPMobileCore registerEventListenerWithType: type source: source listener:^(AEPEvent * _Nonnull event) {// handle event}];
Java
Syntax
Copied to your clipboardpublic static void registerEventListener(@NonNull final String eventType, @NonNull final String eventSource, @NonNull final AdobeCallback<Event> callback)
Example
Copied to your clipboardMobileCore.registerEventListener(EventType.CONFIGURATION, EventSource.RESPONSE_CONTENT, new AdobeCallback<Event>() {@Overridepublic void call(Event value) {// handle event}});
Swift
Syntax
Copied to your clipboardpublic static func registerEventListener(type: String, source: String, listener: @escaping EventListener)
Example
Copied to your clipboardMobileCore.registerEventListener(type: EventType.configuration, source: EventSource.responseContent, listener: { event in// handle event})
Objective-C
Syntax
Copied to your clipboard@objc(registerEventListenerWithType:source:listener:)public static func registerEventListener(type: String, source: String, listener: @escaping EventListener)
Example
Copied to your clipboard[AEPMobileCore registerEventListenerWithType: type source: source listener:^(AEPEvent * _Nonnull event) {// handle event}];
registerExtension
Extensions can be incrementally registered with Mobile Core using the registerExtension
API.
This API has been deprecated starting in v2.0.0 and removed in v3.0.0 of Mobile Core extension.
Use registerExtensions to register desired extensions and boot up the SDK for event processing. Calling MobileCore.start()
API is no longer required when using MobileCore.registerExtensions()
.
Java
Syntax
Copied to your clipboardpublic static boolean registerExtension(@NonNull final Class<? extends Extension> extensionClass, @Nullable final ExtensionErrorCallback<ExtensionError> errorCallback)
Example
Copied to your clipboardMobileCore.registerExtension(Signal.EXTENSION, errorCallback -> {// handle callback});
Swift
Syntax
Copied to your clipboardpublic static func registerExtension(_ exten: Extension.Type, _ completion: (() -> Void)? = nil)
Example
Copied to your clipboardMobileCore.registerExtension(Lifecycle.self) {// handle completion}
Objective-C
Syntax
Copied to your clipboard@objc(registerExtension:completion:)public static func registerExtension(_ exten: Extension.Type, _ completion: (() -> Void)? = nil)
Example
Copied to your clipboard[AEPMobileCore registerExtension:AEPMobileLifecycle.class completion:^{// handle completion}];
This API has been deprecated starting in v2.0.0 and removed in v3.0.0 of Mobile Core extension.
Use registerExtensions to register desired extensions and boot up the SDK for event processing. Calling MobileCore.start()
API is no longer required when using MobileCore.registerExtensions()
.
Java
Syntax
Copied to your clipboardpublic static boolean registerExtension(@NonNull final Class<? extends Extension> extensionClass, @Nullable final ExtensionErrorCallback<ExtensionError> errorCallback)
Example
Copied to your clipboardMobileCore.registerExtension(Signal.EXTENSION, errorCallback -> {// handle callback});
Swift
Syntax
Copied to your clipboardpublic static func registerExtension(_ exten: Extension.Type, _ completion: (() -> Void)? = nil)
Example
Copied to your clipboardMobileCore.registerExtension(Lifecycle.self) {// handle completion}
Objective-C
Syntax
Copied to your clipboard@objc(registerExtension:completion:)public static func registerExtension(_ exten: Extension.Type, _ completion: (() -> Void)? = nil)
Example
Copied to your clipboard[AEPMobileCore registerExtension:AEPMobileLifecycle.class completion:^{// handle completion}];
registerExtensions
Extensions are registered with Mobile Core so that they can dispatch and listen for events.
This API can be used to register desired extensions and boot up the SDK for event processing. Calling MobileCore.start()
API is deprecated starting Mobile Core v2.0.0 and is no longer required when using MobileCore.registerExtensions()
.
Extension registration is mandatory. Attempting to make extension-specific API calls without registering the extension will lead to undefined behavior.
The following code snippets demonstrate how Lifecycle, Signal, Profile, Edge, and other extensions are imported and registered.
Java
Syntax
Copied to your clipboardpublic static void registerExtensions(@NonNull final List<Class<? extends Extension>> extensions, @Nullable final AdobeCallback<?> completionCallback)
Example
Copied to your clipboardimport com.adobe.marketing.mobile.AdobeCallback;import com.adobe.marketing.mobile.Edge;import com.adobe.marketing.mobile.edge.consent.Consent;import com.adobe.marketing.mobile.edge.identity.Identity;import com.adobe.marketing.mobile.Lifecycle;import com.adobe.marketing.mobile.LoggingMode;import com.adobe.marketing.mobile.MobileCore;import com.adobe.marketing.mobile.Signal;import com.adobe.marketing.mobile.UserProfile;...import android.app.Application;...public class MainApp extends Application {// Set up the preferred Environment File ID from your mobile property configured in Data Collection UIprivate static final String ENVIRONMENT_FILE_ID = "YOUR_ENVIRONMENT_FILE_ID";@Overridepublic void onCreate() {super.onCreate();MobileCore.setApplication(this);MobileCore.configureWithAppID(ENVIRONMENT_FILE_ID);List<Class<? extends Extension>> extensions = Arrays.asList(Lifecycle.EXTENSION,Signal.EXTENSION,UserProfile.EXTENSIONEdge.EXTENSION,Consent.EXTENSION,EdgeIdentity.EXTENSION);MobileCore.registerExtensions(extensions, o -> {Log.d(LOG_TAG, "AEP Mobile SDK is initialized");});}}
Swift
Syntax
Copied to your clipboardpublic static func registerExtensions(_ extensions: [NSObject.Type], _ completion: (() -> Void)? = nil)
Example
Copied to your clipboard// AppDelegate.swiftfunc application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {MobileCore.registerExtensions([Signal.self, Lifecycle.self, UserProfile.self, Edge.self, AEPEdgeIdentity.Identity.self, Consent.self], {MobileCore.configureWith(appId: "yourAppId")})...}
Objective-C
Syntax
Copied to your clipboard@objc(registerExtensions:completion:)public static func registerExtensions(_ extensions: [NSObject.Type], _ completion: (() -> Void)? = nil)
Example
Copied to your clipboard// AppDelegate.m- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {[AEPMobileCore registerExtensions:@[AEPMobileSignal.class, AEPMobileLifecycle.class, AEPMobileUserProfile.class, AEPMobileEdge.class, AEPMobileEdgeIdentity.class, AEPMobileEdgeConsent.class] completion:^{[AEPMobileCore configureWithAppId: @"yourAppId"];}];...}
Java
Syntax
Copied to your clipboardpublic static void registerExtensions(@NonNull final List<Class<? extends Extension>> extensions, @Nullable final AdobeCallback<?> completionCallback)
Example
Copied to your clipboardimport com.adobe.marketing.mobile.AdobeCallback;import com.adobe.marketing.mobile.Edge;import com.adobe.marketing.mobile.edge.consent.Consent;import com.adobe.marketing.mobile.edge.identity.Identity;import com.adobe.marketing.mobile.Lifecycle;import com.adobe.marketing.mobile.LoggingMode;import com.adobe.marketing.mobile.MobileCore;import com.adobe.marketing.mobile.Signal;import com.adobe.marketing.mobile.UserProfile;...import android.app.Application;...public class MainApp extends Application {// Set up the preferred Environment File ID from your mobile property configured in Data Collection UIprivate static final String ENVIRONMENT_FILE_ID = "YOUR_ENVIRONMENT_FILE_ID";@Overridepublic void onCreate() {super.onCreate();MobileCore.setApplication(this);MobileCore.configureWithAppID(ENVIRONMENT_FILE_ID);List<Class<? extends Extension>> extensions = Arrays.asList(Lifecycle.EXTENSION,Signal.EXTENSION,UserProfile.EXTENSIONEdge.EXTENSION,Consent.EXTENSION,EdgeIdentity.EXTENSION);MobileCore.registerExtensions(extensions, o -> {Log.d(LOG_TAG, "AEP Mobile SDK is initialized");});}}
Swift
Syntax
Copied to your clipboardpublic static func registerExtensions(_ extensions: [NSObject.Type], _ completion: (() -> Void)? = nil)
Example
Copied to your clipboard// AppDelegate.swiftfunc application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {MobileCore.registerExtensions([Signal.self, Lifecycle.self, UserProfile.self, Edge.self, AEPEdgeIdentity.Identity.self, Consent.self], {MobileCore.configureWith(appId: "yourAppId")})...}
Objective-C
Syntax
Copied to your clipboard@objc(registerExtensions:completion:)public static func registerExtensions(_ extensions: [NSObject.Type], _ completion: (() -> Void)? = nil)
Example
Copied to your clipboard// AppDelegate.m- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {[AEPMobileCore registerExtensions:@[AEPMobileSignal.class, AEPMobileLifecycle.class, AEPMobileUserProfile.class, AEPMobileEdge.class, AEPMobileEdgeIdentity.class, AEPMobileEdgeConsent.class] completion:^{[AEPMobileCore configureWithAppId: @"yourAppId"];}];...}
resetIdentities
The resetIdentities
method requests that each extension resets the identities it owns and each extension responds to this request uniquely. For more details, check the resetIdentities
API reference on each of the extensions you use.
setAdvertisingIdentifier
The advertising ID is preserved between app upgrades, is saved and restored during the standard application backup process, available via Signals, and is removed at uninstall.
For more information about identity in Mobile Core, please read the documentation on the identity APIs.
setAppGroup
You can use the setAppGroup
method to set the app group, which is used to share user defaults and files among the containing app and the extension apps. Please note that this method is only supported on iOS versions of Mobile Core.
This API must be called in AppDidFinishLaunching
and before any other interactions with the Adobe Experience SDK have happened. Only the first call to this function will have any effect.
iOS
Swift
Syntax
Copied to your clipboardpublic static func setAppGroup(_ group: String?)
Example
Copied to your clipboardMobileCore.setAppGroup("appGroupId")
Objective-C
Syntax
Copied to your clipboard@objc(setAppGroup:)public static func setAppGroup(_ group: String?)
Example
Copied to your clipboard[AEPMobileCore setAppGroup:@"app-group-id"];
Swift
Syntax
Copied to your clipboardpublic static func setAppGroup(_ group: String?)
Example
Copied to your clipboardMobileCore.setAppGroup("appGroupId")
Objective-C
Syntax
Copied to your clipboard@objc(setAppGroup:)public static func setAppGroup(_ group: String?)
Example
Copied to your clipboard[AEPMobileCore setAppGroup:@"app-group-id"];
setApplication
When building Android applications, the android.app.Application
reference must be passed to Mobile SDK, which allows Mobile SDK to access the android.app.Context
and monitor the lifecycle of the Android application.
Android applications must call MobileCore.setApplication()
before calling any other Mobile SDK API.
You can use the setApplication
method to pass the Android Application
instance to Mobile SDK. Please note that this method is only supported on Android versions of Mobile Core.
Android
Java
Syntax
Copied to your clipboardpublic static void setApplication(@NonNull final Application app)
Example
Copied to your clipboardpublic class CoreApp extends Application {@Overridepublic void onCreate() {super.onCreate();MobileCore.setApplication(this);List<Class<? extends Extension>> extensions = Arrays.asList(Lifecycle.EXTENSION, Signal.EXTENSION, UserProfile.EXTENSION...);MobileCore.registerExtensions(extensions, o -> {Log.d(LOG_TAG, "AEP Mobile SDK is initialized");});}}
Java
Syntax
Copied to your clipboardpublic static void setApplication(@NonNull final Application app)
Example
Copied to your clipboardpublic class CoreApp extends Application {@Overridepublic void onCreate() {super.onCreate();MobileCore.setApplication(this);List<Class<? extends Extension>> extensions = Arrays.asList(Lifecycle.EXTENSION, Signal.EXTENSION, UserProfile.EXTENSION...);MobileCore.registerExtensions(extensions, o -> {Log.d(LOG_TAG, "AEP Mobile SDK is initialized");});}}
setLogLevel
The logging APIs allow log messages to be tagged and filtered with the Mobile SDK log messages. This allows application developers to filter the logged messages based on the current logging mode.
Application developers can use the setLogLevel
method to filter the log messages that are coming from the Mobile SDK.
From least to most verbose, the order of Mobile SDK logging modes is as follows:
- ERROR
- WARNING
- DEBUG
- VERBOSE / TRACE
When debugging on iOS, you can use LogLevel.verbose
to enable all the logging messages that are coming from Mobile SDK and partner extensions. Similarly, on Android, you can use LoggingMode.VERBOSE
to enable all the logging messages that are coming from Mobile SDK and partner extensions.
In a production application, you should use a less verbose logging mode, such as error-level logging.
By default, Mobile SDK logging mode is set to LoggingMode.ERROR
for Android and LogLevel.error
on iOS.
On Android, Mobile SDK uses the android.util.Log
class to log messages.
On iOS, Mobile SDK uses NSLog
to messages to Apple System Log facility.
Swift
Syntax
Copied to your clipboardpublic static func setLogLevel(_ level: LogLevel)
Example
Copied to your clipboardimport AEPCoreimport AEPServicesMobileCore.setLogLevel(.trace)
Objective-C
Syntax
Copied to your clipboard@objc(setLogLevel:)public static func setLogLevel(_ level: LogLevel)
Example
Copied to your clipboard@import AEPCore;@import AEPServices;[AEPMobileCore setLogLevel: AEPLogLevelTrace];
Java
Syntax
Copied to your clipboardpublic static void setLogLevel(@NonNull LoggingMode mode)
Example
Copied to your clipboardimport com.adobe.marketing.mobile.LoggingMode;import com.adobe.marketing.mobile.MobileCore;MobileCore.setLogLevel(LoggingMode.VERBOSE);
Swift
Syntax
Copied to your clipboardpublic static func setLogLevel(_ level: LogLevel)
Example
Copied to your clipboardimport AEPCoreimport AEPServicesMobileCore.setLogLevel(.trace)
Objective-C
Syntax
Copied to your clipboard@objc(setLogLevel:)public static func setLogLevel(_ level: LogLevel)
Example
Copied to your clipboard@import AEPCore;@import AEPServices;[AEPMobileCore setLogLevel: AEPLogLevelTrace];
setPrivacyStatus
You can use the setPrivacyStatus
API to set the privacy status. For more information about privacy in Mobile Core, please see Privacy and GDPR API's.
setPushIdentifier
This API sets the device token for push notifications in the SDK. If the current SDK privacy status is optedout
, the push identifier is not set.
You should call setPushIdentifier
on each application launch to ensure the most up-to-date device token is set to the SDK. If no device token is available, null
/nil
should be passed.
Java
Syntax
Copied to your clipboardpublic static void setPushIdentifier(@Nullable final String pushIdentifier);
- pushIdentifier is a string that contains the device token for push notifications.
Example
Copied to your clipboard//Retrieve the token from either GCM or FCM, and pass it to the SDKMobileCore.setPushIdentifier(token);
Swift
Syntax
Copied to your clipboardpublic static func setPushIdentifier(_ deviceToken: Data?)
Example
Copied to your clipboardMobileCore.setPushIdentifier(deviceToken)
Objective-C
Syntax
Copied to your clipboard@objc(setPushIdentifier:)public static func setPushIdentifier(_ deviceToken: Data?)
Example
Copied to your clipboard[AEPMobileCore setPushIdentifier:deviceToken];
Java
Syntax
Copied to your clipboardpublic static void setPushIdentifier(@Nullable final String pushIdentifier);
- pushIdentifier is a string that contains the device token for push notifications.
Example
Copied to your clipboard//Retrieve the token from either GCM or FCM, and pass it to the SDKMobileCore.setPushIdentifier(token);
Swift
Syntax
Copied to your clipboardpublic static func setPushIdentifier(_ deviceToken: Data?)
Example
Copied to your clipboardMobileCore.setPushIdentifier(deviceToken)
Objective-C
Syntax
Copied to your clipboard@objc(setPushIdentifier:)public static func setPushIdentifier(_ deviceToken: Data?)
Example
Copied to your clipboard[AEPMobileCore setPushIdentifier:deviceToken];
setSmallIconResourceID / setLargeIconResourceID
You can set the small and large icons that will be used for notifications that are created by the SDK. The small icon appears in the status bar and is the secondary image that is displayed when the user sees the complete notification in the notification center. The large icon is the primary image that is displayed when the user sees the complete notification in the notification center. Please note that this method is only supported on Android versions of Mobile Core.
Android
Java
setSmallIconResourceID
Syntax
Copied to your clipboardpublic static void setSmallIconResourceID(int resourceID)
Example
Copied to your clipboardMobileCore.setSmallIconResourceID(R.mipmap.ic_launcher_round);
setLargeIconResourceID
Syntax
Copied to your clipboardpublic static void setLargeIconResourceID(int resourceID)
Example
Copied to your clipboardMobileCore.setLargeIconResourceID(R.mipmap.ic_launcher_round);
Java
setSmallIconResourceID
Syntax
Copied to your clipboardpublic static void setSmallIconResourceID(int resourceID)
Example
Copied to your clipboardMobileCore.setSmallIconResourceID(R.mipmap.ic_launcher_round);
setLargeIconResourceID
Syntax
Copied to your clipboardpublic static void setLargeIconResourceID(int resourceID)
Example
Copied to your clipboardMobileCore.setLargeIconResourceID(R.mipmap.ic_launcher_round);
setWrapperType
You can use the setWrapperType
API to set the wrapper type when the SDK is being used in a cross-platform environment.
The wrapper type can be set to one of the follwing types: NONE
, REACT_NATIVE
, FLUTTER
, CORDOVA
, UNITY
, XAMARIN
.
Java
Syntax
Copied to your clipboardpublic static void setWrapperType(@NonNull final WrapperType wrapperType)
Example
Copied to your clipboardMobileCore.setWrapperType(WrapperType.REACT_NATIVE);
The wrapper type can be set to one of the follwing types: none
, reactNative
, flutter
, cordova
, unity
, xamarin
.
Swift
Syntax
Copied to your clipboardpublic static func setWrapperType(_ type: WrapperType)
Example
Copied to your clipboardMobileCore.setWrapperType(.flutter)
Objective-C
Syntax
Copied to your clipboard@objc(setWrapperType:)public static func setWrapperType(_ type: WrapperType)
Example
Copied to your clipboard[AEPMobileCore setWrapperType:AEPWrapperTypeFlutter];
The wrapper type can be set to one of the follwing types: NONE
, REACT_NATIVE
, FLUTTER
, CORDOVA
, UNITY
, XAMARIN
.
Java
Syntax
Copied to your clipboardpublic static void setWrapperType(@NonNull final WrapperType wrapperType)
Example
Copied to your clipboardMobileCore.setWrapperType(WrapperType.REACT_NATIVE);
The wrapper type can be set to one of the follwing types: none
, reactNative
, flutter
, cordova
, unity
, xamarin
.
Swift
Syntax
Copied to your clipboardpublic static func setWrapperType(_ type: WrapperType)
Example
Copied to your clipboardMobileCore.setWrapperType(.flutter)
Objective-C
Syntax
Copied to your clipboard@objc(setWrapperType:)public static func setWrapperType(_ type: WrapperType)
Example
Copied to your clipboard[AEPMobileCore setWrapperType:AEPWrapperTypeFlutter];
start
This is an Android only API and has been deprecated starting in v2.0.0 of the Mobile Core extension.
Use registerExtensions to register desired extensions and boot up the SDK for event processing. Calling MobileCore.start()
API is no longer required when using MobileCore.registerExtensions()
.
The start
API triggers Mobile Core to start event processing. This should be used after the desired set of extensions have been registered using MobileCore.registerExtension()
or <EXTENSION_NAME>.registerExtension()
. A call to start
will wait for any outstanding registrations to complete and then start event processing. You can use the callback to kickoff additional operations immediately after any operations kicked off during registration. This method should not be invoked more than once in your app.
Android
Java
Syntax
Copied to your clipboardpublic static void start(@Nullable final AdobeCallback<?> completionCallback)
Example
Copied to your clipboardimport com.adobe.marketing.mobile.AdobeCallback;import com.adobe.marketing.mobile.Lifecycle;import com.adobe.marketing.mobile.LoggingMode;import com.adobe.marketing.mobile.MobileCore;import com.adobe.marketing.mobile.Signal;import com.adobe.marketing.mobile.UserProfile;...import android.app.Application;...public class MyApp extends Application {...@Overridepublic void on Create(){super.onCreate();MobileCore.setApplication(this);UserProfile.registerExtension();Lifecycle.registerExtension();Signal.registerExtension();MobileCore.start(new AdobeCallback () {@Overridepublic void call(Object o) {// implement callback}});}}
Java
Syntax
Copied to your clipboardpublic static void start(@Nullable final AdobeCallback<?> completionCallback)
Example
Copied to your clipboardimport com.adobe.marketing.mobile.AdobeCallback;import com.adobe.marketing.mobile.Lifecycle;import com.adobe.marketing.mobile.LoggingMode;import com.adobe.marketing.mobile.MobileCore;import com.adobe.marketing.mobile.Signal;import com.adobe.marketing.mobile.UserProfile;...import android.app.Application;...public class MyApp extends Application {...@Overridepublic void on Create(){super.onCreate();MobileCore.setApplication(this);UserProfile.registerExtension();Lifecycle.registerExtension();Signal.registerExtension();MobileCore.start(new AdobeCallback () {@Overridepublic void call(Object o) {// implement callback}});}}
trackAction
Actions are events that occur in your application. You can use the trackAction
method to track and measure an action. Each action has one or more corresponding metrics that are incremented each time the event occurs. For example, you can use an action to track new subscriptions, every time an article is viewed, or every time a level is completed.
You want to use the trackAction
method when you want to track an occurring event. In addition to the action name, you can also send context data with each trackAction
call.
If you installed and configured the Adobe Analytics extension, this method sends an Adobe Analytics action tracking hit with the provided optional context data.
Java
Syntax
Copied to your clipboardpublic static void trackAction(@NonNull final String action, @Nullable final Map<String, String> contextData)
- action contains the name of the action to track.
- contextData contains the context data to attach on the hit.
Example
Copied to your clipboardMap<String, String> additionalContextData = new HashMap<String, String>();additionalContextData.put("customKey", "value");MobileCore.trackAction("loginClicked", additionalContextData);
Swift
Syntax
Copied to your clipboardstatic func track(action: String?, data: [String: Any]?)
- action contains the name of the action to track.
- contextData contains the context data to attach on this hit.
Example
Copied to your clipboardMobileCore.track(action: "action name", data: ["key": "value"])
Objective-C
Syntax
Copied to your clipboard@objc(trackAction:data:)static func track(action: String?, data: [String: Any]?)
- action contains the name of the action to track.
- contextData contains the context data to attach on this hit.
Example
Copied to your clipboard[AEPMobileCore trackAction:@"action name" data:@{@"key":@"value"}];
Java
Syntax
Copied to your clipboardpublic static void trackAction(@NonNull final String action, @Nullable final Map<String, String> contextData)
- action contains the name of the action to track.
- contextData contains the context data to attach on the hit.
Example
Copied to your clipboardMap<String, String> additionalContextData = new HashMap<String, String>();additionalContextData.put("customKey", "value");MobileCore.trackAction("loginClicked", additionalContextData);
Swift
Syntax
Copied to your clipboardstatic func track(action: String?, data: [String: Any]?)
- action contains the name of the action to track.
- contextData contains the context data to attach on this hit.
Example
Copied to your clipboardMobileCore.track(action: "action name", data: ["key": "value"])
Objective-C
Syntax
Copied to your clipboard@objc(trackAction:data:)static func track(action: String?, data: [String: Any]?)
- action contains the name of the action to track.
- contextData contains the context data to attach on this hit.
Example
Copied to your clipboard[AEPMobileCore trackAction:@"action name" data:@{@"key":@"value"}];
trackState
States represent screens or views in your application. The trackState
method needs to be called every time a new state is displayed in your application. For example, this method should be called when a user navigates from the home page to the news feed. This method sends an Adobe Analytics state tracking hit with optional context data.
If you installed and configured the Adobe Analytics extension, the trackState
method increments page views and an Adobe Analytics state tracking hit with the provided optional context data.
Java
In Android, trackState
is typically called every time a new Activity
is loaded.
Syntax
Copied to your clipboardpublic static void trackState(@NonNull final String state, @Nullable final Map<String, String> contextData)
- state contains the name of the state to track.
- contextData contains the context data to attach on the hit.
Example
Copied to your clipboardMap<String, String> additionalContextData = new HashMap<String, String>();additionalContextData.put("customKey", "value");MobileCore.trackState("homePage", additionalContextData);
Swift
Syntax
Copied to your clipboardstatic func track(state: String?, data: [String: Any]?)
- state contains the name of the state to track.
- contextData contains the context data to attach on this hit.
Example
Copied to your clipboardMobileCore.track(state: "state name", data: ["key": "value"])
Objective-C
Syntax
Copied to your clipboard@objc(trackState:data:)static func track(state: String?, data: [String: Any]?)
- state contains the name of the state to track.
- contextData contains the context data to attach on this hit.
Example
Copied to your clipboard[AEPMobileCore trackState:@"state name" data:@{@"key":@"value"}];
Java
In Android, trackState
is typically called every time a new Activity
is loaded.
Syntax
Copied to your clipboardpublic static void trackState(@NonNull final String state, @Nullable final Map<String, String> contextData)
- state contains the name of the state to track.
- contextData contains the context data to attach on the hit.
Example
Copied to your clipboardMap<String, String> additionalContextData = new HashMap<String, String>();additionalContextData.put("customKey", "value");MobileCore.trackState("homePage", additionalContextData);
Swift
Syntax
Copied to your clipboardstatic func track(state: String?, data: [String: Any]?)
- state contains the name of the state to track.
- contextData contains the context data to attach on this hit.
Example
Copied to your clipboardMobileCore.track(state: "state name", data: ["key": "value"])
Objective-C
Syntax
Copied to your clipboard@objc(trackState:data:)static func track(state: String?, data: [String: Any]?)
- state contains the name of the state to track.
- contextData contains the context data to attach on this hit.
Example
Copied to your clipboard[AEPMobileCore trackState:@"state name" data:@{@"key":@"value"}];
updateConfiguration
You can update the configuration programmatically by passing configuration keys and values to override the existing configuration using updateConfiguration
API. For more information about configuration in Mobile Core, please refer to the Configuration API reference.
Public classes
Java
AdobeCallback
The AdobeCallback
class provides the interface to receive results when the asynchronous APIs perform the requested action.
Copied to your clipboardpublic interface AdobeCallback<T> {void call(final T value);}
AdobeCallbackWithError
The AdobeCallbackWithError
class provides the interface to receive results or an error when the asynchronous APIs perform the requested action.
When using this class, if the request cannot be completed within the default timeout or an unexpected error occurs, the request is stopped and the fail method is called with the corresponding AdobeError
.
Copied to your clipboardpublic interface AdobeCallbackWithError<T> extends AdobeCallback<T> {void fail(final AdobeError error);}
AdobeError
The AdobeError
class shows the errors that can be passed to an AdobeCallbackWithError
:
UNEXPECTED_ERROR
- An unexpected error occurred.CALLBACK_TIMEOUT
- The timeout was met.CALLBACK_NULL
- The provided callback function is null.EXTENSION_NOT_INITIALIZED
- The extension is not initialized.SERVER_ERROR
- There was a server error.NETWORK_ERROR
- There was a network error.INVALID_REQUEST
- There was an invalid request.INVALID_RESPONSE
- There was an invalid response.
Example
Copied to your clipboardMobileCore.getPrivacyStatus(new AdobeCallbackWithError<MobilePrivacyStatus>() {@Overridepublic void fail(final AdobeError error) {if (error == AdobeError.UNEXPECTED_ERROR) {// handle unexpected error} else if (error == AdobeError.CALLBACK_TIMEOUT) {// handle timeout error} else if (error == AdobeError.CALLBACK_NULL) {// handle null callback error} else if (error == AdobeError.EXTENSION_NOT_INITIALIZED) {// handle extension not initialized error} else if (error == AdobeError.SERVER_ERROR) {// handle server error} else if (error == AdobeError.NETWORK_ERROR) {// handle network error} else if (error == AdobeError.INVALID_REQUEST) {// handle invalid request error} else if (error == AdobeError.INVALID_RESPONSE) {// handle invalid response error}}@Overridepublic void call(final MobilePrivacyStatus value) {// use MobilePrivacyStatus value}});
AEPError
The AEPError
enum shows the errors that can be passed to a completion handler callback from any API which uses one:
case unexpected
- An unexpected error occured.case callbackTimeout
- The timeout was met.case callbackNil
- The provided callback function is nil.case none
- There was no error, used when an error return type is required but there was no error.case serverError
- There was a server error.case networkError
- There was a network error.case invalidRequest
- There was an invalid request.case invalidResponse
- There was an invalid response.case errorExtensionNotInitialized
- The extension is not initialized.
Example
Swift
Copied to your clipboardMobileCore.getSdkIdentities { (content, error) inif let error = error, let aepError = error as? AEPError {switch aepError {case .unexpected:// Handle unexpected errorcase .callbackTimeout:// Handle callback timeout errorcase .callbackNil:// Handle callback being nil errorcase .none:// no errorcase .serverError:// handle server errorcase .networkError:// handle network errorcase .invalidRequest:// handle invalid request errorcase .invalidResponse:// handle invalid response errorcase .errorExtensionNotInitialized:// handle extension not initialized error@unknown default:// handle unknown error}}...}
Objective-C
Copied to your clipboard[AEPMobileCore getSdkIdentities:^(NSString * _Nullable content, NSError * _Nullable error) {if (error) {if (error.code == AEPErrorUnexpected) {// Handle unexpected error} else if (error.code == AEPErrorCallbackTimeout) {// Handle callback timeout error} else if (error.code == AEPErrorCallbackNil) {// Handle callback being nil error} else if (error.code == AEPErrorNone) {// no error} else if (error.code == AEPErrorServerError) {// handle server error} else if (error.code == AEPErrorNetworkError) {// handle network error} else if (error.code == AEPErrorInvalidRequest) {// handle invalid request error} else if (error.code == AEPErrorInvalidResponse) {// handle invalid response error} else if (error.code == AEPErrorErrorExtensionNotInitialized) {// handle extension not intialized error}}...}];
Java
AdobeCallback
The AdobeCallback
class provides the interface to receive results when the asynchronous APIs perform the requested action.
Copied to your clipboardpublic interface AdobeCallback<T> {void call(final T value);}
AdobeCallbackWithError
The AdobeCallbackWithError
class provides the interface to receive results or an error when the asynchronous APIs perform the requested action.
When using this class, if the request cannot be completed within the default timeout or an unexpected error occurs, the request is stopped and the fail method is called with the corresponding AdobeError
.
Copied to your clipboardpublic interface AdobeCallbackWithError<T> extends AdobeCallback<T> {void fail(final AdobeError error);}
AdobeError
The AdobeError
class shows the errors that can be passed to an AdobeCallbackWithError
:
UNEXPECTED_ERROR
- An unexpected error occurred.CALLBACK_TIMEOUT
- The timeout was met.CALLBACK_NULL
- The provided callback function is null.EXTENSION_NOT_INITIALIZED
- The extension is not initialized.SERVER_ERROR
- There was a server error.NETWORK_ERROR
- There was a network error.INVALID_REQUEST
- There was an invalid request.INVALID_RESPONSE
- There was an invalid response.
Example
Copied to your clipboardMobileCore.getPrivacyStatus(new AdobeCallbackWithError<MobilePrivacyStatus>() {@Overridepublic void fail(final AdobeError error) {if (error == AdobeError.UNEXPECTED_ERROR) {// handle unexpected error} else if (error == AdobeError.CALLBACK_TIMEOUT) {// handle timeout error} else if (error == AdobeError.CALLBACK_NULL) {// handle null callback error} else if (error == AdobeError.EXTENSION_NOT_INITIALIZED) {// handle extension not initialized error} else if (error == AdobeError.SERVER_ERROR) {// handle server error} else if (error == AdobeError.NETWORK_ERROR) {// handle network error} else if (error == AdobeError.INVALID_REQUEST) {// handle invalid request error} else if (error == AdobeError.INVALID_RESPONSE) {// handle invalid response error}}@Overridepublic void call(final MobilePrivacyStatus value) {// use MobilePrivacyStatus value}});
AEPError
The AEPError
enum shows the errors that can be passed to a completion handler callback from any API which uses one:
case unexpected
- An unexpected error occured.case callbackTimeout
- The timeout was met.case callbackNil
- The provided callback function is nil.case none
- There was no error, used when an error return type is required but there was no error.case serverError
- There was a server error.case networkError
- There was a network error.case invalidRequest
- There was an invalid request.case invalidResponse
- There was an invalid response.case errorExtensionNotInitialized
- The extension is not initialized.
Example
Swift
Copied to your clipboardMobileCore.getSdkIdentities { (content, error) inif let error = error, let aepError = error as? AEPError {switch aepError {case .unexpected:// Handle unexpected errorcase .callbackTimeout:// Handle callback timeout errorcase .callbackNil:// Handle callback being nil errorcase .none:// no errorcase .serverError:// handle server errorcase .networkError:// handle network errorcase .invalidRequest:// handle invalid request errorcase .invalidResponse:// handle invalid response errorcase .errorExtensionNotInitialized:// handle extension not initialized error@unknown default:// handle unknown error}}...}
Objective-C
Copied to your clipboard[AEPMobileCore getSdkIdentities:^(NSString * _Nullable content, NSError * _Nullable error) {if (error) {if (error.code == AEPErrorUnexpected) {// Handle unexpected error} else if (error.code == AEPErrorCallbackTimeout) {// Handle callback timeout error} else if (error.code == AEPErrorCallbackNil) {// Handle callback being nil error} else if (error.code == AEPErrorNone) {// no error} else if (error.code == AEPErrorServerError) {// handle server error} else if (error.code == AEPErrorNetworkError) {// handle network error} else if (error.code == AEPErrorInvalidRequest) {// handle invalid request error} else if (error.code == AEPErrorInvalidResponse) {// handle invalid response error} else if (error.code == AEPErrorErrorExtensionNotInitialized) {// handle extension not intialized error}}...}];
Additional information
To learn what context data is, please read the documentation on context data.