> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 인앱 개요

> OneSignal 인앱 메시지 시작하기: 모바일 사용자를 효과적으로 참여시키기 위한 인앱 캠페인 설정, 디자인, 트리거 및 테스트 방법.

<Frame caption="인앱 메시지 예제">
  <img src="https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/iam/iam_marketing.jpg?fit=max&auto=format&n=yt4lRKoquAlWvRvF&q=85&s=4e09e43dc57956f4c33ad761f403aea5" width="1280" height="720" data-path="images/iam/iam_marketing.jpg" />
</Frame>

인앱 메시지(IAM)는 모바일 앱 내에 표시되는 사용자 지정 가능한 타겟 메시지입니다. 다음을 수행할 수 있습니다:

* 푸시 알림 구독 또는 위치 업데이트와 같은 사용자 작업 프롬프트.
* 타겟 사용자에게 새로운 기능 또는 활용도가 낮은 기능 홍보.
* 앱 업데이트를 릴리스하지 않고 실시간으로 공지 사항 및 뉴스 표시.
* 설문조사 및 캐러셀 생성.
* 온보딩 및 교육 콘텐츠 지원.

***

## 인앱 설정

인앱 메시지를 사용하려면 앱에 OneSignal SDK가 설치되어 있어야 합니다. 완료되면 코드를 작성하지 않고 OneSignal 대시보드에서 인앱 메시지를 생성하고 전송할 수 있습니다. SDK에는 다음과 같은 고급 사용 사례를 위한 메서드도 있습니다:

* 특정 시간에 메시지 트리거
* 클릭 처리 및 딥 링킹
* 메시지 일시 중지
* 수명 주기 관리 등!

<Columns cols={2}>
  <Card title="모바일 SDK 설정" href="./mobile-sdk-setup" arrow={true}>
    모바일 앱 코드베이스에 OneSignal을 추가합니다.
  </Card>

  <Card title="인앱 메시지 SDK 메서드" href="./mobile-sdk-reference#in-app-messages" arrow={true}>
    개발자: 트리거, 클릭 핸들러 및 수명 주기 API에 액세스합니다.
  </Card>

  <Card title="인앱 트리거" href="./iam-triggers" arrow={true}>
    사용자 동작 또는 앱 활동을 기반으로 메시지가 표시되는 시기를 제어합니다.
  </Card>

  <Card title="인앱 클릭 작업" href="./iam-click-actions" arrow={true}>
    사용자가 메시지와 상호 작용할 때 발생하는 작업을 정의합니다.
  </Card>
</Columns>

***

## 인앱 메시지 전송

OneSignal 대시보드 및 Journeys 내에서 인앱 메시지를 전송할 수 있습니다.

<Frame>
  <iframe width="560" height="315" src="https://www.youtube.com/embed/TSkqp4e-ya0?si=vbNStROmopkSWxWd" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen />
</Frame>

<Columns cols={2}>
  <Card title="대시보드" icon="window-maximize" href="#send-from-the-dashboard">
    OneSignal 대시보드에서 인앱 메시지를 작성하고 전송합니다.
  </Card>

  <Card title="Journeys" icon="route" href="./journeys-overview">
    자동화된 다단계 및 다채널 플로우를 구축합니다.
  </Card>
</Columns>

### 대시보드에서 전송

