Edit in GitHubLog an issue

The Android SDK automatically registers an Application.ActivityLifecycleCallbacksand 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

The collectLaunchInfo method should be used in the following use cases:

  • Tracking a deep link clickthrough
    • From application(_:didFinishLaunchingWithOptions:)
    • Extract userInfo from url: UIApplication.LaunchOptionsKey
  • Tracking a push message clickthrough
    • From application(_:didReceiveRemoteNotification:fetchCompletionHandler:)

Syntax

Copied to your clipboard
(void) collectLaunchInfo: (nonnull NSDictionary*) userInfo;

Example

Copied to your clipboard
ACPCore.collectLaunchInfo(userInfo)

Objective-C

The collectLaunchInfo method should be used in the following use cases:

  • Tracking a deep link clickthrough
    • From application:didFinishLaunchingWithOptions
    • Extract userInfo from UIApplicationLaunchOptionsURLKey
  • Tracking a push message clickthrough
    • From application:didReceiveRemoteNotification:fetchCompletionHandler:

Syntax

Copied to your clipboard
(void) collectLaunchInfo: (nonnull NSDictionary*) userInfo;

Example

Copied to your clipboard
[ACPCore collectLaunchInfo:launchOptions];

Java

Syntax

Copied to your clipboard
public static void collectPII(final Map<String, String> piiData);

Example

Copied to your clipboard
Map<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 send
MobileCore.collectPII(data);

Swift

Syntax

Copied to your clipboard
ACPCore.collectPii(data: [String : String])

Example

Copied to your clipboard
MobileCore.collectPii(["key1" : "value1","key2" : "value2"]);

Objective-C

Syntax

Copied to your clipboard
(void) collectPii: (nonnull NSDictionary<NSString*, NSString*>*) data;

Example

Copied to your clipboard
[ACPCore collectPii:data:@{@"key1" : "@value1",
@"key2" : "@value2"
}];

Javascript

Syntax

Copied to your clipboard
ACPCore.collectPii(data: [String : String])

Example

Copied to your clipboard
ACPCore.collectPii({"myPii": "data"});

Swift

Syntax

Copied to your clipboard
ACPCore.collectPii(data: [String : String])

Example

Copied to your clipboard
MobileCore.collectPii(["key1" : "value1","key2" : "value2"]);

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
public static Application getApplication()

Example

Copied to your clipboard
Application app = MobileCore.getApplication();
if (app != null) {
...
}

C#

ACPCore.Application may be null if the Application object was destroyed or was not set in the Core.

Example

Copied to your clipboard
var app = ACPCore.Application;
if (app != null) {
...
}

Java

Syntax

Copied to your clipboard
public static LoggingMode getLogLevel()

Example

Copied to your clipboard
LoggingMode mode = MobileCore.getLogLevel();

Swift

Syntax

Copied to your clipboard
(ACPMobileLogLevel) logLevel;

Example

Copied to your clipboard
let logLevel:ACPMobileLogLevel = ACPCore.logLevel();

Objective-C

Syntax

Copied to your clipboard
(ACPMobileLogLevel) logLevel;

Example

Copied to your clipboard
var logLevel:ACPMobileLogLevel = [ACPCore logLevel];

Javascript

Example

Copied to your clipboard
ACPCore.getLogLevel().then(level => console.log("AdobeExperienceSDK: Log Level = " + level));

C#

Example

Copied to your clipboard
ACPCore.ACPMobileLogLevel logLevel = ACPCore.GetLogLevel();

C#

Example

Copied to your clipboard
var logLevel = ACPCore.LogLevel;

Java

Syntax

