Salesforce Marketing Cloud Android SDK v11.0

This package contains the core components for the Salesforce Marketing Cloud Unified SDK, providing configuration and initialization functionality for Mobile App Messaging, Marketing Cloud Engagement, Personalization, and Data Cloud (CDP).

Usage Pattern 

  1. Build configuration using SFMCSdkModuleConfig
  2. Call SFMCSdk.configure() with the configuration
  3. Register SFMCSdkReadyListener to receive SDK instance when ready
  4. Use InitializationListener to monitor initialization status

SFMCSdk Class 

Package: com.salesforce.marketingcloud.sfmcsdk
Since: 1.0.0

Overview 

1class SFMCSdk

The SFMCSdk class serves as the configuration entry point for Salesforce Marketing Cloud services including Mobile App Messaging, Marketing Cloud Engagement, Personalization, and Data Cloud (CDP). After configuration, it provides access to tracking and Identity management functionality.

Thread Safety: The SDK is thread-safe and can be used from any thread, though initialization should occur on the main thread.

Usage Example 

1// Configure the SDK with desired modules
2SFMCSdk.configure(context, config) { status ->
3  if (status.status == InitializationStatus.SUCCESS) {
4    // SDK is ready to use
5    SFMCSdk.requestSdk { sdk ->
6      // Access SDK functionality
7      sdk.track(Event("app_open"))
8      sdk.identity.edit {
9        setProfileId("123")
10      }
11    }
12  }
13}

Properties 

config 

1val config: SFMCSdkModuleConfig

The module configuration settings.

identity 

1var identity: Identity

Identity class for identity management operations.

Methods 

getSdkState 

1fun getSdkState(): JSONObject

Returns: The current state of all SDK modules as a JSONObject.

Nested Types 

Companion 

1object Companion

Companion object providing static methods for SDK initialization and operations.


SFMCSdk.Companion 

Package: com.salesforce.marketingcloud.sfmcsdk

Overview 

Companion object for the Salesforce Marketing Cloud Unified SDK, providing static methods for SDK initialization, configuration, and event tracking.

Properties 

initializationState 

1@JvmStatic
2val initializationState: InitializationState

Returns the current initialization state of the SDK.

SDK_VERSION_NAME 

1const val SDK_VERSION_NAME: String

The version name of the SDK.

Methods 

configure 

1@MainThread
2@JvmStatic
3@JvmOverloads
4fun configure(
5    context: Context,
6    config: SFMCSdkModuleConfig,
7    listener: InitializationListener? = null
8)

Initializes the SDK with the provided configuration.

Parameters:

  • context: Android application context
  • config: SDK module configuration
  • listener: Optional callback notified when initialization completes

Annotations:

  • @MainThread: Must be called on the main thread
  • @JvmStatic: Accessible from Java as a static method
  • @JvmOverloads: Provides overloaded versions for Java

Notes:

  • Subsequent calls with identical config values are ignored
  • Callers of requestSdk() are notified before the InitializationListener

requestSdk 

1@JvmStatic
2fun requestSdk(listener: SFMCSdkReadyListener)

Asynchronously requests an instance of the SDK.

Parameters:

  • listener: Callback that receives the SDK instance when ready

Behavior:

  • Called immediately if SDK is already initialized
  • Called upon completion if configure() is in progress
  • Not called if initialization fails with FAILURE status
  • Listener list cleared on failure

track 

1@JvmStatic
2fun track(vararg events: Event?)

Tracks one or more events, dispatching them to all registered SDK modules.

Parameters:

  • events: Variable number of Event objects to track

sendImmediate 

1@JvmStatic
2fun sendImmediate(event: Event)

Tracks a high-priority event and schedules immediate delivery of queued events.

Parameters:

  • event: The event to track with high priority

Notes:

  • Unlike track(), attempts prompt delivery rather than waiting for scheduled delivery

flush 

1@JvmStatic
2fun flush()

Schedules a flush of all queued events.

Notes:

  • Subject to a 60-second throttling period between consecutive flush calls
  • Deferred requests wait until the throttle window elapses

setLogging 

1@JvmStatic
2fun setLogging(
3    level: LogLevel,
4    listener: LogListener?,
5    vararg modules: ModuleLogger
6)

Enables or disables logging in the SDK.

Parameters:

  • level: The desired log level
  • listener: Optional callback for log events
  • modules: Variable number of module loggers to configure

SFMCSdkModuleConfig 

Package: com.salesforce.marketingcloud.sfmcsdk

Overview 

1class SFMCSdkModuleConfig

A configuration class for building and managing module configurations supported by the Salesforce Marketing Cloud Unified SDK. This class is used to initialize the SDK through SFMCSdk.configure().

Description 

Class which helps in building all configs that SFMCSdk supports. The SDK is initialized only with configurations provided by this class. Callers can provide configurations only for modules that need to be initialized.