<Steps>
  <Step title="메시지 채널 선택" icon="window-maximize">
    **만들기...** 를 선택한 후 메시지 채널을 선택합니다. **메시지** 또는 **템플릿**으로 이동하여 이전 메시지를 볼 수도 있습니다.

    <Frame caption="OneSignal 대시보드에서 새 메시지 만들기.">
      <img src="https://mintcdn.com/onesignal/UDk6E5NjA3sdGdRN/images/dashboard/create-message.png?fit=max&auto=format&n=UDk6E5NjA3sdGdRN&q=85&s=97504cf71555ac4aeb263a36ad2d28b3" alt="OneSignal dashboard showing create message options" width="2128" height="1374" data-path="images/dashboard/create-message.png" />
    </Frame>
  </Step>

  <Step title="작성 방법 선택" icon="pencil">
    * [블록 편집기](./design-your-in-app-message) 또는 [HTML 편집기](./design-your-in-app-message-with-html)로 처음부터 시작
    * 미리 만들어진 [템플릿](./templates) 사용
  </Step>

  <Step title="이름 및 레이블 설정" icon="tag">
    추적 및 보고를 위한 내부 메타데이터를 추가합니다. API 해당 필드: `name`
  </Step>

  <Step title="잠재고객 선택" icon="users">
    메시지를 받을 사용자를 선택합니다. [세그먼트](./segmentation)를 포함하거나 제외하여 특정 그룹을 타겟팅할 수 있습니다. 세그먼트가 설정되지 않은 경우 기본값은 모든 "구독된 사용자"입니다.

    <Frame caption="대시보드에서 이름, 레이블 및 잠재고객 세그먼트 선택.">
      <img src="https://mintcdn.com/onesignal/ciRrThfP6xMpI7GY/images/dashboard/message-name-label-audience.png?fit=max&auto=format&n=ciRrThfP6xMpI7GY&q=85&s=1f41b0e42d31211b1c1badf87ba84056" alt="Dashboard fields for message name, label, and audience segment selection" width="1650" height="518" data-path="images/dashboard/message-name-label-audience.png" />
    </Frame>

    <Note>
      인앱 메시지는 푸시 옵트인 상태에 관계없이 세그먼트의 모든 [모바일 구독](./subscriptions)에 전달됩니다. 그러나 메시지에 푸시 프롬프트 [클릭 액션](#click-actions)이 포함된 경우 이미 구독된(옵트인) 모바일 구독에는 표시되지 않습니다.
    </Note>
  </Step>
</Steps>

### 메시지 디자인

더 많은 제어를 위해 시각적 드래그 앤 드롭 에디터 또는 HTML 에디터를 사용하세요.

<Frame caption="편집 화면">
  <img src="https://mintcdn.com/onesignal/56ctKxZSV4m5VEkn/images/docs/b7df349-Screenshot_2022-12-10_at_12.52.59_PM.png?fit=max&auto=format&n=56ctKxZSV4m5VEkn&q=85&s=4930228c3107db798dadc1bf69b4b0d6" width="2134" height="1736" data-path="images/docs/b7df349-Screenshot_2022-12-10_at_12.52.59_PM.png" />
</Frame>

<Columns cols={2}>
  <Card title="드래그 앤 드롭으로 디자인" href="./design-your-in-app-message" arrow={true}>
    시각적 에디터를 사용하여 메시지를 빠르게 빌드합니다.
  </Card>

  <Card title="HTML로 디자인" href="./design-your-in-app-message-with-html" arrow={true}>
    개발자가 메시지를 사용자 지정할 수 있도록 완전히 제어합니다.
  </Card>

  <Card title="미리 만들어진 HTML 템플릿" href="./in-app-html-templates" arrow={true}>
    테스트된 레이아웃 및 캠페인에서 시작합니다.
  </Card>

  <Card title="HTML용 인앱 JavaScript API" href="./in-app-message-api" arrow={true}>
    HTML 메시지에 OneSignal의 클릭 작업을 추가합니다.
  </Card>

  <Card title="메시지 개인화" href="./message-personalization" arrow={true}>
    각 사용자에 대한 메시지를 개인화하기 위한 동적 콘텐츠를 추가합니다.
  </Card>

  <Card title="다국어 메시징" href="./multi-language-messaging" arrow={true}>
    글로벌 오디언스를 위해 콘텐츠를 현지화합니다.
  </Card>
</Columns>

### 클릭 작업

사용자가 메시지의 요소를 클릭할 때 발생하는 작업을 사용자 지정합니다.

<Frame caption="클릭 작업 옵션">
  <img src="https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/iam/click_action_dropdown.png?fit=max&auto=format&n=yt4lRKoquAlWvRvF&q=85&s=4edea63fce3704ec2c343eacfc77f248" width="518" height="525" data-path="images/iam/click_action_dropdown.png" />
</Frame>

<Columns cols={2}>
  <Card title="클릭 작업" href="./iam-click-actions" arrow={true}>
    사용자가 메시지의 요소를 클릭할 때 발생하는 작업을 사용자 지정합니다.
  </Card>

  <Card title="이벤트 스트림" href="./event-streams" arrow={true}>
    메시지와의 상호 작용을 추적합니다.
  </Card>

  <Card title="SDK 클릭 핸들러" href="./mobile-sdk-reference#addclicklistener-in-app" arrow={true}>
    모바일 SDK로 클릭 이벤트에 반응합니다.
  </Card>

  <Card title="딥 링킹" href="./deep-linking" arrow={true}>
    클릭 시 사용자를 탐색합니다.
  </Card>
</Columns>

### 트리거

앱 세션 중에 메시지가 표시되는 시기를 정의합니다.

<Frame caption="트리거 설정">
  <img src="https://mintcdn.com/onesignal/jFWn5xzleD8du3j6/images/docs/5578ae6-image.png?fit=max&auto=format&n=jFWn5xzleD8du3j6&q=85&s=d70aa26e6fa87244d4fa8f4527d9b449" width="1766" height="884" data-path="images/docs/5578ae6-image.png" />
</Frame>

네 가지 트리거 유형:

<Columns col={2}>
  <Card title="앱 열기 시">
    사용자가 앱을 실행할 때 트리거됩니다.
  </Card>

  <Card title="세션 지속 시간">
    앱 열기 후 X초 지연.
  </Card>

  <Card title="마지막 메시지 이후">
    마지막 인앱 메시지 이후 X시간 지연.
  </Card>

  <Card title="사용자 지정 트리거" href="./iam-triggers" arrow={true}>
    SDK `addTrigger(s)`를 통해 제어됩니다.
  </Card>
</Columns>

#### 이 메시지는 언제 해제되어야 합니까?

메시지는 다음과 같이 해제될 수 있습니다:

* 사용자 상호 작용 시(클릭, 스와이프)
* 설정된 시간 이후(자동 해제)

<Frame caption="90초 후 자동 해제">
  <img src="https://mintcdn.com/onesignal/tc0EvmtSSX56SX0c/images/docs/8dcc001876557819348b804906ed63aee17d83bce300e63e91cc11c54eface2f-Screenshot_2025-04-08_at_2.00.07_PM.png?fit=max&auto=format&n=tc0EvmtSSX56SX0c&q=85&s=59d61042bc7d3e1855e4c90f9a83e562" width="1342" height="530" data-path="images/docs/8dcc001876557819348b804906ed63aee17d83bce300e63e91cc11c54eface2f-Screenshot_2025-04-08_at_2.00.07_PM.png" />
</Frame>

### 일정 및 빈도

* **표시 시작**: 메시지가 적격이 되는 시간
* **표시 중지**: 종료 날짜/시간 설정 또는 "영원히 표시"

#### 이 메시지를 얼마나 자주 표시하시겠습니까?

* **한 번만**(기본값)
* 트리거가 충족될 **때마다**
* 사용자 지정 반복 논리를 사용하여 **여러 번**:

예제:

* **1시간** 간격으로 **2번** 표시
* **30일** 간격으로 **12번** 표시

<Frame caption="예제는 30일마다 총 12번 메시지를 표시합니다.">
  <img src="https://mintcdn.com/onesignal/Z6xkXGfmy814If53/images/docs/e66d013-Screenshot_2022-12-10_at_1.27.10_PM.png?fit=max&auto=format&n=Z6xkXGfmy814If53&q=85&s=0cfe8f5e92ea5d02aa5ae3c659b5538c" width="2100" height="756" data-path="images/docs/e66d013-Screenshot_2022-12-10_at_1.27.10_PM.png" />
</Frame>

***

## 인앱 메시지가 표시되는 방법

인앱 메시지는 적극적으로 푸시되지 않습니다. 대신 오디언스를 기반으로 앱 시작 시 풀링됩니다. 그런 다음 트리거 논리를 기반으로 표시됩니다.

<Frame caption="인앱 메시지 표시 논리 흐름">
  <img src="https://mintcdn.com/onesignal/Z6xkXGfmy814If53/images/docs/e1ce302cd1350e6c9e5616937a8068329fe61619884cd62889cd1772fd29999d-1c688b0-lifecycle-of-an-in-app.png?fit=max&auto=format&n=Z6xkXGfmy814If53&q=85&s=7a7552973b2746cd2ffa36137e743675" width="2036" height="815" data-path="images/docs/e1ce302cd1350e6c9e5616937a8068329fe61619884cd62889cd1772fd29999d-1c688b0-lifecycle-of-an-in-app.png" />
</Frame>

다음과 같은 경우 메시지가 표시됩니다:

1. 사용자가 **새 세션**이 시작되기 *전에* 오디언스 기준을 충족합니다.

* 사용자가 앱을 백그라운드에 두거나 최소 30초 동안 닫은 후 앱을 열면 **새 세션**이 시작됩니다.
* 메시지가 활성화되거나 동일한 세션 중에 세그먼트에 진입할 때 사용자가 앱을 열어 둔 경우 메시지를 볼 수 있으려면 최소 30초 동안 앱을 포커스에서 벗어나게(닫기 또는 백그라운드) 해야 합니다.

2. 트리거 조건이 충족됩니다.
3. 예약된 시간 및 빈도가 유효합니다.

세그먼트 기준이 세션 중간에 변경되면 사용자는 메시지를 보려면 앱을 다시 열어야 합니다.

### 테스트

테스트하는 동안 다음을 수행하는 것이 좋습니다:

<Steps>
  <Step title="앱에 자세한 로깅 추가">
    앱에 [`setLogLevel` 메서드를 `Verbose`로](./mobile-sdk-reference#setloglevel) 추가하여 더 자세한 로그를 가져옵니다.
  </Step>

  <Step title="구독이 세그먼트에 있는지 확인">
    위의 [인앱 메시지가 표시되는 방법](#how-in-app-messages-are-shown)에서 설명한 것처럼 사용자는 **새 세션이 시작되기 전에** 오디언스 기준과 일치해야 합니다.

    * 기기의 구독 ID를 모르는 경우 [기기 찾기 및 테스트 사용자 설정](./test-users)을 참조하세요.
    * 기기의 구독이 포함된 세그먼트에 있고 사용 중인 경우 제외된 세그먼트에 없는지 확인하세요.
    * **팁**: 기기를 테스트 구독으로 추가하고 **테스트 사용자** 필터를 포함하도록 세그먼트를 생성하거나 업데이트할 수 있습니다.
  </Step>

  <Step title="앱이 최소 30초 동안 닫혀 있거나 포커스가 벗어나 있는지 확인">
    이렇게 하면 앱을 열어 새 세션을 만들고 메시지를 받을 자격이 있는지 확인할 수 있습니다.
  </Step>

  <Step title="트리거 조건 확인">
    메시지가 표시되도록 [트리거](#triggers)를 충족하는지 확인하세요.
  </Step>

  <Step title="일정 및 빈도 확인">
    * "표시 시작" 및 "표시 중지" 날짜가 올바르게 설정되었는지 확인하세요.
    * 테스트하는 동안 ["이 메시지를 얼마나 자주 표시하시겠습니까?"](#schedule-%26-frequency)를 "트리거 조건이 충족될 때마다"로 설정하세요.
  </Step>

  <Step title="메시지를 업데이트하고 활성 상태인지 확인">
    * 메시지가 활성화되면 기기에서 앱을 열 수 있습니다.
    * 트리거 조건에 따라 메시지가 표시되어야 합니다.
  </Step>
</Steps>

#### 테스트 및 미리보기 버튼

**테스트 및 미리보기** 버튼을 사용하면 선택한 테스트 기기로 푸시 알림이 전송됩니다. 푸시를 클릭하여 앱을 열면 인앱 메시지가 표시됩니다. 이 기능을 사용하려면 다음을 수행해야 합니다:

* 기기가 [테스트 사용자](./test-users)인지 확인하세요.
* 푸시 알림은 **테스트 목적으로만 전송됩니다**. 메시지가 활성화되면 푸시가 전송되지 않습니다.
* 앱을 열고 "테스트 메시지"를 보낼 수 있습니다. 인앱 메시지가 표시됩니다.
* 테스트 인앱 메시지의 경우 태그 대체가 작동하지 않습니다.
* 메시지가 표시되지 않으면 [테스트 단계](#testing)를 따랐는지 확인하세요.
* 테스트 인앱 메시지를 받으려면 기기가 푸시를 구독해야 합니다. 테스트 IAM은 푸시 알림에 의해 트리거되므로 구독에 잘못된 APNs 토큰이 있거나 푸시를 구독하지 않은 경우 테스트가 작동하지 않습니다.

<Info>
  도움이 필요하신가요?

  지원 팀과 채팅하거나 `support@onesignal.com`으로 이메일을 보내주세요.

  다음을 포함해 주세요:

  * 발생한 문제의 세부 정보 및 재현 단계(가능한 경우)
  * OneSignal 앱 ID
  * External ID 또는 Subscription ID(해당하는 경우)
  * OneSignal 대시보드에서 테스트한 메시지의 URL(해당하는 경우)
  * 관련 [로그 또는 오류 메시지](/docs/ko/capturing-a-debug-log)

  기꺼이 도와드리겠습니다!
</Info>

***

## 튜토리얼 및 사용 사례

<Columns cols={2}>
  <Card title="인앱 메시지 개인화" href="./personalization-properties-and-tags" arrow={true}>
    태그로 인앱 메시지를 개인화하는 단계별 가이드.
  </Card>

  <Card title="오래된 앱 버전 타겟팅" href="./app-version-update" arrow={true}>
    사용자에게 앱 업데이트를 프롬프트합니다.
  </Card>

  <Card title="앱 스토어 리뷰 프롬프트" href="./example-app-store-review" arrow={true}>
    적시에 리뷰 요청으로 평점을 높입니다.
  </Card>

  <Card title="사용자 설문조사 생성" href="./example-create-a-survey" arrow={true}>
    앱 내에서 피드백을 수집합니다.
  </Card>

  <Card title="푸시 권한 프롬프트" href="./prompt-for-push-permissions" arrow={true}>
    푸시 옵트인 비율을 개선합니다.
  </Card>

  <Card title="위치 권한 프롬프트" href="./location-opt-in-prompt" arrow={true}>
    사용자에게 위치 추적 활성화를 요청합니다.
  </Card>

  <Card title="튜토리얼 생성" href="./example-create-a-tutorial" arrow={true}>
    사용자가 앱의 새로운 기능을 이해할 수 있도록 튜토리얼을 설정하세요!
  </Card>
</Columns>

***

## 분석

메시지 성과와 참여도를 추적합니다.

<Columns cols={2}>
  <Card title="인앱 메시지 보고서" icon="chart-line" href="./in-app-message-reports">
    인앱 메시지에 대한 노출 수, 클릭 수, 닫기 수 및 전환 지표.
  </Card>

  <Card title="분석 개요" icon="chart-bar" href="./analytics-overview">
    OneSignal에서 사용 가능한 모든 분석 옵션.
  </Card>

  <Card title="이벤트 스트림" icon="signal-stream" href="./event-streams">
    푸시 이벤트를 데이터 웨어하우스 또는 BI 도구로 실시간 스트리밍합니다.
  </Card>
</Columns>

***

## FAQ

### 인앱 메시지에는 푸시 알림 권한이 필요합니까?

아니요. 인앱 메시지는 푸시 수신 동의 여부에 관계없이 대상 세그먼트의 모든 모바일 구독자에게 전달됩니다. 활성 세션 중에 앱 내에 표시됩니다.

### 인앱 메시지가 표시되지 않는 이유는 무엇입니까?

가장 일반적인 원인은 사용자의 세션이 새로 고쳐지지 않은 것입니다. 사용자는 앱을 최소 30초 동안 닫거나 백그라운드로 이동한 후 다시 열어 새 세션을 시작해야 합니다. 또한 사용자가 대상 세그먼트에 포함되어 있고 트리거 조건이 충족되었는지 확인하세요. 전체 체크리스트는 [테스트](#testing)를 참조하세요.

### API를 통해 인앱 메시지를 보낼 수 있습니까?

인앱 메시지는 OneSignal 대시보드 내에서 생성해야 합니다.

인앱 메시지를 [Journeys](./journeys-overview)에 포함시키고 API에서 트리거된 [커스텀 이벤트](./custom-events)를 통해 사용자를 Journey에 추가할 수 있습니다.

### 인앱 메시지와 푸시 알림의 차이점은 무엇입니까?

인앱 메시지는 사용자가 앱을 활발하게 사용하는 동안 앱 내에 표시됩니다. 푸시 알림은 기기의 알림 트레이에 표시되며 앱이 닫혀 있어도 사용자에게 도달할 수 있습니다. 인앱 메시지는 푸시 권한이 필요 없으며 서버에서 푸시되는 것이 아니라 세션 시작 시 가져옵니다.

### 웹에서 인앱 메시지를 사용할 수 있습니까?

아니요. 인앱 메시지는 OneSignal 모바일 SDK가 설치된 모바일 앱에서만 사용할 수 있습니다. 웹의 경우 [웹 푸시 알림](./web-push-setup)을 대신 사용하는 것을 고려하세요.
