# Marketing Cloud Mobile App Messaging SDK

This section provides API reference details for the Marketing Cloud Mobile App Messaging SDK module in React Native unified plugin.

## getDeviceId

Returns the device ID that Mobile App Messaging uses to identify the device.

### Syntax

```javascript
MobileAppMessagingSdkModule.getDeviceId();
```

### Returns

- `Promise<string \| null>` - A promise that resolves to the device ID, or `null`.

### Example

```javascript
import { MobileAppMessagingModule } from "@sfmc/react-native-mobileappmessaging";
import type { MAMApi } from "@sfmc/react-native-mobileappmessaging";

const mam: MAMApi = await MobileAppMessagingModule.requestSdk();
const deviceId = await mam.getDeviceId();
```

### See Also

- [Android SDK Reference](https://salesforce-marketingcloud.github.io/MarketingCloudSDK-Android/javadocs/SFMCSdk/11.0/mobileappmessaging/com.salesforce.marketingcloud.mobileappmessaging.registration/-registration-manager/get-device-id.html)
- [iOS SDK Reference](https://salesforce-marketingcloud.github.io/MarketingCloudSDK-iOS/appledocs/MAMSdk/2.0/Classes/MobileAppMessaging.html#/c:@CM@MobileAppMessagingSDK@objc\(cs\)SFMobileAppMessaging\(im\)deviceIdentifier)

## enableAnalytics

Enables analytics in the Mobile App Messaging SDK.

### Syntax

```javascript
MobileAppMessagingSdkModule.enableAnalytics();
```

### Returns

- `void`

### Example

```javascript
import { MobileAppMessagingModule } from "@sfmc/react-native-mobileappmessaging";
import type { MAMApi } from "@sfmc/react-native-mobileappmessaging";

const mam: MAMApi = await MobileAppMessagingModule.requestSdk();
mam.enableAnalytics();
```

### See Also

- [Android SDK Reference](https://salesforce-marketingcloud.github.io/MarketingCloudSDK-Android/javadocs/SFMCSdk/11.0/mobileappmessaging/com.salesforce.marketingcloud.mobileappmessaging.analytics/-analytics-manager/enable-analytics.html)
- [iOS SDK Reference](https://salesforce-marketingcloud.github.io/MarketingCloudSDK-iOS/appledocs/MAMSdk/2.0/Classes/MobileAppMessaging.html#/c:@CM@MobileAppMessagingSDK@objc\(cs\)SFMobileAppMessaging\(im\)setAnalyticsEnabled:)

## disableAnalytics

Disables analytics in the Mobile App Messaging SDK.

### Syntax

```javascript
MobileAppMessagingSdkModule.disableAnalytics();
```

### Returns

- `void`

### Example

```javascript
import { MobileAppMessagingModule } from "@sfmc/react-native-mobileappmessaging";
import type { MAMApi } from "@sfmc/react-native-mobileappmessaging";

const mam: MAMApi = await MobileAppMessagingModule.requestSdk();
mam.disableAnalytics();
```

### See Also

- [Android SDK Reference](https://salesforce-marketingcloud.github.io/MarketingCloudSDK-Android/javadocs/SFMCSdk/11.0/mobileappmessaging/com.salesforce.marketingcloud.mobileappmessaging.analytics/-analytics-manager/disable-analytics.html)
- [iOS SDK Reference](https://salesforce-marketingcloud.github.io/MarketingCloudSDK-iOS/appledocs/MAMSdk/2.0/Classes/MobileAppMessaging.html#/c:@CM@MobileAppMessagingSDK@objc\(cs\)SFMobileAppMessaging\(im\)setAnalyticsEnabled:)

## isAnalyticsEnabled

Checks whether analytics is enabled in the Mobile App Messaging SDK.

### Syntax

```javascript
MobileAppMessagingSdkModule.isAnalyticsEnabled();
```

### Returns

- `Promise<boolean>` - A promise that resolves to whether analytics is enabled.

### Example

```javascript
import { MobileAppMessagingModule } from "@sfmc/react-native-mobileappmessaging";
import type { MAMApi } from "@sfmc/react-native-mobileappmessaging";

const mam: MAMApi = await MobileAppMessagingModule.requestSdk();
const enabled = await mam.isAnalyticsEnabled();
```

### See Also

- [Android SDK Reference](https://salesforce-marketingcloud.github.io/MarketingCloudSDK-Android/javadocs/SFMCSdk/11.0/mobileappmessaging/com.salesforce.marketingcloud.mobileappmessaging.analytics/-analytics-manager/are-analytics-enabled.html)
- [iOS SDK Reference](https://salesforce-marketingcloud.github.io/MarketingCloudSDK-iOS/appledocs/MAMSdk/2.0/Classes/MobileAppMessaging.html#/c:@CM@MobileAppMessagingSDK@objc\(cs\)SFMobileAppMessaging\(im\)isAnalyticsEnabled)

## setRegistrationCallback

Registers a callback to receive registration change events from the SDK.

### Syntax

```javascript
MobileAppMessagingSdkModule.setRegistrationCallback();
```

### Returns

- `void`

### Example

```javascript
import { MobileAppMessagingModule } from "@sfmc/react-native-mobileappmessaging";
import type { MAMApi } from "@sfmc/react-native-mobileappmessaging";

const mam: MAMApi = await MobileAppMessagingModule.requestSdk();
mam.setRegistrationCallback();

const sub = MobileAppMessagingModule.getEmitter().addListener(
  "sfmc_mam_registration",
  (registration) => {
    console.log("MAM registration changed:", registration);
  },
);

sub.remove();
```

### See Also

- [Android SDK Reference](https://salesforce-marketingcloud.github.io/MarketingCloudSDK-Android/javadocs/SFMCSdk/11.0/mobileappmessaging/com.salesforce.marketingcloud.mobileappmessaging.registration/-registration-manager/register-for-registration-events.html)
- [iOS SDK Reference](https://salesforce-marketingcloud.github.io/MarketingCloudSDK-iOS/appledocs/MAMSdk/2.0/Classes/MobileAppMessaging.html#/c:@CM@MobileAppMessagingSDK@objc\(cs\)SFMobileAppMessaging\(im\)setRegistrationCallback:)

## unsetRegistrationCallback

Unregisters the registration change callback.

### Syntax

```javascript
MobileAppMessagingSdkModule.unsetRegistrationCallback();
```

### Returns

- `void`

### Example

```javascript
import { MobileAppMessagingModule } from "@sfmc/react-native-mobileappmessaging";
import type { MAMApi } from "@sfmc/react-native-mobileappmessaging";

const mam: MAMApi = await MobileAppMessagingModule.requestSdk();
mam.unsetRegistrationCallback();
```

### See Also

- [Android SDK Reference](https://salesforce-marketingcloud.github.io/MarketingCloudSDK-Android/javadocs/SFMCSdk/11.0/mobileappmessaging/com.salesforce.marketingcloud.mobileappmessaging.registration/-registration-manager/unregister-for-registration-events.html)
- [iOS SDK Reference](https://salesforce-marketingcloud.github.io/MarketingCloudSDK-iOS/appledocs/MAMSdk/2.0/Classes/MobileAppMessaging.html#/c:@CM@MobileAppMessagingSDK@objc\(cs\)SFMobileAppMessaging\(im\)unsetRegistrationCallback)
