# /createMessage 파라미터

<Aside type="caution" title="사용 중단됨">
`/createMessage`는 사용 중단되었습니다. 새로운 통합은 [Messaging API v2](/ko/developer/api-reference/messaging-api-v2/)를 사용해야 합니다. 아래 파라미터의 필드별 매핑은 [마이그레이션 가이드](/ko/developer/api-reference/messaging-api-v2/migration-from-v1/)를 참조하세요.
</Aside>

여기에서 [`/createMessage`](/ko/developer/api-reference/messages-api/#createmessage) API 파라미터에 대한 설명을 찾을 수 있습니다.

- [필수 파라미터](#required-parameters)는 `/createMessage` API 요청을 성공적으로 보내고 지정된 시간에 푸시 알림을 브로드캐스트하기 위해 포함되어야 합니다.

- [선택적 파라미터](#optional-parameters)를 사용하면 푸시 알림 속성을 사용자 정의할 수 있습니다.

<Aside type="note">
_/createMessage_를 사용하여 SMS를 보내는 경우, [SMS 전송 파라미터](/ko/developer/api-reference/sms/#createsmsmessage)를 참조하세요. 다른 파라미터는 전달되지 않습니다.
</Aside>

## 필수 파라미터

필수 파라미터는 [`/createMessage`](/ko/developer/api-reference/messages-api/#createmessage) 요청에서 반드시 사용해야 합니다. 그렇지 않으면 요청이 제출되지 않습니다.

### application

Pushwoosh 계정에서 생성된 앱의 고유 코드입니다. 앱 코드는 Control Panel의 왼쪽 상단 모서리 또는 [`/createApplication`](/ko/developer/api-reference/applications/#createapplication) 요청에 대한 응답에서 찾을 수 있습니다. 앱 코드는 10개의 문자(문자와 숫자 모두)로 구성된 하이픈으로 구분된 집합입니다.

<img src="/messages-api-prerequisites-1.webp" alt="Pushwoosh Control Panel 왼쪽 상단에 표시된 애플리케이션 코드"/>

API를 통해 앱을 생성할 때, [`/createApplication`](/ko/developer/api-reference/applications/#createapplication) 요청에 대한 응답으로 앱 코드를 받게 됩니다.

API를 통해 이전에 생성된 앱의 코드를 얻으려면 [`/getApplications`](/ko/developer/api-reference/applications/#getapplications)를 호출하세요. [`/getApplications`](/ko/developer/api-reference/applications/#getapplications) 요청에 대한 응답으로, Pushwoosh 계정에서 생성된 모든 앱의 목록과 이름 및 코드를 받게 됩니다.

### auth

Pushwoosh Control Panel의 API 액세스 토큰입니다. **Settings** → **API Access**로 이동하여 사용하려는 토큰을 복사하거나 새 토큰을 생성하세요.

<img src="/messages-api-prerequisites-2.webp" alt="Pushwoosh Control Panel의 API 액세스 설정 페이지에 표시된 API 액세스 토큰"/>

액세스 토큰을 생성할 때 권한을 지정하세요. API 토큰을 사용할 활동 유형에 대한 체크박스를 선택하세요. Applications 체크박스를 선택하여 앱별 API 토큰을 생성할 수 있습니다.

<img src="/messages-api-prerequisites-3.webp" alt="권한 및 애플리케이션 체크박스가 있는 API 토큰 생성 대화상자"/>

### content

메시지 내용을 정의하는 문자열 또는 객체입니다. 문자열 유형 값으로 제출된 "content" 파라미터는 모든 수신자에게 동일한 메시지를 보냅니다.

```txt title="String"
"content": "Hello world!",
```

JSON 객체는 다국어 메시지와 같이 [동적 콘텐츠](/ko/developer/guides/personalization/dynamic-content/)를 사용하여 콘텐츠를 지정하는 데 사용됩니다.

```txt title="Object"
"content": {
  "en": "Hello!",
  "es": "¡Hola!",
  "de": "Hallo!"
},
```

### notifications

푸시 속성의 JSON 배열입니다. 최소한 필수 `content` 및 `send_date` 파라미터를 포함해야 합니다.

"notifications" 배열 내에서 사용할 수 있는 선택적 파라미터:

* [campaign](#campaign)
* [capping_days](#capping_days)
* [capping_count](#capping_count)
* [conditions](#conditions)
* [data](#data)
* [devices](#devices)
* [dynamic_content](#dynamic_content)
* [filter](#filter)
* [ignore_user_timezone](#ignore_user_timezone)
* [inbox_date](#inbox_date)
* [inbox_image](#inbox_image)
* [link](#link)
* [minimize_link](#minimize_link)
* [message_type](#message_type)
* [platforms](#platforms)
* [preset](#preset)
* [rich_media](#rich_media)
* [send_rate](#send_rate)
* [timezone](#timezone)
* [template_bindings](#template_bindings)
* [transactionId](#transactionid)
* [users](#users)

### send_date

메시지가 전송되는 날짜와 시간입니다. YYYY-MM-DD HH:mm 형식의 모든 날짜와 시간이거나 'now'일 수 있습니다. 'now'로 설정하면 요청을 제출한 직후 메시지가 전송됩니다.

## 선택적 파라미터

### campaign

캠페인 코드입니다. 캠페인 코드를 얻으려면 **Statistics** → **Aggregated statistics**로 이동하여 사용하려는 캠페인을 선택하세요. 캠페인 코드는 페이지 URL 끝에 `XXXXX-XXXXX` 형식으로 표시됩니다.

**예시:**

**URL:** `https://app.pushwoosh.com/applications/AAAAA-AAAAA/statistics/aggregated-message?campaignCode=XXXXX-XXXXX`

**캠페인 코드:** `XXXXX-XXXXX`

캠페인 목록과 코드를 얻으려면 [`/getCampaigns`](/ko/developer/api-reference/campaigns/#getcampaigns)를 호출하세요. `/getCampaigns` 요청에 대한 응답으로, Pushwoosh 계정의 특정 앱에 대해 생성된 모든 캠페인 목록과 코드, 이름 및 설명을 받게 됩니다.

### capping_days

빈도 제한에 적용할 기간(일)입니다(최대 30일). 자세한 내용은 [빈도 제한](/ko/product/messaging-channels/global-frequency-capping/)을 참조하세요.

빈도 제한은 `message_type: transactional`인 메시지에는 적용되지 않습니다. 다른 모든 경우, `message_type`이 생략된 요청을 포함하여 빈도 제한이 적용됩니다.

### capping_count

특정 앱에서 특정 기기로 "capping_days" 기간 내에 보낼 수 있는 최대 푸시 수입니다. 생성된 메시지가 기기의 "capping_count" 제한을 초과하는 경우 해당 기기로 전송되지 않습니다. 자세한 내용은 [빈도 제한](/ko/product/messaging-channels/global-frequency-capping/)을 참조하세요.

### conditions

조건은 `[tagName, operator, operand]`와 같은 배열로, [태그](/ko/developer/guides/audience-and-segmentation/tags/) 및 해당 값을 기반으로 타겟 메시지를 보내는 데 사용됩니다. 여기서:

* tagName — 적용할 태그의 이름,
* [operator](/ko/developer/guides/audience-and-segmentation/tags#tag-operators) — 값 비교 연산자 ("EQ" | "IN" | "NOTEQ" | "NOTIN" | "LTE" | "GTE" | "BETWEEN" | "NOTSET" | "ANY"),
* [operand](/ko/developer/guides/audience-and-segmentation/tags#tag-values) — 다음 유형 중 하나의 태그 값: string | integer | array | date | boolean | list

#### 연산자 설명

| | |
| -------- | ----------- |
| **EQ** | 태그 값이 피연산자와 같습니다. |
| **IN** | 태그 값이 피연산자와 교차합니다 (피연산자는 항상 배열이어야 합니다). |
| **NOTEQ** | 태그 값이 피연산자와 같지 않습니다. |
| **NOTIN** | 태그 값이 피연산자와 교차하지 않습니다 (피연산자는 항상 배열이어야 합니다). |
| **GTE** | 태그 값이 피연산자보다 크거나 같습니다. |
| **LTE** | 태그 값이 피연산자보다 작거나 같습니다. |
| **BETWEEN** | 태그 값이 최소 피연산자 값보다 크거나 같고 최대 피연산자 값보다 작거나 같습니다 (피연산자는 항상 배열이어야 합니다). |
| **NOTSET** | 태그가 설정되지 않았습니다. 피연산자는 고려되지 않습니다. |
| **ANY** | 태그에 어떤 값이든 있습니다. 피연산자는 고려되지 않습니다. |

#### 문자열 태그

**유효한 연산자**: EQ, IN, NOTEQ, NOTIN, NOTSET, ANY

**유효한 피연산자:**
| | |
| -------- | ------- |
| **EQ, NOTEQ** | 피연산자는 문자열이어야 합니다 |
| **IN, NOTIN** | 피연산자는 `["value 1", "value 2", "value N"]`과 같은 문자열 배열이어야 합니다 |
| **NOTSET** | 태그가 설정되지 않았습니다. 피연산자는 고려되지 않습니다 |
| **ANY** | 태그에 어떤 값이든 있습니다. 피연산자는 고려되지 않습니다 |

#### 정수 태그

**유효한 연산자**: EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE, NOTSET, ANY

**유효한 피연산자:**

| | |
| -------- | ------- |
| **EQ, NOTEQ, GTE, LTE** | 피연산자는 정수여야 합니다 |
| **IN, NOTIN** | 피연산자는 `[value 1, value 2, value N]`과 같은 정수 배열이어야 합니다 |
| **BETWEEN** | 피연산자는 `[min_value, max_value]`와 같은 정수 배열이어야 합니다 |
| **NOTSET** | 태그가 설정되지 않았습니다. 피연산자는 고려되지 않습니다 |
| **ANY** | 태그에 어떤 값이든 있습니다. 피연산자는 고려되지 않습니다 |

#### 날짜 태그

**유효한 연산자**: EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE, NOTSET, ANY

**유효한 피연산자:**

* `"YYYY-MM-DD 00:00"` (문자열)
* 유닉스 타임스탬프 `1234567890` (정수)
* EQ, BETWEEN, GTE, LTE 연산자의 경우 `"N days ago"` (문자열)

#### 불리언 태그

**유효한 연산자**: EQ, NOTSET, ANY

**유효한 피연산자:** `0, 1, true, false`

#### 목록 태그

**유효한 연산자**: IN, NOTIN, NOTSET, ANY

**유효한 피연산자:** 피연산자는 `["value 1", "value 2", "value N"]`과 같은 문자열 배열이어야 합니다.

<Aside type="danger" title="중요">
"filter"와 "conditions" 파라미터는 함께 사용해서는 안 됩니다.\
또한, "devices" 파라미터가 동일한 요청에 사용되면 두 파라미터 모두 **무시됩니다**.
</Aside>

<Aside type="note" title="국가 및 언어 태그">
언어 태그 값은 [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)에 따른 소문자 두 글자 코드입니다.
국가 태그 값은 [ISO_3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)에 따른 대문자 두 글자 코드입니다.

예를 들어, 브라질에 있는 포르투갈어 사용 구독자에게 푸시 알림을 보내려면 다음 조건을 지정해야 합니다: `"conditions": [["Country", "EQ", "BR"],["Language", "EQ", "pt"]]`
</Aside>

### conditions_operator

조건 배열에 대한 논리 연산자입니다. 가능한 값: AND | OR. 기본값은 AND입니다.

적용된 연산자가 AND인 경우(연산자가 지정되지 않았거나 'conditions_operator' 파라미터 값이 'AND'인 경우), 모든 조건을 동시에 만족하는 기기가 푸시 알림을 받게 됩니다.

연산자가 OR인 경우, 지정된 조건 중 하나라도 만족하는 기기가 메시지를 받게 됩니다.

### data

푸시 페이로드에 [사용자 정의 데이터](/ko/developer/guides/messaging-channels/using-custom-data)를 전달하는 데 사용되는 JSON 문자열 또는 JSON 객체입니다. 페이로드에서 "u" 파라미터로 전달됩니다(JSON 문자열로 변환됨).

### devices

타겟 푸시 알림을 보낼 [푸시 토큰](/ko/developer/pushwoosh-knowledge-hub/device-identifiers/#push-token) 또는 [hwid](/ko/developer/pushwoosh-knowledge-hub/device-identifiers/#hwid)의 배열입니다. 설정하면 목록에 있는 기기에만 메시지가 전송됩니다.

### dynamic_content

기기 태그 값 대신 사용할 [동적 콘텐츠](/ko/product/personalization/dynamic-content)의 플레이스홀더입니다. 아래 예시는 타겟팅하는 모든 사용자에게 "Hello, John!" 메시지를 보냅니다. 설정하지 않으면 동적 콘텐츠 값은 기기 태그에서 가져옵니다.

```
"content": "Hello, {firstname|CapitalizeFirst}!",
"dynamic_content_placeholders": {
  "firstname": "John",
  "lastname": "Doe"
},
```

### filter

Pushwoosh Control Panel 또는 [`/createFilter`](/ko/developer/api-reference/segmentation-filters-api/#createfilter) API 요청을 통해 생성된 [세그먼트](/ko/product/audience-data-and-segmentation/segmentation/)의 이름과 정확히 일치해야 합니다. **Audience** → **Segments** 섹션으로 이동하여 생성된 세그먼트 목록을 확인하세요.

<img src="/messages-api-prerequisites-7.webp" alt="Pushwoosh Control Panel의 Audience 섹션에 있는 세그먼트 목록"/>

API를 통해 세그먼트 목록을 얻으려면 [`/listFilters`](/ko/developer/api-reference/segmentation-filters-api/#listfilters) API 메서드를 호출하세요. `/listFilters` 요청에 대한 응답으로, Pushwoosh 계정에서 생성된 모든 세그먼트 목록과 세그먼트의 이름, 조건 및 만료 날짜를 받게 됩니다.

### ignore_user_timezone

'true'로 설정하면 UTC-0에 따라 "send_date" 파라미터에 지정된 시간과 날짜에 메시지를 보냅니다.

'false'로 설정하면 사용자는 기기 설정에 따라 지정된 현지 시간에 메시지를 받게 됩니다.

### inbox_date

사용자의 [Inbox](/ko/developer/guides/message-inbox/mobile-message-inbox)에 메시지를 보관해야 하는 날짜입니다. 지정하지 않으면 메시지는 전송일 다음 날 Inbox에서 제거됩니다.

<Aside type="note">
메시지를 Inbox에 저장하려면 "inbox_date" 또는 "inbox_image"와 같은 'inbox' 파라미터 중 하나 이상을 사용하세요.
</Aside>

<Aside type="caution">
메시지는 지정된 날짜의 00:00:01에 Inbox에서 제거되므로, 이전 날짜가 사용자가 Inbox에서 메시지를 볼 수 있는 마지막 날입니다.
</Aside>

### inbox_image

[Inbox](/ko/developer/guides/message-inbox/mobile-message-inbox)의 메시지 옆에 표시될 사용자 정의 이미지의 URL입니다.

<Aside type="note">
메시지를 Inbox에 저장하려면 "inbox_date" 또는 "inbox_image"와 같은 'inbox' 파라미터 중 하나 이상을 사용하세요.
</Aside>

### inbox_days

Inbox 메시지의 수명(일)으로, 최대 30일입니다. 이 기간이 지나면 메시지는 Inbox에서 제거됩니다. **inbox_date** 파라미터 대신 사용할 수 있습니다.

### link

사용자가 푸시 알림을 열 때 열릴 URL입니다.

### message_type

푸시 메시지 유형을 지정합니다. 사용 가능한 값은 `marketing` 및 `transactional`입니다. 자세한 내용은 [마케팅 메시지 vs 트랜잭션 메시지](/ko/product/messaging-channels/marketing-vs-transactional/)를 참조하세요.

이 파라미터는 선택 사항입니다. 생략하면 `PW_ControlGroup: true`인 사용자는 메시지를 받지 않습니다.

### minimize_link

"link" 파라미터에 제출된 URL을 최소화하는 단축기입니다. 푸시 알림 페이로드 크기는 제한되어 있으므로 제한을 초과하지 않도록 짧은 URL을 만드는 것을 고려하세요. 사용 가능한 값: 0 — 최소화 안 함, 2 — bitly. 기본값 = 2. Google URL 단축기는 2019년 3월 30일부터 비활성화되었습니다.

### platforms

특정 플랫폼에만 메시지를 보내기 위한 플랫폼 코드의 배열입니다.

사용 가능한 플랫폼 코드에는 `1` — iOS, `3` — Android, `7` — Mac OS X, `8` — Windows, `9` — Amazon, `10` — Safari, `11` — Chrome, `12` — Firefox, `14` — Email, `17` — Huawei, `18` — SMS, `21` — WhatsApp이 포함됩니다.

### preset

Pushwoosh Control Panel 또는 API를 통해 생성된 [프리셋](/ko/product/content/push-presets/)의 코드입니다. 프리셋 코드를 얻으려면 **Content** → **Presets**로 이동하여 사용하려는 프리셋을 확장하고 프리셋 세부 정보에서 **Preset Code**를 복사하세요.

<img src="/messages-api-prerequisites-8.webp" alt="Content 섹션의 프리셋 목록에 표시된 프리셋 코드"/>

### rich_media

메시지에 첨부할 [Rich Media](/ko/product/content/in-apps/) 페이지의 코드입니다. 코드를 얻으려면 **Content** → **Rich Media**로 이동하여 사용하려는 Rich Media 페이지를 열고 브라우저의 URL 표시줄에서 코드를 복사하세요. 코드는 10개의 문자(문자와 숫자 모두)로 구성된 하이픈으로 구분된 집합입니다.

<img src="/messages-api-prerequisites-9.webp" alt="Content 섹션의 Rich Media 페이지, 브라우저 URL 바에 Rich Media 코드가 표시됨"/>

### send_rate

푸시 전송 속도를 제한하기 위한 스로틀링입니다. 유효한 값은 초당 100에서 1000 푸시입니다.

### timezone

특정 날짜와 시간에 메시지를 보낼 때 고려할 시간대입니다. 설정하면 기기의 시간대는 무시됩니다. 무시하면 메시지는 UTC로 전송됩니다. 지원되는 시간대는 [https://php.net/manual/timezones.php](https://php.net/manual/timezones.php)를 참조하세요.

### template_bindings

콘텐츠 템플릿에서 사용할 템플릿 플레이스홀더입니다. 자세한 내용은 [Liquid 템플릿 가이드](/ko/developer/guides/personalization/liquid-templates/)를 참조하세요.

### transactionId

네트워크 문제 발생 시 메시지 중복을 방지하기 위한 고유 메시지 식별자입니다. [`/createMessage`](/ko/developer/api-reference/messages-api/#createmessage) 또는 [`/createTargetedMessage`](/ko/developer/api-reference/messages-api/#createtargetedmessage) 요청을 통해 생성된 메시지에 모든 ID를 할당할 수 있습니다. Pushwoosh 측에서 5분 동안 저장됩니다.

### users

[userId](/ko/developer/pushwoosh-knowledge-hub/users-userids/)의 배열입니다. User ID는 [`/registerUser`](/ko/developer/api-reference/user-centric-api/), [`/registerDevice`](/ko/developer/api-reference/device-api/#registerdevice) 또는 [`/registerEmail`](/ko/developer/api-reference/email-api/) API 요청에 의해 설정된 고유한 사용자 식별자입니다.