> For the complete documentation index, see [llms.txt](https://docs.hackle.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hackle.io/crm-marketing/in-app-message-guide/frequency.md).

# 인앱 메시지 피로도 관리

{% hint style="info" %}
이 문서는 인앱 메시지 노출 판단 과정의 **노출 제한 조건 확인** 단계를 자세히 다룹니다.
{% endhint %}

<figure><img src="/files/CVoqaaBbAyxgYo8KpLLf" alt=""><figcaption></figcaption></figure>

## 개요

노출 제한(피로도 관리)은 동일한 인앱 메시지가 사용자에게 과도하게 반복 노출되는 것을 막는 기능입니다.

인앱 메시지가 한 번 노출될 때마다 노출 기록이 남으며, 다음 노출 시점에 이 기록을 바탕으로 설정한 제한을 초과했는지 판단합니다.

## 노출 제한 기준

<table><thead><tr><th width="128.86328125">구분</th><th>의미</th><th>기준</th></tr></thead><tbody><tr><td><strong>세션 당</strong></td><td>하나의 세션 동안 노출 횟수를 제한</td><td><code>$sessionId</code></td></tr><tr><td><strong>디바이스 당</strong></td><td>하나의 기기에서 노출 횟수를 제한</td><td><code>$deviceId</code></td></tr><tr><td><strong>사용자 당</strong></td><td>설정한 기간 동안 노출 횟수를 제한</td><td><code>기기 캐시에 저장된 노출 시점</code></td></tr></tbody></table>

{% hint style="warning" %}
노출 제한 구분에 관계없이 모든 노출 기록은 **사용자의 기기에 저장**됩니다.\
따라서 앱을 삭제하거나 데이터를 초기화하면 노출 기록이 사라지고 횟수가 다시 0부터 집계됩니다.
{% endhint %}

> #### 예제
>
> * **사용자에게 세션 당 1회** — 같은 세션 안에서는 인앱 메시지가 한 번만 노출됩니다.
> * **사용자에게 디바이스 당 3회** — 해당 기기에서 인앱 메시지가 총 세 번까지만 노출됩니다.
> * **사용자에게 7일 2회** — 최근 7일 이내에 두 번 노출되었다면 더 이상 노출되지 않습니다.

## 과정 상세

인앱 메시지 노출 시점에 노출 제한은 다음 순서로 판단됩니다.

{% stepper %}
{% step %}

#### 노출 기록 조회

해당 인앱 메시지의 저장된 노출 기록을 모두 불러옵니다. 각 기록에는 노출 당시의 식별자와 노출 시각이 담겨 있습니다.
{% endstep %}

{% step %}

#### 기준별 노출 횟수 집계

설정된 각 기준(세션 당·디바이스 당·사용자 당)에 대해, 조건에 해당하는 노출 기록의 수를 셉니다.

* 세션 당·디바이스 당: 식별자가 일치하는 기록을 집계
* 사용자 당: 설정 기간 이내에 발생한 기록을 집계
  {% endstep %}

{% step %}

#### 제한 초과 여부 판단

설정된 기준 중 **하나라도** 제한 횟수에 도달하면 노출을 제한합니다.\
각 기준은 서로 독립적으로 판단되며, 모든 기준을 통과해야 인앱 메시지가 노출됩니다.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
여러 기준을 함께 설정한 경우, 설정한 모든 제한 조건을 동시에 만족해야 인앱 메시지가 노출됩니다.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.hackle.io/crm-marketing/in-app-message-guide/frequency.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
