SFMCSdk
SFMCSdkInitializationStatus
SFMCSdkModuleConfig
DID THIS ARTICLE SOLVE YOUR ISSUE?
Let us know so we can improve!
Let us know so we can improve!
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).
SFMCSdkModuleConfigSFMCSdk.configure() with the configurationSFMCSdkReadyListener to receive SDK instance when readyInitializationListener to monitor initialization statusPackage: com.salesforce.marketingcloud.sfmcsdk
Since: 1.0.0
1class SFMCSdkThe 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.
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}1val config: SFMCSdkModuleConfigThe module configuration settings.
1var identity: IdentityIdentity class for identity management operations.
1fun getSdkState(): JSONObjectReturns: The current state of all SDK modules as a JSONObject.
1object CompanionCompanion object providing static methods for SDK initialization and operations.
Package: com.salesforce.marketingcloud.sfmcsdk
Companion object for the Salesforce Marketing Cloud Unified SDK, providing static methods for SDK initialization, configuration, and event tracking.
1@JvmStatic
2val initializationState: InitializationStateReturns the current initialization state of the SDK.
1const val SDK_VERSION_NAME: StringThe version name of the SDK.
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 contextconfig: SDK module configurationlistener: Optional callback notified when initialization completesAnnotations:
@MainThread: Must be called on the main thread@JvmStatic: Accessible from Java as a static method@JvmOverloads: Provides overloaded versions for JavaNotes:
requestSdk() are notified before the InitializationListener1@JvmStatic
2fun requestSdk(listener: SFMCSdkReadyListener)Asynchronously requests an instance of the SDK.
Parameters:
listener: Callback that receives the SDK instance when readyBehavior:
configure() is in progressFAILURE status1@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 track1@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 priorityNotes:
track(), attempts prompt delivery rather than waiting for scheduled delivery1@JvmStatic
2fun flush()Schedules a flush of all queued events.
Notes:
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 levellistener: Optional callback for log eventsmodules: Variable number of module loggers to configurePackage: com.salesforce.marketingcloud.sfmcsdk
1class SFMCSdkModuleConfigA 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().
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.
| Property | Type | Description |
|---|---|---|
cdpModuleConfig | CdpModuleConfig? | Configuration for CDP module |
engagementModuleConfig | EngagementModuleConfig? | Configuration for Engagement module |
inAppMessagingFeatureModuleConfig | InAppMessagingFeatureModuleConfig? | Configuration for In-App Messaging feature |
mamModuleConfig | MamModuleConfig? | Configuration for MAM module |
personalizationModuleConfig | PersonalizationModuleConfig? | Configuration for Personalization module |
pushFeatureModuleConfig | PushFeatureModuleConfig? | Configuration for Push feature |
1class BuilderA builder class for creating various module configurations supported by the SDK.
1object CompanionCompanion object for SFMCSdkModuleConfig.
Package: com.salesforce.marketingcloud.sfmcsdk
Parent Class: SFMCSdkModuleConfig
Builder class for creating configurations supported by SFMCSdk. Accepts configs implementing the Config interface, including EngagementModuleConfig, PersonalizationModuleConfig, and CdpModuleConfig.
1constructor()Creates a new Builder instance.
1var cdpModuleConfig: CdpModuleConfig?Configuration for the CDP module.
1var engagementModuleConfig: EngagementModuleConfig?Configuration for the Engagement module.
1var inAppMessagingFeatureModuleConfig: InAppMessagingFeatureModuleConfig?Configuration for the In-App Messaging feature module.
1var mamModuleConfig: MamModuleConfig?Configuration for the MAM module.
1var personalizationModuleConfig: PersonalizationModuleConfig?Configuration for the Personalization module.
1var pushFeatureModuleConfig: PushFeatureModuleConfig?Configuration for the Push feature module.
1fun build(): SFMCSdkModuleConfigBuilds the SFMCSdkModuleConfig with the configured Builder. All module configs provided through the Builder are initialized.
Returns: SFMCSdkModuleConfig
Package: com.salesforce.marketingcloud.sfmcsdk
1interface InitializationStatusThe initialization status interface for the Salesforce Marketing Cloud Unified SDK.
1abstract val status: IntThe status of the SDK’s initialization result.
1object CompanionCompanion object containing status constants.
1const val SUCCESS: Int = 1The SDK successfully initialized.
1const val FAILURE: IntThe SDK failed to initialize successfully.
SFMCSdkInitializationStatusPackage: com.salesforce.marketingcloud.sfmcsdk
1class SFMCSdkInitializationStatus : InitializationStatusSFMCSdkInitializationStatus is a class that implements the InitializationStatus interface. It provides an implementation for tracking the SDK initialization state.
1InitializationStatus
2 ↳ SFMCSdkInitializationStatus1open override val status: IntThe SDK’s initialization status value.
Package: com.salesforce.marketingcloud.sfmcsdk
Type: enum
1enum class InitializationStateAn enumeration that represents the current initialization state of the Salesforce Marketing Cloud SDK.
| Value | Description |
|---|---|
NONE | SDK has not started initialization |
INITIALIZING | SDK is currently in the process of initializing |
READY | SDK has completed initialization successfully and is ready for use |
ERROR | SDK initialization failed due to an error |
1val entries: EnumEntries<InitializationState>Returns an immutable list of all enum entries in declaration order.
1fun valueOf(value: String): InitializationStateReturns the enum constant matching the specified name. The string must exactly match an enum constant identifier.
Parameters:
value: The name of the enum constantReturns: The enum constant of this type with the specified name
1fun values(): Array<InitializationState>Returns an array of all enum constants in declaration order.
Returns: Array containing all enum constants
1typealias InitializationListener = (InitializationStatus) -> UnitObserver function notified when SDK initialization completes.
Parameters:
InitializationStatus: The status object containing initialization result1interface SFMCSdkReadyListenerFunctional interface that provides a valid SFMCSdk instance when ready.
Behavior:
configure() is in progressFAILURE status