# Braze Documentation
Index of all Developer Guide pages and their headings.
## Developer Guide
- [Braze 개발자 가이드](/docs/ko/developer_guide/home/index.md)
- [시작하기](/docs/ko/developer_guide/getting_started/index.md): 이 가이드를 따라가거나 Braze Learning에서 마케터 및 개발자 학습 경로와 같은 안내 과정을 확인할 수 있습니다.
- [개발자용 SDK 개요](/docs/ko/developer_guide/getting_started/sdk_overview/index.md): SDK에 대한 기본적인 개요를 찾고 계신 마케터인가요? 대신 마케터 개요를 확인하세요.
- # {: style="float:right;width:120px;border:0;" class="noimgborder"}개발자용 SDK 개요 {#braze-learning-course-imagebuster-assetsimgblicon3png-httpslearningbrazecompathdevelopersdk-integration-basics-stylefloatrightwidth120pxborder0-classnoimgbordersdk-overview-for-developers}
- ## 앱 성능 {#app-performance}
- ## SDK 호환성 {#sdk-compatibility}
- ## 기본 분석 및 세션 처리 {#default-analytics-and-session-handling}
- ## 데이터 업로드 및 다운로드 {#data-upload-and-download}
- ## 데이터 수집 차단 {#blocking-data-collection}
- ## 어떤 버전의 SDK를 사용하고 있나요? {#what-version-of-the-sdk-am-i-on}
- [플랫폼 개요](/docs/ko/developer_guide/getting_started/platform_overview/index.md): 이 문서와 함께 무료 개발자 학습 경로 과정을 확인해 보세요.
- # {: style="float:right;width:120px;border:0;" class="noimgborder"}시작하기: 플랫폼 개요 {#braze-learning-course-imagebuster-assetsimgblicon3png-httpslearningbrazecompathdeveloper-stylefloatrightwidth120pxborder0-classnoimgbordergetting-started-platform-overview}
- ## Braze란 무엇인가요? {#what-is-braze}
- ### SDK
- ### 대시보드 사용자 인터페이스 {#dashboard-user-interface}
- ### REST API
- ## 데이터 분석 및 조치 {#data-analysis-and-action}
- ### 앱 분석 {#app-analytics}
- ### 사용자 세분화 {#user-segmentation}
- ## 멀티 채널 메시징 {#multichannel-messaging}
- ### 커스텀 가능한 구성 요소 {#customizable-components}
- ## Braze 통합 {#integrating-braze}
- ## 북마크에 추가할 리소스 {#resources-to-bookmark}
- [통합 개요](/docs/ko/developer_guide/getting_started/integration_overview/index.md): !발견, 통합, 품질 보증, 유지 관리 등 4개의 원이 "가치 실현 시간"을 중심으로 구성된 벤 다이어그램입니다.{: style="max-width:50%;float:right;margin-left:15px;border:none;"}
- # {: style="float:right;width:120px;border:0;" class="noimgborder"}시작하기: 통합 개요 {#braze-learning-course-imagebuster-assetsimgblicon3png-httpslearningbrazecomsdk-integration-basics-stylefloatrightwidth120pxborder0-classnoimgbordergetting-started-integration-overview}
- ## 발견 및 계획 {#discovery}
- ### Campaign 계획 {#campaign-planning}
- ### 데이터 요구 사항 만들기 {#creating-data-requirements}
- ### 커스터마이징 계획 {#customizations-planning}
- ### 대시보드 액세스 권한 얻기 {#getting-dashboard-access}
- ### 워크스페이스 및 API 키 {#workspaces-and-api-keys}
- ## 통합 {#integration}
- ### CDP 통합 파트너 {#cdp-integration-partners}
- ### Braze SDK 통합 {#braze-sdk-integration}
- ### Braze API 사용 {#using-the-braze-api}
- ### 제품 분석 설정 {#setting-up-product-analytics}
- ### 레거시 사용자 데이터 마이그레이션 {#migrating-legacy-user-data}
- ### 세션 추적 설정 {#setting-up-session-tracking}
- ### 커스텀 이벤트, 속성 및 구매 이벤트 추적 {#tracking-custom-events-attributes-and-purchase-events}
- ### 기타 도구 {#other-tools}
- ## 품질 보증 {#qa}
- ### 마케터에게 Braze 전달 {#passing-braze-off-to-marketers}
- ### 미래를 위한 개발 {#develop-for-the-future}
- ## 유지 관리 {#maintenance}
- ## SDK 사용량 제한 {#sdk-rate-limits}
- ### 2024-2025년 월간 활성 사용자, 전체 MAU, 웹 MAU 및 모바일 MAU {#monthly-active-users-cy-24-25-universal-mau-web-mau-and-mobile-mau}
- ### 사용량 제한 확인하기 {#finding-your-rate-limits}
- ### 더 높은 사용량 제한 요청하기 {#requesting-higher-rate-limits}
- ### 변경 사항 및 지원 {#changes-and-support}
- [아키텍처 개요](/docs/ko/developer_guide/getting_started/architecture_overview/index.md): Braze는 기본적으로 데이터를 다룹니다. Braze 플랫폼은 SDK, REST API 및 파트너 통합을 통해 데이터를 집계하고 활용할 수 있도록 지원합니다.
- # 시작하기: 아키텍처 개요 {#getting-started-architectural-overview}
- ## 데이터 수집 {#ingestion}
- ### 데이터 소스 분석 {#data-source-breakdown}
- #### MongoDB 기반 기능 {#mongodb-powered-features}
- #### Snowflake 기반 기능 {#snowflake-powered-features}
- ### Braze API를 통한 백엔드 데이터 소스 {#backend-data-sources-through-the-braze-api}
- ### Braze SDK를 통한 프론트엔드 데이터 소스 {#frontend-data-sources-through-braze-sdk}
- ### 파트너 통합 {#partner-integrations}
- ### Braze 클라우드 데이터 수집을 통한 직접 웨어하우스 연결 {#direct-warehouse-connection-through-braze-cloud-data-ingestion}
- ## 분류 {#classification}
- ## 오케스트레이션 {#orchestration}
- ### 피처 플래그 {#feature-flags}
- ## 개인화 {#personalization}
- ## 작업 {#action}
- ### 메시징 채널 {#messaging-channels}
- ## 데이터 내보내기 {#exporting-data}
- ### Currents
- ### Snowflake 데이터 공유 {#snowflake-data-sharing}
- ### Braze 내보내기 API {#braze-export-apis}
- ### CSV {#csvs}
- ## 종합 정리 {#putting-it-all-together}
- [LLM을 활용한 구축](/docs/ko/developer_guide/getting_started/build_with_llm/index.md): AI 코딩 어시스턴트는 통합 코드 작성, 문제 해결, Braze SDK 기능 탐색을 도와줄 수 있지만, 올바른 컨텍스트가 제공될 때에만 가능합니다. Braze Docs MCP 서버는 AI 어시스턴트에 Braze 설명서에 대한 직접 접근 권한을 제공하여, 최신 SDK 참조 자료를 기반으로 정확한 코드 스니펫을 생성하고 기술적 질문에 답변할 수 있도록 합니다.
- # LLM을 활용한 구축 {#building-with-an-llm}
- ## Braze Docs MCP에 연결하기 {#connecting-to-the-braze-docs-mcp}
- ### Context7 설정하기 {#setting-up-context7}
- ## Braze SDK 개발을 위한 프롬프트 작성하기 {#writing-prompts-for-braze-sdk-development}
- ### React Native SDK {#react-native-sdk}
- #### SDK 초기화 {#initializing-the-sdk}
- #### 속성을 포함한 커스텀 이벤트 로깅 {#logging-custom-events-with-properties}
- #### 푸시 알림 설정 {#setting-up-push-notifications}
- #### 인앱 메시지 처리 {#handling-in-app-messages}
- ### 웹 SDK {#web-sdk}
- #### SDK 초기화
- #### 커스텀 이벤트 및 구매 추적 {#tracking-custom-events-and-purchases}
- #### 웹 푸시 등록 {#registering-for-web-push}
- #### 사용자 속성 관리 {#managing-user-attributes}
- ## 일반 텍스트 설명서 {#plain-text-documentation}
- [커스터마이징 개요](/docs/ko/developer_guide/getting_started/customization_overview/index.md): Braze SDK는 강력한 툴킷이지만, 크게 두 가지 중요한 기능을 제공합니다. 여러 플랫폼에서 통합 고객 프로필로 사용자 데이터를 수집 및 동기화하고, 인앱 메시지, 푸시 알림, Content Cards와 같은 메시징 채널을 처리합니다. 커스터마이징 가이드의 문서에서는 이미 SDK 구현 프로세스를 완료했다고 가정합니다.
- # 커스터마이징 개요 {#customization-overview}
- [Braze SDK 튜토리얼](/docs/ko/developer_guide/tutorials/index.md)
- [Braze SDK 통합](/docs/ko/developer_guide/sdk_integration/index.md): 미러링된 SDK README 콘텐츠는 리포지토리 가이드를 참조하세요.
- # !Braze 로고{: style="float:right;width:120px;border:0;" class="noimgborder"}Braze SDK 통합 {#braze-logo-imagebuster-assetsbrazeprimaryiconblacksvg-stylefloatrightwidth120pxborder0-classnoimgborderintegrate-the-braze-sdk}
- ## About the Web Braze SDK
- ## Integrate the Web SDK
- ### Step 1: Install the Braze library
- ### Step 2: Initialize the SDK
- #### Troubleshooting missing sessions for anonymous users
- ### Prerequisites
- ### Step 1: Open the tag template gallery
- ### Step 2: Add the initialization tag template
- ### Step 3: Configure the tag
- ### Step 4: Choose initialization options
- ### Step 5: Set to Trigger on all pages
- ### Step 6: Verify your integration
- ## Filtering bot traffic {#bot-filtering}
- ### Limitations of SDK-side bot detection
- ### Implementing bot filtering
- #### Require user interaction
- #### Custom bot detection
- ### Best practices
- ## Optional configurations
- ### Logging
- #### Basic logging
- #### Custom logging
- ## Upgrading the SDK
- ## Other integration methods
- ### Accelerated Mobile Pages (AMP)
- #### Step 1: Include AMP web push script
- #### Step 2: Add subscription widgets
- #### Step 3: Add helper-iframe and permission-dialog
- #### Step 4: Create a service worker file
- #### Step 5: Configure the AMP web push HTML element
- ### Asynchronous Module Definition (AMD)
- #### Disable support
- #### Module loader
- ### Electron {#electron}
- ### Jest framework {#jest}
- ### SSR frameworks {#ssr}
- #### Framework-agnostic dynamic import
- #### Shared hook for Next.js and Remix
- #### Next.js (App Router)
- #### Next.js (Pages Router)
- #### Remix
- #### Logging events and updating users
- ### Tealium iQ
- ### Vite {#vite}
- ### Other tag managers
- ## Integrating the Android SDK
- ### Step 1: Update your Gradle build configuration
- ### Step 2: Configure your braze.xml
- ### Step 3: Add permissions to AndroidManifest.xml
- ### Step 4: Enable delayed initialization (optional)
- #### Step 4.1: Update your braze.xml
- #### Step 4.2: Configure push analytics (optional)
- ##### Explicitly queue {#explicitly-queue-push-analytics}
- ##### Drop {#drop-push-analytics}
- #### Step 4.3: Manually initialize the SDK
- ### Step 5: Enable user session tracking
- ## Testing session tracking
- ## Optional configurations
- ### Runtime configuration
- ### Google Advertising ID
- ### Location tracking
- ### Logging
- #### Enabling logs
- #### Verifying verbose logs
- #### Suppressing logs
- ### Multiple API keys
- ### Exclusive in-app message TalkBack
- ### R8 and ProGuard
- ## Integrating the Swift SDK
- ### Prerequisites
- ### Step 1: Install the Braze Swift SDK
- #### Step 1.1: Import SDK version
- #### Step 1.2: Select your packages
- ##### About Extension libraries
- #### Step 1.1: Install CocoaPods
- #### Step 1.2: Constructing the Podfile
- ##### About additional libraries
- ###### Extension libraries
- #### Step 1.3: Install the SDK
- #### Updating the SDK using CocoaPods
- #### Step 1.1: Download the Braze SDK
- #### Step 1.2: Choose your frameworks
- #### Step 1.3: Prepare your files
- #### Step 1.4: Integrate your frameworks
- #### Common errors for Objective-C projects
- ### Step 2: Set up delayed initialization (optional)
- #### Step 2.1: Prepare for delayed initialization
- #### Step 2.2: Configure push analytics behavior (optional)
- ##### Explicitly queue
- ##### Drop
- #### Step 2.3: Customize push automation (optional)
- #### Step 2.4: Initialize the SDK
- ### Step 3: Update your app delegate
- ## Optional configurations
- ### Logging
- #### Log levels
- #### Setting the log level
- ## Integrating the Cordova SDK
- ### Prerequisites
- ### Step 1: Add the SDK to your project
- ### Step 2: Configure your project
- ## Platform-specific syntax
- ### Integers
- ### Booleans
- ## Optional configurations {#optional}
- ## Disabling automatic session tracking (Android only) {#disable-automatic-session-tracking}
- ## About the Flutter Braze SDK
- ## Integrating the Flutter SDK
- ### Prerequisites
- ### Step 1: Integrate the Braze library
- ### Step 2: Complete native SDK setup
- #### 2.1 Set up Android
- ##### Provide credentials at compile time
- ##### Provide credentials at runtime
- #### 2.2 Set up iOS
- #### 2.1 Set up Android
- #### 2.2 Set up iOS
- ### Step 3: Set up the plugin
- #### Standard initialization
- #### Delayed initialization
- #### Platform-specific API keys
- #### Re-initialization
- ## Testing the integration
- ## About the React Native Braze SDK
- ## New Architecture compatibility
- ## React and React Native version requirements
- ## Integrating the React Native SDK
- ### Prerequisites
- ### Step 1: Integrate the Braze library
- ### Step 2: Complete native setup
- #### Method 1: Using the Expo plugin {#reactnative-using-the-expo-plugin}
- ##### 2.1 Install the Braze Expo plugin
- ##### 2.2 Add the plugin to your app.json
- ###### Configuring Android push notification icons {#android-push-icons}
- ##### 2.3 Build and run your application
- #### Method 2: Using React Native CLI {#reactnative-using-react-native-cli}
- ##### Set up Android
- ##### Set up iOS
- #### Method 1: Using the Expo plugin
- ##### Step 2.1: Install the Braze Expo plugin
- ##### Step 2.2: Add the plugin to your app.json
- ###### Configuring Android push notification icons
- ##### Step 2.3: Build and run your application
- #### Method 2: Using React Native CLI
- ##### Set up Android
- ##### Set up iOS
- ### Step 3: Initialize the SDK
- #### Standard initialization
- #### Delayed initialization
- #### Platform-specific API keys
- #### Re-initialization
- ### Step 4: Test the integration (optional)
- ## Next steps
- ## Integrating the Roku SDK
- ### Step 1: Add files
- ### Step 2: Add references
- ### Step 3: Configure
- ### Step 4: Initialize Braze
- ## Optional configurations
- ### Logging
- ## About the Unity Braze SDK
- ## Integrating the Unity SDK
- ### Prerequisites
- ### Step 1: Choose your Braze Unity package
- ### Step 2: Import the package
- ### Step 3: Configure the SDK
- #### Step 3.1: Configure AndroidManifest.xml
- #### Step 3.2: Update AndroidManifest.xml with your package name
- #### Step 3.3: Add gradle dependencies
- #### Step 3.4: Automate the Unity Android integration
- #### Step 3.1: Set your API key
- ## Customizing the Unity package
- ### Step 1: Clone the repository
- ### Step 2: Export package from repository
- ### Step 3: Import package into Unity
- ## Switch to an automated integration (Swift only) {#automated-integration}
- ## Optional configurations
- ### Verbose logging
- ### Prime 31 compatibility
- ### Amazon Device Messaging (ADM)
- ### Extending the Braze Unity player (Android only) {#extend-unity-player}
- ## Troubleshooting
- ### Error: "File could not be read"
- ## Integrating the .NET MAUI SDK
- ### Prerequisites
- ### Step 1: Get the .NET MAUI binding
- ### Step 2: Configure your Braze instance
- #### Step 2.1: Configure the Braze SDK in Braze.xml
- #### Step 2.2: Add required permissions to Android manifest
- #### Step 2.3: Track user sessions and registering for in-app messages
- ### Step 3: Test the integration
- # ChatGPT app integration
- ## Setup
- ### Step 1: Get the Braze integration file
- ### Step 2: Install dependencies
- ## Implementation
- ### Client-side integration (custom widgets)
- #### Configure widget metadata
- #### Set up the useBraze hook
- #### Display Braze Content Cards
- #### Track widget events
- ### Server-side integration (MCP server)
- #### Set up session information
- #### Track user interactions
- #### Track purchases and transactions
- ## About the Braze Vega SDK
- ## Integrating the Braze Vega SDK
- ### Step 1: Install the Braze library
- ### Step 2: Initialize the SDK
- ## Optional configurations
- ### Logging
- #### Enable logging during initialization
- #### Enable logging after initialization
- #### Custom logging
- ### Configuration options
- ## Upgrading the SDK
- ## Testing your integration
- [Google Tag Manager와 Braze SDK 사용하기](/docs/ko/developer_guide/sdk_integration/google_tag_manager/index.md): Google Tag Manager (GTM) lets you remotely add, remove, and edit tags on your website without requiring a production code release or engineering resources. Braze offers the following templates for the Web SDK:
- # Google Tag Manager와 Braze SDK 사용하기 {#google-tag-manager-with-the-braze-sdk}
- ## About Google Tag Manager for Web {#google-tag-manager}
- ## Tag sequencing for Braze action tags
- ## Log purchases with GTM
- ## Logging custom events with GTM
- ### Step 1: Push the event to the data layer
- ### Step 2: Create a trigger in GTM
- ### Step 3: Create a Custom HTML tag
- ## Google's EU User Consent Policy
- ## Prerequisites
- ## Using Google Tag Manager for Android
- ### Step 1: Create a trigger for custom events
- ### Step 2: Log custom attributes
- ### Step 3: Call changeUser()
- ### Step 4: Add a custom tag provider {#adding-android-google-tag-provider}
- ## Prerequisites
- ## Using Google Tag Manager for Swift
- ### Step 1: Create a trigger for custom events
- ### Step 2: Log custom attributes
- ### Step 3: Call changeUser()
- ### Step 4: Add a custom tag provider {#adding-ios-google-tag-provider}
- ## 문제 해결 {#troubleshooting}
- [Braze SDK 인증 설정](/docs/ko/developer_guide/sdk_integration/authentication/index.md): 앱에서 이 기능을 활성화한 후에는 유효하지 않거나 누락된 JSON 웹 토큰(JWT)이 포함된 모든 요청을 거부하도록 Braze 대시보드를 구성할 수 있습니다. 여기에는 다음이 포함됩니다:
- # SDK 인증 설정 {#set-up-sdk-authentication}
- ## 작동 방식 {#how-it-works}
- ## 인증 설정 {#setting-up-authentication}
- ### 1단계: 서버 설정 {#server-side-integration}
- #### 1.1단계: 공개/비공개 키 쌍 생성 {#generate-keys}
- #### 1.2단계: 현재 사용자를 위한 JSON 웹 토큰 생성 {#create-jwt}
- ### 2단계: SDK 구성 {#sdk-integration}
- #### 2.1단계: Braze SDK에서 인증 활성화 {#step-21-enable-authentication-in-the-braze-sdk}
- #### 2.2단계: 현재 사용자의 JWT 설정 {#step-22-set-the-current-users-jwt}
- #### 2.3단계: 잘못된 토큰에 대한 콜백 함수 등록 {#sdk-callback}
- ### 3단계: 대시보드에서 인증 활성화 {#braze-dashboard}
- #### 적용 옵션 {#enforcement-options}
- ## 공개 키 관리 {#key-management}
- ### 공개 키 추가 {#adding-a-public-key}
- ### 새 기본 키 할당 {#assign-a-new-primary-key}
- ### 키 삭제 {#deleting-a-key}
- ## 분석 {#analytics}
- ## 오류 코드 {#error-codes}
- ## 자주 묻는 질문(FAQ) {#faq}
- #### 이 기능을 모든 앱에서 동시에 활성화해야 하나요? {#faq-app-by-app}
- #### 내 앱의 이전 버전을 사용하는 사용자에게는 어떤 일이 발생하나요? {#faq-sdk-backward-compatibility}
- #### JWT를 생성할 때 어떤 만료 기간을 사용해야 하나요? {#faq-expiration}
- #### JWT가 사용자의 세션 중간에 만료되면 어떻게 되나요? {#faq-jwt-expiration}
- #### 서버 측 통합이 중단되어 더 이상 JWT를 생성할 수 없으면 어떻게 되나요? {#faq-server-downtime}
- #### 왜 이 기능은 공유 비밀 대신 공개/비공개 키를 사용하나요? {#faq-shared-secrets}
- #### 거부된 요청은 어떻게 재시도되나요? {#faq-retry-logic}
- #### 익명 사용자에게 SDK 인증을 사용할 수 있나요? {#faq-anonymous-users}
- #### SDK 인증은 사용자 별칭과 함께 작동하나요? {#faq-aliases}
- #### SDK 인증을 활성화하면 인증되지 않은 활동 수집이 차단되나요? {#faq-unauthenticated-collection}
- [Braze SDK 디버깅하기](/docs/ko/developer_guide/sdk_integration/debugging/index.md): 더 심층적인 조사가 필요한 경우, 상세 로깅을 활성화하여 자세한 SDK 출력을 캡처하고, 특정 채널에 대한 상세 로그를 읽는 방법도 확인할 수 있습니다.
- # Braze SDK 디버깅하기 {#debugging-the-braze-sdk}
- ## 필수 조건 {#prerequisites}
- ## Braze SDK 디버깅하기
- ### 1단계: 앱 닫기 {#step-1-close-your-app}
- ### 2단계: 디버깅 세션 생성 {#step-2-create-a-debugging-session}
- ### 3단계: 사용자 선택 {#step-3-select-a-user}
- ### 4단계: 앱 다시 실행 {#step-4-relaunch-the-app}
- ### 5단계: 재현 단계 완료 {#step-5-complete-the-reproduction-steps}
- ### 6단계: 세션 종료 {#step-6-end-your-session}
- ### 7단계: 세션 공유 또는 내보내기(선택 사항) {#step-7-share-or-export-your-session-optional}
- [상세 로깅](/docs/ko/developer_guide/sdk_integration/verbose_logging/index.md): 푸시 알림이 도착하지 않거나, 인앱 메시지가 표시되지 않거나, 사용자 데이터가 동기화되지 않는 등 예상대로 작동하지 않을 때, 상세 로그는 문제의 근본 원인을 파악하는 데 도움이 됩니다. 추측하는 대신, 각 단계에서 SDK가 무엇을 하고 있는지 정확히 볼 수 있습니다.
- # 상세 로깅
- ## 상세 로깅을 사용할 때
- ## 상세 로깅 활성화
- ## 로그 수집
- ## 상세 로그 읽기
- ## Braze 지원과 로그 공유하기
- [상세 로그 읽기](/docs/ko/developer_guide/sdk_integration/reading_verbose_logs/index.md): 시작하기 전에 상세 로깅을 활성화했는지, 그리고 플랫폼에서 로그를 수집하는 방법을 알고 있는지 확인하세요.
- # 상세 로그 읽기 {#reading-verbose-logs}
- ## 세션 {#sessions}
- ### 주요 로그 항목 {#key-log-entries}
- ### 확인할 사항 {#what-to-check}
- ## 푸시 알림 {#push-notifications}
- ### 토큰 등록 {#token-registration}
- ### 확인할 사항
- ### 푸시 전달 및 클릭 {#push-delivery-and-click}
- ### 확인할 사항
- ## 인앱 메시지 {#in-app-messages}
- ### 메시지 전달 {#message-delivery}
- ### 메시지 표시 및 노출 {#message-display-and-impression}
- ### 클릭 및 버튼 이벤트 {#click-and-button-events}
- ### 확인할 사항
- ## Content Cards
- ### 카드 동기화 {#card-sync}
- ### 노출 횟수, 클릭 및 해제 {#impressions-clicks-and-dismissals}
- ### 확인할 사항
- ## 딥링크 {#deep-links}
- ### 확인할 사항
- ## 사용자 식별 {#user-identification}
- ## 네트워크 요청 {#network-requests}
- ### 요청 구조 {#request-structure}
- ### 확인할 사항
- ## 일반 이벤트 약어 {#common-event-abbreviations}
- ## 문제 해결 {#troubleshooting}
- ### 사용자 프로필에 세션이 0으로 기록되는 경우는 언제인가요? {#when-might-a-user-have-0-sessions-recorded-against-their-profile}
- ### SDK와 REST API를 함께 사용할 때 사용자 데이터 불일치 {#user-data-discrepancies-when-using-the-sdk-and-rest-api-together}
- ### 데이터가 Braze에 도달하지 않는 경우 {#data-not-reaching-braze}
- [Braze SDK 사용량 제한](/docs/ko/developer_guide/sdk_integration/rate_limits/index.md): Braze SDK 사용량 제한은 성능 최적화, 배터리 소모 최소화, 데이터 사용량 감소 및 안정적인 데이터 전달을 보장하기 위해 다음과 같은 기능을 사용합니다:
- # Braze SDK 사용량 제한 {#braze-sdk-rate-limits}
- ## SDK 사용량 제한 이해하기 {#understanding-sdk-rate-limits}
- ### 비동기 처리 {#asynchronous-processing}
- ### 적응형 사용량 제한 {#adaptive-rate-limiting}
- ### 네트워킹 최적화 {#networking-optimizations}
- ## 모범 사례 {#best-practices}
- ## 도움 받기 {#getting-help}
- [Braze를 ChatGPT 앱과 통합하기](/docs/ko/developer_guide/sdk_integration/chatgpt_apps/index.md): !ChatGPT 앱에 통합된 콘텐츠 카드.{: style="float:right;max-width:30%;border:none;" }
- # Braze를 ChatGPT 앱과 통합하기 {#integrate-braze-with-chatgpt-apps}
- ## 개요 {#overview}
- ### 주요 이점 {#key-benefits}
- ## 필수 조건 {#prerequisites}
- # ChatGPT app integration
- ## Setup
- ### Step 1: Get the Braze integration file
- ### Step 2: Install dependencies
- ## Implementation
- ### Client-side integration (custom widgets)
- #### Configure widget metadata
- #### Set up the useBraze hook
- #### Display Braze Content Cards
- #### Track widget events
- ### Server-side integration (MCP server)
- #### Set up session information
- #### Track user interactions
- #### Track purchases and transactions
- [Braze SDK 버전 관리 정보](/docs/ko/developer_guide/sdk_integration/version_management/index.md): 모든 Braze SDK는 시맨틱 버전 관리 사양(SemVer)을 준수하므로, 버전 번호 MAJOR.MINOR.PATCH가 주어지면 다음을 권장합니다:
- # 버전 관리 정보 {#about-version-management}
- ## 버전 관리 권장 사항 {#versioning-recommendations}
- ## 새 릴리스 알림 받기 {#getting-notified-of-new-releases}
- ## 알려진 문제 정보 {#about-known-issues}
- [Android 13 업그레이드 가이드](/docs/ko/developer_guide/platforms/android/android_13/index.md): Refer to the Android 13 developer documentation for a full migration guide.
- # Upgrading to Android 13
- ## Android 13 Braze SDK
- ## Changes in Android 13
- ### Push permission {#push-permission}
- #### Permission prompt timing {#push-permission-timing}
- ## Preparing for Android 13 {#next-steps}
- [iOS 18로 업그레이드](/docs/ko/developer_guide/platforms/swift/ios_18/index.md): Apple의 WWDC는 2024년 6월 9일부터 11일까지 진행되었습니다. 블로그 게시물에서 발표 내용을 자세히 알아보거나, Braze에서 iOS 18을 활용하는 방법을 읽어보세요.
- # iOS 18로 업그레이드 {#upgrading-to-ios-18}
- ## iOS 18의 변경 사항 {#changes-in-ios-18}
- ### Apple Watch의 라이브 활동 {#live-activities-on-apple-watch}
- ### Apple Vision Pro
- ### macOS의 iPhone 알림 {#iphone-notifications-on-macos}
- ### Apple Intelligence
- [visionOS 지원](/docs/ko/developer_guide/platforms/swift/visionos/index.md): iOS에서 사용할 수 있는 대부분의 기능은 visonOS에서도 사용할 수 있습니다.
- # visionOS 지원
- ## 완벽하게 지원되는 기능
- ## 부분적으로 지원되는 기능
- ## 지원되지 않는 기능
- [iOS 14 SDK 업그레이드 가이드](/docs/ko/developer_guide/platforms/swift/_archived_updates/ios_14/index.md): iOS 14.5부터 IDFA 수집 및 특정 데이터 공유에는 새로운 AppTrackingTransparency 프레임워크 권한 프롬프트가 필요합니다(자세히 알아보기).
- # iOS 14 SDK 업그레이드 가이드 {#ios-14-sdk-upgrade-guide}
- #### iOS 14 주요 변경 사항 요약 {#summary-of-ios-14-breaking-changes}
- ## 업그레이드 요약 {#upgrade-summary}
- ## iOS 14 동작 변경 사항 {#ios-14-behavior-changes}
- ### 대략적인 위치 권한 {#approximate-location-permission}
- #### 개요 {#overview}
- #### 지오펜스 {#geofences}
- #### 위치 타겟팅 {#location-tracking}
- ### IDFA 및 앱 추적 투명성 {#idfa}
- #### 개요
- #### Braze IDFA 수집 변경 사항 {#changes-to-braze-idfa-collection}
- ### 푸시 권한 부여 {#push-provisional-auth}
- ## iOS 14의 새로운 기능 {#ios-14-new-features}
- ### 앱 개인정보 보호 및 데이터 수집 개요 {#app-privacy}
- #### Apple 개발자 포털 설문지 {#apple-developer-portal-questionnaire}
- #### Braze 기본 데이터 수집 {#braze-default-data-collection}
- #### 선택적 데이터 수집 {#optional-data-collection}
- [iOS 15 SDK 업그레이드 가이드](/docs/ko/developer_guide/platforms/swift/_archived_updates/ios_15/index.md): 매년 iOS 베타를 테스트하는 과정에서 특정 UI 내비게이션 바가 불투명하지 않고 투명하게 표시되는 Apple의 변경 사항을 확인했습니다. 이 현상은 Content Cards에 Braze 기본 UI를 사용하거나 웹 딥링크가 별도의 브라우저 앱이 아닌 앱 내에서 열릴 때 iOS 15에서 나타납니다.
- # iOS 15 SDK 업그레이드 가이드 {#ios-15-sdk-upgrade-guide}
- ## UI 내비게이션의 투명성 변경 사항 {#transparency-changes-to-ui-navigations}
- ## 새로운 알림 설정 {#notification-settings}
- ### 집중 모드 {#focus-mode}
- ### 방해 수준 {#interruption-levels}
- ### 알림 요약 {#notification-summary}
- ## 위치 버튼 {#location-buttons}
- ### Braze에서 위치 버튼 사용하기 {#using-location-buttons-with-braze}
- ## Apple 메일 {#mail}
- ## Safari IP 주소 위치 {#safari-ip-address-location}
- [iOS 16 업그레이드 가이드](/docs/ko/developer_guide/platforms/swift/_archived_updates/ios_16/index.md): Apple은 웹 푸시 기능에 대한 두 가지 변경 사항을 발표했습니다.
- # iOS 16 SDK 업그레이드 가이드 {#ios-16-sdk-upgrade-guide}
- ## iOS 16의 변경 사항 {#changes-in-ios-16}
- ### Safari 웹 푸시 {#safari-web-push}
- #### 데스크탑 웹 푸시(MacOS) {#macos-push}
- #### 모바일 웹 푸시(iOS 및 iPadOS) {#ios-push}
- ## iOS 16 준비 {#next-steps}
- [iOS 17 업그레이드 가이드](/docs/ko/developer_guide/platforms/swift/_archived_updates/ios_17/index.md): Braze Swift SDK와 Objective-C SDK는 모두 Xcode 14 및 Xcode 15와 역호환되며 iOS 17 기기와도 호환됩니다.
- # iOS 17 업그레이드 가이드
- ## iOS 17 및 Xcode 15 호환성
- ## iOS 17의 변경 사항
- ### 링크 추적 및 UTM 매개변수 제거
- ### 앱 추적 투명성
- #### 개인정보 보호 매니페스트
- #### 코드 서명
- ### Braze SDK 및 개인정보 보호
- [웹용 브라우저 확장 프로그램 통합](/docs/ko/developer_guide/platforms/web/browser_extensions/index.md): 브라우저 확장 프로그램에 Braze 웹 SDK를 통합하여 분석을 수집하고 사용자에게 리치 메시징을 표시할 수 있습니다. 여기에는 Google Chrome 확장 프로그램 및 Firefox 추가 기능이 모두 포함됩니다.
- # 브라우저 확장 프로그램 {#browser-extension}
- ## 지원되는 항목 {#whats-supported}
- ## 지원되지 않는 항목 {#whats-not-supported}
- ## 확장 프로그램 유형 {#extension-types}
- ## 권한 {#permissions}
- ## 시작하기 {#getting-started}
- ### 확장 프로그램 팝업 {#popup}
- ### 백그라운드 스크립트(매니페스트 v2만 해당) {#background-script}
- ### 옵션 페이지 {#options-page}
- ## 초기화 {#initialization}
- ## 푸시 {#push}
- [웹을 위한 콘텐츠 보안 정책 헤더](/docs/ko/developer_guide/platforms/web/content_security_policy/index.md): 이 문서는 CSP 규칙을 적용하고 Braze와 통합하는 웹사이트에서 작업하는 개발자를 대상으로 합니다. 보안 접근 방식에 대한 조언을 제공하기 위한 것이 아닙니다.
- # 콘텐츠 보안 정책 헤더 {#content-security-policy-headers}
- ## Nonce 속성 {#nonce}
- ## 지시문 {#directives}
- ### connect-src {#connect-src}
- ### script-src {#script-src}
- ### img-src {#img-src}
- ## Font Awesome {#font-awesome}
- [접근성](/docs/ko/developer_guide/platforms/web/accessibility/index.md): Braze Web SDK는 웹 콘텐츠 접근성 지침(WCAG 2.1)에서 제공하는 표준을 지원합니다. 접근성 표준을 유지하기 위해 모든 새로운 빌드에서 Content Cards 및 인앱 메시지에 대해 100/100 라이트하우스 점수를 유지하고 있습니다.
- # 접근성 {#accessibility}
- ## 필수 조건 {#prerequisites}
- ### 주요 접근성 수정 사항 {#notable-accessibility-fixes}
- ## 지원되는 접근성 기능 {#supported-accessibility-features}
- ## SDK 통합을 위한 접근성 가이드라인 {#accessibility-guidelines-for-sdk-integrations}
- ### Content Cards
- #### 최대 높이 설정 {#setting-a-maximum-height}
- #### 뷰포트 고려사항 {#viewport-considerations}
- ### 인앱 메시지 {#in-app-messages}
- ### 모바일 고려사항 {#mobile-considerations}
- #### 반응형 디자인 {#responsive-design}
- ### 접근성 테스트 {#testing-accessibility}
- #### 수동 테스트 체크리스트 {#manual-test-checklist}
- ### 일반적인 접근성 문제 {#common-accessibility-issues}
- [웹브레이즈 SDK를 위한 스마트 TV 지원](/docs/ko/developer_guide/platforms/web/smart_tvs/index.md): 전체 기술 참조는 JavaScript 설명서를 참조하세요. 또는 TV에서 실행되는 웹 SDK를 확인하려면 샘플 앱을 참조하세요.
- # 스마트 TV 지원
- ## Prerequisites
- ## 웹브레이즈 SDK 구성
- ## 분석
- ## 인앱 메시지 및 콘텐츠 카드
- [Braze를 위한 TV 및 OTT 통합](/docs/ko/developer_guide/platforms/tv_and_ott/index.md): 다음은 현재 지원되는 기능 및 메시징 채널 목록입니다.
- # TV 및 OTT 통합 {#tv-and-ott-integrations}
- ## 플랫폼 및 기능 {#platforms-and-features}
- ## 통합 가이드 {#integration-guides}
- ### Amazon Fire TV {#fire-tv}
- ### Kindle Fire {#kindle-fire}
- ### Android TV {#android-tv}
- ### LG webOS {#lg-webos}
- ### Samsung Tizen {#tizen}
- ### Roku {#roku}
- ### Apple TV OS {#tvos}
- ### Apple Vision Pro {#vision-pro}
- ## 앱 타겟팅 {#app-targeting}
- ## 헤드리스 UI {#custom-ui}
- [iOS용 통합 개요](/docs/ko/developer_guide/platforms/legacy_sdks/ios/initial_sdk_setup/overview/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- [iOS용 Carthage 통합](/docs/ko/developer_guide/platforms/legacy_sdks/ios/initial_sdk_setup/installation_methods/carthage_integration/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 카르타고 통합
- ## SDK 가져오기
- ### 이전 버전
- ## 다음 단계
- ## 코어 전용 통합
- [iOS용 CocoaPods 통합](/docs/ko/developer_guide/platforms/legacy_sdks/ios/initial_sdk_setup/installation_methods/cocoapods/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # CocoaPods 통합 {#cocoapods-integration}
- ## 1단계: CocoaPods 설치 {#step-1-install-cocoapods}
- ## 2단계: Podfile 구성 {#step-2-constructing-the-podfile}
- #### 서브스펙 {#subspecs}
- ## 3단계: Braze SDK 설치 {#step-3-installing-the-braze-sdk}
- ## 다음 단계 {#next-steps}
- ## CocoaPods를 통해 Braze SDK 업데이트하기 {#updating-the-braze-sdk-via-cocoapods}
- [iOS용 Swift 패키지 관리자 통합](/docs/ko/developer_guide/platforms/legacy_sdks/ios/initial_sdk_setup/installation_methods/swift_package_manager/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 스위프트 패키지 매니저 통합
- ## 1단계: 프로젝트에 종속성 추가하기
- ### SDK 버전 가져오기
- ### 패키지 선택
- ## 2단계: 프로젝트 구성
- ## 3단계: 대상의 스키마 편집
- ## 다음 단계
- [수동 통합 옵션 iOS용](/docs/ko/developer_guide/platforms/legacy_sdks/ios/initial_sdk_setup/installation_methods/manual_integration_options/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 수동 통합
- ## 1단계: Braze SDK 다운로드 중
- ### 옵션 1: 동적 XCFramework
- ### Option 2: 정적 통합을 위한 정적 XCFramework
- ## 2단계: 필요한 iOS 라이브러리 추가
- ### SDWebImage 통합
- ### 선택적 위치 추적
- ## 3단계: Objective-C 브리징 헤더
- ## 다음 단계
- [iOS SDK 통합 완료](/docs/ko/developer_guide/platforms/legacy_sdks/ios/initial_sdk_setup/completing_integration/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 통합 완료 {#complete-the-integration}
- ## 1단계: 앱 델리게이트 업데이트 {#step-1-update-your-app-delegate}
- ## 2단계: 데이터 클러스터 지정 {#step-2-specify-your-data-cluster}
- ### 컴파일 타임 엔드포인트 구성(권장) {#compile-time-endpoint-configuration-recommended}
- ### 런타임 엔드포인트 구성 {#runtime-endpoint-configuration}
- ## SDK 통합 완료 {#sdk-integration-complete}
- ## 시작 시 Braze 커스터마이징 {#customizing-braze-on-startup}
- ## Appboy.sharedInstance() 및 Swift 널 허용 {#appboysharedinstance-and-swift-nullability}
- ## 추가 리소스 {#additional-resources}
- [iOS용 기타 SDK 커스터마이징](/docs/ko/developer_guide/platforms/legacy_sdks/ios/initial_sdk_setup/other_sdk_customizations/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 기타 SDK 커스터마이징 {#other-sdk-customizations}
- ## Braze 로그 수준 {#braze-log-level}
- ### 로그 수준 {#log-levels}
- ### 상세 로깅 {#verbose-logging}
- ### 로그 수준 설정 {#setting-log-level}
- ## 선택적 IDFV 수집 - Swift {#optional-idfv-collection-swift}
- ## 선택적 IDFA 수집 {#optional-idfa-collection}
- ### iOS 14.5 AppTrackingTransparency
- ### IDFA 수집 구현 {#implementing-idfa-collection}
- ##### 1단계: ABKIDFADelegate 구현 {#step-1-implement-abkidfadelegate}
- ##### 2단계: Braze 초기화 중 델리게이트 설정 {#step-2-set-the-delegate-during-braze-initialization}
- ## 대략적인 iOS SDK 크기 {#ios-sdk-size}
- [iOS용 Braze SDK 통합 가이드(선택 사항)](/docs/ko/developer_guide/platforms/legacy_sdks/ios/initial_sdk_setup/ios_sdk_integration/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # Braze iOS SDK 통합 가이드
- ## 통합 개요
- ### BrazeManager.swift 생성
- ##### BrazeManager.swift 생성
- ### SDK 초기화
- ##### BrazeManager.swift에서 SDK 초기화
- ##### AppDelegate.swift에서 Appboy 초기화 처리
- ### 푸시 알림
- ##### 푸시 인증서 추가
- ##### 푸시 알림 등록하기
- ##### 전달 푸시 알림 방법
- ###### 1단계: 푸시 알림 코드 확장 만들기
- ###### 2단계: 원격 알림 지원
- ###### 3단계: 원격 알림 처리
- ###### 4단계: 알림 응답 전달
- ### 사용자 변수 및 메서드 액세스
- ##### 사용자 변수 및 메서드 생성
- ### 로그 분석
- ##### 로그 사용자 지정 이벤트 메서드 생성
- ##### 로그 사용자 지정 속성 만들기 메서드
- ##### 로그 구매 방법 만들기
- ### 인앱 메시지
- ##### ABKInAppMessageUIDelegate 준수
- ##### 델리게이트 메서드 추가
- ### 콘텐츠 카드
- ##### 콘텐츠 카드 변수 및 메서드 만들기
- ## 다음 단계
- [iOS용 푸시 통합](/docs/ko/developer_guide/platforms/legacy_sdks/ios/push_notifications/integration/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 푸시 통합 {#push-integration}
- ## 1단계: APNs 토큰 업로드 {#step-1-upload-your-apns-token}
- ## 2단계: 푸시 기능 활성화 {#step-2-enable-push-capabilities}
- ## 3단계: 푸시 알림 등록하기 {#step-3-register-for-push-notifications}
- ### UserNotification 프레임워크 사용(iOS 10 이상) {#using-usernotification-framework-ios-10}
- ### UserNotifications 프레임워크 없이 사용 {#without-usernotifications-framework}
- ## 4단계: Braze에 푸시 토큰 등록 {#step-4-register-push-tokens-with-braze}
- ## 5단계: 푸시 처리 활성화 {#step-5-enable-push-handling}
- ### iOS 10+
- ### iOS 10 이전 버전 {#pre-ios-10}
- ## 6단계: 딥링킹 {#step-6-deep-linking}
- ## 7단계: 단위 테스트(선택 사항) {#step-7-unit-tests-optional}
- [iOS 푸시 사용자 지정](/docs/ko/developer_guide/platforms/legacy_sdks/ios/push_notifications/customization/index.md):
- [iOS용 푸시 액션 버튼](/docs/ko/developer_guide/platforms/legacy_sdks/ios/push_notifications/customization/action_buttons/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 실행 버튼 {#push-action-buttons-integration}
- ## 1단계: Braze 기본 푸시 카테고리 추가하기
- ## 2단계: 대화형 푸시 처리 사용
- ## 푸시 카테고리 사용자 지정
- [iOS용 사용자 지정 푸시 알림 소리](/docs/ko/developer_guide/platforms/legacy_sdks/ios/push_notifications/customization/custom_sounds/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 사용자 지정 사운드
- ## 1단계: 앱에서 사운드 호스팅하기
- ## 2단계: 대시보드에 사운드에 대한 프로토콜 URL 제공
- [iOS용 리치 푸시 알림](/docs/ko/developer_guide/platforms/legacy_sdks/ios/push_notifications/customization/rich_notifications/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # iOS 10 리치 알림
- ## 서비스 확장 만들기
- ## 서비스 확장 설정
- ### Braze와 함께 작동하도록 서비스 확장 구성하기
- ### 코드 예제
- ## 대시보드에서 리치 알림 만들기
- [iOS용 푸시 알림 배지 수](/docs/ko/developer_guide/platforms/legacy_sdks/ios/push_notifications/customization/badges/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # Badges
- [iOS용 Braze 내부 푸시 알림 무시하기](/docs/ko/developer_guide/platforms/legacy_sdks/ios/push_notifications/customization/ignoring_internal_push/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # Braze 내부 푸시 알림 무시하기
- ## 앱에서 자동 동작 확인
- ## Braze 내부 푸시 유틸리티 방법 사용
- ## 구현 예시 {#internal-push-implementation-example}
- [고급 푸시 설정](/docs/ko/developer_guide/platforms/legacy_sdks/ios/push_notifications/customization/advanced_settings/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 고급 설정 {#advanced-settings}
- ## 푸시 키-값 페어에서 데이터 추출하기 {#extracting-data-from-push-key-value-pairs}
- ## 알림 옵션 {#alert-options}
- ## 콘텐츠 가용 플래그 추가 {#adding-content-available-flag}
- ## 변경 가능한 콘텐츠 플래그 추가 {#adding-mutable-content-flag}
- ## 앱 배지 수 업데이트 {#update-app-badge-count}
- ## 소리 {#sounds}
- ## 축소 ID {#collapse-id}
- ## 만료 {#expiry}
- [iOS용 무음 푸시 알림](/docs/ko/developer_guide/platforms/legacy_sdks/ios/push_notifications/silent_push_notifications/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 무음 푸시 알림 {#silent-push-notifications}
- ## 무음 푸시 알림 보내기 {#sending-silent-push-notifications}
- ## 무음 푸시 알림을 사용하여 백그라운드 작업 트리거하기 {#use-silent-push-notifications-to-trigger-background-work}
- ## iOS 무음 알림 제한 사항 {#ios-silent-notifications-limitations}
- [iOS용 푸시 프라이머](/docs/ko/developer_guide/platforms/legacy_sdks/ios/push_notifications/push_primer/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 푸시 프라이머 통합
- ## 1단계: AppDelegate.m 파일에 스니펫 추가
- ## 2단계: AppDelegate.m 파일에 사용자 지정 이벤트 검사기 추가
- ## 3단계: 딥링크 핸들러 설정
- [iOS용 푸시 스토리](/docs/ko/developer_guide/platforms/legacy_sdks/ios/push_notifications/push_story/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 푸시 스토리 설정
- ## 1단계: 앱에서 푸시 활성화
- ## 2단계: 알림 콘텐츠 확장 대상 추가하기
- ## 3단계: 기능 활성화
- ### 앱 그룹 추가
- ## 4단계: 앱에 푸시 스토리 프레임워크 추가하기
- ## 5단계: 알림 보기 컨트롤러 업데이트하기
- ## 6단계: 알림 콘텐츠 확장 스토리보드 설정
- ## 7단계: 알림 콘텐츠 확장 목록 설정
- ## 8단계: 기본 앱에서 Braze 연동 업데이트하기
- ##### 옵션 1: 런타임
- ##### 옵션 2: Info.plist
- ## 다음 단계
- [iOS용 고급 푸시 알림 구현(선택 사항)](/docs/ko/developer_guide/platforms/legacy_sdks/ios/push_notifications/implementation_guide/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 푸시 알림 구현 가이드 {#push-notification-implementation-guide}
- ## 알림 콘텐츠 앱 확장 {#notification-content-app-extensions}
- #### 요구 사항 {#requirements}
- ### 커스텀 카테고리 구성 {#custom-category-configuration}
- ## 사용 사례 및 구현 워크스루 {#use-case-and-implementation-walkthrough}
- ### 대화형 푸시 알림 {#interactive-push-notification}
- #### 대시보드 구성 {#dashboard-configuration}
- #### 기타 사용 사례 {#other-use-cases}
- ##### 분석을 기록할 준비가 되셨나요? {#ready-to-log-analytics}
- ### 개인화된 푸시 알림 {#personalized-push-notifications}
- #### 대시보드 구성 {#dashboard-configuration}
- #### 키-값 페어 처리하기 {#handling-key-value-pairs}
- #### 기타 사용 사례 {#other-use-cases}
- ##### 분석을 기록할 준비가 되셨나요? {#ready-to-log-analytics}
- ### 정보 캡처 푸시 알림 {#information-capture-push-notification}
- #### 대시보드 구성 {#dashboard-configuration}
- #### 버튼 동작 처리하기 {#handling-button-actions}
- ##### 푸시 해제하기 {#dismissing-pushes}
- #### 기타 사용 사례 {#other-use-cases}
- ##### 분석을 기록할 준비가 되셨나요? {#ready-to-log-analytics}
- ## 분석 로깅 {#logging-analytics}
- ### Braze API를 사용한 로깅(권장) {#logging-with-the-braze-api-recommended}
- ### 수동으로 로깅하기 {#logging-manually}
- #### 1단계: Xcode 내에서 앱 그룹 구성 {#step-1-configure-app-groups-within-xcode}
- #### 2단계: 코드 스니펫 통합 {#step-2-integrate-code-snippets}
- ##### 커스텀 이벤트 저장 {#saving-custom-events}
- ##### Braze에 커스텀 이벤트 보내기 {#sending-custom-events-to-braze}
- ##### 커스텀 속성 저장 {#saving-custom-attributes}
- ##### Braze에 커스텀 속성 보내기 {#sending-custom-attributes-to-braze}
- ##### 사용자 속성 저장 {#saving-user-attributes}
- ##### Braze에 사용자 속성 보내기 {#sending-user-attributes-to-braze}
- ##### 헬퍼 파일 {#helper-files}
- [푸시 알림 테스트 iOS용](/docs/ko/developer_guide/platforms/legacy_sdks/ios/push_notifications/testing/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 테스트 {#push-testing}
- [iOS용 푸시 알림 단위 테스트](/docs/ko/developer_guide/platforms/legacy_sdks/ios/push_notifications/unit_tests/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 단위 테스트 {#unit-tests}
- ## 1단계: 단위 테스트 대상 생성
- ## 2단계: 단위 테스트에 Braze 소프트웨어 개발 키트를 추가하십시오
- ## 3단계: 단위 테스트에 OCMock 추가
- ## 4단계: 추가된 라이브러리 설치 완료
- ## 5단계: 푸시 테스트 추가
- ## 6단계: 테스트 스위트 실행
- [iOS용 푸시 알림 문제 해결](/docs/ko/developer_guide/platforms/legacy_sdks/ios/push_notifications/troubleshooting/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 문제 해결 {#push-troubleshooting}
- ## Braze/APNs 워크플로 이해하기 {#understanding-the-brazeapns-workflow}
- #### 1단계: 푸시 인증서 및 프로비저닝 프로필 구성하기 {#step-1-configuring-the-push-certificate-and-provisioning-profile}
- #### 2단계: 기기가 APNs에 등록하고 Braze에 푸시 토큰을 제공합니다 {#step-2-devices-register-for-apns-and-provide-braze-with-push-tokens}
- #### 3단계: Braze 푸시 Campaign 시작 {#step-3-launching-a-braze-push-campaign}
- #### 4단계: 유효하지 않은 토큰 제거하기 {#step-4-removing-invalid-tokens}
- ## 푸시 오류 로그 활용하기 {#utilizing-the-push-error-logs}
- ## 푸시 등록 문제 {#push-registration-issues}
- #### 푸시 등록 프롬프트 없음 {#no-push-registration-prompt}
- #### 대시보드에 "푸시 등록" 사용자가 표시되지 않음 {#no-push-registered-users-showing-in-the-dashboard}
- ## 푸시 알림을 받지 못하는 기기 {#devices-not-receiving-push-notifications}
- #### 푸시 알림을 보낸 후 사용자가 더 이상 "푸시 등록" 상태가 아님 {#users-no-longer-push-registered-after-sending-a-push-notification}
- ##### 대시보드와 앱 인증서 불일치 {#dashboard-and-app-certificate-mismatch}
- ##### 앱 삭제 {#uninstalls}
- ##### 프로비저닝 프로필 다시 생성 {#regenerating-your-provisioning-profile}
- #### 푸시 알림을 보낸 후 사용자가 여전히 "푸시 등록" 상태임 {#users-still-push-registered-after-sending-a-push-notification}
- ##### 앱이 포그라운드에 있음 {#app-is-foregrounded}
- ##### 잘못 예약된 테스트 알림 {#test-notification-scheduled-incorrectly}
- #### 테스트 중인 앱에서 "푸시 등록"되지 않은 사용자 {#user-not-push-registered-for-the-app-being-tested}
- ## 푸시 메시지 미발송 {#push-messages-not-sending}
- ## 메시지 활동 로그 오류 {#message-activity-log-errors}
- #### 푸시 토큰에 등록되지 않은 전송 수신됨 {#received-unregistered-sending}
- #### 주제용이 아닌 기기 토큰 {#device-token-not-for-topic}
- #### 푸시 토큰으로 전송하는 BadDeviceToken {#baddevicetoken-sending-to-push-token}
- ## 푸시 전송 후 문제 {#issues-after-push-delivery}
- #### 푸시 클릭이 기록되지 않음 {#push-clicks-not-logged}
- #### 푸시 클릭으로 인한 웹 링크가 열리지 않음 {#web-links-from-push-clicks-not-opening}
- #### 푸시 클릭으로 인한 딥링크가 열리지 않음 {#deep-links-from-push-clicks-not-opening}
- #### 직접 열람 수가 거의 또는 전혀 없음 {#few-or-no-direct-opens}
- [iOS용 인앱 메시지 개요](/docs/ko/developer_guide/platforms/legacy_sdks/ios/in-app_messaging/overview/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 인앱 메시지 {#in-app-messages}
- ## 인앱 메시지 유형 {#in-app-message-types}
- ### 메시지 유형별 예상 동작 {#expected-behaviors-by-message-types}
- [iOS 인앱 메시지 사용자 지정](/docs/ko/developer_guide/platforms/legacy_sdks/ios/in-app_messaging/customization/index.md):
- [iOS용 인앱 메시지 위임자 설정](/docs/ko/developer_guide/platforms/legacy_sdks/ios/in-app_messaging/customization/setting_delegates/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 위임자 설정
- ## 인앱 메시지 위임
- ## 핵심 인앱 메시지 위임
- ## 메서드 선언
- ## 구현 샘플
- [iOS용 인앱 메시지 방향 사용자 정의](/docs/ko/developer_guide/platforms/legacy_sdks/ios/in-app_messaging/customization/customizing_orientation/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 방향 사용자 정의
- ## 모든 인앱 메시지의 방향 설정하기
- ## 인앱 메시지별 방향 설정
- ## 메서드 선언
- [iOS용 인앱 메시지 디스플레이 처리 사용자 정의](/docs/ko/developer_guide/platforms/legacy_sdks/ios/in-app_messaging/customization/handling_in_app_display/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 커스텀 처리 인앱 메시지 표시 {#custom-handling-in-app-message-display}
- ## 표시 전에 인앱 메시지 재정의 {#overriding-in-app-messages-before-display}
- ## 다크 모드 비활성화 {#disabling-dark-mode}
- ## 표시 중 상태 표시줄 숨기기 {#hiding-the-status-bar-during-display}
- ## 노출 횟수 및 클릭 수 기록 {#logging-impressions-and-clicks}
- ## 메서드 선언 {#method-declarations}
- ## 구현 샘플 {#implementation-samples}
- [iOS용 인앱 메시지 클릭 시 동작 사용자 지정](/docs/ko/developer_guide/platforms/legacy_sdks/ios/in-app_messaging/customization/behavior_on_click/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 클릭 시 인앱 메시지 동작 사용자 지정 {#customize-in-app-message-behavior-on-click}
- ## 인앱 메시지 본문 클릭 사용자 지정 {#customizing-in-app-message-body-clicks}
- ## 인앱 메시지 버튼 클릭 사용자 지정 {#customizing-in-app-message-button-clicks}
- ## 메서드 선언 {#method-declarations}
- [iOS용 인앱 메시지 트리거 사용자 정의](/docs/ko/developer_guide/platforms/legacy_sdks/ios/in-app_messaging/customization/custom_triggering/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 커스텀 인앱 메시지 트리거
- ## 1단계: 무음 푸시 및 키-값 페어 처리
- ## 2단계: 푸시 캠페인 만들기
- ## 3단계: 인앱 메시지 캠페인 만들기
- [iOS용 커스텀 보기 컨트롤러의 인앱 메시지](/docs/ko/developer_guide/platforms/legacy_sdks/ios/in-app_messaging/customization/custom_view_controller/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 사용자 지정 보기 컨트롤러에 인앱 메시지 표시
- ## 메서드 선언
- ## 구현 샘플
- [iOS용 인앱 메시지 모달 해제](/docs/ko/developer_guide/platforms/legacy_sdks/ios/in-app_messaging/customization/modal_dismissal/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 바깥쪽 탭으로 모달 닫기 {#dismiss-modal-on-outside-tap}
- [iOS용 인앱 메시지 키-값 쌍](/docs/ko/developer_guide/platforms/legacy_sdks/ios/in-app_messaging/customization/key_value_pairs/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 키-값 쌍 추가 정보
- [iOS용 인앱 메시지 전달](/docs/ko/developer_guide/platforms/legacy_sdks/ios/in-app_messaging/in-app_message_delivery/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 인앱 메시지 전달
- ## 트리거 유형
- ## 전달 의미 체계
- ## 트리거 사이의 최소 시간 간격
- ## 일치하는 트리거를 찾지 못함
- ## 로컬 인앱 메시지 전달
- ### 인앱 메시지 스택
- #### 인앱 메시지 표시
- #### 스택에 인앱 메시지 추가하기
- #### 인앱 메시지를 스택으로 반환하기
- #### 인앱 메시지 삭제하기
- #### 수동으로 인앱 메시지 표시를 대기열에 추가
- ### 실시간 인앱 메시지 생성 및 표시
- [커스텀 App Store 리뷰 프롬프트](/docs/ko/developer_guide/platforms/legacy_sdks/ios/in-app_messaging/custom_app_store_review_prompt/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 커스텀 App Store 리뷰 프롬프트 {#custom-app-store-review-prompt}
- [iOS용 인앱 메시지 구현 가이드(선택 사항)](/docs/ko/developer_guide/platforms/legacy_sdks/ios/in-app_messaging/implementation_guide/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 인앱 메시징 구현 가이드
- ## 코드 고려 사항
- ### ABKInAppMessage 하위 클래스
- ## 사용 사례
- ### 커스텀 슬라이드업 인앱 메시지
- #### 기본 UI에 추가 동작 추가
- ### 커스텀 모달 인앱 메시지
- #### 대시보드 구성
- ### 커스텀 전체 인앱 메시지
- #### 대시보드 구성
- #### 인앱 메시지 터치 가로채기
- [SharePlay 인앱 메시지 구현 가이드](/docs/ko/developer_guide/platforms/legacy_sdks/ios/in-app_messaging/implementation_guide/shareplay/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # SharePlay 인앱 메시지 구현 가이드 {#shareplay-in-app-message-implementation-guide}
- ## 개요 {#overview}
- ## 통합 {#integration}
- ### 1단계: XIB 재정의 및 로드 {#step-1-overriding-and-loading-xib}
- ### 2단계: 인앱 메시지용 AVPlayer 구성 {#step-2-configure-avplayer-for-in-app-messages}
- #### 대시보드 구성 {#dashboard-configuration}
- ### 3단계: 그룹 시청 활동 만들기 {#step-3-create-group-watching-activity}
- #### 재생 준비 {#prepare-to-play}
- ### 4단계: SharePlay API에서 인앱 메시지 실행 {#step-4-launch-in-app-message-from-shareplay-api}
- ### 5단계: 인앱 메시지 해제 시 그룹 세션에서 나가기 {#step-5-leaving-a-group-session-on-in-app-message-dismissal}
- ### SharePlay 버튼 표시 여부 구성 {#configure-shareplay-button-visibility}
- [iOS용 인앱 메시징 문제 해결](/docs/ko/developer_guide/platforms/legacy_sdks/ios/in-app_messaging/troubleshooting/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 인앱 메시지 문제 해결 {#troubleshoot-in-app-messages}
- ## 노출 횟수 {#impressions}
- #### 노출 또는 클릭 분석이 기록되지 않습니다 {#impression-or-click-analytics-arent-being-logged}
- #### 예상보다 적은 노출 횟수 {#impressions-are-lower-than-expected}
- ## 예상 인앱 메시지가 표시되지 않았습니다 {#expected-in-app-message-did-not-display}
- ### 인앱 메시지 전달 {#troubleshooting-in-app-message-delivery}
- #### 메시지 요청 및 반환 여부 확인 {#check-if-messages-are-requested-and-returned}
- #### 요청되지 않는 메시지 문제 해결 {#troubleshoot-messages-not-being-requested}
- ### 반환되지 않는 메시지 문제 해결 {#troubleshoot-messages-not-being-returned}
- ### 인앱 메시지 표시 {#troubleshooting-in-app-message-display}
- [iOS용 콘텐츠 카드 뷰 컨트롤러 통합](/docs/ko/developer_guide/platforms/legacy_sdks/ios/content_cards/integration/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # Content Cards 통합 {#content-card-integration}
- ## Content Cards 데이터 모델 {#content-cards-data-model}
- ### 데이터 가져오기 {#getting-the-data}
- ## 콘텐츠 카드 모델 {#content-card-model}
- ### 기본 콘텐츠 카드 모델 속성정보 - ABKContentCard {#base-content-card-model-properties-abkcontentcard}
- ### 배너 콘텐츠 카드 속성정보 - ABKBannerContentCard {#banner-content-card-properties-abkbannercontentcard}
- ### 캡션 이미지 콘텐츠 카드 속성정보 - ABKCaptionedImageCard {#captioned-image-content-card-properties-abkcaptionedimagecard}
- ### 클래식 콘텐츠 카드 속성정보 - ABKClassicContentCard {#classic-content-card-properties-abkclassiccontentcard}
- ## 카드 메서드 {#card-methods}
- ## Content Cards 뷰 컨트롤러 통합 {#content-cards-view-controller-integration}
- ### 내비게이션 컨텍스트 {#navigation-context}
- ### 모달 컨텍스트 {#modal-context}
- [iOS 콘텐츠 카드 사용자 지정](/docs/ko/developer_guide/platforms/legacy_sdks/ios/content_cards/customization/index.md):
- [iOS용 사용자 지정 콘텐츠 카드 스타일링](/docs/ko/developer_guide/platforms/legacy_sdks/ios/content_cards/customization/custom_styling/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 사용자 지정 스타일
- ## 기본 이미지 재정의
- ## 다크 모드 비활성화하기
- [iOS용 콘텐츠 카드 피드 사용자 지정](/docs/ko/developer_guide/platforms/legacy_sdks/ios/content_cards/customization/customizing_feed/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 콘텐츠 카드 피드를 사용자 정의
- ## UI 사용자 지정
- ### 동적 UI
- ### 정적 UI
- ## 사용자 지정 인터페이스 제공
- ## 채워진 콘텐츠 카드 재정의
- [iOS에서 콘텐츠 카드 클릭을 수동으로 처리하기](/docs/ko/developer_guide/platforms/legacy_sdks/ios/content_cards/customization/handling_clicks_manually/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 클릭을 수동으로 처리하십시오
- [iOS용 콘텐츠 카드 열람 및 미열람 표시기](/docs/ko/developer_guide/platforms/legacy_sdks/ios/content_cards/customization/read_unread_indicators/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 열람 및 미열람 표시기
- ## 미열람 표시기 비활성화
- ## 미열람 표시기 커스터마이징
- [iOS용 콘텐츠 카드 배지](/docs/ko/developer_guide/platforms/legacy_sdks/ios/content_cards/customization/badges/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # Badges
- ## 미열람 콘텐츠 카드 수 요청
- ## 앱 배지 수에 미열람 콘텐츠 카드 수 표시
- [iOS용 콘텐츠 카드 캐러셀 보기](/docs/ko/developer_guide/platforms/legacy_sdks/ios/content_cards/customization/use_cases/carousel_view/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # Use case: 캐러셀 뷰
- ## 구현
- ### 1단계: 커스텀 보기 컨트롤러 생성
- ### 2단계: 분석 구현
- ### 3단계: 콘텐츠 카드 옵저버를 생성합니다
- ## 고려사항
- [iOS용 콘텐츠 카드 피드를 새로고침](/docs/ko/developer_guide/platforms/legacy_sdks/ios/content_cards/refreshing_the_feed/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 피드를 새로고침
- ## 콘텐츠 카드 새로 고침
- [iOS용 여러 콘텐츠 카드 피드를 사용하세요](/docs/ko/developer_guide/platforms/legacy_sdks/ios/content_cards/multiple_feeds/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 여러 콘텐츠 카드 피드 사용
- ## 1단계: 카드에 키-값 쌍 설정
- ## 2단계: 콘텐츠 카드 리스너 설정
- [iOS용 Content Cards 구현 가이드(선택 사항)](/docs/ko/developer_guide/platforms/legacy_sdks/ios/content_cards/implementation_guide/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # Content Cards 구현 가이드 {#content-card-implementation-guide}
- ## 코드 고려사항 {#code-considerations}
- ### 커스텀 오브젝트로서의 Content Cards {#content-cards-as-custom-objects}
- ## 사용 사례 {#sample-use-cases}
- ### 보조 콘텐츠로서의 Content Cards {#content-cards-as-supplemental-content}
- #### 대시보드 구성 {#dashboard-configuration}
- ##### 분석을 기록할 준비가 되셨나요? {#ready-to-log-analytics}
- ### 메시지 센터의 Content Cards {#content-cards-in-a-message-center}
- #### 대시보드 구성 {#dashboard-configuration}
- #### 추가 설명 {#further-explanation}
- ##### 분석을 기록할 준비가 되셨나요? {#ready-to-log-analytics}
- ### 인터랙티브 Content Cards {#interactive-content-cards}
- #### 대시보드 구성 {#dashboard-configuration}
- ##### 분석을 기록할 준비가 되셨나요? {#ready-to-log-analytics}
- ## 다크 모드 커스터마이징 {#dark-mode-customization}
- ## 노출 횟수, 클릭, 해제 기록 {#logging-impressions-clicks-and-dismissals}
- #### 구현 구성요소
{#implementation-components}
- ## 헬퍼 파일 {#helper-files}
- [iOS용 트랙 세션](/docs/ko/developer_guide/platforms/legacy_sdks/ios/analytics/tracking_sessions/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # iOS용 세션 추적
- ## 세션 수명 주기
- ## 세션 시간 초과 사용자 지정
- ## 테스트 세션 추적
- [iOS용 사용자 ID 설정](/docs/ko/developer_guide/platforms/legacy_sdks/ios/analytics/setting_user_ids/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # iOS 사용자 ID 설정
- ## 추천 사용자 ID 명명 규칙
- ## 사용자 ID 할당
- ## 사용자 ID 통합 모범 사례 및 참고 사항
- ### Automatic preservation of anonymous user history
- ### Additional notes and best practices
- ## 사용자 별칭 지정
- [iOS용 커스텀 이벤트 추적](/docs/ko/developer_guide/platforms/legacy_sdks/ios/analytics/tracking_custom_events/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # iOS용 커스텀 이벤트 추적 {#track-custom-events-for-ios}
- ## 커스텀 이벤트 추가 {#adding-a-custom-event}
- ### 속성정보 추가 {#adding-properties}
- ### 예약 키 {#event-reserved-keys}
- ## 추가 리소스 {#additional-resources}
- [iOS용 커스텀 속성 설정](/docs/ko/developer_guide/platforms/legacy_sdks/ios/analytics/setting_custom_attributes/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # iOS용 커스텀 속성 설정 {#set-custom-attributes-for-ios}
- ## 기본 사용자 속성 할당하기 {#assigning-default-user-attributes}
- ## 커스텀 사용자 속성 할당하기 {#assigning-custom-user-attributes}
- ### 문자열 값이 있는 커스텀 속성 {#custom-attribute-with-a-string-value}
- ### 정수 값이 있는 커스텀 속성 {#custom-attribute-with-an-integer-value}
- ### double 값이 있는 커스텀 속성 {#custom-attribute-with-a-double-value}
- ### 부울 값이 있는 커스텀 속성 {#custom-attribute-with-a-boolean-value}
- ### 날짜 값이 있는 커스텀 속성 {#custom-attribute-with-a-date-value}
- ### 배열 값이 있는 커스텀 속성 {#custom-attribute-with-an-array-value}
- ### 커스텀 속성 설정 해제하기 {#unsetting-a-custom-attribute}
- ### 커스텀 속성 증가/감소시키기 {#incrementingdecrementing-custom-attributes}
- ### REST API를 통해 커스텀 속성 설정하기 {#setting-a-custom-attribute-via-the-rest-api}
- ### 커스텀 속성 값 제한 {#custom-attribute-value-limits}
- #### 추가 정보 {#additional-information}
- ## 사용자 구독 설정하기 {#setting-up-user-subscriptions}
- ### 이메일 구독 설정하기 {#setting-email-subscriptions}
- ### 푸시 알림 구독 설정하기 {#setting-push-notification-subscriptions}
- [iOS용 구매 기록](/docs/ko/developer_guide/platforms/legacy_sdks/ios/analytics/logging_purchases/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # iOS용 구매 기록 {#log-purchases-for-ios}
- ## 구매 및 수익 추적 {#tracking-purchases-and-revenue}
- ### 속성정보 추가 {#properties-purchases}
- ### 수량 추가 {#adding-quantity}
- ### 주문 수준에서 구매 기록 {#log-purchases-at-the-order-level}
- ### 예약 키 {#reserved-keys}
- ### REST API
- [iOS용 위치 추적](/docs/ko/developer_guide/platforms/legacy_sdks/ios/analytics/location_tracking/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # iOS용 위치 추적
- ## 자동 위치 추적 활성화
- ### 위치 데이터를 Braze에 전달
- [iOS용 제거 추적](/docs/ko/developer_guide/platforms/legacy_sdks/ios/analytics/uninstall_tracking/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # iOS용 제거 추적 {#uninstall-tracking-for-ios}
- ## 1단계: 백그라운드 푸시 활성화 {#step-1-enabling-background-push}
- ## 2단계: Braze 백그라운드 푸시 확인 {#step-2-checking-for-braze-background-push}
- ## 3단계: 대시보드에서 테스트 {#step-3-test-from-the-dashboard}
- ## 4단계: 제거 추적 활성화 {#step-4-enable-uninstall-tracking}
- [iOS용 SDK 추적 비활성화](/docs/ko/developer_guide/platforms/legacy_sdks/ios/analytics/disabling_tracking/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # iOS용 데이터 수집 비활성화
- ## iOS SDK v5.7.0 이상
- [iOS용 딥링킹](/docs/ko/developer_guide/platforms/legacy_sdks/ios/advanced_use_cases/linking/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # iOS용 딥링킹 {#deep-linking-for-ios}
- ## 1단계: 스키마 등록 {#step-1-register-a-scheme}
- ## 2단계: 커스텀 스키마 허용 목록 추가(iOS 9+) {#step-2-allowlist-the-custom-scheme-ios-9}
- ## 3단계: 핸들러 구현 {#step-3-implement-a-handler}
- # 유니버설 링크 {#universal-links}
- ## 앱 전송 보안(ATS) {#app-transport-security-ats}
- ### ATS 요구 사항 {#ats-requirements}
- ### ATS 요구 사항 처리 {#handling-ats-requirements}
- #### 모든 링크가 ATS를 준수하는지 확인(권장) {#confirm-all-links-are-ats-compliant-recommended}
- #### ATS 부분 비활성화 {#partially-disable-ats}
- #### ATS 완전히 비활성화 {#disable-ats-entirely}
- ## URL 인코딩 {#url-encoding}
- ## 커스터마이징 {#linking-customization}
- ### 기본 WebView 커스터마이징 {#default-webview-customization}
- ### 링크 처리 커스터마이징 {#linking-handling-customization}
- #### 통합 예제: ABKURLDelegate {#integration-example-abkurldelegate}
- ## 자주 사용하는 활용 사례 {#frequent-use-cases}
- ### 앱 설정으로 딥링킹 {#deep-linking-to-app-settings}
- [iOS용 미세 네트워크 트래픽 제어](/docs/ko/developer_guide/platforms/legacy_sdks/ios/advanced_use_cases/fine_network_traffic_control/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 정밀한 네트워크 트래픽 제어
- ## 요청 처리 정책
- ### 자동 요청 처리
- ### 수동 요청 처리
- ## 요청 처리 정책 설정
- ### 시작 시 요청 정책 설정
- ### 런타임에 요청 정책 설정
- ## 기내 서버 통신 수동 종료
- [iOS용 현지화](/docs/ko/developer_guide/platforms/legacy_sdks/ios/advanced_use_cases/localization/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 현지화 {#localization}
- ## 지원 언어 {#languages-supported}
- [iOS용 비콘 통합](/docs/ko/developer_guide/platforms/legacy_sdks/ios/advanced_use_cases/beacon_integration/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 비콘 통합 {#beacon-integration}
- ## Infillion 비콘 {#infillion-beacons}
- [iOS용 위치 및 지오펜스](/docs/ko/developer_guide/platforms/legacy_sdks/ios/advanced_use_cases/locations_and_geofences/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 위치 및 지오펜스
- ## 1단계: 백그라운드 푸시 활성화
- ## 2단계: 지오펜스 활성화
- ## 3단계: Braze 백그라운드 푸시 확인
- ## 4단계: Info.plist에 NSLocationAlwaysUsageDescription 추가
- ## 5단계: 사용자에게 권한 부여 요청
- ## 6단계: 대시보드에서 지오펜스 활성화
- ### 위치 페이지에서 지오펜스 활성화:
- ### 설정 페이지에서 지오펜스 활성화:
- ## 자동 지오펜스 요청 비활성화
- ## 지오펜스 수동 요청
- [iOS용 Google Tag Manager](/docs/ko/developer_guide/platforms/legacy_sdks/ios/advanced_use_cases/google_tag_manager/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # iOS용 Google Tag Manager
- ## SDK 초기화 {#initializing-ios-google-tag-provider}
- ## Google Tag Manager 구성 {#configuring-ios-google-tag-manager}
- ### 사용자 지정 이벤트
- ### 커스텀 속성 로깅
- ### changeUser 호출
- ## Braze SDK 사용자 지정 태그 공급자 {#adding-ios-google-tag-provider}
- [iOS용 저장소](/docs/ko/developer_guide/platforms/legacy_sdks/ios/storage/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 저장 {#storage}
- ## 기기 등록정보 {#device-properties}
- [iOS용 샘플 앱](/docs/ko/developer_guide/platforms/legacy_sdks/ios/sample_apps/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 샘플 앱 {#sample-apps}
- ## 테스트 애플리케이션 빌드 {#building-test-applications}
- [iOS Swift SDK용 변경 로그](/docs/ko/developer_guide/platforms/legacy_sdks/ios/changelog/swift_changelog/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # iOS Swift SDK 변경 로그
- [iOS Objective-C SDK용 변경 로그](/docs/ko/developer_guide/platforms/legacy_sdks/ios/changelog/objc_changelog/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # iOS Objective-C SDK 변경 로그
- # macOS
- [MacOS용 초기 SDK 설정](/docs/ko/developer_guide/platforms/legacy_sdks/macOS/initial_sdk_setup/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 초기 SDK 설정 {#initial-sdk-setup}
- ## 지원되는 기능 {#supported-features}
- [tvOS용 초기 SDK 설정](/docs/ko/developer_guide/platforms/legacy_sdks/tvos/initial_sdk_setup/index.md): AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
- # 초기 SDK 설정 {#initial-sdk-setup}
- ## tvOS SDK CocoaPods 통합 {#tvos-sdk-cocoapods-integration}
- ### 1단계: CocoaPods 설치 {#step-1-install-cocoapods}
- ### 2단계: Podfile 구성 {#step-2-constructing-the-podfile}
- ### 3단계: Braze SDK 설치 {#step-3-installing-the-braze-sdk}
- ### 4단계: 앱 델리게이트 업데이트 {#step-4-updating-your-app-delegate}
- ### 5단계: 커스텀 엔드포인트 또는 데이터 클러스터 지정 {#step-5-specify-your-custom-endpoint-or-data-cluster}
- #### 컴파일 타임 엔드포인트 구성(권장) {#compile-time-endpoint-configuration-recommended}
- #### 런타임 엔드포인트 구성 {#runtime-endpoint-configuration}
- ### SDK 통합 완료 {#sdk-integration-complete}
- ### CocoaPods를 통해 Braze SDK 업데이트 {#updating-the-braze-sdk-via-cocoapods}
- ## 시작 시 Braze 커스터마이징 {#customizing-braze-on-startup}
- ## Appboy.sharedInstance() 및 Swift 널 허용 {#appboysharedinstance-and-swift-nullability}
- ## 수동 통합 옵션 {#manual-integration-options}
- ## 사용자 식별 및 분석 보고 {#identifying-users-and-reporting-analytics}
- [배너에 대하여](/docs/ko/developer_guide/banners/index.md): Banners availability depends on your Braze package. Contact your account manager or customer success manager to get started.
- # Banners
- ## Prerequisites
- ## Why use Banners?
- ## Features
- ## About Banners {#about-banners}
- ### Placement IDs {#placement-id}
- ### Banner priority {#priority}
- ### Placement requests {#requests}
- #### Rate limiting for refresh requests
- ### Message delivery
- ### Dimensions and sizing
- ## Limitations
- ## Next steps
- [Braze SDK의 배너 배치 관리](/docs/ko/developer_guide/banners/placements/index.md): When you create placements in your app or website, your app sends a request to Braze to fetch Banner messages for each placement.
- # 배너 배치 관리 {#manage-banner-placements}
- ## 배치 요청에 대하여 {#requests}
- #### Rate limiting for refresh requests
- ## 배치 생성 {#create-a-placement}
- ### 필수 조건 {#prerequisites}
- ### Step 1: Create placements in Braze
- ### 2단계: 앱에서 배치 새로고침 {#requestBannersRefresh}
- ### 3단계: 업데이트 수신 대기 {#subscribeToBannersUpdates}
- ### 4단계: 배치 ID를 사용하여 삽입 {#insertBanner}
- ### 5단계: 테스트 배너 보내기(선택 사항) {#handling-test-cards}
- ## 노출 기록 {#log-impressions}
- ## 클릭 기록 {#logging-clicks}
- ### 표준 배너 콘텐츠(자동) {#standard-banner-content-automatic}
- ### 커스텀 코드 블록 {#custom-code-blocks}
- ### 커스텀 UI 구현(헤드리스) {#custom-ui-implementations-headless}
- #### 노출 기록 {#logging-impressions}
- #### 클릭 기록
- ## 해제 기록 {#log-dismissals}
- ### 필수 조건
- ### 통합 {#integrations}
- #### 표준 배너 통합(드래그 앤 드롭 편집기) {#standard-banner-integrations-drag-and-drop-editor}
- #### 커스텀 코드 블록
- ### 배너 해제 시 커스텀 분석 기록 {#log-custom-analytics-on-banner-dismissal}
- ### 보류 중인 해제 저장 한도 {#pending-dismissal-storage-cap}
- ## 크기 및 크기 조정 {#dimensions-and-sizing}
- ## 커스텀 속성 {#custom-properties}
- ### 필수 조건
- ### 커스텀 속성에 접근하기 {#access-custom-properties}
- [테스트 배너](/docs/ko/developer_guide/banners/testing/index.md): Braze에서 배너 메시지를 테스트하려면 먼저 Braze에서 배너 Campaign을 생성해야 합니다. 또한 테스트하려는 배치가 이미 앱 또는 웹사이트에 배치되어 있는지 확인하세요.
- # 테스트 배너 {#test-banners}
- ## 필수 조건 {#prerequisites}
- ## 배너 테스트 {#test-a-banner}
- [배너 분석](/docs/ko/developer_guide/banners/analytics/index.md): Once you've launched your campaign, you can return to the details page for that campaign to view key metrics. Navigate to the Campaigns page and select your campaign to open the details page. For sent in Canvas, refer to Canvas analytics.
- # 배너 분석
- ## Viewing analytics
- ### Time range
- ### Campaign details
- #### Estimated Audience and Current Audience
- #### Changes Since Last Viewed
- ### Message Performance
- ### Historical performance
- ### Conversion event details
- ### Conversion correlation
- ## Retention report
- ## Funnel report
- [Content Cards에서 배너로 마이그레이션](/docs/ko/developer_guide/banners/migrating_from_content_cards/index.md): 배너는 배너 스타일 메시징에서 Content Cards보다 여러 가지 장점을 제공합니다:
- # Content Cards에서 배너로 마이그레이션 {#migrate-from-content-cards-to-banners}
- ## 왜 배너로 마이그레이션해야 할까요? {#why-migrate-to-banners}
- ### 생산 가속화 {#accelerated-production}
- ### 더 나은 UX {#better-ux}
- ### 지속성 {#persistence}
- ## 마이그레이션 시기 {#when-to-migrate}
- ## Content Cards를 유지해야 할 때 {#when-to-keep-content-cards}
- ## 마이그레이션 가이드 {#migration-guide}
- ### 필수 조건 {#prerequisites}
- ### 업데이트 구독 {#subscribe-to-updates}
- #### Content Cards 접근 방식 {#content-cards-approach}
- #### 배너 접근 방식 {#banners-approach}
- ### 콘텐츠 표시 {#display-content}
- #### Content Cards 접근 방식
- #### 배너 접근 방식
- ### 분석 로깅 (커스텀 구현) {#log-analytics-custom-implementations}
- #### Content Cards 접근 방식
- #### 배너 접근 방식
- ### 등록정보 가져오기 {#getting-properties}
- #### Content Cards 접근 방식
- #### 배너 접근 방식
- ### 대조군 처리 {#handling-control-groups}
- #### Content Cards 접근 방식
- #### 배너 접근 방식
- ## 제한 사항 {#limitations}
- ### 트리거된 메시지 마이그레이션 {#migrating-triggered-messages}
- ### 기능 차이 {#feature-differences}
- ### 제품 제한 사항 {#product-limitations}
- ### SDK 제한 사항 {#sdk-limitations}
- ## 관련 문서 {#related-articles}
- [Tutorial: 게재 위치 ID로 배너 표시하기](/docs/ko/developer_guide/banners/tutorial_displaying_banners/index.md): Before you can start this tutorial, verify that your Braze SDK meets the minimum version requirements:
- # Tutorial: 게재 위치 ID로 배너 표시하기
- ## Prerequisites
- ## Displaying banners for the Web SDK
- #### 1. Enable debugging (optional)
- #### 2. Subscribe to Banner updates
- #### 3. Insert the Banner and handle control groups
- #### 4. Refresh your Banners
- #### 5. Add a container for your Banner
- ## Prerequisites
- ## Displaying banners for the Android SDK
- #### 1. Enable debugging (optional)
- #### 2. Subscribe to Banner updates
- #### 3. Refresh your placements
- #### 4. Define BannerView in your banners.xml
- ## Prerequisites
- ## Displaying banners for the Swift SDK
- #### 1. Enable debugging (optional)
- #### 2. Refresh your placements
- #### 3. Initialize the Banner and provide a callback
- #### 4. Enable Auto Layout constraints
- #### 5. Anchor content and set height constraints
- #### 1. Enable debugging (optional)
- #### 2. Refresh your placements
- #### 3. Create a view component
- #### 4. Only display available Banners
- #### 5. Only show BannerView after it loads
- #### 6. Dynamically update Banner height
- #### 7. Limit the Banner height
- [배너: 자주 묻는 질문](/docs/ko/developer_guide/banners/faq/index.md): Banners are refreshed with their latest data whenever you call the refresh method—there's no need to resend or update your Banner campaign.
- # Frequently asked questions
- ## When do Banner updates appear for users?
- ## How many placements can I request in a session?
- ## How many Banner campaigns can be active simultaneously?
- ## For campaigns sharing a placement, which Banner is displayed first?
- ## Can I use Banners in my existing Content Card feed?
- ## Can Banners include video?
- ## Can I trigger a banner based on user actions?
- ## Can users dismiss a Banner?
- ## Can I export Banners campaign analytics using the Braze API?
- ## When are users segmented?
- ## How can I compose Banners to ensure the lowest latency?
- ## Are all Liquid tags supported?
- ## Can I capture click events?
- [Braze SDK의 콘텐츠 카드](/docs/ko/developer_guide/content_cards/index.md): Using Content Cards for banner-style messages? Try out Banners— perfect for inline, persistent in-app and web messages.
- # 콘텐츠 카드
- ## Prerequisites
- ## Standard feed UI
- ## Testing Content Cards on the web
- ## Card types and properties
- ### Base card model
- ### Image only
- ### Captioned image
- ### Classic
- ## Control group
- ## Card methods
- ### Default feed methods
- ### Custom feed methods
- ## Best practices
- ### Call methods in the correct order
- ### Use cached cards to persist content across page loads
- ### Log analytics for custom feeds
- ## Using Google Tag Manager
- ### Setting up Content Cards
- ### Upgrading templates {#upgrading}
- ### Troubleshooting {#troubleshooting}
- #### Enable tag debugging {#debugging}
- #### Enter debug mode
- #### Verify tag sequencing for custom events {#tag-sequencing}
- #### Enable verbose logging
- ## Prerequisites
- ## Google fragments
- ## Card types and properties
- ### Base card model {#base-card-for-android}
- ### Image only {#banner-image-card-for-android}
- ### Captioned image {#captioned-image-card-for-android}
- ### Classic {#text-Announcement-card-for-android}
- ## Card methods
- ## Prerequisites
- ## View controller contexts
- ### Navigation
- ### Modal
- ## Base card model
- ## Card methods
- ## Prerequisites
- ## Card Feeds
- ## Content Cards
- ## About Flutter Content Cards
- ## Prerequisites
- ## Card methods
- ## Receiving Content Card data
- ### Listen for Content Card data in the Dart layer
- ### Forward Content Card data from the native iOS layer
- #### Replaying the callback for Content Cards
- ## About React Native Content Cards
- ## Prerequisites
- ## Cards methods
- ## Card types and properties
- ### Base card model
- ### Image only
- ### Captioned image
- ### Classic
- ### Control
- ## Prerequisites
- ## Setting up your tvOS app
- ### Step 1: Create a new iOS app
- ### Step 2: Get your app's API key
- ### Step 3: Integrate BrazeKit
- ### Step 4: Create your custom UI
- ## Prerequisites
- ## Displaying Content Cards natively {#unity-content-cards-native-ui}
- ## Receiving Content Card data in Unity
- ## Parsing Content Cards
- ##### Example Content Cards callback
- ## Refreshing Content Cards
- ## Analytics
- ## About .NET MAUI Content Cards
- ## Prerequisites
- ## Card types and properties
- ### Base card model
- ### Banner
- ### Captioned image
- ### Classic
- ## Card methods
- [Content Cards 만들기](/docs/ko/developer_guide/content_cards/creating_cards/index.md): Using Content Cards for banner-style messages? Try out Banners— perfect for inline, persistent in-app and web messages.
- # Content Cards 만들기 {#create-content-cards}
- ## 카드 만들기 {#creating-a-card}
- ### 1단계: 커스텀 UI 만들기 {#step-1-create-a-custom-ui}
- ### 2단계: 카드 업데이트 구독 {#step-2-subscribe-to-card-updates}
- #### 2a단계: 비공개 구독자 변수 만들기 {#step-2a-create-a-private-subscriber-variable}
- #### 2b단계: 업데이트 구독 {#step-2b-subscribe-to-updates}
- #### 2c단계: 구독 취소 {#step-2c-unsubscribe}
- #### 2a단계: 비공개 구독자 변수 만들기
- #### 2b단계: 업데이트 구독
- #### 2c단계: 구독 취소
- ##### 취소 가능 항목 {#cancellable}
- ##### AsyncStream
- ### 3단계: 분석 구현 {#step-3-implement-analytics}
- ### 4단계: 카드 테스트(선택 사항) {#step-4-test-your-card-optional}
- ## Content Cards 배치 {#content-card-placements}
- ### 메시지 받은편지함 {#message-inbox}
- #### 예시 {#example}
- ### 캐러셀 {#carousel}
- ### 이미지 전용 {#image-only}
- [카드 커스터마이징](/docs/ko/developer_guide/content_cards/customizing_cards/index.md): Using Content Cards for banner-style messages? Try out Banners— perfect for inline, persistent in-app and web messages.
- [Content Cards 스타일 커스터마이즈](/docs/ko/developer_guide/content_cards/customizing_cards/style/index.md): 기본 Content Cards UI는 Braze SDK의 UI 레이어에서 가져옵니다. 여기에서 카드의 스타일, 카드가 표시되는 순서, 사용자에게 피드가 표시되는 방식 등 특정 부분을 조정할 수 있습니다.
- # Content Cards 스타일 커스터마이즈 {#customize-the-style-of-content-cards}
- ## 커스텀 스타일 생성 {#creating-a-custom-style}
- ## 커스터마이즈 예시 {#customization-examples}
- ### 커스텀 글꼴 {#custom-font}
- ### 커스텀 고정 아이콘 {#custom-pinned-icons}
- ### 읽지 않음 표시기 색상 변경 {#changing-the-unread-indicator-color}
- ### 다크 모드 {#dark-mode}
- ### 읽지 않음 표시기 비활성화 {#disabling-unread-indicator}
- [Content Cards의 동작 커스터마이즈](/docs/ko/developer_guide/content_cards/customizing_cards/behavior/index.md): Braze를 사용하면 키-값 페어를 사용하여 Content Cards를 통해 사용자 기기에 추가 데이터 페이로드를 전송할 수 있습니다. 이를 통해 내부 측정기준을 추적하고, 앱 콘텐츠를 업데이트하고, 등록정보를 커스터마이즈할 수 있습니다. 대시보드를 사용하여 키-값 페어를 추가합니다.
- # Content Cards의 동작 커스터마이즈 {#customize-the-behavior-of-content-cards}
- ## 키-값 페어 {#key-value-pairs}
- ## 보조 콘텐츠로서의 Content Cards {#content-cards-as-supplemental-content}
- ### API 트리거 키-값 페어 {#api-triggered-key-value-pairs}
- ## 대화형 콘텐츠로서의 Content Cards {#content-cards-as-interactive-content}
- ## Content Card 배지 {#content-card-badges}
- ### 미열람 Content Card 수를 배지로 표시 {#displaying-the-number-of-unread-content-cards-as-a-badge}
- [Content Cards 피드 커스터마이즈](/docs/ko/developer_guide/content_cards/customizing_cards/feed/index.md): A session refers to the period of time the Braze SDK tracks user activity in your app after it's launched. You can also force a new session by calling the changeUser() method.
- # Content Cards 피드 커스터마이즈 {#customize-the-feed-for-content-cards}
- ## About the session lifecycle
- ## 피드 새로고침 {#refreshing-the-feed}
- ### 자동 새로고침 {#automatic-refresh}
- ### 수동 새로고침 {#manual-refresh}
- #### 완료 핸들러 {#completion-handler}
- #### Async/Await
- ### 전체 동기화 vs. 부분 동기화 {#full-sync-vs-partial-sync}
- ### 사용량 제한 {#rate-limit}
- ## 표시되는 카드 순서 커스터마이즈 {#customizing-displayed-card-order}
- ## "빈 피드" 메시지 커스터마이즈 {#customizing-empty-feed-message}
- ## 여러 피드 구현하기 {#implementing-multiple-feeds}
- ### 1단계: 카드에 키-값 페어 설정 {#step-1-set-key-value-pairs-on-cards}
- ### 2단계: Content Cards 필터링 {#step-2-filter-content-cards}
- #### 2.1단계: 커스텀 핸들러 생성 {#step-21-create-a-custom-handler}
- #### 2.2단계: 프래그먼트에 추가 {#step-22-add-it-to-a-fragment}
- [로그 분석](/docs/ko/developer_guide/content_cards/logging_analytics/index.md): When implementing your custom Content Cards, you can parse the Content Card objects and extract their payload data such as title, cardDescription, and imageUrl. Then, you can use the resulting model data to populate your custom UI.
- # 분석 기록 {#log-analytics}
- ## Logging analytics
- ### Step 1: Create a private subscriber variable
- ### Step 2: Subscribe to updates
- ### Step 3: Unsubscribe
- ### Step 1: Create a private subscriber variable
- ### Step 2: Subscribe to updates
- ### Step 3: Unsubscribe
- ### Cancellable
- ### AsyncStream
- ## Logging events
- ## Handling on-click behavior
- ## 고유 해제 수가 고유 노출 횟수보다 높은 경우 {#unique-dismissals-higher-than-unique-impressions}
- ## 콘텐츠 카드 분석 누락 {#missing-content-cards-analytics}
- ## 콘텐츠 카드 ID {#content-card-id}
- [Content Cards에서 딥링킹](/docs/ko/developer_guide/content_cards/deep_linking/index.md): 현재 Content Cards 딥링크는 웹 Braze SDK에서 지원되지 않습니다.
- # Content Cards에서 딥링킹 {#deep-linking-in-content-cards}
- ## Prerequisites
- ## Creating a universal delegate
- ## Deep linking to app settings
- ## Customizing WebView activity {#CustomWebviewActivity}
- ## Troubleshooting
- ## Using Jetpack Compose
- ## Prerequisites
- ## Handling deep links
- ### Step 1: Register a scheme {#register-a-scheme}
- ### Step 2: Add a scheme allowlist
- ### Step 3: Implement a handler
- ## App Transport Security (ATS)
- ### Working with ATS
- ## Decoding URLs
- ## Deep linking to app settings
- ## Customization options {#customization-options}
- ### Default WebView customization
- ### Linking handling customization
- #### Universal links {#universal-links}
- ## Examples
- ### BrazeDelegate
- [콘텐츠 카드에 GIF 삽입](/docs/ko/developer_guide/content_cards/embedding_gifs/index.md): 목록에 없는 래퍼 SDK의 경우 관련 네이티브 Android 또는 Swift 메서드를 대신 사용하세요. Android 및 Swift Braze SDK는 기본적으로 애니메이션 GIF를 지원하지 않으므로 대신 타사 도구를 사용하여 콘텐츠 카드 GIF를 구현해야 합니다.
- # 콘텐츠 카드에 GIF 삽입
- ## About GIFs
- ## Integrating a custom image library
- ### Step 1: Creating the image loader delegate
- ### Fixing image loading for Android SDK 36.0.0 and later
- ### Step 2: Setting the image loader delegate
- ## Custom Image Loading with Jetpack Compose
- ## Prerequisites
- ## Integrating a custom image library
- ### Step 1: Integrate SDWebImage
- ### Step 2: Create a new Swift file
- ### Step 3: Add GIFViewProvider
- ### Step 4: Modify your AppDelegate.swift
- [Tutorial: 콘텐츠 카드로 받은편지함 만들기](/docs/ko/developer_guide/content_cards/content_card_inbox/index.md): Before you can use this feature, you'll need to integrate the Android Braze SDK.
- # Tutorial: 콘텐츠 카드로 받은편지함 만들기
- ## Prerequisites
- ## Android(Compose)용 콘텐츠 카드로 받은편지함 만들기
- #### 1\. 디버깅 활성화(선택 사항)
- #### 2\. UI 뷰 구축하기
- #### 3\. 콘텐츠 카드 업데이트 구독하기
- #### 4\. 커스텀 받은편지함 UI 구축하기
- #### 5\. 노출 및 클릭 추적하기
- ## Android용 콘텐츠 카드로 받은편지함 만들기 (RecyclerView)
- #### 1\. 디버깅 활성화(선택 사항)
- #### 2\. UI 뷰 구축하기
- #### 3\. 콘텐츠 카드 업데이트 구독하기
- #### 4\. 커스텀 받은편지함 UI 구축하기
- #### 5\. 노출 및 클릭 추적하기
- ## Prerequisites
- ## Swift용 콘텐츠 카드로 받은편지함 만들기
- #### 1\. 디버깅 활성화(선택 사항)
- #### 2\. UI 뷰 구축하기
- #### 3\. 콘텐츠 카드 업데이트 구독하기
- #### 4\. 커스텀 받은편지함 UI 구축하기
- #### 5\. 노출 및 클릭 추적하기
- ## Prerequisites
- ## 웹용 콘텐츠 카드로 받은편지함 만들기
- #### 1\. 디버깅 활성화(선택 사항)
- #### 2\. UI 구축
- #### 3\. 콘텐츠 카드 업데이트 구독하기
- #### 4\. 받은편지함 요소 구축
- #### 5\. 노출 및 클릭 추적하기
- [Braze SDK용 인앱 메시지](/docs/ko/developer_guide/in_app_messages/index.md): Before you can use this feature, you'll need to integrate the Web Braze SDK. However, no additional setup is required.
- # 인앱 메시지
- ## Prerequisites
- ## Message types
- ## Prerequisites
- ## Message types
- ## Enabling in-app messages
- ### Step 1: Register BrazeInAppMessageManager
- ### Step 2: Update the manager's blocklist (optional)
- ## Prerequisites
- ## Message types
- ## Enabling in-app messages
- ### Step 1: Create an implementation of BrazeInAppMessagePresenter
- ### Step 2: Handle no matching triggers
- ## Prerequisites
- ## About TV and OTT support
- ## Prerequisites
- ## Message types
- ## Prerequisites
- ## Message types
- ## Enabling in-app messages
- ### Customizing the in-app message presenter on iOS
- ## Prerequisites
- ## Message types
- ## Data model
- ### Messages
- ### Buttons
- ## Prerequisites
- ## Message types
- ## Enabling in-app messages
- ### Step 1: Add an observer
- ### Step 2: Access triggered messages
- ## Message fields
- ### Handling
- ### Styling
- ### Buttons
- ## Prerequisites
- ## Enabling in-app messages
- ### Step 1: Create a new iOS app
- ### Step 2: Get your app's API key
- ### Step 3: Integrate BrazeKit
- ### Step 4: Create your custom UI
- ## Prerequisites
- ## Message types
- ## Prerequisites
- ## Message types
- ## 다음 단계
- [Braze SDK에 대한 앱 내 메시지 사용자 정의](/docs/ko/developer_guide/in_app_messages/customization/index.md): Before you can use this feature, you'll need to integrate the Web Braze SDK.
- # 앱 내 메시지 사용자 정의
- ## Prerequisites
- ## Custom styles
- ### Setting a default style
- ### Customizing the z-index
- ## Customizing message dismissals
- ## Customizing display timing
- ## Opening links in a new tab
- ## Prerequisites
- ## Setting custom manager listeners
- ### Step 1: Implement the custom manager listener
- #### Step 1.1: Implement IInAppMessageManagerListener
- #### Step 1.2: Hook into IAM view lifecycle methods (optional)
- ### Step 2: Instruct Braze to use the custom manager listener
- #### Altering in-app messages before display
- ## Setting custom factories
- ### Step 1: Implement the factory
- ### Step 2: Instruct Braze to use the factory
- #### How it works
- ## Custom styles
- ### Setting a default style
- ### Customizing the font
- ## Message dismissals
- ### Swiping to dismiss slideup messages
- ### Disabling back button dismissals
- ### Enabling outside tap dismissals
- ## Customizing the orientation
- ## Disabling dark theme {#android-in-app-message-dark-theme-customization}
- ## Customizing the Google Play review prompt
- ## Prerequisites
- ## Setting up the UI delegate (required)
- ### Step 1: Implement the BrazeInAppMessageUIDelegate protocol
- ### Step 2: Assign the delegate object
- ## On-click behavior
- ### Click action types
- ### Customizing on-click behavior
- ### Handling the custom behavior
- ## Swiping to dismiss slideup messages
- ## Customizing modal dismissals
- ## Customizing message orientation
- ## Customizing display timing
- ## Hiding the status bar
- ## Disabling dark mode
- ## Customizing the app store review prompt
- ### Step 1: Set the in-app message delegate
- ### Step 2: Disable the default App Store review message
- ### Step 3: Create a deep link
- ### Step 4: Set custom on-click behavior
- ## Prerequisites
- ## Methods for logging
- ## Handling message data
- ### Overriding the default UI delegate
- ### Overriding the default native UI
- ## Customizing the display behavior
- ## Setting a custom listener
- [Braze SDK를 통해 인앱 메시지 트리거하기](/docs/ko/developer_guide/in_app_messages/triggering_messages/index.md): 인앱 메시지는 SDK가 다음 커스텀 이벤트 유형 중 하나를 기록할 때 트리거됩니다: Session Start, Push Click, Any Purchase, Specific Purchase, Custom Event(마지막 두 개는 강력한 속성 필터를 포함합니다).
- # 인앱 메시지 트리거 {#trigger-in-app-messages}
- ## 메시지 트리거 및 전달 {#message-triggers-and-delivery}
- ## 인앱 메시지 유형 {#types-of-in-app-messages}
- ### inapp (표준) {#inapp-standard}
- ### templatediam (템플릿) {#templatediam-templated}
- ## 키-값 페어 {#key-value-pairs}
- ## 자동 트리거 비활성화하기 {#disabling-automatic-triggers}
- ## 한 세션에서 두 개의 인앱 메시지 연결하기 {#chaining-two-in-app-messages-in-one-session}
- ## 기본 사용량 제한 재정의하기 {#overriding-the-default-rate-limit}
- ## 수동으로 메시지 트리거하기 {#manually-triggering-messages}
- ### 서버 측 이벤트 사용 {#using-a-server-side-event}
- #### 1단계: 무음 푸시 수신을 위한 푸시 콜백 만들기 {#step-1-create-a-push-callback-to-receive-the-silent-push}
- #### 2단계: 푸시 Campaign 만들기 {#step-2-create-a-push-campaign}
- #### 3단계: 인앱 메시지 Campaign 만들기 {#step-3-create-an-in-app-message-campaign}
- #### 1단계: 무음 푸시 및 키-값 페어 처리 {#step-1-handle-silent-push-and-key-value-pairs}
- #### 2단계: 무음 푸시 Campaign 생성 {#step-2-create-a-silent-push-campaign}
- #### 3단계: 인앱 메시지 Campaign 만들기
- ### 미리 정의된 메시지 표시 {#displaying-a-pre-defined-message}
- ### 실시간 메시지 표시 {#displaying-a-message-in-real-time}
- ## 인앱 메시지 지연 원인 {#causes-of-in-app-message-delays}
- ## 웹용 이탈 의도 메시지 {#exit-intent-messages-for-web}
- [HTML 인앱 메시지](/docs/ko/developer_guide/in_app_messages/html_messages/index.md): Before you can use this feature, you'll need to integrate the Android Braze SDK.
- # HTML 인앱 메시지 {#html-in-app-messages}
- ## Prerequisites
- ## About HTML messages
- ## Adding the interface to a WebView
- ## Embedding YouTube content
- ## Using deep links
- ## Prerequisites
- ## About HTML messages
- ## Adding the interface to a WebView
- ## Example: Logging a custom event
- [Braze SDK용 인앱 메시지 딥링킹](/docs/ko/developer_guide/in_app_messages/deep_linking/index.md): Before you can use this feature, you'll need to integrate the Android Braze SDK.
- # 인앱 메시지 딥링킹 {#in-app-message-deep-linking}
- ## Prerequisites
- ## Creating a universal delegate
- ## Deep linking to app settings
- ## Customizing WebView activity {#CustomWebviewActivity}
- ## Troubleshooting
- ## Using Jetpack Compose
- ## Prerequisites
- ## Handling deep links
- ### Step 1: Register a scheme {#register-a-scheme}
- ### Step 2: Add a scheme allowlist
- ### Step 3: Implement a handler
- ## App Transport Security (ATS)
- ### Working with ATS
- ## Decoding URLs
- ## Deep linking to app settings
- ## Customization options {#customization-options}
- ### Default WebView customization
- ### Linking handling customization
- #### Universal links {#universal-links}
- ## Examples
- ### BrazeDelegate
- [Braze SDK의 인앱 메시지에 GIF 삽입](/docs/ko/developer_guide/in_app_messages/gifs/index.md): Braze offers the ability to use a custom image library to display animated GIFs. Although the example below uses Glide, any image library that supports GIFs is compatible.
- # 인앱 메시지에 GIF 삽입
- ## About GIFs
- ## Integrating a custom image library
- ### Step 1: Creating the image loader delegate
- ### Fixing image loading for Android SDK 36.0.0 and later
- ### Step 2: Setting the image loader delegate
- ## Custom Image Loading with Jetpack Compose
- ## Prerequisites
- ## Integrating a custom image library
- ### Step 1: Integrate SDWebImage
- ### Step 2: Create a new Swift file
- ### Step 3: Add GIFViewProvider
- ### Step 4: Modify your AppDelegate.swift
- [Braze 소프트웨어 개발 키트를 통해 앱 내 인앱 메시지 데이터 기록](/docs/ko/developer_guide/in_app_messages/logging_message_data/index.md): Before you can use this feature, you'll need to integrate the Web Braze SDK.
- # 인앱 메시지 데이터 기록
- ## Prerequisites
- ## Logging message data
- ## Prerequisites
- ## Logging message data
- ## Accessing message data
- ### Listen for in-app message data in the Dart layer
- ### Forward in-app message data from the native layer
- ### Replaying the callback for in-app messages (optional)
- ## Prerequisites
- ## Methods for logging
- ## Handling message data
- ### Overriding the default UI delegate
- ### Overriding the default native UI
- ## Prerequisites
- ## Logging message data
- ### Displayed messages
- ### Clicked messages
- ### Clicked buttons
- ### After processing a message
- ## Subscribing to in-app messages
- ## Parsing messages
- ## Logging message data
- [Braze SDK를 위한 테스트 메시지 전송](/docs/ko/developer_guide/in_app_messages/sending_test_messages/index.md): After you set up a test segment, you can use it to test any of your Braze messaging channels. When set up correctly, this only needs to be done a single time.
- # Sending test messages
- ## Sending a test message
- ### Step 1: Create a designated test segment
- ### Step 2: Send the message
- ## Test limitations
- [튜토리얼](/docs/ko/developer_guide/in_app_messages/tutorials/index.md)
- [Tutorial: 조건부 인앱 메시지 표시](/docs/ko/developer_guide/in_app_messages/tutorials/conditionally_displaying_messages/index.md): Before you can use this feature, you'll need to integrate the Web Braze SDK. 그러나 추가 설정은 필요하지 않습니다.
- # Tutorial: 조건부 인앱 메시지 표시
- ## Prerequisites
- ## 웹용 인앱 메시지를 조건부로 표시하기
- #### 1\. 다음에 대한 호출을 제거합니다. automaticallyShowInAppMessages()
- #### 2\. 디버깅 활성화(선택 사항)
- #### 3\. 인앱 메시지 업데이트 구독
- #### 4\. 조건부 논리 만들기
- #### 5\. 다음과 같은 메시지를 표시합니다. showInAppMessage
- ## Prerequisites
- ## Android용 인앱 메시지 조건부 표시하기
- #### 1\. 디버깅 활성화(선택 사항)
- #### 2\. 활동 수명 주기 콜백 등록
- #### 3\. 인앱 메시지 수신기 설정
- #### 4\. 조건부 논리 만들기
- #### 5\. 메시지 반환 또는 삭제
- ## Prerequisites
- ## Swift용 인앱 메시지를 조건부로 표시하기
- #### 1\. 구현 BrazeInAppMessageUIDelegate
- #### 2\. 디버깅 활성화(선택 사항)
- #### 3\. Braze UI와 델리게이트를 설정하세요
- #### 4\. 조건부 논리로 DisplayChoice 재정의
- [Tutorial: 키-값 쌍을 사용하여 스타일링 사용자 지정하기](/docs/ko/developer_guide/in_app_messages/tutorials/customizing_message_styling/index.md): Before you can use this feature, you'll need to integrate the Web Braze SDK. 그러나 추가 설정은 필요하지 않습니다.
- # Tutorial: 키-값 쌍을 사용하여 메시지 스타일 지정하기
- ## Prerequisites
- ## 웹용 키-값 쌍을 사용하여 메시지 스타일 지정 사용자 지정하기
- #### 1\. automaticallyShowInAppMessages()에 대한 호출을 제거하십시오.
- #### 2\. 디버깅 활성화(선택 사항)
- #### 3\. 인앱 메시지 콜백 핸들러에 가입하십시오.
- #### 4\. message.extras 속성에 액세스
- #### 5\. 조건부 호출 showInAppMessage
- ## Prerequisites
- ## Android용 키-값 쌍을 사용하여 메시지 스타일 지정하기
- #### 1\. 디버깅 활성화(선택 사항)
- #### 2\. 활동 수명 주기 콜백 등록
- #### 3\. 사용자 지정 뷰 팩토리 클래스 만들기
- #### 4\. 브레이즈의 기본 공장에 위임하기
- #### 5\. 다음에서 키-값 쌍에 액세스합니다. inAppMessage.extras
- #### 6\. 사용자 지정 구현 IInAppMessageViewFactory
- ## Prerequisites
- ## Swift에서 키-값 쌍을 사용하여 메시지 스타일 지정하기
- #### 1\. 구현 BrazeInAppMessageUIDelegate
- #### 2\. 디버깅 활성화(선택 사항)
- #### 3\. 메시지가 표시되기 전에 메시지 준비하기
- #### 4\. 다음에서 키-값 쌍에 액세스합니다. message.extras
- #### 5\. 메시지의 스타일 지정 속성 업데이트하기
- [Tutorial: 트리거된 메시지를 연기하고 복원하기](/docs/ko/developer_guide/in_app_messages/tutorials/deferring_triggered_messages/index.md): Before you can use this feature, you'll need to integrate the Web Braze SDK. 그러나 추가 설정은 필요하지 않습니다.
- # Tutorial: 트리거된 메시지를 연기하고 복원하기
- ## Prerequisites
- ## 웹을 위한 트리거된 메시지 지연 및 복원
- #### 1\. automaticallyShowInAppMessages()에 대한 호출을 제거하십시오.
- #### 2\. 디버깅 활성화(선택 사항)
- #### 3\. 인앱 메시지 콜백 핸들러에 가입하십시오.
- #### 4\. message 인스턴스를 지연하십시오.
- #### 5\. 이전에 보류된 메시지를 검색하십시오
- #### 6\. 보류된 메시지를 표시하십시오
- #### 7\. 메시지를 즉시 표시하십시오
- ## Prerequisites
- ## Android용 트리거된 메시지 연기 및 복원하기
- #### 1\. 싱글톤 Application 인스턴스 생성하기
- #### 2\. 디버깅 활성화(선택 사항)
- #### 3\. 활동 수명 주기 콜백 등록
- #### 4\. 인앱 메시지 리스너 설정하기
- #### 5\. 조건 로직 생성하기
- #### 6\. 지연된 메시지를 표시하는 메서드를 만드세요
- #### 7\. UI에서 메서드를 트리거하세요
- ## Prerequisites
- ## Swift용 트리거된 메시지 지연 및 복원
- #### 1\. BrazeInAppMessageUIDelegate을 구현하세요
- #### 2\. 디버깅 활성화(선택 사항)
- #### 3\. Braze UI와 델리게이트를 설정하세요
- #### 4\. 조건 로직으로 DisplayChoice을 재정의하세요
- #### 5\. 지연된 메시지를 표시하는 메서드를 만드십시오.
- #### 5\. UI에서 메서드를 트리거하세요
- [Braze SDK 인앱 메시지 문제 해결](/docs/ko/developer_guide/in_app_messages/troubleshooting/index.md): 디버깅을 시작하기 전에 자신을 테스트 사용자로 추가하고 테스트 메시지 발송을 검토하세요.
- # 인앱 메시지 문제 해결 {#troubleshoot-in-app-messages}
- ## 시작하기: 증상 매칭 {#start-here-match-your-symptom}
- ## 표준 조사 경로 {#standard-investigation-path}
- ## Canvas 인앱 메시지 {#canvas-in-app-messages}
- ## 한 명의 사용자에게 인앱 메시지가 표시되지 않음 {#in-app-message-not-shown-for-one-user}
- ## 하나의 플랫폼에서 인앱 메시지가 표시되지 않음 {#in-app-message-not-shown-on-one-platform}
- ## 모든 사용자에게 인앱 메시지가 표시되지 않음 {#in-app-message-not-shown-for-all-users}
- ## 타이밍 및 지연 표시 {#timing-and-delayed-display}
- ## 전달 문제 해결 {#delivery-troubleshooting}
- ### 전달 문제 해결 {#troubleshooting-in-app-message-delivery}
- #### 메시지가 요청되고 반환되는지 확인 {#check-if-messages-are-requested-and-returned}
- ##### 메시지가 요청되지 않는 문제 해결 {#troubleshoot-messages-not-being-requested}
- ##### 메시지가 반환되지 않는 문제 해결 {#troubleshoot-messages-not-being-returned}
- ## 노출 횟수 및 분석 {#impressions-and-analytics}
- ## 플랫폼별 표시 문제 해결 {#platform-specific-display-troubleshooting}
- ### Troubleshooting display {#troubleshooting-in-app-message-display}
- ### Troubleshooting display {#troubleshooting-in-app-message-display}
- ### Troubleshooting display {#troubleshooting-in-app-message-display}
- ### Troubleshooting asset loading (NSURLError code -1008) {#asset-loading}
- #### Domains
- #### Examples
- ##### Netfox
- ##### NetGuard
- ##### XNLogger
- [Braze SDK용 푸시 알림](/docs/ko/developer_guide/push_notifications/index.md): This guide uses code samples from the Braze Web SDK 4.0.0+. To upgrade to the latest Web SDK version, see SDK Upgrade Guide.
- # 푸시 알림 {#push-notifications}
- ## Prerequisites
- ## Push protocols
- ## Setting up push notifications
- ### Step 1: Configure your service worker
- ### Step 2: Register the browser
- ### Step 3: Disable skipWaiting (optional)
- ## Unsubscribing a user
- ## Alternate domains
- ### Use cases
- ### Considerations
- ### Setting up an alternate push domain
- #### Step 1: Initiate prompting flow
- #### Step 2: Register for push
- #### Step 3: Communicate between domains (optional)
- ## Frequently Asked Questions (FAQ)
- ### Service workers
- #### What if I can't register a service worker in the root directory?
- #### Can I create a service worker using a Tag Manager?
- ### Site security
- #### Is HTTPS required?
- #### When is a site considered "secure"?
- #### What if a secure site is not available?
- ## Prerequisites
- ## Built-in features
- ## About the push notification lifecycle {#push-notification-lifecycle}
- ## Setting up push notifications
- ### Rate limits
- ### Step 1: Add Firebase to your project
- ### Step 2: Add Cloud Messaging to your dependencies
- ### Step 3: Enable the Firebase Cloud Messaging API
- ### Step 4: Create a service account {#service-account}
- ### Step 5: Generate JSON credentials {#json}
- ### Step 6: Upload your JSON credentials to Braze
- ### Step 7: Set up automatic token registration
- ### Step 8: Remove automatic requests in your application class
- ## Displaying notifications
- ### Step 1: Register Braze Firebase Messaging Service
- ### Step 2: Conform small icons to design guidelines
- ### Step 3: Configure notification icons {#configure-icons}
- #### Specifying icons in braze.xml
- #### Specifying icon accent color
- ### Step 4: Add deep links
- #### Enabling automatic deep link opening
- ## Handling foreground notifications
- ### How it works
- ### Customizing foreground behavior
- #### Creating custom deep links
- #### Adding deep links
- #### Customizing back stack behavior
- ### Step 5: Define notification channels
- ### Step 6: Test notification display and analytics
- #### Testing display
- #### Testing analytics
- #### Testing from command line
- ## Conversation push notifications
- ### Usage requirements
- ## FCM quota exceeded errors
- ### Best practices
- #### Request a rate limit increase from FCM
- #### Apply a workspace rate limit
- ## Rate limits
- ## Setting up push notifications
- ### Step 1: Upload your APNs token
- ### Step 2: Enable push capabilities
- ### Step 3: Set up push handling
- #### Step 3.1: Enable automation in the push property
- #### Step 3.2: Override individual configurations (optional)
- #### Step 3.1: Register for push notifications with APNs
- #### Step 3.2: Register push tokens with Braze
- #### Step 3.3: Enable push handling
- ##### Default push handling
- ##### Foreground push handling
- ## Testing notifications {#push-testing}
- ## Subscribing to push notifications updates
- ## Handling foreground notifications
- ### How it works
- ## Push primers {#push-primers}
- ## Dynamic APNs gateway management
- ### Prerequisites
- ### How it works
- ### Frequently asked questions
- #### Why was this feature introduced?
- #### How does this impact push delivery performance?
- #### Can I disable this feature?
- ## About push notifications for Android TV
- ## Prerequisites
- ## Setting up push notifications
- ## Testing Android TV push notifications
- ## Best practices
- ## Prerequisites
- ## Enabling push deep linking
- ## Disabling basic push notifications (iOS only)
- ## Prerequisites
- ## Setting up push notifications
- ### Step 1: Complete the initial setup
- #### Step 1.1: Register for push
- #### Step 1.2: Get your Google Sender ID
- #### Step 1.3: Update your braze.xml
- #### Step 1.1: Upload APNs certificates
- #### Step 1.2: Add push notification support to your app
- ### Step 2: Listen for push notification events (optional)
- ##### Push notification event fields
- ### Step 3: Test displaying push notifications
- ## Prerequisites
- ## Setting up push notifications
- ### Step 1: Register for a Huawei developer account
- ### Step 2: Create a new Huawei app in the Braze dashboard
- ### Step 3: Integrate the Huawei messaging SDK into your app
- ### Step 4: Handle foreground notifications
- ### Step 5: Test your push notifications (optional)
- #### Step 5.1: Create a new push notification campaign
- #### Step 5.2: Send a test push
- #### Step 5.3: Set up Huawei segmentation (optional)
- ## Prerequisites
- ## Setting up push notifications {#setting-up-push-notifications}
- ### Step 1: Complete the initial setup
- #### Prerequisites
- #### Step 1.1: Update your app.json file
- #### Step 1.2: Add your Google Sender ID
- #### Step 1.3: Add the path to your Google Services JSON
- #### Step 1.1: Request for push permissions
- #### Step 1.2 (Optional): Migrate your push key
- ### Step 2: Request push notifications permission
- #### Step 2.1: Listen for push notifications (optional)
- ##### Push notification event fields
- ### Step 3: Enable deep linking (optional)
- #### Step 3.1: Store the push notification payload on app launch
- #### Step 3.2: Handle deep links from a closed state
- #### Step 3.1: Store the push notification payload on app launch {#step-3-1}
- #### Step 3.2: Handle deep links from a closed state
- #### Step 3.3: Enable Universal Links (optional)
- ### Step 4: Handle foreground notifications
- ### Step 5: Send a test push notification
- ## Using the Expo plugin
- ### Forwarding Android push to additional FMS
- ### Using app extensions with Expo Application Services {#app-extensions}
- ### Troubleshooting
- #### Push notifications stopped working {#troubleshooting-stopped-working}
- #### Device token won't register with Braze {#troubleshooting-token-registration}
- #### Deep links from push notifications don't open {#troubleshooting-deep-links}
- ## Prerequisites
- ## Setting up Safari push for mobile
- ### Step 1: Create a manifest file {#manifest}
- ### Step 2: Link the manifest file {#manifest-link}
- ### Step 3: Add a service worker {#service-worker}
- ### Step 4: Add to home screen {#add-to-homescreen}
- ### Step 5: Show the native push prompt {#push-prompt}
- ## Next steps
- ## Prerequisites
- ## Setting up push notification
- ### Step 1: Set up the platform
- #### Step 1.1: Enable Firebase
- #### Step 1.2: Set your Firebase credentials
- #### Step 1.1: Verify integration method
- #### Step 1.1: Enable ADM
- ### Step 2: Configure push notifications
- #### Step 2.1: Configure push settings {#unity_step-21-configure-push-settings}
- #### Step 2.1: Upload your APNs token
- #### Step 2.2: Enable automatic push
- #### Step 2.3: Enable background push (optional)
- #### Step 2.4: Disable automatic registration (optional)
- #### Step 2.1: Update AndroidManifest.xml
- #### Step 2.2: Store your ADM API key
- #### Step 2.3: Add ADM Jar
- #### Step 2.4: Add Client Secret and Client ID to your Braze dashboard
- ### Step 3: Set push listeners
- #### Step 3.1: Enable push received listener
- #### Step 3.2: Enable push opened listener
- #### Step 3.3: Enable push deleted listener
- #### Push listener example
- #### Step 3.1: Enable push received listener
- #### Step 3.2: Enable push opened listener
- #### Push listener example
- ## Optional configurations
- #### Deep linking to in-app resources
- #### Adding Braze push notification icons
- #### Push token callback
- ## Prerequisites
- ## Setting up push notifications
- ### Step 1: Update your project
- ### Step 2: Create your JSON credentials
- ### Step 3: Upload your JSON credentials
- ### Step 1: Complete the initial setup
- ### Step 2: Request push notifications permission
- [Braze SDK용 푸시 알림 커스텀 설정](/docs/ko/developer_guide/push_notifications/customization/index.md): Before you can use this feature, you'll need to integrate the Android Braze SDK. You'll also need to set up push notifications.
- # 푸시 알림 커스텀 설정
- ## Prerequisites
- ## Using a callback for push events {#push-callback}
- ## Customizing notification display {#customization-display}
- ### Step 1: Create your custom notification factory
- ### Step 2: Set your custom notification factory
- ## Rendering multicolor text
- ### Supported HTML tags
- ## Rendering inline images
- ### How it works
- ### Compatibility
- ### Sending an inline image push
- ## Settings
- ### Notification ID {#notification-id}
- ### Firebase Messaging Delivery priority {#fcm-priority}
- ### Time to live (TTL) {#ttl}
- ### Summary text {#summary-text}
- ### Custom URIs {#custom-uri}
- ### Notification display priority {#notification-priority}
- ### Sounds {#sounds}
- ## Prerequisites
- ## Customizing action buttons {#push-action-buttons-integration}
- ### Manually registering action buttons
- #### Step 1: Adding Braze default push categories {#registering}
- #### Step 2: Enable interactive push handling {#enable-push-handling}
- ## Customizing push categories {#customizing-push-categories}
- ### Step 1: Register a category
- ### Step 2: Select your categories
- ### Example: Custom push category {#example-custom-push-category}
- ## Customizing badges
- ## Customizing sounds
- ### Step 1: Host the sound in your app
- #### Converting sound files
- ### Step 2: Provide a protocol URL for the sound
- ## Settings
- ### Key-value pairs
- ### Alert options
- ### Adding content-available flag
- ### Adding mutable-content flag
- ### Collapse ID
- ### Expiry
- ## Prerequisites
- ## Settings
- ### Time to live (TTL) {#ttl}
- ### Summary text {#summary-text}
- ### Custom URIs {#custom-uri}
- ### Notification display priority
- ### Sounds {#sounds}
- ## Prerequisites
- ## Push customization in React Native
- ### iOS customization
- ### Android customization
- [Braze SDK용 푸시 알림 딥링킹](/docs/ko/developer_guide/push_notifications/deep_linking/index.md): Before you can use this feature, you'll need to integrate the Android Braze SDK.
- # 푸시 알림의 딥링크
- ## Prerequisites
- ## Creating a universal delegate
- ## Deep linking to app settings
- ## Customizing WebView activity {#CustomWebviewActivity}
- ## Troubleshooting
- ## Using Jetpack Compose
- ## Prerequisites
- ## Handling deep links
- ### Step 1: Register a scheme {#register-a-scheme}
- ### Step 2: Add a scheme allowlist
- ### Step 3: Implement a handler
- ## App Transport Security (ATS)
- ### Working with ATS
- ## Decoding URLs
- ## Deep linking to app settings
- ## Customization options {#customization-options}
- ### Default WebView customization
- ### Linking handling customization
- #### Universal links {#universal-links}
- ## Examples
- ### BrazeDelegate
- ## Prerequisites
- ## Implementing deep linking
- ### Step 1: Set up Flutter's built-in handling
- ### Step 2: Forward data to the Dart layer (optional)
- #### Example: Deep linking to an alert dialog
- ## Prerequisites
- ## Enabling push deep linking
- [iOS 딥링킹 가이드](/docs/ko/developer_guide/push_notifications/ios_deep_linking_guide/index.md): 구현 세부 사항은 딥링킹을 참조하세요. 문제 해결은 딥링킹 문제 해결을 참조하세요.
- # iOS 딥링킹 가이드 {#ios-deep-linking-guide}
- ## 링크 유형 선택 {#choosing-a-link-type}
- ### 커스텀 스킴 딥링크 {#custom-scheme-deep-links}
- ### 유니버설 링크 {#universal-links}
- ### "앱 내에서 웹 URL 열기" {#open-web-url-inside-app}
- ## 각 링크 유형에 필요한 사항 {#what-you-need-for-each-link-type}
- ### 커스텀 스킴 딥링크
- ### 유니버설 링크
- ### "앱 내에서 웹 URL 열기"
- ## AASA 파일이 필요한 경우 {#when-aasa}
- ## 앱 코드에서 링크를 처리해야 하는 경우 {#when-app-code}
- ## Braze에서 Branch 사용하기 {#branch}
- [딥링킹 문제 해결](/docs/ko/developer_guide/push_notifications/deep_linking_troubleshooting/index.md): 커스텀 스킴 딥링크(예: myapp://products/123)가 앱을 열지만 의도한 화면으로 이동하지 않는 경우:
- # 딥링킹 문제 해결 {#deep-linking-troubleshooting}
- ## 커스텀 스킴 딥링크가 올바른 뷰를 열지 않는 경우 {#custom-scheme-deep-link-doesnt-open-the-correct-view}
- ## 유니버설 링크가 앱 대신 Safari에서 열리는 경우 {#universal-link-opens-in-safari-instead-of-the-app}
- ### Associated Domains 권한 확인 {#verify-the-associated-domains-entitlement}
- ### AASA 파일 유효성 검사 {#validate-the-aasa-file}
- ### AppDelegate 확인 {#check-the-appdelegate}
- ### Braze SDK 구성 확인 {#verify-braze-sdk-configuration}
- ### 길게 누르기 문제 확인 {#check-for-the-long-press-issue}
- ## 이메일의 딥링크가 앱을 열지 않는 경우 {#deep-link-from-email-doesnt-open-the-app}
- ### 클릭 추적 도메인 AASA 확인 {#verify-click-tracking-domain-aasa}
- ### 리디렉션 체인 확인 {#check-the-redirect-chain}
- ## 딥링크가 푸시에서는 작동하지만 인앱 메시지에서는 작동하지 않는 경우(또는 그 반대) {#deep-link-works-from-push-but-not-from-in-app-messages-or-vice-versa}
- ### BrazeDelegate 확인 {#check-the-brazedelegate}
- ### 상세 로깅 활성화 {#enable-verbose-logging}
- ### 커스텀 디스플레이 델리게이트 확인 {#check-for-custom-display-delegates}
- ## "앱 내에서 웹 URL 열기" 시 빈 페이지 또는 깨진 페이지가 표시되는 경우 {#open-web-url-inside-app-shows-a-blank-or-broken-page}
- ## Braze에서 Branch 문제 해결 {#branch}
- ### BrazeDelegate가 Branch로 라우팅하는지 확인 {#verify-the-brazedelegate-routes-to-branch}
- ### Branch 링크 도메인 확인 {#check-branch-link-domain}
- ### 두 SDK의 로깅 모두 활성화 {#enable-both-sdks-logging}
- ### Branch 대시보드 구성 확인 {#check-branch-dashboard-configuration}
- ### Branch 링크를 독립적으로 테스트 {#test-branch-links-independently}
- ## 일반적인 디버깅 팁 {#general-debugging-tips}
- ### 상세 로깅 사용 {#use-verbose-logging}
- ### 링크를 독립적으로 테스트 {#test-links-in-isolation}
- ### 실제 기기에서 테스트 {#test-on-a-physical-device}
- [Braze SDK를 위한 조용한 푸시 알림 설정](/docs/ko/developer_guide/push_notifications/silent/index.md): Before you can use this feature, you'll need to integrate the Android Braze SDK. You'll also need to set up push notifications.
- # 조용한 푸시 알림
- ## Prerequisites
- ## Setting up silent push notifications
- ## Prerequisites
- ## iOS limitations
- ## Setting up silent push notifications
- ## Sending silent push notifications
- ## Ignoring internal push notifications
- ### Step 1: Check your app for automatic actions
- ### Step 2: Use the internal push utility method
- ## Prerequisites
- ## Setting up silent push notifications
- [Braze SDK를 위한 리치 푸시 알림 설정](/docs/ko/developer_guide/push_notifications/rich/index.md): Before you can use this feature, you'll need to integrate the Swift Braze SDK. You'll also need to set up push notifications.
- # 다양한 푸시 알림
- ## Prerequisites
- ## Setting up rich push notifications
- ### Step 1: Creating a service extension
- ### Step 2: Setting up the notification service extension
- ### Step 3: Adding an App Group
- ### Step 4: Integrating rich push notifications
- #### Adding the rich push framework to your app
- #### Using your own UNNotificationServiceExtension
- ### Step 5: Configuring the App Group in Braze
- ### Step 6: Creating a rich notification in your dashboard
- ## Prerequisites
- ## Setting up rich push notifications
- ### Step 1: Create a notification service extension
- ### Step 2: Add a new target
- ### Step 3: Reinstall your CocoaPods dependencies
- ## Prerequisites
- ## Using Expo to enable rich push notifications
- [Braze SDK를 위한 푸시 스토리 설정](/docs/ko/developer_guide/push_notifications/push_stories/index.md): Before you can use this feature, you'll need to integrate the Swift Braze SDK. You'll also need to set up push notifications, which includes implementing the UNNotification framework.
- # 푸시 스토리
- ## Prerequisites
- ## Setting up Push Stories
- ### Step 1: Adding the Notification Content Extension target {#notification-content-extension}
- ### Step 2: Enable capabilities {#enable-capabilities}
- #### Adding an App Group
- ### Step 3: Adding the Push Story framework to your app {#enable-capabilities}
- ### Step 4: Updating your notification view controller {#enable-capabilities}
- #### Custom handling push story events
- ### Step 5: Setting the Notification Content Extension plist {#notification-content-extension}
- ### Step 6: Updating the Braze integration in your main app {#update-braze}
- ## Prerequisites
- ## Setting up push stories
- ### Step 1: Create a notification content extension
- ### Step 2: Configure your push app group
- ### Step 3: Add a new target
- ### Step 4: Reinstall your CocoaPods dependencies
- ## Prerequisites
- ## Enabling push stories
- [Braze SDK를 위한 소프트 푸시 프롬프트 설정](/docs/ko/developer_guide/push_notifications/soft_push_prompts/index.md): Before you can use this feature, you'll need to integrate the Web Braze SDK. You'll also need to set up push notifications.
- # 웹용 소프트 푸시 프롬프트
- ## Prerequisites
- ## About soft push prompts
- ## Setting up soft push prompts
- ### Step 1: Create a push primer campaign
- ### Step 2: Remove calls
- ### Step 3: Update integration
- [푸시 분석 및 커스텀 이벤트 로깅](/docs/ko/developer_guide/push_notifications/logging_message_data/index.md): 시작하기 전에 플랫폼에 대한 초기 푸시 알림 통합을 완료하세요:
- # 푸시 분석 및 커스텀 이벤트 로깅 {#push-analytics-and-custom-event-logging}
- ## 필수 조건 {#prerequisites}
- ## 네이티브 푸시 분석 vs. 커스텀 이벤트 로깅 {#native-push-analytics-vs-custom-event-logging}
- ## Braze가 자동으로 기록하는 항목 {#what-braze-logs-automatically}
- ## 커스텀 푸시 처리 시 네이티브 푸시 분석 유지 {#preserving-native-push-analytics-with-custom-push-handling}
- ## 푸시 페이로드에서 커스텀 데이터 로깅 {#logging-custom-data-from-push-payloads}
- ### 옵션 A: /users/track 엔드포인트로 기록 {#option-a-log-with-the-userstrack-endpoint}
- ### 옵션 B: 앱 실행 후 SDK 메서드로 기록 {#option-b-log-with-sdk-methods-after-app-launch}
- ## 알림 콘텐츠 확장에서 로깅(Swift) {#logging-from-a-notification-content-extension-swift}
- ### 1단계: Xcode에서 앱 그룹 구성 {#step-1-configure-app-groups-in-xcode}
- ### 2단계: 기록할 항목 선택 {#step-2-choose-what-to-log}
- #### 커스텀 이벤트 저장 {#saving-custom-events}
- #### Braze에 커스텀 이벤트 전송 {#sending-custom-events-to-braze}
- #### 커스텀 속성 저장 {#saving-custom-attributes}
- #### Braze에 커스텀 속성 전송 {#sending-custom-attributes-to-braze}
- #### 사용자 속성 저장 {#saving-user-attributes}
- #### Braze에 사용자 속성 전송 {#sending-user-attributes-to-braze}
- #### RemoteStorage 헬퍼 파일 {#remotestorage-helper-file}
- #### UserAttribute 헬퍼 파일 {#userattribute-helper-file}
- #### EventName 사전 헬퍼 파일 {#eventname-dictionary-helper-file}
- ## 결과 분석 {#analyzing-results}
- ## 관련 참조 {#related-references}
- [테스트 메시지 전송](/docs/ko/developer_guide/push_notifications/sending_test_messages/index.md): After you set up a test segment, you can use it to test any of your Braze messaging channels. When set up correctly, this only needs to be done a single time.
- # Sending test messages
- ## Sending a test message
- ### Step 1: Create a designated test segment
- ### Step 2: Send the message
- ## Test limitations
- [Braze SDK의 고급 푸시 알림 예시](/docs/ko/developer_guide/push_notifications/examples/index.md): Before you can use this feature, you'll need to integrate the Android Braze SDK. You'll also need to set up push notifications.
- # 고급 푸시 알림 예시 {#advanced-push-notification-examples}
- ## Prerequisites
- ## Custom notification layout
- ### Step 1: Add a custom layout
- ### Step 2: Create a custom notification factory
- ### Step 3: Map custom data
- ### Step 4: Set the custom notification factory
- ### Step 5: Send the activity
- #### Example curl command
- #### Request parameters
- ### Step 6: Update the activity
- ## Personalized push notifications
- ## Prerequisites
- ## Notification content app extensions
- ### Requirements
- ## Interactive push notification
- ### Dashboard configuration
- ## Personalized push notifications
- ### Dashboard configuration
- ### Handling key-value pairs
- #### Parsing Key-Value Pairs from Push Notifications
- ## Information capture push notification
- ### Dashboard configuration
- ### Handling button actions
- ### Dismissing pushes
- [푸시 구독 상태에 대하여](/docs/ko/developer_guide/push_notifications/subscription_states/index.md): A "Push Subscription State" in Braze identifies a user's global preference for their desire to receive push notifications. Because the subscription state is user-based, it is not specific to any individual app. Subscription states become helpful flags when deciding which users to target for push notifications.
- # 푸시 구독 상태에 대하여
- ## Push subscription states {#push-sub-states}
- ### Push registration and reachable users
- ### Updating push subscription states {#update-push-subscription-state}
- #### Automatic opt-in (default)
- #### SDK integration
- #### REST API
- ### Differences between push enablement and push subscription status
- ### Imported push tokens (iOS)
- ### Checking push subscription state
- [Braze SDK의 푸시 알림 문제 해결](/docs/ko/developer_guide/push_notifications/troubleshooting/index.md): If you're experiencing issues after setting up push notifications, consider the following:
- # 푸시 알림 문제 해결 {#troubleshoot-push-notifications}
- ## Troubleshooting
- ## Understanding the Braze push workflow
- ### Step 1: Configuring your Google Cloud API key
- ### Step 2: Devices register for FCM and provide Braze with push tokens
- ### Step 3: Launching a Braze push campaign
- ### Step 4: Removing invalid tokens
- ## Utilizing the push error logs
- ## Troubleshooting scenarios
- ### Push isn't sending
- ### No "push registered" users showing in the Braze dashboard (prior to sending messages)
- #### Incorrect sender ID
- #### Braze registration not occurring
- #### Google Play Services not present
- #### Device not connected to the internet
- ### Tapping push notification doesn't open the app
- ### Push notifications bounced
- #### Error: MismatchSenderID
- #### Error: InvalidRegistration
- #### Error: NotRegistered
- ### Push notifications sent but not displayed on users' devices
- #### Application was force quit
- #### BrazeFirebaseMessagingService not registered
- #### Firewall is blocking push
- #### Custom notification factory returning null
- ### "Push registered" users no longer enabled after sending messages
- #### Application was uninstalled
- #### Invalid Firebase Cloud Messaging server key
- ### Push clicks not logged
- ### Deep links not working
- #### Verify deep link configuration
- #### Verify custom handling logic
- #### Disable back stack behavior
- ## Understanding the Braze/APNs workflow
- ### Step 1: Configuring the push certificate and provisioning profile
- ### Step 2: Devices register for APNs and provide Braze with push tokens
- #### Considerations for push token generation
- ### Step 3: Launching a Braze push campaign
- ### Step 4: Removing invalid tokens
- ## Using the push error logs
- ### Message Activity Log errors
- #### Received unregistered sending to push token {#received-unregistered-sending}
- #### Device token not for topic
- #### BadDeviceToken sending to push token
- ## Push registration issues
- ### No push registration prompt
- ### No "push registered" users showing in the dashboard (prior to sending messages)
- ## Push notifications sent but not displayed on users’ devices
- ### "Push registered" users no longer enabled after sending messages
- #### Dashboard and app certificate mismatch
- #### Application was uninstalled
- #### Regenerating your provisioning profile
- ### Messages not delivered to "push registered" users
- #### App is foregrounded
- #### Test notification scheduled incorrectly
- ### User not "push registered" for the app being tested
- ## Push clicks not logged {#push-clicks-not-logged}
- ## Deep links not working
- ### Web links from push clicks not opening
- ### Deep links from push clicks not opening
- ## Understanding the Braze push workflow
- ### Step 1: Configuring your Google Cloud API key
- ### Step 2: Devices register for FCM and provide Braze with push tokens
- ### Step 3: Launching a Braze push campaign
- ### Step 4: Removing invalid tokens
- ## Utilizing the push error logs
- ## Troubleshooting scenarios
- ### Push isn't sending
- ### No "push registered" users showing in the Braze dashboard (prior to sending messages)
- #### Incorrect sender ID
- #### Braze registration not occurring
- #### Google Play Services not present
- #### Device not connected to the internet
- ### Tapping push notification doesn't open the app
- ### Push notifications bounced
- #### Error: MismatchSenderID
- #### Error: InvalidRegistration
- #### Error: NotRegistered
- ### Push notifications sent but not displayed on users' devices
- #### Application was force quit
- #### BrazeFirebaseMessagingService not registered
- #### Firewall is blocking push
- #### Custom notification factory returning null
- ### "Push registered" users no longer enabled after sending messages
- #### Application was uninstalled
- #### Invalid Firebase Cloud Messaging server key
- ### Push clicks not logged
- ### Deep links not working
- #### Verify deep link configuration
- #### Verify custom handling logic
- #### Disable back stack behavior
- ## Troubleshooting
- ### Push doesn't appear after app is closed from task switcher
- ### Custom notification factory not being set correctly
- ## 푸시 알림의 줄 바꿈 {#push-linebreaks}
- [Braze SDK를 위한 실시간 활동](/docs/ko/developer_guide/live_notifications/index.md)
- [Android Braze SDK용 라이브 업데이트](/docs/ko/developer_guide/live_notifications/live_updates/index.md): IBrazeNotificationFactory 인터페이스를 사용하여 Braze 푸시 알림이 표시되는 방식을 커스텀할 수 있습니다. BrazeNotificationFactory를 확장하면 사용자에게 알림이 표시되기 전에 Braze가 팩토리의 createNotification() 메서드를 호출합니다. 그런 다음 Braze 대시보드 또는 REST API를 통해 전송된 커스텀 키-값 페어가 포함된 페이로드를 전달합니다.
- # Android용 라이브 업데이트 {#live-updates-for-android}
- ## 작동 방식 {#how-it-works}
- ## 라이브 업데이트 표시 {#displaying-a-live-update}
- ### Prerequisites
- ### 1단계: 커스텀 알림 팩토리 만들기 {#step-1-create-a-custom-notification-factory}
- ### 2단계: 커스텀 데이터 매핑 {#step-2-map-custom-data}
- ### 3단계: 커스텀 알림 팩토리 설정 {#step-3-set-the-custom-notification-factory}
- ### 4단계: 활동 보내기 {#step-4-send-the-activity}
- #### curl 명령 예시 {#example-curl-command}
- #### 요청 매개변수 {#request-parameters}
- ### 5단계: 활동 업데이트 {#step-5-update-the-activity}
- [Swift Braze SDK의 라이브 활동](/docs/ko/developer_guide/live_notifications/live_activities/index.md): !iPhone 잠금 화면의 배송 추적기 라이브 활동. 자동차가 있는 상태 표시줄이 거의 반쯤 채워져 있습니다. 텍스트에 "픽업까지 2분"이라고 표시됩니다.{: style="max-width:40%;float:right;margin-left:15px;"}
- # Swift의 라이브 활동 {#live-activities-for-swift}
- ## 작동 방식 {#how-it-works}
- ## 시퀀스 다이어그램 {#sequence-diagram}
- ## 라이브 활동 구현 {#implementing-a-live-activity}
- ### Prerequisites
- ### 1단계: 활동 만들기 {#create-an-activity}
- #### 예시 {#example}
- ### 2단계: 활동 시작 {#start-the-activity}
- #### 2.1단계: 위젯 확장에 BrazeKit 추가하기 {#step-21-add-brazekit-to-your-widget-extension}
- #### 2.2단계: BrazeLiveActivityAttributes 프로토콜 추가 {#brazeActivityAttributes}
- #### 2.3단계: 푸시 투 스타트 등록 {#step-23-register-for-push-to-start}
- ###### 예시
- #### 2.4단계: 푸시 투 스타트 알림 보내기 {#step-24-send-a-push-to-start-notification}
- #### 예시
- ### 3단계: 활동 추적 재개 {#resume-activity-tracking}
- ###### 예시
- ### 4단계: 활동 업데이트 {#update-the-activity}
- ### 5단계: 활동 종료 {#end-the-activity}
- #### 자동 해제 설정 {#arranging-automatic-dismissal}
- ## 라이브 활동 추적 {#tracking-live-activities}
- ## 라이브 활동 이벤트 관찰(선택 사항) {#observe-live-activity-events}
- ### 구독 설정 {#set-up-subscriptions}
- ### subscribeToStateUpdates {#subscribe-to-state-updates}
- #### 유형 범위 이벤트 {#type-scoped-events}
- #### 인스턴스 범위 이벤트 {#instance-scoped-events}
- ###### 예시
- ### subscribeToErrors {#subscribe-to-errors}
- #### 유형 범위 오류 {#type-scoped-errors}
- #### 인스턴스 범위 오류 {#instance-scoped-errors}
- ###### 예시
- ### 콘텐츠 상태 업데이트 처리(선택 사항) {#handle-content-state}
- #### 단일 속성 유형 {#single-attributes-type}
- #### 다중 속성 유형 {#multiple-attributes-types}
- ## 자주 묻는 질문(FAQ) {#faq}
- ### 기능 및 지원 {#functionality-and-support}
- #### 어떤 플랫폼에서 라이브 활동을 지원하나요? {#what-platforms-support-live-activities}
- #### React Native 앱이 라이브 활동을 지원하나요? {#do-react-native-apps-support-live-activities}
- #### Braze는 Campaign 또는 캔버스 단계로 라이브 활동을 지원하나요? {#does-braze-support-live-activities-as-a-campaign-or-canvas-step}
- ### 푸시 알림 및 라이브 활동 {#push-notifications-and-live-activities}
- #### 라이브 활동이 활성화되어 있는 동안 푸시 알림이 전송되면 어떻게 되나요? {#what-happens-if-a-push-notification-is-sent-while-a-live-activity-is-active}
- #### 라이브 활동이 푸시 메시지 기능을 활용하는 경우, 라이브 활동을 수신하려면 푸시 알림을 활성화해야 하나요? {#if-live-activities-leverage-push-message-functionality-do-push-notifications-need-to-be-enabled-to-receive-live-activities}
- #### 라이브 활동에 푸시 프라이머가 필요한가요? {#do-live-activities-require-push-primers}
- ### 기술 주제 및 문제 해결 {#technical-topics-and-troubleshooting}
- #### 라이브 활동에 오류가 있는지 어떻게 알 수 있나요? {#how-do-i-know-if-live-activities-has-errors}
- #### 푸시 투 스타트 알림을 보낸 후에도 라이브 활동을 받지 못한 이유는 무엇인가요? {#after-sending-a-push-to-start-notification-why-havent-i-received-my-live-activity}
- #### 푸시 투 스타트로 라이브 활동을 시작한 후 새 업데이트를 받지 못하는 이유는 무엇인가요? {#after-starting-my-live-activity-with-push-to-start-why-isnt-it-receiving-new-updates}
- #### liveactivity/update 엔드포인트를 사용하려고 할 때 액세스 거부 응답을 받습니다. 왜인가요? {#i-am-receiving-an-access-denied-response-when-i-try-to-use-the-liveactivityupdate-endpoint-why}
- #### messages/send 엔드포인트는 messages/liveactivity/update 엔드포인트와 사용량 제한을 공유하나요? {#does-the-messagessend-endpoint-share-rate-limits-with-the-messagesliveactivityupdate-endpoint}
- [Braze SDK의 기능 플래그](/docs/ko/developer_guide/feature_flags/index.md): When you're ready to create your own feature flags, check out Creating feature flags.
- # Feature flags
- ## Prerequisites
- ## Use cases
- ### Gradual rollouts
- ### Remotely control app variables
- ### Message coordination
- ### Feature experimentation
- ### Segmentation
- ## Plan limitations
- [기능 플래그 생성](/docs/ko/developer_guide/feature_flags/create/index.md): To use feature flags, ensure your SDKs are up to date with at least these minimum versions:
- # Create feature flags
- ## Prerequisites
- ### SDK version
- ### Braze permissions
- ## Creating a feature flag
- ### Step 1: Create a new feature flag
- ### Step 2: Fill out the details
- ### Step 2a: Create custom properties
- ### Step 4: Choose segments to target
- ### Step 5: Set the rollout traffic {#rollout}
- ## Multi-rule feature flag rollouts
- ### Evaluation order
- ### User qualification
- ### "Everyone Else" rule
- ### Re-ordering rules
- ### Multi-rule feature flag use cases
- #### Gradually release a checkout page
- #### Reach internal testers first
- ## Using the "enabled" field for your feature flags {#enabled}
- ### Logging a feature flag impression {#impressions}
- ### Accessing properties {#accessing-properties}
- ### Getting a list of all feature flags {#get-list-of-flags}
- ### Refreshing feature flags {#refreshing}
- ### Listening for changes {#updates}
- ## Checking user eligibility
- ## Viewing the changelog
- ## Segmenting with feature flags {#segmentation}
- ## Best practices
- ### Don't combine rollouts with Canvases or experiments
- ### Naming conventions
- ### Planning ahead
- ### Be descriptive
- ### Clean up old feature flags
- [캔버스의 피처 플래그](/docs/ko/developer_guide/feature_flags/canvas/index.md)
- [피처 플래그 실험](/docs/ko/developer_guide/feature_flags/experiments/index.md): Before you can track user data in the experiment, your app needs to record when a user interacts with a feature flag. This is called a feature flag impression. Make sure to log a feature flag impression whenever a user sees or could have seen the feature you're testing, even if they're in the control group.
- # Feature flag experiments
- ## Prerequisites
- ## Creating a feature flag experiment
- ### Step 1: Create an experiment
- ### Step 2: Add experiment variants
- ### Step 3: Overwrite properties (optional)
- ### Step 4: Choose users to target
- ### Step 5: Distribute variants
- ### Step 6: Assign conversions
- ### Step 7: Review and launch
- ## Reviewing the results
- ### Campaign analytics
- ### Feature flag experiment performance
- [자주 묻는 질문](/docs/ko/developer_guide/feature_flags/faq/index.md): Braze supports feature flags on iOS, Android, and Web platforms with the following SDK version requirements:
- # Frequently asked questions
- ## Functionality and support
- ### What platforms are Braze feature flags supported on? {#platforms}
- ### What is the level of effort involved when implementing a feature flag? {#level-of-effort}
- ### How can feature flags benefit Marketing teams? {#marketing-teams}
- ### How can feature flags benefit Product teams? {#product-teams}
- ### How can feature flags benefit engineering teams? {#engineering-teams}
- ## Feature rollouts and targeting
- ### Can a feature flag be rolled out to only a select group of users? {#target-users}
- ### How does adjusting the rollout percentage affect users who were previously bucketed into the enabled group? {#random-buckets}
- ## Technical topics
- ### Can feature flags be used to control when the Braze SDK is initialized? {#initialization}
- ### How frequently does the SDK refresh feature flags? {#refresh-frequency}
- ### Are feature flags available while a user is offline? {#offline}
- ### What happens if feature flags are refreshed mid-session? {#listen-for-updates}
- ### Why aren't users in my Global Control Group receiving feature flags experiments?
- ## Additional questions?
- [Braze SDK용 분석 정보](/docs/ko/developer_guide/analytics/index.md): Braze를 구현하는 동안 팀과 마케팅 목표에 대해 논의하여 추적할 데이터와 Braze로 추적하는 방법을 가장 잘 결정할 수 있도록 하세요. 예시는 이 가이드 끝에 있는 택시/차량 공유 앱 사례 연구를 참조하세요.
- # 분석 {#analytics}
- ## 자동으로 수집되는 데이터 {#automatically-collected-data}
- ## 커스텀 이벤트 {#custom-events}
- ### 커스텀 이벤트 저장 {#custom-event-storage}
- ### 커스텀 이벤트 속성정보 {#custom-event-properties}
- ## 커스텀 속성 {#custom-attributes}
- ### 커스텀 속성 저장 {#custom-attribute-storage}
- ### 커스텀 속성 데이터 유형 {#custom-attribute-data-types}
- #### 문자열(영숫자) {#strings-alphanumeric-characters}
- #### 배열 {#arrays}
- #### 날짜 {#dates}
- #### 숫자 {#integers}
- #### 부울(참/거짓) {#booleans-truefalse}
- ## 구매 이벤트 / 매출 추적 {#purchase-events-revenue-tracking}
- ## 택시/차량 공유 앱 활용 사례 {#example-case}
- ## 모범 사례 {#best-practices}
- ### 일반적인 모범 사례 {#general-best-practices}
- #### 이벤트 속성정보 사용 {#use-event-properties}
- ### 개발 모범 사례 {#development-best-practices}
- #### 모든 사용자에 대한 사용자 ID 설정 {#set-user-ids-for-every-user}
- #### 커스텀 이벤트 및 속성에 읽기 쉬운 이름 부여 {#give-custom-events-and-attributes-readable-names}
- #### 속성이 변경될 때만 로그 기록 {#only-log-attributes-when-they-change}
- #### 이벤트 이름을 프로그래밍 방식으로 생성하지 마세요 {#avoid-programmatically-generating-event-names}
- ### 기술적 한계 및 제약 {#technical-limitations-and-constraints}
- #### 길이 제약 조건 {#length-constraints}
- #### 콘텐츠 제약 조건 {#content-constraints}
- #### 예약 키 {#reserved-keys}
- #### 값 정의 {#value-definitions}
- ### 일반 이름 필드 구문 분석 {#parsing-a-generic-name-field}
- [Braze SDK를 통해 사용자 ID 설정](/docs/ko/developer_guide/analytics/setting_user_ids/index.md): 목록에 없는 래퍼 SDK의 경우 관련 네이티브 Android 또는 Swift 메서드를 대신 사용하세요.
- # 사용자 ID 설정 {#set-user-ids}
- ## 익명 사용자 정보 {#about-anonymous-users}
- ### 익명 사용자 추적 방지 {#preventing-anonymous-user-tracking}
- ## 사용자 ID 설정 {#setting-a-user-id}
- ### changeUser() 작동 방식 {#how-changeuser-works}
- ## 사용자 별칭 {#user-aliases}
- ### 작동 방식 {#how-they-work}
- ### 사용자 별칭 설정 {#setting-a-user-alias}
- ## ID 명명 모범 사례 {#naming-best-practices}
- [Braze 소프트웨어 개발 키트를 통해 사용자 속성 설정](/docs/ko/developer_guide/analytics/setting_user_attributes/index.md): 목록에 없는 래퍼 SDK의 경우 관련 네이티브 Android 또는 Swift 메서드를 대신 사용하세요.
- # Set user attributes
- ## Prerequisites
- ## Default user attributes
- ### Predefined methods
- ### Setting default attributes
- ### Unsetting default attributes
- ## Custom user attributes
- ### Setting custom attributes
- ### Unsetting custom attributes
- ### Nesting custom attributes
- ### Using the REST API
- ## Setting user subscriptions
- ### Unsubscribing a user from email
- ### Unsubscribing a user from push
- ## Prerequisites
- ## Default user attributes
- ### Predefined methods
- ### Setting default attributes
- ### Unsetting default attributes
- ## Custom user attributes
- ### Setting custom attributes
- ### Unsetting custom attributes
- ### Nesting custom attributes
- ### Using the REST API
- ## Setting user subscriptions
- ### Setting email subscriptions
- ### Setting push notification subscription
- ## Prerequisites
- ## Default user attributes
- ### Supported attributes
- ### Setting default attributes
- ### Unsetting default attributes
- ## Custom user attributes
- ### Setting custom attributes
- ### Incrementing or decrementing custom attributes
- ### Unsetting custom attributes
- ### Nesting custom attributes
- ### Using the REST API
- ## Setting user subscriptions
- ### Setting email subscriptions
- ### Setting push notification subscriptions
- ## Prerequisites
- ## Default user attributes
- ### Supported attributes
- ### Setting default attributes
- ## Custom user attributes
- ### Setting custom attributes
- ### Unsetting custom attributes
- ## Prerequisites
- ## Default user attributes
- ### Predefined methods
- ### Setting default attributes
- ## Custom user attributes
- ### Settings custom attributes
- ### Incrementing and decrementing custom attributes
- ### Unsetting custom attributes
- ### Using the REST API
- ## Setting email subscriptions
- ## Prerequisites
- ## Default user attributes
- ### Predefined methods
- ### Setting default attributes
- ### Unsetting default attributes
- ## Custom user attributes
- ### Setting custom attributes
- ### Unsetting custom attributes
- ### Using the REST API
- ## Setting user subscriptions
- ### Setting email subscriptions
- ### Setting push notification subscriptions
- ## Prerequisites
- ## Logging custom attributes
- ### Default user attributes
- ### Custom user attributes
- #### Unsetting custom attributes
- #### Custom Attribute Arrays
- [Braze SDK를 통해 커스텀 이벤트 기록하기](/docs/ko/developer_guide/analytics/logging_events/index.md): 목록에 없는 래퍼 SDK의 경우 관련 네이티브 Android 또는 Swift 메서드를 대신 사용하세요.
- # 커스텀 이벤트 기록 {#log-custom-events}
- ## 커스텀 이벤트 로깅하기 {#logging-a-custom-event}
- ## 메타데이터 등록정보 추가하기 {#adding-metadata-properties}
- ## 모범 사례 {#best-practices}
- ### 이벤트 확인 {#verify-events}
- ### 로그 확인 {#verify-log}
- ### 값 확인 {#verify-values}
- ## 커스텀 이벤트 문제 해결 {#troubleshooting-custom-events}
- ### 커스텀 이벤트 트리거 확인 {#verifying-the-custom-event-trigger}
- ### 커스텀 이벤트가 익명 프로필에 기록됨 {#custom-events-are-logged-to-an-anonymous-profile}
- ### 커스텀 이벤트 로깅 설정 확인 {#verifying-custom-event-logging-setup}
- [Braze SDK를 통한 구매 기록](/docs/ko/developer_guide/analytics/logging_purchases/index.md): 목록에 없는 래퍼 SDK의 경우 관련 네이티브 Android 또는 Swift 메서드를 대신 사용하세요.
- # 구매 기록
- ## 구매 및 수익 기록하기
- ### 속성정보 추가
- ### 수량 추가
- ### REST API 사용
- ## 주문 기록
- ## 예약 키
- ## 지원되는 통화
- [Braze SDK를 통한 eCommerce 이벤트 기록](/docs/ko/developer_guide/analytics/logging_ecommerce_events/index.md): 목록에 없는 래퍼 SDK의 경우, 관련 네이티브 Android 또는 Swift 메서드를 대신 사용하세요.
- # eCommerce 이벤트 기록 {#log-ecommerce-events}
- ## 이벤트 스키마 {#event-schemas}
- ## Android
- ### 공유 빌딩 블록 {#shared-building-blocks}
- ### 클라이언트 측 유효성 검사 {#client-side-validation}
- ### 코드 예제 {#code-examples}
- ## iOS
- ### 코드 예제
- ## Web
- ### 코드 예제
- ## logCustomEvent를 사용한 수동 기록 {#manual-logging-with-logcustomevent}
- [Braze SDK를 통해 콘텐츠 카드 데이터를 기록하십시오](/docs/ko/developer_guide/analytics/logging_channel_data/content_cards/index.md): When implementing your custom Content Cards, you can parse the Content Card objects and extract their payload data such as title, cardDescription, and imageUrl. Then, you can use the resulting model data to populate your custom UI.
- # 콘텐츠 카드 데이터를 기록하십시오
- ## Logging analytics
- ### Step 1: Create a private subscriber variable
- ### Step 2: Subscribe to updates
- ### Step 3: Unsubscribe
- ### Step 1: Create a private subscriber variable
- ### Step 2: Subscribe to updates
- ### Step 3: Unsubscribe
- ### Cancellable
- ### AsyncStream
- ## Logging events
- ## Handling on-click behavior
- [Braze SDK를 통해 인앱 메시지 데이터를 기록하십시오](/docs/ko/developer_guide/analytics/logging_channel_data/in_app_messages/index.md): Before you can use this feature, you'll need to integrate the Web Braze SDK.
- # 인앱 메시지 데이터를 기록하십시오
- ## Prerequisites
- ## Logging message data
- ## Prerequisites
- ## Logging message data
- ## Accessing message data
- ### Listen for in-app message data in the Dart layer
- ### Forward in-app message data from the native layer
- ### Replaying the callback for in-app messages (optional)
- ## Prerequisites
- ## Methods for logging
- ## Handling message data
- ### Overriding the default UI delegate
- ### Overriding the default native UI
- ## Prerequisites
- ## Logging message data
- ### Displayed messages
- ### Clicked messages
- ### Clicked buttons
- ### After processing a message
- ## Subscribing to in-app messages
- ## Parsing messages
- ## Logging message data
- [Braze SDK를 통해 푸시 알림 데이터를 기록하십시오](/docs/ko/developer_guide/analytics/logging_channel_data/push_notifications/index.md): You can log analytics in real-time by making calls to the /users/track endpoint. To log analytics, send the braze_id value from the Braze dashboard to identify which user profile to update.
- # 푸시 알림 데이터를 기록하십시오
- ## Logging data with the Braze API (recommended)
- ## Manually logging data
- ## Logging data with the Braze API (recommended)
- ## Logging data manually
- ### Step 1: Configure app groups within Xcode
- ### Step 2: Integrate code snippets
- #### Saving custom events
- #### Sending custom events to Braze
- #### Saving custom attributes
- #### Sending custom attributes to Braze
- #### Saving user attributes
- #### Sending user attributes to Braze
- #### Helper files
- [Braze SDK를 통한 세션 추적](/docs/ko/developer_guide/analytics/tracking_sessions/index.md): 목록에 없는 래퍼 SDK의 경우 관련 네이티브 Android 또는 Swift 메서드를 대신 사용하세요.
- # 세션 추적 {#track-sessions}
- ## About the session lifecycle
- ## 비활성 정의 {#defining-inactivity}
- ### 비활성 측정 방식 {#how-inactivity-is-measured}
- ### 세션 타임아웃 구성 {#session-timeout-configuration}
- ### 예시: 비활성 시나리오 이해하기 {#example-understanding-inactivity-scenarios}
- ### 커스텀 비활성 추적 {#tracking-custom-inactivity}
- ## 세션 업데이트 구독하기 {#subscribing-to-session-updates}
- ### 1단계: 업데이트 구독 {#step-1-subscribe-to-updates}
- ### 2단계: 세션 추적 테스트(선택 사항) {#step-2-test-session-tracking-optional}
- ## 기본 세션 타임아웃 변경하기 {#change-session-timeout}
- ## 문제 해결 {#troubleshooting}
- ### 고객 프로필의 세션 수가 0인 경우 {#user-profile-has-0-sessions}
- ### 일부 사용자가 세션을 기록하지 않는 경우 {#some-users-are-not-logging-sessions}
- [Braze SDK를 통해 위치 추적](/docs/ko/developer_guide/analytics/tracking_location/index.md): To get a user's current location, use the geolocation API's getCurrentPosition() method. This will immediately prompt the user to allow or disallow tracking (unless they've already done so).
- # 위치 추적
- ## Logging the current location
- ## Continuously tracking the location
- ## Logging the current location
- ## Continuously tracking the location
- ## Disabling continuous tracking
- ## Logging the current location
- ### Step 1: Configure your project
- ### Step 2: Log the user's location
- ## Prerequisites
- ## Setting the last known location
- ## Setting a custom location attribute
- ## Requesting location initialization (Android only)
- ## Geofences
- ### Manually requesting geofences
- [Braze SDK를 통한 제거 추적](/docs/ko/developer_guide/analytics/tracking_uninstalls/index.md): The Android Braze SDK uses Firebase Cloud Messaging (FCM) to send silent push notifications, which are used to collect uninstall tracking analytics. If you haven't already, set up or migrate to the Firebase Cloud Messaging API for push notifications.
- # 제거 추적
- ## Setting up uninstall tracking
- ### Step 1: Set up FCM
- ### Step 2: Manually detect uninstall tracking (optional)
- ### Step 3: Remove automatic server pings
- ### Step 4: Enable uninstall tracking
- ## Setting up uninstall tracking
- ### Step 1: Enable background push
- ### Step 2: Ignore internal push notifications
- ### Step 3: Send a test push (optional)
- ### Step 3: Enable uninstall tracking
- [Braze SDK 데이터 수집 관리](/docs/ko/developer_guide/analytics/managing_data_collection/index.md): This guide uses code samples from the Braze Web SDK 4.0.0+. To upgrade to the latest Web SDK version, see SDK Upgrade Guide.
- # 데이터 수집 관리 {#manage-data-collection}
- ## Disabling data tracking
- ### Best practices
- ## Resuming data tracking
- ## Google Play privacy questionnaire {#privacy-questionnaire}
- ### Questions
- ### Data collection
- ## Disabling data tracking
- ## Wiping previously-stored data
- ## Resuming data tracking
- ## Apple's privacy manifest {#privacy-manifest}
- ### What is tracking data?
- ### What is a privacy manifest?
- ### API tracking-data domains
- ## Declaring Braze tracking data
- ### Prerequisites
- ### Step 1: Review your current policies
- ### Step 2: Create a privacy manifest
- ### Step 3: Add your endpoint to the privacy manifest
- ### Step 4: Declare your tracking data
- ### Step 5: Prevent infinite retry loops
- ## Disabling data tracking
- ## Wiping previously-stored data
- ## Resuming data tracking
- ## IDFV collection
- ### Considerations
- #### SDK Version
- #### Downstream
- ### Frequently asked questions
- #### Will this change impact my existing users in Braze?
- #### Can I turn this feature off after turning it on?
- #### Can I still capture the IDFV value via Braze elsewhere?
- ## Prerequisites
- ## Disabling data tracking
- ## Resuming data tracking
- ## Wiping data
- ## Flushing data
- ## Setting ad-tracking enabled
- ## Updating the tracking property allow list (iOS only)
- ## Prerequisites
- ## Wiping previously-stored data
- ### Step 1: Clear the registry sections
- ### Step 2: Re-initialize the Braze SDK
- [Braze MCP 서버에 대하여](/docs/ko/developer_guide/mcp_server/index.md): The locally hosted Braze MCP server (beta) is sunsetting this summer. It will continue to work, but we're no longer adding endpoints or supporting the beta. A remote, Braze-hosted MCP server is coming to Early Access this summer.
- # The Braze MCP server
- ## Sunsetting the locally hosted Braze MCP server
- ## What is Model Context Protocol (MCP)?
- ## About the Braze MCP server
- ## Usage example
- ## Frequently Asked Questions (FAQ) {#faq}
- ### Which MCP clients are supported?
- ### What Braze data can my MCP client access?
- ### Can my MCP client change Braze data?
- ### Can I use a third-party MCP server for Braze?
- ### Why doesn't the Braze MCP server offer PII access?
- ### Can I reuse my API keys?
- ### Is the Braze MCP server hosted locally or remotely?
- ### Why is Cursor only listing functions?
- ### What do I do when the agent returns an answer that looks incorrect?
- ## Disclaimer
- [Braze MCP 서버를 설정하세요](/docs/ko/developer_guide/mcp_server/setup/index.md): The locally hosted Braze MCP server (beta) is sunsetting this summer. It will continue to work, but we're no longer adding endpoints or supporting the beta. A remote, Braze-hosted MCP server is coming to Early Access this summer.
- # Setting up the Braze MCP server
- ## Prerequisites
- ## Setting up the Braze MCP server
- ### Step 1: Install uv
- ### Step 2: Create an API key {#create-api-key}
- #### Campaigns
- #### Canvas
- #### Catalogs
- #### Cloud Data Ingestion
- #### Content Blocks
- #### Custom Attributes
- #### Events
- #### KPIs
- #### Media Library
- #### Messages
- #### Preference Center
- #### Purchases
- #### Segments
- #### Sends
- #### Sessions
- #### SDK Authentication Keys
- #### Subscription
- #### Templates
- ### Step 3: Get your identifier and endpoint
- ### Step 4: Configure your MCP client {#configure-client}
- ### Step 5: Send a test prompt
- ## Troubleshooting
- ### Terminal errors
- #### uvx command not found
- #### spawn uvx ENOENT error
- #### Package installation fails
- ### Client configuration
- #### "This extension is not compatible with your device"
- #### MCP client can't find the Braze server
- #### Authentication errors
- #### Connection timeouts or network errors
- ## Disclaimer
- [Braze MCP 서버 사용하기](/docs/ko/developer_guide/mcp_server/usage/index.md): The locally hosted Braze MCP server (beta) is sunsetting this summer. It will continue to work, but we're no longer adding endpoints or supporting the beta. A remote, Braze-hosted MCP server is coming to Early Access this summer.
- # Using the Braze MCP server
- ## Prerequisites
- ## Best practices
- ## Usage examples
- ### What are my available Braze functions?
- ### Get details about a Canvas ID
- ### Show me my recent Canvases
- ### Create an email template
- ### Update a content block
- ## Disclaimer
- [Braze MCP 서버에서 사용 가능한 API 기능](/docs/ko/developer_guide/mcp_server/available_api_functions/index.md): The locally hosted Braze MCP server (beta) is sunsetting this summer. It will continue to work, but we're no longer adding endpoints or supporting the beta. A remote, Braze-hosted MCP server is coming to Early Access this summer.
- # Braze MCP server functions
- ## Prerequisites
- ## Available Braze API functions
- ### General functions
- ### Campaigns
- ### Canvases
- ### Catalogs
- ### Cloud Data Ingestion
- ### Content Blocks
- ### Custom Attributes
- ### Events
- ### KPIs
- ### Media Library
- ### Messages
- ### Preference Centers
- ### Purchases
- ### Segments
- ### Sends
- ### Sessions
- ### SDK Authentication Keys
- ### Subscription
- ### Templates
- ## Disclaimer
- [BrazeAI Decisioning Studio™ 시작하기](/docs/ko/developer_guide/decisioning_studio/index.md): BrazeAI Decisioning Studio™ replaces A/B testing with decisioning agents that personalize everything, and maximize any metric: drive dollars, not clicks—with Decisioning Studio, you can optimize any business metric.
- # BrazeAI Decisioning Studio™
- ## What is BrazeAI Decisioning Studio™?
- ## Key features
- ## About Decisioning Studio
- ### How it works
- ### Decisioning Agents vs. BrazeAI Agents
- ## Decisioning Studio Go vs. Decisioning Studio Pro
- ### Decisioning Studio Go
- ### Decisioning Studio Pro
- ### About this guide
- ## Next steps
- [BrazeAI 결정 스튜디오™ 통합](/docs/ko/developer_guide/decisioning_studio/integration/index.md): While BrazeAI Decisioning Studio™ works best with Braze, a variety of other platforms are already supported. We'll continue updating our documentation so you'll have everything you need—even if you're not using Braze.
- # Integrating BrazeAI Decisioning Studio™
- ## Prerequisites
- ## Integrating decision studio
- ### Step 1: Get your endpoint URL
- ### Step 2: Create an API key
- ### Step 3: Contact your BrazeAI Decisioning Studio™ customer success manager
- [BrazeAI Decisioning Studio™를 위한 에이전트 구축](/docs/ko/developer_guide/decisioning_studio/building_agents/index.md): While BrazeAI Decisioning Studio™ works best with Braze, a variety of other platforms are already supported. We'll continue updating our documentation so you'll have everything you need—even if you're not using Braze.
- # Building AI decisioning agents
- ## About agents
- ## Sample agents
- ## Building an agent
- ### Prerequisites
- ### Step 1: Contact AI Expert Services
- ### Step 2: Design your agent
- ### Step 3: Set up your delivery platform
- ### Step 4: Launch and monitor
- [REST API를 사용한 메시지 전송](/docs/ko/developer_guide/rest_api/sending_messages/index.md): 이 접근 방식은 API가 지원하는 모든 메시징 채널(WhatsApp, 이메일, SMS, 푸시, Content Cards, 웹훅 등)에서 작동합니다.
- # REST API를 사용한 메시지 전송 {#sending-messages-using-the-rest-api}
- ## 보내는 두 가지 방법 {#two-ways-to-send}
- ## 옵션 1: 요청에 메시지 내용을 포함하여 전송(/messages/send) {#option-1-send-with-message-content-in-the-request-messagessend}
- ### 예시: WhatsApp 템플릿 메시지 {#example-whatsapp-template-message}
- ### 예시: 이메일 {#example-email}
- ## 옵션 2: 대시보드의 콘텐츠로 Campaign 트리거(/campaigns/trigger/send) {#option-2-trigger-a-campaign-with-content-in-the-dashboard-campaignstriggersend}
- ### 1단계: API 트리거 Campaign 생성 {#step-1-create-an-api-triggered-campaign}
- ### 2단계: API를 통해 Campaign 트리거 {#step-2-trigger-the-campaign-via-the-api}
- ## 통합 확인 {#verify-your-integration}
- ## 고려 사항 {#considerations}
- [REST API를 사용하여 SMS 메시지 전송](/docs/ko/developer_guide/rest_api/sending_sms_messages/index.md): 특히 백엔드 시스템에서 콘텐츠가 정의되는 대량의 트랜잭션 메시징에 유용합니다. 예를 들어, 다른 사용자로부터 메시지를 받았을 때 소비자에게 알림을 보내 웹사이트를 방문하여 받은편지함을 확인하도록 안내할 수 있습니다.
- # REST API를 사용하여 SMS 메시지 전송 {#sending-sms-messages-using-the-rest-api}
- ## 필수 조건 {#prerequisites}
- ## 1단계: API 캠페인 생성 {#step-1-create-an-api-campaign}
- ## 2단계: API를 사용하여 SMS 메시지 전송 {#step-2-send-an-sms-message-using-the-api}
- ### 예시 요청 {#example-request}
- ## 3단계: 통합 확인 {#step-3-verify-your-integration}
- ## 고려 사항 {#considerations}
- [REST API를 사용하여 이메일 메시지 발송](/docs/ko/developer_guide/rest_api/sending_email_messages/index.md): 이 방식은 콘텐츠가 백엔드 시스템에서 정의되는 트랜잭션 메시징에 특히 유용합니다. 예를 들어, 소비자가 다른 사용자로부터 메시지를 받았을 때 웹사이트를 방문하여 받은편지함을 확인하도록 알림을 보낼 수 있습니다.
- # REST API를 사용하여 이메일 메시지 발송 {#sending-email-messages-using-the-rest-api}
- ## 필수 조건 {#prerequisites}
- ## 1단계: API 캠페인 생성 {#step-1-create-an-api-campaign}
- ## 2단계: API를 사용하여 이메일 발송 {#step-2-send-an-email-using-the-api}
- ### 요청 예시 {#example-request}
- ## 3단계: 통합 확인 {#step-3-verify-your-integration}
- ## 고려 사항 {#considerations}
- [사용자에게 제품 추천하기](/docs/ko/developer_guide/rest_api/recommending_products/index.md): 이 접근 방식을 사용하면 다음을 수행할 수 있습니다:
- # 사용자에게 제품 추천하기 {#recommending-products-to-users}
- ## 필수 조건 {#prerequisites}
- ## 1단계: 고객 프로필에 추천 저장 {#step-1-store-recommendations-on-user-profiles}
- ### 요청 예시 {#example-request}
- ## 2단계: 제품 메타데이터 검색 {#step-2-retrieve-product-metadata}
- ### 옵션 A: Braze 카탈로그 {#option-a-braze-catalogs}
- #### 특정 카탈로그 항목 추천 {#recommend-a-specific-catalog-item}
- #### 여러 카탈로그 항목 추천 {#recommend-multiple-catalog-items}
- #### 사용자의 추천을 사용하여 항목 템플릿화 {#template-items-using-a-users-recommendation}
- ### 옵션 B: 연결된 콘텐츠 {#option-b-connected-content}
- ## 3단계: 통합 확인 {#step-3-verify-your-integration}
- ## 고려 사항 {#considerations}
- [현지화](/docs/ko/developer_guide/localization/index.md): 영어 외에도 Braze는 앱에 표시되는 SDK 메시지를 위한 여러 언어를 지원합니다.
- # 현지화 {#localization}
- ## 현지화 정보 {#about-localization}
- ## Supported language codes
- [지오펜스](/docs/ko/developer_guide/geofences/index.md): Before you can use this feature, you'll need to integrate the Android Braze SDK.
- # 지오펜스 {#geofences}
- ## Prerequisites
- ## Setting up geofences {#setting-up-geofences}
- ### Step 1: Enable in Braze
- ### Step 2: Update build.gradle
- ### Step 3: Update the manifest
- ### Step 4: Enable Braze location collection
- ### Step 5: Obtain location permissions from the end user
- ### Step 6: Manually request geofence updates (optional)
- #### Step 6.1: Disable automatic geofence requests
- #### Step 6.2: Manually request Braze geofence with GPS coordinate
- ## Prerequisites
- ## Setting up geofences {#setting-up-geofences}
- ### Step 1: Enable in Braze
- ### Step 2: Enable your app's location services
- #### Step 2.1: Add the BrazeLocation module
- #### Step 2.2: Update your Info.plist
- ### Step 3: Enable geofences in your code
- #### Step 3.1: Enable background reporting (optional)
- ### Step 4: Request authorization {#request-authorization}
- ## Manually request geofences {#manually-request-geofences}
- ### Step 1: Set automaticGeofenceRequests to false
- ### Step 2: Call requestGeofences manually
- ## Frequently Asked Questions (FAQ) {#faq}
- #### Why am I not receiving geofences on my device?
- ##### iOS operating system limitations
- ##### Rate limiting
- #### How does it work if I am using both Braze and non-Braze geofence features?
- #### Can the Geofences feature be used while a device is offline?
- #### Why are geofences not monitored when my app is backgrounded/terminated?
- ## Prerequisites
- ## Prerequisites
- ## Setting up geofences {#setting-up-geofences}
- ### Step 1: Enable in Braze
- ### Step 2: Add dependencies
- ### Step 3: Update your AndroidManifest.xml
- ### Step 4: Configure Braze location collection
- ### Step 5: Request location permissions at runtime
- ### Step 6: Manually request geofence updates (optional)
- ### Step 2: Add dependencies
- ### Step 3: Configure location usage in Info.plist
- ### Step 4: Enable geofences in your Braze configuration
- ### Step 5: Enable background location updates (optional)
- ### Step 6: Request location authorization
- ## Prerequisites
- ## Setting up geofences {#setting-up-geofences}
- ### Step 1: Enable in Braze
- ### Step 2: Complete native Android setup
- ### Step 3: Complete native iOS setup
- ### Step 4: Request geofences from JavaScript
- ### Step 5: Manually request geofences (optional)
- [저장](/docs/ko/developer_guide/storage/index.md): 기본적으로 Braze는 기기, 언어, 시간대를 기반으로 메시지를 개인화할 수 있도록 다음과 같은 기기 수준 등록정보를 수집합니다.
- # 저장 {#storage}
- ## 기기 등록정보 {#device-properties}
- ## 쿠키 저장(웹 전용) {#cookies}
- ### 쿠키 만료 변경하기 {#cookie-expiry}
- ### 쿠키 비활성화하기 {#disable-cookies}
- [Braze SDK의 네트워크 설정](/docs/ko/developer_guide/network/index.md): Network offline mode is an optional feature that pauses or resumes outbound network requests from the Braze SDK at any point during runtime. Events are not lost during the offline state. This reference article covers how to integrate this mode.
- # 네트워크 설정 {#network-settings}
- ## Network offline mode
- ## Network traffic control
- ### Requesting processing policies
- ### Manually flushing user data
- ### Setting the request processing policy
- [Braze SDK 참조, 리포지토리 및 샘플 앱](/docs/ko/developer_guide/references/index.md): 문서 내 미러링된 리포지토리 README 콘텐츠는 리포지토리 가이드를 참조하세요.
- # 참조, 리포지토리 및 샘플 앱 {#references-repositories-and-sample-apps}
- ## 리소스 목록 {#list-of-resources}
- ## 샘플 앱 빌드 {#building-a-sample-app}
- ### "Droidboy" 빌드 {#building-droidboy}
- ### "Hello Braze" 빌드 {#building-hello-braze}
- ### Swift 테스트 앱 빌드 {#building-swift-test-apps}
- [리포지토리 가이드](/docs/ko/developer_guide/sdk_repository_guides/index.md): 플랫폼별로 다음 리포지토리 가이드를 선택하세요:
- # 리포지토리 가이드 {#repository-guides}
- ## 사용 가능한 리포지토리 가이드 {#available-repository-guides}
- [Web SDK 리포지토리 가이드](/docs/ko/developer_guide/sdk_repository_guides/web/index.md):
- ## Braze Web SDK 소개 {#about-the-braze-web-sdk}
- ### 주요 기능 {#what-you-can-do}
- ## 필수 조건 {#prerequisites}
- ### 자격 증명 확인하기 {#getting-your-credentials}
- ## 설치 {#installation}
- ## 빠른 시작 {#quick-start}
- ## 구성 참조 {#configuration-reference}
- ### 초기화 옵션 {#initialization-options}
- ## 핵심 기능 {#core-features}
- ### 초기화 및 설정 {#initialization-setup}
- #### 기본 초기화 {#basic-initialization}
- #### 고급 초기화 옵션 {#advanced-initialization-options}
- ### 사용자 관리 {#user-management}
- #### 사용자 변경 {#change-user}
- #### 사용자 속성 설정 {#set-user-attributes}
- #### 사용자 위치 설정 {#set-user-location}
- #### 사용자 별칭 및 구독 그룹 {#user-aliases-and-subscription-groups}
- #### 사용자 로그아웃 {#user-logout}
- ### In-App Messages
- #### 자동 표시 {#automatic-display}
- #### 수동 표시 {#manual-display}
- #### 커스텀 인앱 메시지 처리 {#custom-in-app-message-handling}
- #### 인앱 메시지 상호작용 기록 {#log-in-app-message-interactions}
- #### 커스텀 HTML 인앱 메시지 {#custom-html-in-app-messages}
- ### Content Cards
- #### Content Cards 표시 {#display-content-cards}
- #### Content Cards 업데이트 구독 {#subscribe-to-content-cards-updates}
- #### Content Cards 상호작용 기록 {#log-content-card-interactions}
- #### Content Cards 필터링 {#filter-content-cards}
- #### Content Cards 새로고침 요청 {#request-content-cards-refresh}
- #### 커스텀 Content Cards {#custom-content-cards}
- ### 푸시 알림 {#push-notifications}
- #### 푸시 권한 요청 {#request-push-permission}
- #### 푸시 지원 확인 {#check-push-support}
- #### 푸시 등록 해제 {#unregister-push}
- ### 기능 플래그 {#feature-flags}
- #### 기능 플래그 가져오기 {#get-feature-flag}
- #### 기능 플래그 업데이트 구독 {#subscribe-to-feature-flag-updates}
- #### 기능 플래그 노출 기록 {#log-feature-flag-impressions}
- #### 기능 플래그 새로고침 요청 {#request-feature-flags-refresh}
- ### 배너 {#banners}
- #### 배너 가져오기 및 표시 {#get-and-display-banners}
- #### 배너 업데이트 구독 {#subscribe-to-banner-updates}
- #### 배너 새로고침 요청 {#request-banner-refresh}
- ### 분석 및 이벤트 {#analytics-events}
- #### 커스텀 이벤트 기록 {#log-custom-events}
- #### 구매 기록 {#log-purchases}
- #### 데이터 플러시 요청 {#request-data-flush}
- ### 세션 관리 {#session-management}
- #### 세션 열기 {#open-session}
- #### SDK 상태 확인 {#check-sdk-status}
- #### SDK 활성화/비활성화 {#enabledisable-sdk}
- ### 데이터 관리 {#data-management}
- #### 데이터 삭제 {#wipe-data}
- #### SDK 제거 {#destroy-sdk}
- #### 기기 ID 가져오기 {#get-device-id}
- #### SDK 인증 {#sdk-authentication}
- #### 인증 실패 구독 {#subscribe-to-authentication-failures}
- ## 통합 패턴 {#integration-patterns}
- ### SSR 프레임워크 {#ssr-frameworks}
- ### Vite
- ### Jest 프레임워크 {#jest-framework}
- ### 비동기 모듈 정의(AMD) {#asynchronous-module-definition-amd}
- #### AMD 지원 비활성화 {#disable-amd-support}
- #### 모듈 로더 {#module-loader}
- ### 가속 모바일 페이지(AMP) {#accelerated-mobile-pages-amp}
- ### Electron
- ### CDN 통합 {#cdn-integration}
- ### 서비스 워커(푸시 알림) {#service-worker-push-notifications}
- ### 태그 관리자 {#tag-managers}
- #### Tealium iQ
- #### 기타 태그 관리자 {#other-tag-managers}
- ## 라이브러리 {#libraries}
- ## 지원 브라우저 {#supported-browsers}
- ## 디버깅 및 문제 해결 {#debugging-troubleshooting}
- ## Font Awesome
- ## 추가 리소스 {#additional-resources}
- ## 문의 {#contact}
- [Android SDK 리포지토리 가이드](/docs/ko/developer_guide/sdk_repository_guides/android/index.md):
- ## Braze Android SDK 소개 {#about-the-braze-android-sdk}
- ## 빠른 시작 {#quickstart}
- ## 버전 지원 {#version-support}
- ## 모듈 {#modules}
- ## 연락처 {#contact}
- [Swift SDK 리포지토리 가이드](/docs/ko/developer_guide/sdk_repository_guides/swift/index.md):
- ## Braze Swift SDK 소개 {#about-the-braze-swift-sdk}
- ## 빠른 시작 {#quickstart}
- ## 버전 지원 {#version-support}
- ## 패키지 매니저 {#package-managers}
- ## 라이브러리 {#libraries}
- ## 예제 {#examples}
- ## 대체 리포지토리 {#alternative-repositories}
- ## 연락처 {#contact}
- [JavaScript SDK 리포지토리 가이드](/docs/ko/developer_guide/sdk_repository_guides/javascript/index.md):
- ## Braze JavaScript SDK 소개 {#about-the-braze-javascript-sdk}
- ### 아키텍처 개요 {#architecture-overview}
- ## 빠른 시작 {#quickstart}
- ## 필수 조건 {#prerequisites}
- ### 자격 증명 확인하기 {#getting-your-credentials}
- ## 통합 {#integration}
- ### API 호출하기 {#calling-the-api}
- ### 핵심 개념 {#core-concepts}
- #### 필수 구현 {#required-implementations}
- #### 데이터 플러시 {#data-flushing}
- ### 통합 패턴 {#integration-patterns}
- #### 기본 통합 {#basic-integration}
- #### 커스텀 스토리지 구현 {#custom-storage-implementation}
- #### 커스텀 네트워크 구현 {#custom-network-implementation}
- #### 오류 처리 {#error-handling}
- #### 구독 관리 {#subscription-management}
- ### 일반적인 사용 사례 {#common-use-cases}
- #### 사용자 식별 및 속성 추적 {#user-identification-and-attribute-tracking}
- #### 이벤트 로깅 및 분석 {#event-logging-and-analytics}
- #### 인앱 메시지 처리 {#in-app-message-handling}
- ### 오류 처리 및 엣지 케이스 {#error-handling-edge-cases}
- #### 일반적인 오류 조건 {#common-error-conditions}
- ### 중요한 구현 참고 사항 {#important-implementation-notes}
- ## 디버깅 / 문제 해결 {#debugging-troubleshooting}
- ## 문의 {#contact}
- [Cordova SDK 리포지토리 가이드](/docs/ko/developer_guide/sdk_repository_guides/cordova/index.md):
- ## Braze Cordova SDK 소개 {#about-the-braze-cordova-sdk}
- ## 최소 버전 요구 사항 {#minimum-version-requirements}
- ## SDK 설치 {#installing-the-sdk}
- ## 샘플 애플리케이션 실행 {#running-the-sample-application}
- [Flutter SDK 리포지토리 가이드](/docs/ko/developer_guide/sdk_repository_guides/flutter/index.md):
- ## Braze Flutter SDK 소개 {#about-the-braze-flutter-sdk}
- ## 빠른 시작 {#quickstart}
- ### Android
- ### iOS
- ### Dart
- ## 버전 지원 {#version-support}
- ## 샘플 앱 {#sample-app}
- ## 문의 {#contact}
- [React Native SDK 리포지토리 가이드](/docs/ko/developer_guide/sdk_repository_guides/react_native/index.md):
- ## Braze React Native SDK 소개 {#about-the-braze-react-native-sdk}
- ### 주요 기능 {#what-you-can-do}
- ## 필수 조건 {#prerequisites}
- ## 설치 {#installation}
- ## 빠른 시작 {#quick-start}
- ## 네이티브 설정 {#native-setup}
- ### Android
- ### iOS
- ## 구성 참조 {#configuration-reference}
- ### Android (braze.xml)
- ### iOS (Braze.Configuration)
- ## JavaScript / TypeScript API
- ## 핵심 기능 {#core-features}
- ### 사용자 관리 {#user-management}
- ### 인앱 메시지 {#in-app-messages}
- ### Content Cards
- ### 배너 {#banners}
- ### 푸시 알림 {#push-notifications}
- ### 피처 플래그 {#feature-flags}
- ### 분석 및 구매 {#analytics-and-purchases}
- ### 데이터 관리 및 SDK 상태 {#data-management-and-sdk-state}
- ## 이벤트 {#events}
- ## 통합 참고 사항 {#integration-notes}
- ## - Jest: react-native 네이티브 모듈 또는 Braze Turbo 모듈을 모킹합니다(패턴은 이 리포지토리의 tests/jest.setup.js를 참조하세요). {#jest-mock-react-native-native-modules-or-the-braze-turbo-module-see-testsjestsetupjs-in-this-repo-for-patterns}
- ## 버전 지원 {#version-support}
- ## Braze Expo 플러그인 {#braze-expo-plugin}
- ## 샘플 앱 {#sample-app}
- ## 디버깅 및 문제 해결 {#debugging-and-troubleshooting}
- ## 추가 리소스 {#additional-resources}
- ## 문의 {#contact}
- [Roku SDK 리포지토리 가이드](/docs/ko/developer_guide/sdk_repository_guides/roku/index.md):
- ## Braze Roku SDK 소개 {#about-the-braze-roku-sdk}
- ## 초기 SDK 통합 {#initial-sdk-integration}
- ## 1단계: 파일 추가 {#step-1-add-files}
- ## 2단계: 참조 추가 {#step-2-add-references}
- ## 3단계: 구성 {#step-3-configure}
- ## 4단계: Braze 초기화 {#step-4-initialize-braze}
- ## 인앱 메시지 설정 {#in-app-message-setup}
- ## 기본 SDK 통합 완료 {#basic-sdk-integration-complete}
- ## 추가 참조 {#additional-reference}
- [Unity SDK 리포지토리 가이드](/docs/ko/developer_guide/sdk_repository_guides/unity/index.md):
- ## Braze Unity SDK 소개 {#about-the-braze-unity-sdk}
- ## 플러그인 설정 {#plugin-setup}
- ## 통합 설정 {#integration-setup}
- ## 연락처 {#contact}
- [.NET MAUI (Xamarin) SDK 리포지토리 가이드](/docs/ko/developer_guide/sdk_repository_guides/xamarin/index.md):
- ## Braze .NET MAUI (Xamarin) SDK 소개 {#about-the-braze-net-maui-xamarin-sdk}
- ## 구성요소 {#components}
- ## 버전 관리 {#versioning}
- ### 네이티브 바인딩 {#native-bindings}
- ### Xamarin 및 Xamarin.Forms {#xamarin-xamarinforms}
- ## 질문이 있으신가요? {#questions}
- [변경 로그](/docs/ko/developer_guide/changelogs/index.md): 웹 Braze SDK 변경 로그 사본은 GitHub에서도 찾을 수 있습니다.
- # Braze SDK 변경 로그
- [공개 및 검증](/docs/ko/developer_guide/disclosures/index.md)
- [보안 취약점 공개](/docs/ko/developer_guide/disclosures/security_and_vulnerability_disclosure/index.md):