Properties 

PropertyTypeDescription
cdpModuleConfigCdpModuleConfig?Configuration for CDP module
engagementModuleConfigEngagementModuleConfig?Configuration for Engagement module
inAppMessagingFeatureModuleConfigInAppMessagingFeatureModuleConfig?Configuration for In-App Messaging feature
mamModuleConfigMamModuleConfig?Configuration for MAM module
personalizationModuleConfigPersonalizationModuleConfig?Configuration for Personalization module
pushFeatureModuleConfigPushFeatureModuleConfig?Configuration for Push feature

Nested Types 

Builder 

1class Builder

A builder class for creating various module configurations supported by the SDK.

Companion 

1object Companion

Companion object for SFMCSdkModuleConfig.


SFMCSdkModuleConfig.Builder 

Package: com.salesforce.marketingcloud.sfmcsdk
Parent Class: SFMCSdkModuleConfig

Overview 

Builder class for creating configurations supported by SFMCSdk. Accepts configs implementing the Config interface, including EngagementModuleConfig, PersonalizationModuleConfig, and CdpModuleConfig.

Constructor 

1constructor()

Creates a new Builder instance.

Properties 

cdpModuleConfig 

1var cdpModuleConfig: CdpModuleConfig?

Configuration for the CDP module.

engagementModuleConfig 

1var engagementModuleConfig: EngagementModuleConfig?

Configuration for the Engagement module.

inAppMessagingFeatureModuleConfig 

1var inAppMessagingFeatureModuleConfig: InAppMessagingFeatureModuleConfig?

Configuration for the In-App Messaging feature module.

mamModuleConfig 

1var mamModuleConfig: MamModuleConfig?

Configuration for the MAM module.

personalizationModuleConfig 

1var personalizationModuleConfig: PersonalizationModuleConfig?

Configuration for the Personalization module.

pushFeatureModuleConfig 

1var pushFeatureModuleConfig: PushFeatureModuleConfig?

Configuration for the Push feature module.

Methods 

build 

1fun build(): SFMCSdkModuleConfig

Builds the SFMCSdkModuleConfig with the configured Builder. All module configs provided through the Builder are initialized.

Returns: SFMCSdkModuleConfig


InitializationStatus Interface 

Package: com.salesforce.marketingcloud.sfmcsdk

Overview 

1interface InitializationStatus

The initialization status interface for the Salesforce Marketing Cloud Unified SDK.

Properties 

status 

1abstract val status: Int

The status of the SDK’s initialization result.

Nested Types 

Companion 

1object Companion

Companion object containing status constants.

Constants (InitializationStatus.Companion) 

SUCCESS 

1const val SUCCESS: Int = 1

The SDK successfully initialized.

FAILURE 

1const val FAILURE: Int

The SDK failed to initialize successfully.

Inheritors 

  • SFMCSdkInitializationStatus

SFMCSdkInitializationStatus 

Package: com.salesforce.marketingcloud.sfmcsdk

Overview 

1class SFMCSdkInitializationStatus : InitializationStatus

SFMCSdkInitializationStatus is a class that implements the InitializationStatus interface. It provides an implementation for tracking the SDK initialization state.

Inheritance 

1InitializationStatus
2    ↳ SFMCSdkInitializationStatus

Properties 

status 

1open override val status: Int

The SDK’s initialization status value.


InitializationState Enum 

Package: com.salesforce.marketingcloud.sfmcsdk
Type: enum

Overview 

1enum class InitializationState

An enumeration that represents the current initialization state of the Salesforce Marketing Cloud SDK.

Enum Values 

ValueDescription
NONESDK has not started initialization
INITIALIZINGSDK is currently in the process of initializing
READYSDK has completed initialization successfully and is ready for use
ERRORSDK initialization failed due to an error

Properties 

entries 

1val entries: EnumEntries<InitializationState>

Returns an immutable list of all enum entries in declaration order.

Methods 

valueOf 

1fun valueOf(value: String): InitializationState

Returns the enum constant matching the specified name. The string must exactly match an enum constant identifier.

Parameters:

  • value: The name of the enum constant

Returns: The enum constant of this type with the specified name

values 

1fun values(): Array<InitializationState>

Returns an array of all enum constants in declaration order.

Returns: Array containing all enum constants


Type Aliases 

InitializationListener 

1typealias InitializationListener = (InitializationStatus) -> Unit

Observer function notified when SDK initialization completes.

Parameters:

  • InitializationStatus: The status object containing initialization result

SFMCSdkReadyListener 

1interface SFMCSdkReadyListener

Functional interface that provides a valid SFMCSdk instance when ready.

Behavior:

  • Called immediately if SDK is already initialized
  • Called upon completion if configure() is in progress
  • Not called if initialization fails with FAILURE status
  • Listener list cleared on failure