# Mobile In-App Measurement

The preview Engage Mobile SDK records supported Mobile In-App interactions. Use this page to understand when `impression`, `click`, and `dismiss` events are recorded and where measurement records are sent. For the complete event-field schema, see the [Engage Mobile SDK API and Event Reference](/products/marketing-cloud/engage-studio/channels/mobile-inapp/sdk-reference).

Preview
The native SDK measurement destination, event schema, and troubleshooting details are part of the preview contract and may change before general availability.

## Native SDK Events

The native Engage SDK records the following events for campaign-delivered messages. Measurement records are sent to:

```text
engage_inapp_{workspace_id}.events
```

The SDK derives the database name from the offer's `workspace_id`; `workspace_id` is not a record field.

For shared event fields and Core SDK enrichment, see the [Engage Mobile SDK API and Event Reference](/products/marketing-cloud/engage-studio/channels/mobile-inapp/sdk-reference).

### `impression`

The SDK records `impression` immediately after it successfully presents a campaign message. It does not wait for the hosted page to finish loading.

### `click`

The SDK records `click` when a supported link or bridge action is used.

### `dismiss`

The SDK records `dismiss` when the campaign experience closes.

`TDBridge.track` creates a separate app/content event and is not the same as the SDK-generated `click` event. A direct app call to `openUrl` has no campaign identity and does not create `impression`, `click`, or `dismiss` records.

If the app disables custom events with `disableCustomEvent()`, campaign measurement records can be dropped because they use the Core SDK custom-event path.

The schema is part of the preview contract and may change before general availability.

## Hosted Pages Measurement

A Hosted Pages returned as a campaign offer has a campaign identity and can be measured by the native SDK preview flow.

A URL displayed through the app-to-SDK `openUrl` API is different:

1. The app already has a URL.
2. The app calls `openUrl`.
3. The SDK displays the URL as Hosted Pages.
4. The display has no campaign impression, click, or dismiss identity.


Use this direct URL path for Push-tap experiences or other app-owned navigation. Do not compare direct `openUrl` volume with campaign-delivered Hosted Pages volume without separating the two paths.

## Installation Association

Call `enableAutoAppendUniqId()` when the preview SDK flow needs to associate measurement with an installation. Without an automatically appended installation identifier, measurement records may not be attributable to a device or installation.

Do not place API keys, Personalization tokens, or unnecessary personal data in `profileContext`. The SDK passes profile context to page content but does not use it as a substitute for event identity.

## Related Documentation

- [Mobile In-App Messaging](/products/marketing-cloud/engage-studio/channels/mobile-inapp)
- [Set Up Mobile In-App Messaging](/products/marketing-cloud/engage-studio/channels/mobile-inapp/setup-and-prerequisites)
- [Create a Mobile In-App Message](/products/marketing-cloud/engage-studio/channels/mobile-inapp/create-an-in-app-message)
- [Message Types and Appearance](/products/marketing-cloud/engage-studio/channels/mobile-inapp/message-types-and-appearance)
- [Hosted Pages](/products/marketing-cloud/engage-studio/channels/mobile-inapp/rich-landing)
- [Mobile In-App Troubleshooting](/products/marketing-cloud/engage-studio/channels/mobile-inapp/troubleshooting)
- [iOS SDK Integration](/products/marketing-cloud/engage-studio/channels/mobile-inapp/developer-guide-ios)
- [Android SDK Integration](/products/marketing-cloud/engage-studio/channels/mobile-inapp/developer-guide-android)
- [Mobile Push Device Token Registration](/products/marketing-cloud/engage-studio/channels/mobile-push/device-token-registration)