Copied to your clipboard
void getSdkIdentities(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, the fail method is called with the appropriate AdobeError.

Example

Copied to your clipboard
MobileCore.getSdkIdentities(new AdobeCallback<String>() {
@Override
public void call(String value) {
// handle the json string
}
});

Objective-C

Syntax

Copied to your clipboard
(void) getSdkIdentities: (nullable void (^) (NSString* __nullable content)) callback;
(void) getSdkIdentitiesWithCompletionHandler: (nullable void (^) (NSString* __nullable content, NSError* _Nullable error)) completionHandler;
  • 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
[ACPCore getSdkIdentities:^(NSString * _Nullable content){
NSLog(content);
[ACPCore getSdkIdentitiesWithCompletionHandler:^(NSString * _Nullable content, NSError * _Nullable error) {
if (error) {
// handle error here
} else {
// handle the retrieved identities
NSLog(content);
}
}];

Swift

Example

Copied to your clipboard
MobileCore.getSdkIdentities { (content, error) in
// handle completion
}

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 uses android.util.Log.v
  • LoggingMode.DEBUG uses android.util.Log.d
  • LoggingMode.WARNING uses android.util.Log.w
  • LoggingMode.ERROR uses android.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 clipboard
public static void log(final LoggingMode mode, final String tag, final String message)

Example

Copied to your clipboard
MobileCore.log(LoggingMode.DEBUG, "MyClassName", "Provided data was null");

Output

Copied to your clipboard
D/AdobeExperienceSDK: MyClassName - Provided data was null

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 AdobeExperienceSDK. For example, if logging an error message using ACPCore.log(), the printed output looks like [AdobeExperienceSDK ERROR <tag>]: message[AEP SDK ERROR - <testLabel>] Test message.

Syntax

Copied to your clipboard
+ (void) log: (ACPMobileLogLevel) logLevel tag: (nonnull NSString*) tag message: (nonnull NSString*) message;

Example

Copied to your clipboard
[ACPCore log: ACPMobileLogLevelDebug, tag:@"MyClassName", message:@"Provided data was nil"];

Output

Copied to your clipboard
[AdobeExperienceSDK DEBUG <MyClassName>]: Provided data was nil

Swift

Syntax

Copied to your clipboard
+ (void) log: (ACPMobileLogLevel) logLevel tag: (nonnull NSString*) tag message: (nonnull NSString*) message;

Example

Copied to your clipboard
ACPCore.log(ACPMobileLogLevel.debug, tag: "MyClassName", message: "Provided data was nil");

Output

Copied to your clipboard
[AdobeExperienceSDK DEBUG <MyClassName>]: Provided data was nil

JavaScript

The log messages from the Adobe Experience SDK are printed to the Log facility and use a common format that contains the tag ACPMobileLogLevel.

Example

Copied to your clipboard
ACPCore.log(ACPMobileLogLevel.ERROR, "React Native Tag", "React Native Message");

Note: ACPMobileLogLevel contains the following getters:

Copied to your clipboard
const ERROR = "ACP_LOG_LEVEL_ERROR";
const WARNING = "ACP_LOG_LEVEL_WARNING";
const DEBUG = "ACP_LOG_LEVEL_DEBUG";
const VERBOSE = "ACP_LOG_LEVEL_VERBOSE";

C#

The log messages from the Adobe Experience SDK are printed to the Log facility and use a common format that contains the tag AdobeExperienceSDK.

iOS syntax

Copied to your clipboard
ACPCore.Log(ACPMobileLogLevel.Error, "xamarin tag", "xamarin message");
Copied to your clipboard
[AdobeExperienceSDK ERROR <xamarin tag>]: xamarin message

Android syntax

Copied to your clipboard
ACPCore.Log(LoggingMode.Error, "xamarin tag", "xamarin message");
Copied to your clipboard
[AdobeExperienceSDK] xamarin tag - xamarin message

After you register the extensions, call the start API in Mobile Core to initialize the SDK as shown below. This step is required to boot up the SDK for event processing. The following code snippet is provided as a sample reference.

Java

Example

Copied to your clipboard
import com.adobe.marketing.mobile.AdobeCallback;
import com.adobe.marketing.mobile.Identity;
import com.adobe.marketing.mobile.InvalidInitException;
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 {
...
@Override
public void on Create(){
super.onCreate();
MobileCore.setApplication(this);
MobileCore.setLogLevel(LoggingMode.DEBUG);
...
try {
UserProfile.registerExtension();
Identity.registerExtension();
Lifecycle.registerExtension();
Signal.registerExtension();
MobileCore.start(new AdobeCallback () {
@Override
public void call(Object o) {
MobileCore.configureWithAppID("<your_environment_id_from_Launch>");
}
});
} catch (InvalidInitException e) {
...
}
}
}

The following snippet shows an example of how to add the initialization code. Note that this may need to be adjusted, depending on how your application is structured.

Objective-C

Example

Copied to your clipboard
#import "AppDelegate.h"
#import "ACPCore.h"
#import "ACPUserProfile.h"
#import "ACPIdentity.h"
#import "ACPLifecycle.h"
#import "ACPSignal.h"
...
@implementation AppDelegate
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[ACPCore setLogLevel:ACPMobileLogLevelDebug];
[ACPCore configureWithAppId:@"<your_environment_id_from_Launch>"];
...
[ACPUserProfile registerExtension];
[ACPIdentity registerExtension];
[ACPLifecycle registerExtension];
[ACPSignal registerExtension];
const UIApplicationState appState = application.applicationState;
[ACPCore start:^{
// only start lifecycle if the application is not in the background
if (appState != UIApplicationStateBackground) {
[ACPCore lifecycleStart:nil];
}
}];
...
return YES;
}
@end

Swift

Example

Copied to your clipboard
import ACPCore
import ACPUserProfile
...
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool{
ACPCore.setLogLevel(.debug)
ACPCore.configure(withAppId: "<your_environment_id_from_Launch>")
...
ACPUserProfile.registerExtension()
ACPIdentity.registerExtension()
ACPLifecycle.registerExtension()
ACPSignal.registerExtension()
ACPCore.start {
ACPCore.lifecycleStart(nil)
}
...
return true
}
}

For React Native apps, initialize the SDK using native code in your AppDelegate (iOS) and MainApplication (Android).

iOS

Copied to your clipboard
#import "ACPCore.h"
#import "ACPUserProfile.h"
#import "ACPIdentity.h"
#import "ACPLifecycle.h"
#import "ACPSignal.h"
...
@implementation AppDelegate
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[ACPCore setLogLevel:ACPMobileLogLevelDebug];
[ACPCore configureWithAppId:@"<your_environment_id_from_Launch>"];
[ACPUserProfile registerExtension];
[ACPIdentity registerExtension];
[ACPLifecycle registerExtension];
[ACPSignal registerExtension];
const UIApplicationState appState = application.applicationState;
[ACPCore start:^{
// only start lifecycle if the application is not in the background
if (appState != UIApplicationStateBackground) {
[ACPCore lifecycleStart:nil];
}
}];
...
return YES;
}
@end

