Capturing Profile Data
- The Data Cloud Module for the Engagement Mobile SDK must be configured and initialized.
- Consent to track must be granted.
Setting Profile Attributes
1import Cdp
2import SFMCSDK
3
4...
5
6let profileAttributes = [
7 "email": "user@domain.com",
8 "username": "user01"
9]
10SFMCSdk.identity.setProfileAttributes([.cdp: profileAttributes])1import com.salesforce.marketingcloud.sfmcsdk.SFMCSdk
2import com.salesforce.marketingcloud.sfmcsdk.modules.ModuleIdentifier.CDP
3
4...
5
6val profileAttributes = mapOf(
7 "email" to "user@domain.com",
8 "username" to "user01"
9)
10SFMCSdk.requestSdk { sdk ->
11 sdk.identity.setProfileAttributes(profileAttributes, CDP)
12}When a profile attribute changes, the Data Cloud Module triggers an identity profile event containing all the attributes that have been set. These attributes can be set to any name and value pair.
Supported Customer 360 Data Model
The Identity Schema provided by the recommended Mobile Connector schema for Data Cloud contains profile attributes that support identity resolution features in Data Cloud when mapped to the appropriate Customer 360 Data Model.
- Individual
- firstName
- lastName
- Software Application
- registrationId
- softwareApplicationName
- Device
- advertiserId
- deviceType
- osName
- Contact Point App
- registrationId
Starting with Android 13 (API level 33), permission is required to request the device’s advertiserId. In Data Cloud 2.0.2, this permission is included by default. To prevent this permission from getting merged into your app, add this element to your AndroidManifest.xml:
1<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>- Contact Point Email Schema
- Contact Point Phone Schema
- phoneNumber
- Contact Point Address Schema
- addressLine1
- city
- postalCode
- stateProvince
- country
Anonymous and Known Users
In the Data Cloud Module, all customers are considered known by default. To mark a customer as anonymous, set the isAnonymous profile attribute to “1”. Conversely, setting isAnonymous to “0” ensures that customers are considered known.
iOS1import Cdp
2import SFMCSDK
3
4...
5
6// treat a profile as anonymous
7SFMCSdk.identity.setProfileAttributes([.cdp: ["isAnonymous": “1”]])
8// or use this convenience function
9CdpModule.shared.setProfileToAnonymous()
10
11// treat a profile as known
12SFMCSdk.identity.setProfileAttributes([.cdp: ["isAnonymous": “0”]])
13 // or use this convenience function
14 CdpModule.shared.setProfileToKnown()1// treat a profile as anonymous
2SFMCSdk.requestSdk { sdk ->
3 sdk.identity.setProfileAttribute("isAnonymous", “1”, CDP)
4}
5
6// treat a profile as known
7SFMCSdk.requestSdk { sdk ->
8 sdk.identity.setProfileAttribute("isAnonymous", “0”, CDP)
9}Shared Party Identifiers
The Engagement Mobile SDK also supports sharing identifiers between modules that support other Salesforce systems for integration use cases. For example, match an individual using a mobile application that has Data Cloud and the MobilePush modules to send a push notification to a specific anonymous mobile user.
Anonymous MobilePush User- registrationId — Identification Number
- userId — Identification Number
- IDName — Party Identification Name
- IDType — Party Identification Type