사용자 속성 오브젝트
속성 오브젝트의 필드가 포함된 API 요청은 지정된 고객 프로필에서 주어진 값으로 해당 이름의 속성을 생성하거나 업데이트합니다.
대시보드의 고객 프로필에서 이러한 특수 값을 업데이트하거나 사용자에 대한 커스텀 속성 데이터를 추가하려면 Braze 고객 프로필 필드 이름(아래와 같이 나열되거나 Braze 고객 프로필 필드 섹션에 나열된 것)을 사용하세요.
오브젝트 본문
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
// One of "external_id" or "user_alias" or "braze_id" or "email" or "phone" is required
"external_id" : (optional, string) see external user ID,
"user_alias" : (optional, User alias object),
"braze_id" : (optional, string) Braze user identifier,
"email": (optional, string) User email address,
"phone": (optional, string) User phone number,
// Setting this flag to true puts the API in "Update Only" mode.
// When using a "user_alias", "Update Only" defaults to true.
"_update_existing_only" : (optional, boolean),
// See note regarding anonymous push token imports
"push_token_import" : (optional, boolean),
// Braze User Profile Fields
"first_name" : "Jon",
"email" : "[email protected]",
// Custom Attributes
"my_custom_attribute" : value,
"my_custom_attribute_2" : {"inc" : int_value},
"my_array_custom_attribute":[ "Value1", "Value2" ],
// Adding a new value to an array custom attribute
"my_array_custom_attribute" : { "add" : ["Value3"] },
// Removing a value from an array custom attribute
"my_array_custom_attribute" : { "remove" : [ "Value1" ]},
}
프로필 속성을 제거하려면 null로 설정합니다. external_id 및 user_alias 같은 일부 필드는 고객 프로필에 추가한 후에는 제거할 수 없습니다.
식별자 확인
익명 푸시 토큰 가져오기를 수행하지 않는 한, 각 사용자 속성 오브젝트에는 최소한 하나의 식별자(external_id, user_alias, braze_id, email 또는 phone)가 포함되어야 합니다. 가능한 경우, 어떤 고객 프로필이 업데이트되거나 생성되는지에 대한 모호성을 피하기 위해 오브젝트당 하나의 식별자만 포함하세요.
식별자를 사용할 때 다음 사항을 염두에 두세요:
external_id와user_alias는 상호 배타적입니다. 두 개를 동일한 사용자 속성 오브젝트에 포함하면 오류가 반환됩니다. 이미external_id가 있는 사용자에게 별칭을 추가하려면/users/alias/new엔드포인트를 사용하세요.email이phone보다 우선합니다. 동일한 오브젝트에email과phone이 모두 포함되면, Braze는email을 식별자로 사용합니다. 이는 전화번호가 다른 프로필에 속하더라도 속성이 해당 이메일 주소와 연결된 고객 프로필에 적용됨을 의미합니다.
예상치 못한 동작을 피하려면 사용자 속성 오브젝트당 단일 식별자를 사용하세요. 서로 다른 고객 프로필을 참조하는 여러 식별자를 제공하면 속성이 잘못된 프로필에 적용될 수 있습니다.
기존 프로필만 업데이트
Braze에서 기존 고객 프로필만 업데이트하려면 요청 본문에 _update_existing_only 키를 true 값과 함께 전달해야 합니다. 이 값을 생략하면, external_id가 이미 존재하지 않는 경우 Braze가 새 고객 프로필을 생성합니다.
/users/track 엔드포인트를 통해 별칭 전용 고객 프로필을 생성하는 경우, _update_existing_only를 false로 설정해야 합니다. 이 값을 생략하면 Braze가 별칭 전용 프로필을 생성하지 않습니다.
푸시 토큰 가져오기
Braze로 푸시 토큰을 가져오기 전에 필요한지 다시 확인하세요. Braze SDK를 설치하면 API를 통해 푸시 토큰을 업로드할 필요 없이 자동으로 처리합니다.
API를 통해 업로드해야 하는 경우, 식별된 사용자 또는 익명 사용자를 위해 업로드할 수 있습니다. 즉, external_id가 존재하거나 익명 사용자의 push_token_import 플래그가 true로 설정되어 있어야 합니다.
다른 시스템에서 푸시 토큰을 가져올 때 external_id를 항상 사용할 수 있는 것은 아닙니다. Braze로 전환하는 동안 이러한 사용자와의 커뮤니케이션을 유지하려면 push_token_import를 true로 지정하여 external_id를 제공하지 않고 익명 사용자의 레거시 토큰을 가져올 수 있습니다.
push_token_import를 true로 지정하는 경우:
external_id및braze_id를 지정해서는 안 됩니다- 속성 오브젝트에는 푸시 토큰이 포함되어야 합니다
- 토큰이 이미 Braze에 존재하는 경우 요청은 무시됩니다. 그렇지 않으면 Braze는 각 토큰에 대해 임시 익명 고객 프로필을 생성하여 이러한 개인에게 메시지를 계속 보낼 수 있도록 합니다.
가져온 후, 각 사용자가 Braze가 활성화된 앱 버전을 실행하면 Braze는 자동으로 가져온 푸시 토큰을 Braze 고객 프로필로 이동하고 임시 프로필을 정리합니다.
Braze는 매달 한 번 push_token_import 플래그가 있는 익명 프로필 중 푸시 토큰이 없는 프로필을 찾습니다. 익명 프로필에 더 이상 푸시 토큰이 없으면 Braze는 프로필을 삭제합니다. 그러나 익명 프로필에 푸시 토큰이 여전히 있는 경우, 실제 사용자가 해당 푸시 토큰으로 기기에 로그인하지 않았음을 나타내며 Braze는 아무것도 하지 않습니다.
자세한 내용은 푸시 토큰 마이그레이션을 참조하세요.
커스텀 속성 데이터 유형
커스텀 속성으로 저장할 수 있는 데이터 유형은 다음과 같습니다:
| 데이터 유형 | 참고 |
|---|---|
| 배열 | 커스텀 속성 배열이 지원됩니다. 요소를 추가하면 배열의 끝에 추가됩니다. 요소가 이미 존재하는 경우 현재 위치에서 끝으로 이동합니다. 고유한 값만 저장됩니다. 예를 들어, ['hotdog','hotdog','hotdog','pizza']를 가져오면 ['hotdog', 'pizza']가 됩니다.배열을 직접 설정할 수 있습니다(예: "my_array_custom_attribute":[ "Value1", "Value2" ]). 기존 배열에 "my_array_custom_attribute" : { "add" : ["Value3"] }로 추가하거나 "my_array_custom_attribute" : { "remove" : [ "Value1" ]}로 값을 제거할 수 있습니다.배열의 기본값 및 최대 요소 개수는 500개입니다. Braze 대시보드의 데이터 설정 > 커스텀 속성에서 배열의 최대 개수를 업데이트할 수 있습니다. 자세한 내용은 배열을 참조하세요. |
| 오브젝트 배열 | 오브젝트 배열을 사용하여 각 오브젝트가 속성 집합을 포함하는 오브젝트 목록을 정의합니다. 이 유형을 사용하여 호텔 숙박, 구매 이력 또는 선호도와 같은 사용자에 대한 관련 데이터의 여러 세트를 저장합니다. 예를 들어, 고객 프로필에 hotel_stays라는 이름의 커스텀 속성을 배열로 정의하고, 각 오브젝트가 별도의 숙박을 나타내며 hotel_name, check_in_date, nights_stayed와 같은 속성을 포함합니다. 자세한 내용은 오브젝트 배열 예제를 참조하세요. |
| 부울 | true 또는 false |
| 날짜 | 날짜를 ISO 8601 형식 또는 다음 형식 중 하나로 저장합니다: - yyyy-MM-ddTHH:mm:ss:SSSZ - yyyy-MM-ddTHH:mm:ss - yyyy-MM-dd HH:mm:ss - yyyy-MM-dd - MM/dd/yyyy - ddd MM dd HH:mm:ss.TZD YYYY “T”는 입력 안내가 아닌 시간 지정자이므로 변경하거나 제거해서는 안 됩니다. 시간대가 없는 시간 속성은 기본적으로 자정 UTC로 설정되며(대시보드에서는 회사의 시간대에서 자정 UTC에 해당하는 형식으로 표시됩니다). 미래의 타임스탬프가 있는 이벤트는 현재 시간으로 기본 설정됩니다. 일반 커스텀 속성의 경우, 연도가 0보다 작거나 3000보다 크면 Braze는 고객 프로필에 값을 문자열로 저장합니다. |
| 플로트 | 플로트 커스텀 속성은 소수점이 있는 양수 또는 음수입니다. 예를 들어 플로트를 사용하여 계정 잔액이나 제품 또는 서비스에 대한 사용자 평점을 저장할 수 있습니다. |
| 정수 | 정수 커스텀 속성은 “inc” 필드와 추가할 양을 가진 오브젝트를 할당하여 증가시킬 수 있습니다. 예시: "my_custom_attribute_2" : {"inc" : int_value}, |
| 중첩 커스텀 속성 | 중첩 커스텀 속성은 속성 집합을 다른 속성의 등록정보로 정의합니다. 커스텀 속성 오브젝트를 정의할 때 해당 오브젝트에 속성 집합을 추가합니다. 자세한 내용은 중첩 커스텀 속성을 참조하세요. |
| 문자열 | 문자열 커스텀 속성은 텍스트 데이터를 저장하는 데 사용되는 문자 시퀀스입니다. 예를 들어 문자열을 사용하여 이름과 성, 이메일 주소 또는 환경설정을 저장할 수 있습니다. |
오브젝트 배열 예제
이 오브젝트 배열을 사용하면 숙박 내 특정 기준에 따라 세그먼트를 생성하고 Liquid 템플릿으로 각 숙박의 데이터를 사용하여 메시지를 개인화할 수 있습니다.
1
2
3
4
{"hotel_stays": [
{ "hotel_name": "Ocean View Resort", "check_in_date": "2023-06-15", "nights_stayed": 5 },
{ "hotel_name": "Mountain Lodge", "check_in_date": "2023-09-10", "nights_stayed": 3 }
]}
Braze 고객 프로필 필드
다음 고객 프로필 필드는 대소문자를 구분하므로 소문자로 참조하세요.
| 고객 프로필 필드 | 데이터 유형 사양 |
|---|---|
| alias_name | (문자열) |
| alias_label | (문자열) |
| braze_id | (문자열, 선택 사항) SDK에서 고객 프로필을 인식하면 연결된 braze_id로 익명 고객 프로필이 생성됩니다. braze_id는 Braze에서 자동으로 할당되며, 편집할 수 없고 기기별로 다릅니다. |
| country | (문자열) ISO-3166-1 alpha-2 표준에 따라 국가 코드를 Braze에 전달해야 합니다. API는 다양한 형식으로 수신된 국가를 매핑하기 위해 최선을 다합니다. 예를 들어 “Australia”는 “AU”로 매핑될 수 있습니다. 그러나 입력이 주어진 ISO-3166-1 alpha-2 표준과 일치하지 않으면 국가 값은 NULL로 설정됩니다. CSV 가져오기 또는 API를 통해 사용자에게 country를 설정하면 Braze가 SDK를 통해 이 정보를 자동으로 캡처하지 못합니다. |
| current_location | (오브젝트) {“longitude”: -73.991443, “latitude”: 40.753824} 형식 |
| date_of_first_session | (사용자가 앱을 처음 사용한 날짜) ISO 8601 형식 또는 다음 형식 중 하나의 문자열: - yyyy-MM-ddTHH:mm:ss:SSSZ - yyyy-MM-ddTHH:mm:ss - yyyy-MM-dd HH:mm:ss - yyyy-MM-dd - MM/dd/yyyy - ddd MM dd HH:mm:ss.TZD YYYY |
| date_of_last_session | (사용자가 마지막으로 앱을 사용한 날짜) ISO 8601 형식 또는 다음 형식 중 하나의 문자열: - yyyy-MM-ddTHH:mm:ss:SSSZ - yyyy-MM-ddTHH:mm:ss - yyyy-MM-dd HH:mm:ss - yyyy-MM-dd - MM/dd/yyyy - ddd MM dd HH:mm:ss.TZD YYYY |
| dob | (생년월일) “YYYY-MM-DD” 형식의 문자열(예: 1980-12-21). |
| (문자열) | |
| email_subscribe | (문자열) 사용 가능한 값은 “opted_in”(이메일 메시지를 수신하도록 명시적으로 등록됨), “unsubscribed”(이메일 메시지 수신을 명시적으로 거부함), “subscribed”(가입도 거부도 아님)입니다. |
| email_open_tracking_disabled | (부울) true 또는 false 허용됨. 이 사용자에게 향후 전송되는 모든 이메일에 오픈 추적 픽셀이 추가되지 않도록 하려면 true로 설정합니다. SparkPost 및 SendGrid에서만 사용할 수 있습니다. |
| email_click_tracking_disabled | (부울) true 또는 false 허용됨. 이 사용자에게 전송되는 향후 이메일 내의 모든 링크에 대한 클릭 추적을 비활성화하려면 true로 설정합니다. SparkPost 및 SendGrid에서만 사용할 수 있습니다. |
| external_id | (문자열) 고객 프로필의 고유 식별자입니다. external_id가 할당된 후, Braze는 사용자의 기기에서 고객 프로필을 식별합니다. 알려지지 않은 고객 프로필에 external_id를 할당하는 첫 번째 인스턴스에서, Braze는 모든 기존 고객 프로필 데이터를 새 고객 프로필로 마이그레이션합니다. |
id(문자열), likes(문자열 배열), num_friends(정수) 중 하나를 포함하는 해시입니다. |
|
| first_name | (문자열) |
| gender | (문자열) “M”, “F”, “O”(기타), “N”(해당 없음), “P”(말하지 않음) 또는 nil(알 수 없음). |
| home_city | (문자열) |
| language | (문자열) ISO-639-1 표준에 따라 언어를 Braze에 전달해야 합니다. 지원되는 언어에 대해서는 허용되는 언어 목록을 참조하세요. CSV 가져오기 또는 API를 통해 사용자에게 language를 설정하면 Braze가 SDK를 통해 이 정보를 자동으로 캡처하지 못합니다. |
| last_name | (문자열) |
| marked_email_as_spam_at | (문자열) 사용자의 이메일이 스팸으로 표시된 날짜입니다. ISO 8601 형식 또는 다음 형식 중 하나로 표시됩니다: - yyyy-MM-ddTHH:mm:ss:SSSZ - yyyy-MM-ddTHH:mm:ss - yyyy-MM-dd HH:mm:ss - yyyy-MM-dd - MM/dd/yyyy - ddd MM dd HH:mm:ss.TZD YYYY |
| phone | (문자열) 전화번호를 E.164 형식으로 제공하는 것이 좋습니다. 자세한 내용은 사용자 전화번호를 참조하세요. |
| push_subscribe | (문자열) 사용 가능한 값은 “opted_in”(푸시 메시지를 수신하도록 명시적으로 등록됨), “unsubscribed”(푸시 메시지 수신을 명시적으로 거부함), “subscribed”(가입도 거부도 아님)입니다. |
| push_tokens | app_id 및 token 문자열이 포함된 오브젝트 배열입니다. 선택적으로 이 토큰이 연결된 기기에 device_id를 제공할 수 있습니다(예: [{"app_id": App Identifier, "token": "abcd", "device_id": "optional_field_value"}]). device_id가 제공되지 않으면 무작위로 생성됩니다. |
| subscription_groups | subscription_group_id 및 subscription_state 문자열이 포함된 오브젝트 배열(예: [{"subscription_group_id" : "subscription_group_identifier", "subscription_state" : "subscribed"}]). subscription_state에 사용할 수 있는 값은 “subscribed” 및 “unsubscribed”입니다. |
| time_zone | (문자열) IANA 시간대 데이터베이스의 시간대 이름(예: “America/New_York” 또는 “Eastern Time (US & Canada)”). 유효한 시간대 값만 설정됩니다. |
id(정수), screen_name(문자열, X(구 Twitter) 핸들), followers_count(정수), friends_count(정수), statuses_count(정수) 중 하나를 포함하는 해시입니다. |
이 API를 통해 명시적으로 설정된 언어 값은 Braze가 기기에서 자동으로 수신하는 로케일 정보보다 우선합니다.
사용자 속성 예제 요청
이 예시에는 API 호출당 허용되는 총 75개의 속성 오브젝트 중 4개의 사용자 속성 오브젝트가 포함되어 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
POST https://YOUR_REST_API_URL/users/track
Content-Type: application/json
Authorization: Bearer YOUR-REST-API-KEY
{
"attributes" : [
{
"external_id" : "user1",
"first_name" : "Jon",
"has_profile_picture" : true,
"dob": "1988-02-14",
"music_videos_favorited" : { "add" : [ "calvinharris-summer" ], "remove" : ["nickiminaj-anaconda"] }
},
{
"external_id" : "user2",
"first_name" : "Jill",
"has_profile_picture" : false,
"push_tokens": [{"app_id": "Your App Identifier", "token": "abcd", "device_id": "optional_field_value"}]
},
{
"user_alias" : { "alias_name" : "device123", "alias_label" : "my_device_identifier"},
"first_name" : "Alice",
"has_profile_picture" : false
},
{
"external_id": "user3",
"subscription_groups" : [{"subscription_group_id" : "subscription_group_identifier", "subscription_state" : "subscribed"}]
}
]
}
푸시 토큰 마이그레이션
Braze를 통합하기 전에 자체적으로 또는 다른 제공업체를 통해 푸시 알림을 보내고 있었다면, 푸시 토큰 마이그레이션을 통해 등록된 푸시 토큰으로 사용자에게 푸시 알림을 계속 보낼 수 있습니다.
SDK를 통한 자동 마이그레이션
Braze SDK를 통합한 후, 옵트인한 사용자의 푸시 토큰은 다음에 앱을 열 때 자동으로 마이그레이션됩니다. 그때까지는 Braze를 통해 해당 사용자에게 푸시 알림을 보낼 수 없습니다.
또는 푸시 토큰을 수동으로 마이그레이션하여 사용자의 재참여를 더욱 신속하게 유도할 수 있습니다.
웹 토큰 고려 사항
웹 푸시 토큰의 특성상 웹용 푸시를 구현할 때 다음 사항을 고려해야 합니다:
| 고려 사항 | 세부 정보 |
|---|---|
| 서비스 워커 | 기본적으로 웹 SDK는 manageServiceWorkerExternally 또는 serviceWorkerLocation과 같은 다른 옵션이 지정되지 않는 한 ./service-worker에서 서비스 워커를 찾습니다. 서비스 워커가 제대로 설정되어 있지 않으면 사용자의 푸시 토큰이 만료될 수 있습니다. |
| 만료된 토큰 | 사용자가 60일 이내에 웹 세션을 시작하지 않으면 푸시 토큰이 만료됩니다. Braze는 만료된 푸시 토큰을 마이그레이션할 수 없으므로, 사용자를 재참여시키기 위해 푸시 프라이머를 보내야 합니다. |
API를 통한 수동 마이그레이션
수동 푸시 토큰 마이그레이션은 API를 통해 이전에 생성한 키를 Braze 플랫폼으로 가져오는 프로세스입니다.
users/track 엔드포인트를 사용하여 프로그래밍 방식으로 iOS(APN) 및 Android(FCM) 토큰을 플랫폼으로 마이그레이션합니다. 식별된 사용자(연결된 외부 ID가 있는 사용자)와 익명 사용자(외부 ID가 없는 사용자)를 모두 마이그레이션할 수 있습니다.
푸시 토큰 마이그레이션 중에 앱의 app_id를 지정하여 적절한 푸시 토큰을 적절한 앱에 연결합니다. 각 앱(iOS, Android 등)에는 API 키 페이지의 식별 섹션에서 찾을 수 있는 고유한 app_id가 있습니다. 올바른 플랫폼의 app_id를 사용해야 합니다.
API를 통해 웹 푸시 토큰을 마이그레이션하는 것은 불가능합니다. 이는 웹 푸시 토큰이 다른 플랫폼과 동일한 스키마를 따르지 않기 때문입니다.
프로그래밍 방식으로 웹 푸시 토큰을 마이그레이션하려는 경우 다음과 같은 오류가 표시될 수 있습니다: Received '400: Invalid subscription auth' sending to 'https://fcm.googleapis.com/fcm/send
API 마이그레이션의 대안으로 SDK를 통합하여 토큰 기반이 자연스럽게 다시 채워질 수 있도록 하는 것이 좋습니다.
식별된 사용자의 경우 push_token_import 플래그를 false로 설정(또는 매개변수 생략)하고 사용자 attributes 오브젝트에 external_id, app_id, token 값을 지정합니다.
예시:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
curl --location --request POST 'https://rest.iad-01.braze.com/users/track' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR-API-KEY-HERE' \
--data-raw '{
"attributes" : [
{
"push_token_import" : false,
"external_id": "example_external_id",
"country": "US",
"language": "en",
"YOUR_CUSTOM_ATTRIBUTE": "YOUR_VALUE",
"push_tokens": [
{"app_id": "APP_ID_OF_OS", "token": "PUSH_TOKEN_STRING"}
]
}
]
}'
다른 시스템에서 푸시 토큰을 가져올 때 external_id를 항상 사용할 수 있는 것은 아닙니다. 이 경우 push_token_import 플래그를 true로 설정하고 app_id 및 token 값을 지정합니다. Braze는 각 토큰에 대해 임시 익명 고객 프로필을 생성하여 이러한 개인에게 계속 메시지를 보낼 수 있도록 합니다. 토큰이 이미 Braze에 존재하는 경우 요청은 무시됩니다.
예시:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
curl --location --request POST 'https://rest.iad-01.braze.com/users/track' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR-API-KEY-HERE' \
--data-raw '{
"attributes": [
{
"push_token_import" : true,
"email": "[email protected]",
"country": "US",
"language": "en",
"YOUR_CUSTOM_ATTRIBUTE": "YOUR_VALUE",
"push_tokens": [
{"app_id": "APP_ID_OF_OS", "token": "PUSH_TOKEN_STRING", "device_id": "DEVICE_ID"}
]
},
{
"push_token_import" : true,
"email": "[email protected]",
"country": "US",
"language": "en",
"YOUR_CUSTOM_ATTRIBUTE_1": "YOUR_VALUE",
"YOUR_CUSTOM_ATTRIBUTE_2": "YOUR_VALUE",
"push_tokens": [
{"app_id": "APP_ID_OF_OS", "token": "PUSH_TOKEN_STRING", "device_id": "DEVICE_ID"}
]
}
]
}'
가져온 후, 익명 사용자가 Braze가 활성화된 앱 버전을 실행하면 Braze는 자동으로 가져온 푸시 토큰을 Braze 고객 프로필로 이동하고 임시 프로필을 정리합니다.
Braze는 매달 한 번 push_token_import 플래그가 있는 익명 프로필 중 푸시 토큰이 없는 프로필을 찾습니다. 익명 프로필에 더 이상 푸시 토큰이 없으면 Braze는 프로필을 삭제합니다. 그러나 익명 프로필에 여전히 푸시 토큰이 있는 경우, 즉 실제 사용자가 해당 푸시 토큰으로 기기에 로그인하지 않은 경우 Braze는 아무것도 하지 않습니다.
Android 푸시 토큰 가져오기
다음 고려 사항은 Android 앱에만 적용됩니다. iOS 앱은 푸시를 표시하기 위한 단일 프레임워크만 있기 때문에 이러한 단계가 필요하지 않으며, Braze가 필요한 푸시 토큰과 인증서를 가지고 있는 한 푸시 알림은 즉시 표시됩니다.
Braze SDK 통합이 완료되기 전에 사용자에게 Android 푸시 알림을 보내야 하는 경우 키-값 페어를 사용하여 푸시 알림의 유효성을 검사하세요.
푸시 페이로드를 처리하고 표시하려면 수신기가 있어야 합니다. 수신기에 푸시 페이로드를 알리려면 푸시 캠페인에 필요한 키-값 페어를 추가합니다. 이 페어의 값은 Braze 이전에 사용한 특정 푸시 파트너에 따라 달라집니다.
일부 푸시 알림 제공업체의 경우, Braze는 키-값 페어를 평탄화해야 올바르게 해석될 수 있습니다. 특정 Android 앱에 대한 키-값 페어를 평탄화하려면 고객 성공 매니저에게 문의하세요.
GitHub 에서 이 페이지를 편집합니다.