Configure Marketing Cloud Engagement
Runtime Toggles
Determine Your Contact Key Strategy
Set the Contact Key
Check Fields Before Registration
Event Tracking
Handle URLs
Data Protection and Privacy
Changelog
If a registration is missing a required field, or if a required field contains an error, the registration is considered invalid. When a registration is invalid, the SDK sets the device that’s associated with the registration to an inactive or opted-out state.
Registrations are asynchronous. While the SDK can receive a successful 201 response from the server indicating that it received the registration, it can’t determine whether it successfully processed it. The SDK also can’t know whether the server marked the registration as invalid.
Note
This code sample shows an example of a registration request for a contact registered with v10.0.0 of the SDK.
1{
2 "push_Enabled": "true",
3 "sdk_Version": "10.0.0",
4 "tags": ["ALL", "DEBUG", "DISCOUNT", "IOS", "iPhone"],
5 "etAppId": "995b5b1a-162c-4e5d-a4cf-ac5ddeb14e47",
6 "device_Token": "80ef8671f34bd9acabb375031e3036f1cb906bd30c8bba2e24bd9e078ba2e14j",
7 "hwid": "iPhone13",
8 "location_Enabled": true,
9 "uuid": "A7ADDDD7-63CF-4C3F-9442-7C34C299C88A",
10 "app_Version": "10.0.0",
11 "registrationDateUtc": "2025-11-20T12:46:48.335Z",
12 "subscriberKey": "contactkey@example.com",
13 "quietPushEnabled": false,
14 "dST": false,
15 "locale": "en_US",
16 "deviceID": "DE0AEA79-955D-4941-96A5-C51853A4168B",
17 "platform": "iOS",
18 "timeZone": "19800",
19 "registrationId": "DE0AEA79-955D-4941-96A5-C51853A4168B",
20 "platform_Version": "18.5",
21 "proximity_Enabled": true,
22 "attributes": [
23 {
24 "key": "CODE",
25 "value": "FREE99"
26 }
27 ]
28}For earlier versions of the SDK, use this code.
1{
2 "deviceID" : "1EB8C21D-CA72-41AC-930D-CEC9A311D699",
3 "device_Token" : "t22wrs6vr221rr29r671412s5vwuruwwsu8s48rs274t7tr3s771w7t9v32vus41",
4 "sdk_Version" : "8.0.8",
5 "app_Version" : "32.1.4",
6 "dST" : true,
7 "location_Enabled" : true,
8 "proximity_Enabled" : true,
9 "push_Enabled" : true,
10 "platform_Version" : "15.6",
11 "timeZone" : "-14400",
12 "quietPushEnabled" : false,
13 "subscriberKey" : "contactkey@example.com",
14 "platform" : "iOS",
15 "hwid" : "iPhone13",
16 "etAppId" : " 995k5k1j-162l-4n5m-j4lo-jl5mmnk14n47",
17 "locale" : "en_US",
18 "tags" : [
19 "ALL",
20 "DEBUG",
21 "DISCOUNT",
22 "IOS"
23 ],
24 "attributes" : [
25 {
26 "key" : "CODE",
27 "value" : "FREE99"
28 }
29
30 "registrationId" : "1eb8c21d-ca72-41ac-930d-cec9a311d699",
31 ],
32 "language" : "en_US",
33}This table lists the fields that Marketing Cloud Engagement uses when it registers contacts.
| Field | Type | Description |
|---|---|---|
access_token | String | Required. The value that was provided when the app was created in Marketing Cloud Setup. The SDK was configured or initialized with this value. |
deviceID | String | Required. A random GUID that identifies a device, representing a unique installation of the app. |
etAppId | String | Required. A unique ID for the app that was created when the app was set up in Marketing Cloud. The SDK was configured or initialized with this value. |
platform | String | Required. The device’s operating system. Possible values are iOS and Android. |
device_token | String | The unique token that Apple or Google FCM returns to the SDK. To prevent implementation issues, don’t customize or interrupt the process by which the notification service returns the device token to the SDK. Tampering with the device token can invalidate it. The app must send a valid device token to Marketing Cloud for the device to receive push notifications. |
push_enabled | Boolean | Indicates whether the device or contact is eligible to receive push messages. If the value is true, the device or contact is opted in. Only opted-in contacts or devices receive push notifications. The default value is true. |
subscriberKey | String | The subscriber key for a user, which is captured or provided by the app. The key can contain up to 100 characters. If this value isn’t provided, a random GUID is generated. |
attributes | Array of key-value pairs | A set of attributes that apply to a contact. Before your app submits attributes, define the attribute keys in the MobilePush Demographics table in Contact Builder. If the attribute name that the SDK submits doesn’t match the attribute name defined in Contact Builder, the entire registration is rejected. |
dst | Boolean | Indicates whether the device time zone honors daylight saving time. |
timezone | String | The time zone offset in seconds, as set by the app. |
tags | Array of strings | A set of labels used to group or segment which devices to send to. |
platform_version | String | The version of the device’s operating system |
badge | Integer | The current number displayed in a badge on the app icon (iOS only). Represents the number of unread messages. |
sdk_version | String | The version of the SDK integrated with the app. |
app_version | String | The version of the app that’s on the device. |
location_enabled | Boolean | Indicates whether the subscriber allows the app to track their location. If the value is true, the app can track the user’s location. |
hwid | String | A hardware identifier used to identify device model and type. |
locale | String | The locale code used by the device. |
proximity_enabled | Boolean | Indicates whether the subscriber allowed the app to range for beacons. If the value is true, the subscriber allowed ranging for beacons. |