Configure Marketing Cloud Engagement
Initialize the SDK
Runtime Toggles
Event Tracking
Handle URLs
Data Protection and Privacy
Changelog
Initialize the SDK during the execution of the onCreate method for your Application class. Initialization requires configuration data for your Marketing Cloud Engagement application.
Before you initialize the SDK, configure your app in Marketing Cloud Engagement and obtain the App ID, Access Token, App Endpoint, and MID values.
For SDK version 10 or higher, use this code.
1class MyApplication : Application() {
2 override fun onCreate() {
3 super.onCreate()
4
5 // Initialize logging _before_ initializing the SDK to avoid losing valuable debugging information.
6 if(BuildConfig.DEBUG) {
7 SFMCSdk.setLogging(LogLevel.DEBUG, LogListener.AndroidLogger())
8 MarketingCloudSdk.setLogLevel(MCLogListener.VERBOSE)
9 MarketingCloudSdk.setLogListener(MCLogListener.AndroidLogListener())
10 }
11
12 SFMCSdk.configure(applicationContext as Application, SFMCSdkModuleConfig.build {
13 engagementModuleConfig = MarketingCloudConfig.builder().apply {
14 setApplicationId("{mc_application_id}")
15 setAccessToken("{mc_access_token}")
16 setMarketingCloudServerUrl("{marketing_cloud_url}")
17 // Other configuration options
18 }.build(applicationContext)
19 }) { initStatus ->
20 // Handle initialization status
21 }
22 }
23}For version 8 or 9 of the SDK, use SFMCSdk to initialize the MarketingCloudSdk.
1class MyApplication : Application() {
2 override fun onCreate() {
3 super.onCreate()
4
5 // Initialize logging _before_ initializing the SDK to avoid losing valuable debugging information.
6 if(BuildConfig.DEBUG) {
7 SFMCSdk.setLogging(LogLevel.DEBUG, LogListener.AndroidLogger())
8 MarketingCloudSdk.setLogLevel(MCLogListener.VERBOSE)
9 MarketingCloudSdk.setLogListener(MCLogListener.AndroidLogListener())
10 }
11
12 SFMCSdk.configure(applicationContext as Application, SFMCSdkModuleConfig.build {
13 pushModuleConfig = MarketingCloudConfig.builder().apply {
14 setApplicationId("{mc_application_id}")
15 setAccessToken("{mc_access_token}")
16 setSenderId("{fcm_sender_id}")
17 setMarketingCloudServerUrl("{marketing_cloud_url}")
18 setNotificationCustomizationOptions(
19 NotificationCustomizationOptions.create(R.drawable.ic_notification_icon)
20 )
21 // Other configuration options
22 }.build(applicationContext)
23 }) { initStatus ->
24 // TODO handle initialization status
25 }
26 }
27}If you use version 7 of the SDK, use this code.
1class MyApplication : Application() {
2
3 override fun onCreate() {
4 super.onCreate()
5
6 // Initialize logging _before_ initializing the SDK to avoid losing valuable debugging information.
7 if(BuildConfig.DEBUG) {
8 MarketingCloudSdk.setLogLevel(MCLogListener.VERBOSE)
9 MarketingCloudSdk.setLogListener(MCLogListener.AndroidLogListener())
10 }
11
12 MarketingCloudSdk.init(applicationContext as Application, MarketingCloudConfig.builder().apply {
13 setApplicationId("{mc_application_id}")
14 setAccessToken("{mc_access_token}")
15 setSenderId("{fcm_sender_id}")
16 setMarketingCloudServerUrl("{marketing_cloud_url}")
17 setMid("{mid}")
18 setNotificationCustomizationOptions(
19 NotificationCustomizationOptions.create(R.drawable.ic_notification_icon)
20 )
21 // Other configuration options
22 }.build(applicationContext)) { status ->
23 // TODO handle initialization status
24 }
25 }
26}To ensure that the SDK can send messages while the app is in the background, call the SDK’s configure method and initialize the pushModuleConfig from your app’s onCreate method.