Android

Copied to your clipboard
import com.adobe.marketing.mobile.AdobeCallback;
import com.adobe.marketing.mobile.Identity;
import com.adobe.marketing.mobile.InvalidInitException;
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 MainApplication extends Application implements ReactApplication {
...
@Override
public void on Create(){
super.onCreate();
...
MobileCore.setApplication(this);
MobileCore.setLogLevel(LoggingMode.DEBUG);
MobileCore.setWrapperType(WrapperType.REACT_NATIVE);
try {
UserProfile.registerExtension();
Identity.registerExtension();
Lifecycle.registerExtension();
Signal.registerExtension();
MobileCore.start(new AdobeCallback () {
@Override
public void call(Object o) {
MobileCore.configureWithAppID("<your_environment_id_from_Launch>");
}
});
} catch (InvalidInitException e) {
...
}
}
}

Dart

For Flutter apps, initialize the SDK using native code in your AppDelegate and MainApplication in iOS and Android, respectively.

The initialization code is located in the Flutter ACPCore Github README.

For Cordova apps, initialize the SDK using native code in your AppDelegate and MainApplication in iOS and Android, respectively.

iOS

Copied to your clipboard
// Import the SDK
#import "ACPCore.h"
#import "ACPLifecycle.h"
#import "ACPIdentity.h"
#import "ACPSignal.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// make sure to set the wrapper type at the beginning of initialization
[ACPCore setWrapperType:ACPMobileWrapperTypeCordova];
//...
[ACPCore configureWithAppId:@"yourAppId"];
[ACPIdentity registerExtension];
[ACPLifecycle registerExtension];
[ACPSignal registerExtension];
// Register any additional extensions
[ACPCore start:nil];
}

