# In-App Message Exposure Process

## Overview

This document explains the process for determining whether an in-app message is displayed to a user.

Note that only one in-app message is displayed at a time.

## Flowchart

![](/files/zHurfRxhslj8oMm515Sv)

## Process Details

The process for determining whether to display an in-app message is as follows:

**1. The event registered as the trigger event for the in-app message occurs.**

* When the trigger event occurs, it is evaluated whether the event and property filter conditions are satisfied.
* If conditions are not satisfied, the in-app message is not displayed.

**2. Check whether the layout is supported.**

* Older versions of the SDK may not support certain in-app message layouts. (A notice is displayed when configuring an in-app message in the Dashboard.)
* If the layout is not supported in the current version of the SDK, the in-app message is not displayed.

**3. Check whether the user is registered as a test device.**

* If the user is registered as a test device, the in-app message is displayed. If an A/B Test is applied, the user is assigned to the designated test group.

**4. Check whether the in-app campaign status is active.**

* If the status is 'In Progress' or 'Completed', the in-app message is not displayed.

**5. Check whether the in-app campaign is within its display period.**

* If outside the campaign display period, the in-app message is not displayed.

**6. Check in-app campaign display limit conditions.**

* If the campaign is configured to be displayed a maximum of n times per session/device/period for the same campaign, the in-app message is not displayed due to the display limit condition.

**7. Check whether the user satisfies the audience conditions.**

* If the user does not satisfy the targeting conditions — such as properties, A/B Test distribution, Feature Flag distribution, event count conditions, etc. — the in-app message is not displayed.

**8. Check A/B Test conditions.**

* If conditions 1–7 are satisfied and no A/B Test is configured, the in-app message is displayed.
* If conditions 1–7 are satisfied and an A/B Test is ongoing, the in-app message is displayed per group. If Group A is the control group, the in-app message is not displayed.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.hackle.io/en/crm-marketing/in-app-message-guide/in-app-message-exposure-process.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
