Analytics in Android Apps that Use SDK Version 10

The processes for enabling and using analytics features have been updated in version 10 of the SDK. To upgrade your app to version 10 of the SDK, first update the initialization code. Then, use these code examples to update the analytics code in your app.

Enable Analytics 

Use this code example to enable analytics during SDK initialization.

1SFMCSdk.configure(applicationContext as Application, SFMCSdkModuleConfig.build {
2  engagementModuleConfig = MarketingCloudConfig.builder().apply {
3    // Other configuration values
4    setAnalyticsEnabled(true) // Enable ET Analytics, default = false
5    setPiAnalyticsEnabled(true) // Enable Predictive Intelligence Analytics, default = false
6
7    /*
8      To explicitly control PI analytic attribution setUseLegacyPiIdentifier to false
9      and set a value for the Predictive Intelligence Identifier in the SDK’s AnalyticsManager.
10    */
11    setUseLegacyPiIdentifier(false)
12  }.build(applicationContext)
13}) {
14  // TODO handle initialization status
15}

Analytics Attribution 

Use this code example to set the Predictive Intelligence Identifier in the SDK’s AnalyticsManager.

1MarketingCloudSdk.requestSdk { engagementSdk ->
2  val analyticsManager = engagementSdk.analyticsManager
3
4  // Set the PI ID
5  analyticsManager.piIdentifier = "developer@salesforce.com"
6
7  // Clear the PI ID
8  analyticsManager.piIdentifier = null
9}

Track Cart Contents 

Use this code example to track the contents of an in-app shopping cart.

1MarketingCloudSdk.requestSdk { engagementSdk ->
2  val analyticsManager = engagementSdk.analyticsManager
3
4  val cartItem = PiCartItem("Burger", 2, 2.99, "burger_123")
5  val cart = PiCart(listOf(cartItem))
6
7  analyticsManager.trackCartContents(cart)
8}

Track Cart Conversion 

Use this code example to track the conversion of an in-app shopping cart.

1MarketingCloudSdk.requestSdk { engagementSdk ->
2  val analyticsManager = engagementSdk.analyticsManager
3
4  val cartItem = PiCartItem("Burger", 2, 2.99, "burger_123")
5  val cart = PiCart(listOf(cartItem))
6  val order = PiOrder(cart, "ABC1234", 4.99, .2)
7
8  analyticsManager.trackCartConversion(order)
9}

Track Page Views 

Use this code example to track the page views in your app.

1MarketingCloudSdk.requestSdk { engagementSdk ->
2  val analyticsManager = engagementSdk.analyticsManager
3
4  // trackPageView() requires a String representing the in-app URL to be tracked.
5  // Additional overloaded methods are available. See the Javadoc for details.
6  analyticsManager.trackPageView("url")
7  analyticsManager.trackPageView("url", "title")
8  analyticsManager.trackPageView("url", "title", "item")
9  analyticsManager.trackPageView("url", "title", "item", "searchTerms")
10}

Track Inbox Message Opens 

Use this code example to track the opens of an inbox message.

1MarketingCloudSdk.requestSdk { engagementSdk ->
2  val analyticsManager = engagementSdk.analyticsManager
3
4  analyticsManager.trackInboxOpenEvent(message as InboxMessage)
5}