Android

Copied to your clipboard
// Import the SDK
import com.adobe.marketing.mobile.MobileCore;
import com.adobe.marketing.mobile.Identity;
import com.adobe.marketing.mobile.Lifecycle;
import com.adobe.marketing.mobile.Signal;
import com.adobe.marketing.mobile.WrapperType;
@Override
public void onCreate() {
//...
MobileCore.setApplication(this);
MobileCore.configureWithAppID("yourAppId");
// make sure to set the wrapper type at the beginning of initialization
MobileCore.setWrapperType(WrapperType.CORDOVA);
try {
Identity.registerExtension();
Lifecycle.registerExtension();
Signal.registerExtension();
// Register any additional extensions
} catch (Exception e) {
// handle exception
}
MobileCore.start(null);
}

C#

For Unity apps, initialize the SDK using the following code in the start function of the MainScript.

Copied to your clipboard
using com.adobe.marketing.mobile;
using using AOT;
public class MainScript : MonoBehaviour
{
[MonoPInvokeCallback(typeof(AdobeStartCallback))]
public static void HandleStartAdobeCallback()
{
ACPCore.ConfigureWithAppID("1423ae38-8385-8963-8693-28375403491d");
}
// Start is called before the first frame update
void Start()
{
if (Application.platform == RuntimePlatform.Android) {
ACPCore.SetApplication();
}
ACPCore.SetLogLevel(ACPCore.ACPMobileLogLevel.VERBOSE);
ACPCore.SetWrapperType();
ACPIdentity.registerExtension();
ACPLifecycle.registerExtension();
ACPSignal.registerExtension();
ACPCore.Start(HandleStartAdobeCallback);
}
}

C#

For Xamarin Forms applications, the SDK initialization differs, depending on the platform being targeted.

iOS

Copied to your clipboard
using Com.Adobe.Marketing.Mobile;
[Register("AppDelegate")]
public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
{
//
// This method is invoked when the application has loaded and is ready to run. In this
// method you should instantiate the window, load the UI into it and then make the window
// visible.
//
// You have 17 seconds to return from this method, or iOS will terminate your application.
//
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
global::Xamarin.Forms.Forms.Init();
LoadApplication(new App());
// set the wrapper type
ACPCore.SetWrapperType(ACPMobileWrapperType.Xamarin);
// set launch config
ACPCore.ConfigureWithAppID("your-app-id");
// register SDK extensions
ACPIdentity.RegisterExtension();
ACPLifecycle.RegisterExtension();
ACPSignal.RegisterExtension();
// start core
ACPCore.Start(null);
}

Android

Copied to your clipboard
using Com.Adobe.Marketing.Mobile;
[Activity(Label = "TestApp", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
LoadApplication(new App());
// set the wrapper type
ACPCore.SetWrapperType(WrapperType.Xamarin);
// register SDK extensions
ACPCore.Application = this.Application;
ACPIdentity.RegisterExtension();
ACPLifecycle.RegisterExtension();
ACPSignal.RegisterExtension();
// start core
ACPCore.Start(null);
}

Objective-C

Syntax

Copied to your clipboard
+ (void) registerURLHandler: (nonnull BOOL (^) (NSString* __nullable url)) callback;

Example

Copied to your clipboard
[ACPCore registerURLHandler:^BOOL(NSString * _Nullable url) {
...
}];

Java

This method is only available in Mobile Core v.1.8.0 and above.

Syntax

Copied to your clipboard
void resetIdentities();

Example

Copied to your clipboard
MobileCore.resetIdentities();

Swift

Syntax

Copied to your clipboard
public static func setAppGroup(_ group: String?)

Example

Copied to your clipboard
ACPCore.setAppGroup("app-group-id")

Objective-C

Syntax

Copied to your clipboard
public static func setAppGroup(_ group: String?)

Example

Copied to your clipboard
[ACPCore setAppGroup:@"app-group-id"];

C#

Syntax

Copied to your clipboard
public static void SetAppGroup (string appGroup);

Example

Copied to your clipboard
ACPCore.SetAppGroup("app_group");

Java

Syntax

Copied to your clipboard
public static void setApplication(final Application app)

Example

Copied to your clipboard
public class CoreApp extends Application {
@Override
public void onCreate() {
super.onCreate();
MobileCore.setApplication(this);
MobileCore.start(null);
}
}

C#

Example

Copied to your clipboard
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
ACPCore.Application = this.Application;
ACPCore.Start(null);
}
}

Java

Syntax

Copied to your clipboard
public static void setLogLevel(LoggingMode mode)

Example

Copied to your clipboard
import com.adobe.marketing.mobile.LoggingMode;
import com.adobe.marketing.mobile.MobileCore;
MobileCore.setLogLevel(LoggingMode.VERBOSE);

Swift

Syntax

Copied to your clipboard
(void) setLogLevel: (ACPMobileLogLevel) logLevel;

Example

Copied to your clipboard
import ACPCore
ACPCore.setLogLevel(ACPMobileLogLevel.verbose);

Objective-C

Syntax

Copied to your clipboard
(void) setLogLevel: (ACPMobileLogLevel) logLevel;

Example

Copied to your clipboard
#import "ACPCore.h"
[ACPCore setLogLevel: ACPMobileLogLevelVerbose];

Javascript

Syntax

Copied to your clipboard
(void) setLogLevel: (ACPMobileLogLevel) logLevel;

Example

Copied to your clipboard
import {ACPMobileLogLevel} from '@adobe/react-native-acpcore';
ACPCore.setLogLevel(ACPMobileLogLevel.VERBOSE);

Dart

Syntax

Copied to your clipboard
(void) setLogLevel: (ACPMobileLogLevel) logLevel;

Example

Copied to your clipboard
import 'package:flutter_acpcore/src/acpmobile_logging_level.dart';
FlutterACPCore.setLogLevel(ACPLoggingLevel.VERBOSE);

Cordova

From least to most verbose, the order of Mobile SDK logging modes is as follows:

  • ACPCore.ACPMobileLogLevelError
  • ACPCore.ACPMobileLogLevelWarning
  • ACPCore.ACPMobileLogLevelDebug
  • ACPCore.ACPMobileLogLevelVerbose

Syntax

Copied to your clipboard
ACPCore.setLogLevel = function(logLevel, success, fail);

Example

Copied to your clipboard
ACPCore.setLogLevel(ACPCore.ACPMobileLogLevelVerbose, successCallback, errorCallback);
MobileCore.setSmallIconResourceID(R.mipmap.ic_launcher_round);

C#

From least to most verbose, the order of Mobile SDK logging modes is as follows:

  • ACPCore.ACPMobileLogLevel.ERROR
  • ACPCore.ACPMobileLogLevel.WARNING
  • ACPCore.ACPMobileLogLevel.DEBUG
  • ACPCore.ACPMobileLogLevel.VERBOSE

Syntax

Copied to your clipboard
public static void SetLogLevel(ACPMobileLogLevel logLevel)

Example

Copied to your clipboard
ACPCore.SetLogLevel(ACPCore.ACPMobileLogLevel.ERROR);

C#

From least to most verbose, the order of Mobile SDK logging modes is as follows for iOS:

  • ACPMobileLogLevel.Error;
  • ACPMobileLogLevel.Warning;
  • ACPMobileLogLevel.Debug;
  • ACPMobileLogLevel.Verbose;

From least to most verbose, the order of Mobile SDK logging modes is as follows for Android:

  • LoggingMode.Error;
  • LoggingMode.Warning;
  • LoggingMode.Debug;
  • LoggingMode.Verbose;

iOS syntax

Copied to your clipboard
public static ACPMobileLogLevel LogLevel { get, set }

Android syntax

Copied to your clipboard
public unsafe static LoggingMode LogLevel { get, set }

iOS example

Copied to your clipboard
ACPCore.LogLevel = ACPMobileLogLevel.Verbose;

Android example

Copied to your clipboard
ACPCore.LogLevel = LoggingMode.Verbose;

Java

Syntax

Copied to your clipboard
public static void setPushIdentifier(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 SDK
MobileCore.setPushIdentifier(token);

Swift

Syntax

Copied to your clipboard
@objc(setPushIdentifier:)
public static func setPushIdentifier(_ deviceToken: Data?)
  • deviceToken is a string that contains the device token for push notifications.

Example

Copied to your clipboard
// Set the deviceToken that the APNs has assigned to the device
MobileCore.setPushIdentifier(deviceToken)

Objective-C

Syntax

Copied to your clipboard
public static func setPushIdentifier(_ deviceToken: Data?)
  • deviceToken is a string that contains the device token for push notifications.

Example

Copied to your clipboard
// Set the deviceToken that the APNS has assigned to the device
[ACPCore setPushIdentifier:deviceToken];

Java

setSmallIconResourceID

Syntax

Copied to your clipboard
public static void setSmallIconResourceID(int resourceID)

Example

Copied to your clipboard
MobileCore.setSmallIconResourceID(R.mipmap.ic_launcher_round);

setLargeIconResourceID

Syntax

Copied to your clipboard
public static void setLargeIconResourceID(int resourceID)

Example

Copied to your clipboard
MobileCore.setLargeIconResourceID(R.mipmap.ic_launcher_round);

C#

setSmallIconResourceID

Syntax

Copied to your clipboard
public unsafe static void SetSmallIconResourceID (int resourceID);

Example

Copied to your clipboard
ACPCore.SetSmallIconResourceID(Resource.Mipmap.icon_round);

setLargeIconResourceID

Syntax

Copied to your clipboard
public unsafe static void SetLargeIconResourceID (int resourceID);

Example

Copied to your clipboard
ACPCore.SetLargeIconResourceID(Resource.Mipmap.icon_round);

Java

Syntax

Copied to your clipboard
public static void trackAction(final String action, 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 clipboard
Map<String, String> additionalContextData = new HashMap<String, String>();
additionalContextData.put("customKey", "value");
MobileCore.trackAction("loginClicked", additionalContextData);

Swift

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 the hit.

Example

Copied to your clipboard
ACPCore.track(action: "action name", data: ["key": "value"])

Objective-C

Syntax

Copied to your clipboard
+ (void) trackAction: (nullable NSString*) action data: (nullable NSDictionary*) contextData;
  • action contains the name of the action to track.
  • contextData contains the context data to attach on the hit.

Example

Copied to your clipboard
[ACPCore trackAction:@"action name" data:@{@"key":@"value"}];

Javascript

Syntax

Copied to your clipboard
trackAction(action?: String, contextData?: { string: string });
  • action contains the name of the action to track.
  • contextData contains the context data to attach on the hit.

Example

Copied to your clipboard
ACPCore.trackAction("action name", {"key": "value"});

Dart

Syntax

Copied to your clipboard
Future<void> trackAction (String action, {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 clipboard
FlutterACPCore.trackAction("action name", data: {"key": "value"});

Cordova

Syntax

Copied to your clipboard
ACPCore.trackAction = function(action, contextData, success, fail);
  • action contains the name of the action to track.
  • contextData contains the context data to attach on this hit.
  • success callback is invoked when trackAction executes successfully.
  • fail callback is invoked when trackAction fails.

Example

Copied to your clipboard
ACPCore.trackAction("cordovaAction", {"cordovaKey":"cordovaValue"}, successCallback, errorCallback);

C#

Syntax

Copied to your clipboard
public static void TrackAction(string name, Dictionary<string, string> contextDataDict)
  • name contains the name of the action to track.
  • contextDataDict contains the context data to attach on the hit.

Example

Copied to your clipboard
var contextData = new Dictionary<string, string>();
contextData.Add("key", "value");
ACPCore.TrackAction("action", contextData);

C#

iOS syntax

Copied to your clipboard
public static void TrackAction (string action, NSMutableDictionary<NSString, NSString> data);
  • action contains the name of the action to track.
  • data contains the context data to attach on the hit.

Android syntax

Copied to your clipboard
public unsafe static void TrackAction (string action, IDictionary<string, string> contextData);
  • action contains the name of the action to track.
  • contextData contains the context data to attach on the hit.

iOS example

Copied to your clipboard
var data = new NSMutableDictionary<NSString, NSString>
{
["key"] = new NSString("value")
};
ACPCore.TrackAction("action", data);

Android example

Copied to your clipboard
var data = new Dictionary<string, string>();
data.Add("key", "value");
ACPCore.TrackAction("action", data);

Java

In Android, trackState is typically called every time a new Activity is loaded.

Syntax

Copied to your clipboard
public static void trackState(final String state, 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 clipboard
Map<String, String> additionalContextData = new HashMap<String, String>();
additionalContextData.put("customKey", "value");
MobileCore.trackState("homePage", additionalContextData);

Swift

Syntax

Copied to your clipboard
+ (void) trackState: (nullable NSString*) state data: (nullable NSDictionary*) contextData;
  • state contains the name of the state to track.
  • contextData contains the context data to attach on the hit.

Example

Copied to your clipboard
ACPCore.trackState("state name", data: ["key": "value"])

Objective-C

Syntax

Copied to your clipboard
(void) trackState: (nullable NSString*) state data: (nullable NSDictionary*) contextData;
  • state contains the name of the state to track.
  • contextData contains the context data to attach on the hit.

Example

Copied to your clipboard
[ACPCore trackState:@"state name" data:@{@"key":@"value"}];

Javascript

Syntax

Copied to your clipboard
trackState(state?: String, contextData?: { string: string });
  • state contains the name of the state to track.
  • contextData contains the context data to attach on the hit.

Example

Copied to your clipboard
ACPCore.trackState("state name", {"key": "value"});

Dart

Syntax

Copied to your clipboard
Future<void> trackState (String state, {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 clipboard
FlutterACPCore.trackState("state name", data: {"key1: "value"})

Cordova

Syntax

Copied to your clipboard
ACPCore.trackState = function(state, contextData, success, fail);
  • state contains the name of the state to track.
  • contextData contains the context data to attach on the hit.
  • success callback is invoked when trackState executes successfully.
  • fail callback is invoked when trackState fails.

Example

Copied to your clipboard
ACPCore.trackState("cordovaState", {"cordovaKey":"cordovaValue"}, successCallback, errorCallback);

C#

Syntax

Copied to your clipboard
public static void TrackState(string name, Dictionary<string, string> contextDataDict)
  • state contains the name of the state to track.
  • contextDataDict contains the context data to attach on the hit.

Example

Copied to your clipboard
var dict = new Dictionary<string, string>();
dict.Add("key", "value");
ACPCore.TrackState("state", dict);

C#

iOS syntax

Copied to your clipboard
public static void TrackState (string state, NSMutableDictionary<NSString, NSString> data);
  • state contains the name of the state to track.
  • contextData contains the context data to attach on the hit.

Android syntax

Copied to your clipboard
public unsafe static void TrackState (string state, IDictionary<string, string> contextData);
  • state contains the name of the state to track.
  • contextData contains the context data to attach on the hit.

iOS example

Copied to your clipboard
var data = new NSMutableDictionary<NSString, NSString>
{
["key"] = new NSString("value")
};
ACPCore.TrackState("state", data);

Android example

Copied to your clipboard
var data = new Dictionary<string, string>();
data.Add("key", "value");
ACPCore.TrackState("state", data);

Java

AdobeCallback

The AdobeCallback class provides the interface to receive results when the asynchronous APIs perform the requested action.

Copied to your clipboard
public 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 clipboard
public 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.

Example

Copied to your clipboard
MobileCore.getPrivacyStatus(new AdobeCallbackWithError<MobilePrivacyStatus>() {
@Override
public 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
}
}
@Override
public void call(final MobilePrivacyStatus value) {
// use MobilePrivacyStatus value
}
});

ACPError

The ACPError class shows the errors that can be passed to a completion handler callback from any API which uses one:

  • ACPErrorUnexpected - An unexpected error occurred.
  • ACPErrorCallbackTimeout - The timeout was met.
  • ACPErrorCallbackNil - The provided callback function is nil.
  • ACPErrorExtensionNotInitialized - The extension is not initialized.

Example

Objective-C

Copied to your clipboard
[ACPCore getSdkIdentities:^(NSString * _Nullable content, NSError * _Nullable error) {
if (error) {
if (error.code == ACPErrorCallbackTimeout) {
// handle timeout error
} else if (error.code == ACPErrorCallbackNil) {
// handle nil callback error
} else if (error.code == ACPErrorExtensionNotInitialized) {
// handle extension not initialized error
} else if (error.code == ACPErrorUnexpected) {
// handle unexpected error
....
} else {
// use privacy status
}
}];

Swift

Copied to your clipboard
ACPCore.getPrivacyStatus { (privacyStatus, error) in
if let error = error {
let callbackError: NSError = (error as NSError)
if (callbackError.code == ACPError.callbackTimeout.rawValue) {
// handle timeout error
} else if (callbackError.code == ACPError.callbackNil.rawValue) {
// handle nil callback error
} else if (callbackError.code == ACPError.extensionNotInitialized.rawValue) {
// handle extension not initialized error
} else if (callbackError.code == ACPError.unexpected.rawValue) {
// handle unexpected error
}
} else {
// use privacyStatus
}
}

Android

IAdobeCallback

This class provides the interface to receive results when the async APIs perform the requested action.

Copied to your clipboard
public interface IAdobeCallback : IJavaObject, IDisposable, IJavaPeerable
{
void Call (Java.Lang.Object p0);
}

IAdobeCallbackWithError

This class provides the interface to receive results or an error when the async 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 aborted and the fail method is called with the corresponding AdobeError.

Copied to your clipboard
public interface IAdobeCallbackWithError : IAdobeCallback, IJavaObject, IDisposable, IJavaPeerable
{
void Fail (AdobeError p0);
}

AdobeError

Errors which may be passed to an AdobeCallbackWithError:

  • UnexpectedError - An unexpected error occurred.
  • CallbackTimeout - The timeout was met.
  • CallbackNull - The provided callback function is null.
  • ExtensionNotInitialized - The extension is not initialized.

Example

Copied to your clipboard
ACPCore.GetPrivacyStatus(new AdobeCallbackWithError());
class AdobeCallbackWithError : Java.Lang.Object, IAdobeCallbackWithError
{
public void Call(Java.Lang.Object stringContent)
{
if (stringContent != null)
{
Console.WriteLine("String callback content: " + stringContent);
}
else
{
Console.WriteLine("null content in string callback");
}
}
public void Fail(AdobeError error)
{
if (error == AdobeError.UnexpectedError)
{
// handle unexpected error
}
else if (error == AdobeError.CallbackTimeout)
{
// handle timeout error
}
else if (error == AdobeError.CallbackNull)
{
// handle null callback error
}
else if (error == AdobeError.ExtensionNotInitialized)
{
// handle extension not initialized error
}

iOS

ACPError

Errors which may be passed to a completion handler callback from any API which uses one:

  • ACPError.Unexpected - An unexpected error occurred.
  • ACPError.CallbackTimeout - The timeout was met.
  • ACPError.CallbackNil - The provided callback function is nil.
  • ACPError.ExtensionNotInitialized - The extension is not initialized.

Example

Copied to your clipboard
ACPCore.GetPrivacyStatusWithCompletionHandler((privacyStatus, error) => {
if (error != null)
{
if ( error.Code == (int)ACPError.CallbackTimeout)
{
// handle timeout error
}
else if (error.Code == (int)ACPError.CallbackNil)
{
// handle nil callback error
}
else if (error.Code == (int)ACPError.ExtensionNotInitialized)
{
// handle extension not initialized error
}
else if (error.Code == (int)ACPError.Unexpected)
{
// handle unexpected error
}
}
else
{
Console.WriteLine("privacy status: " + privacyStatus);
}
});
Was this helpful?
  • Privacy
  • Terms of Use
  • Do not sell or share my personal information
  • AdChoices
Copyright © 2024 Adobe. All rights reserved.