개요
Android 푸시 알림은 Android 앱에서 지속적인 사용자 참여와 유지를 촉진하는 데 필수적입니다. 사용자에게 실시간 업데이트, 알림 및 개인화된 메시지를 직접 전달하여 앱의 전반적인 사용자 경험과 끈끈함을 향상시킵니다. OneSignal은 Firebase Cloud Messaging(FCM)을 활용하지만 이 가이드에 표시된 것처럼 훨씬 더 많은 유연성과 기능을 제공하도록 설계되었습니다.요구 사항
- “Google Play 스토어(서비스)“가 설치된 Android 7.0+ 기기 또는 에뮬레이터.
- Android Studio(설정 지침은 Android Studio Meerkat 사용).
- 구성된 OneSignal 앱 및 플랫폼.
OneSignal 앱 및 플랫폼 구성
푸시 알림에 필요한 설정 OneSignal로 푸시 알림 전송을 시작하려면 먼저 지원하는 모든 플랫폼(Apple (APNs), Google (FCM), Huawei (HMS) 및/또는 Amazon (ADM))으로 OneSignal 앱을 구성해야 합니다.OneSignal 앱 구성을 위한 단계별 지침.
OneSignal 앱 구성을 위한 단계별 지침.
앱 만들기 또는 선택
- 기존 앱에 플랫폼을 추가하려면 OneSignal 대시보드에서 설정 > 푸시 및 인앱으로 이동합니다.
- 처음부터 시작하려면 New App/Website를 클릭하고 프롬프트를 따릅니다.

새 앱 만들기를 보여주는 예제.
플랫폼 설정 및 활성화
- 앱 및 조직에 대해 명확하고 인식 가능한 이름을 선택합니다.
- 구성하려는 플랫폼(iOS, Android 등)을 선택합니다.
- Next: Configure Your Platform을 클릭합니다.

첫 번째 OneSignal 앱, 조직 및 채널 설정 예제.
플랫폼 자격 증명 구성
- Android: Firebase 자격 증명 설정
- iOS: p8 토큰(권장) 또는 p12 인증서
- Amazon: API 키 생성
- Huawei: OneSignal 권한 부여
대상 SDK 선택

문서로 이동할 사용 중인 SDK 선택.
SDK 설치 및 앱 ID 저장

앱 ID를 저장하고 추가 팀 구성원을 초대합니다.
Android 설정
1. OneSignal SDK 추가
Android Studio에서build.gradle.kts (Module: app) 또는 build.gradle (Module: app) 파일을 열고 dependencies에 OneSignal을 추가합니다.

앱의 build.gradle.kts 파일에 OneSignal을 추가하는 예제입니다.
Gradle 동기화
종속성을 추가한 후 프로젝트를 동기화합니다:- 배너에서 Sync Now 클릭
- 또는 파일 > Gradle 파일과 프로젝트 동기화로 이동
2. Application 클래스에서 SDK 초기화
모든 진입점에서 적절한 SDK 설정을 보장하려면Application 클래스의 onCreate 메서드에서 OneSignal을 초기화하는 것이 모범 사례입니다.
Application 클래스를 만드는 방법
Application 클래스를 만드는 방법
ApplicationClass)를 만들고 다음 코드를 추가합니다.
ApplicationClass.kt 파일 예제입니다.
AndroidManifest.xml을 엽니다<application> 태그에 android:name=".ApplicationClass"를 추가합니다(다른 이름으로 설정한 경우 .ApplicationClass를 실제 클래스 이름으로 바꿉니다).
.ApplicationClass 이름이 있는 AndroidManifest.xml입니다.
ApplicationClass에서 제공된 메서드로 OneSignal을 초기화합니다.
OneSignal 대시보드의 **설정 > Keys & IDs**에 있는 OneSignal 앱 ID로 YOUR_APP_ID를 바꿉니다. OneSignal 앱에 액세스할 수 없는 경우 팀 구성원에게 초대를 요청하세요.

OneSignal 코드가 추가된 ApplicationClass.kt 파일입니다.
Activity(예: MainActivity)에서 초기화하는 것은 딥 링크 또는 알림에서 앱이 콜드 스타트할 때 호출되지 않을 수 있으므로 권장되지 않습니다. 안정성을 위해 항상 Application 클래스에서 OneSignal을 초기화하세요.3. 기본 아이콘 사용자 지정
앱의 브랜드에 맞게 알림 아이콘을 구성하는 것이 좋습니다. 그렇지 않으면 OneSignal이 기본 벨 아이콘을 사용합니다.OneSignal SDK 통합 테스트
이 가이드는 푸시 알림, 구독 등록 및 인앱 메시징을 테스트하여 OneSignal SDK 통합이 올바르게 작동하는지 확인하는 데 도움이 됩니다.- Android Studio에서 Device Manager로 이동합니다.
- 에뮬레이터 기기를 선택하고 편집을 클릭합니다.
- 추가 설정 또는 더 보기로 이동합니다.
- 부팅 옵션을 콜드 부팅으로 설정합니다.
- 변경 사항을 저장하고 에뮬레이터를 다시 시작합니다.
모바일 구독 확인
테스트 기기에서 앱을 실행합니다.
requestPermission 메서드를 추가한 경우 네이티브 푸시 권한 프롬프트가 자동으로 표시되어야 합니다.
iOS 및 Android 푸시 권한 프롬프트
OneSignal 대시보드 확인
- 대상 > 구독으로 이동합니다.
- “구독 안 함” 상태의 새 항목이 표시되어야 합니다.

'구독 안 함' 상태의 구독을 보여주는 대시보드
앱으로 돌아가서 프롬프트에서 허용을 탭합니다.
OneSignal 대시보드 구독 페이지를 새로 고칩니다.

'구독됨' 상태의 구독을 보여주는 대시보드
테스트 구독 설정
테스트 구독은 메시지를 보내기 전에 푸시 알림을 테스트하는 데 유용합니다.테스트 구독에 추가합니다.

테스트 구독에 기기 추가
구독 이름을 지정합니다.

'구독 이름 지정' 필드를 보여주는 대시보드
테스트 사용자 세그먼트를 만듭니다.
세그먼트 이름을 지정합니다.
Test Users로 지정합니다(나중에 사용되므로 이름이 중요합니다).테스트 사용자 필터를 추가하고 세그먼트 만들기를 클릭합니다.

테스트 사용자 필터로 'Test Users' 세그먼트 만들기
API를 통해 테스트 푸시 보내기
앱 API 키 및 앱 ID를 가져옵니다.
제공된 코드를 업데이트합니다.
YOUR_APP_API_KEY 및 YOUR_APP_ID를 실제 키로 바꿉니다. 이 코드는 이전에 만든 Test Users 세그먼트를 사용합니다.코드를 실행합니다.
이미지 및 확인된 전달을 확인합니다.

iOS 및 Android의 이미지가 있는 푸시 알림
확인된 전달을 확인합니다.

확인된 전달을 보여주는 전달 통계

대상 활동의 기기 수준에서 확인된 전달
- 확인된 전달이 없나요? 여기에서 문제 해결 가이드를 검토하세요.
- 문제가 있나요? API 요청과 앱 실행 시작부터 끝까지의 로그를
.txt파일에 복사하여 붙여넣으세요. 그런 다음 둘 다support@onesignal.com과 공유하세요.
인앱 메시지 보내기
인앱 메시지를 사용하면 사용자가 앱을 사용하는 동안 사용자와 소통할 수 있습니다.기기에서 앱을 닫거나 백그라운드로 이동합니다.
인앱 메시지를 만듭니다.
- OneSignal 대시보드에서 메시지 > 인앱 > 새 인앱으로 이동합니다.
- Welcome 메시지를 찾아 선택합니다.
- 대상을 이전에 사용한 Test Users 세그먼트로 설정합니다.

인앱 메시지로 'Test Users' 세그먼트 타겟팅
원하는 경우 메시지 콘텐츠를 사용자 지정합니다.

인앱 Welcome 메시지 사용자 지정 예제
트리거를 '앱 열 때'로 설정합니다.
빈도를 예약합니다.

인앱 메시지 예약 옵션
메시지를 라이브로 만듭니다.
앱을 열고 메시지를 확인합니다.

기기에 표시된 Welcome 인앱 메시지
- 새 세션 시작
- 다시 열기 전에 최소 30초 동안 앱을 닫거나 백그라운드로 이동해야 합니다. 이렇게 하면 새 세션이 시작됩니다.
- 자세한 내용은 인앱 메시지 표시 방법을 참조하세요.
- 여전히
Test Users세그먼트에 있나요?- 재설치하거나 기기를 전환한 경우 테스트 구독에 기기를 다시 추가하고 Test Users 세그먼트의 일부인지 확인하세요.
- 문제가 있나요?
- 위 단계를 재현하는 동안 디버그 로그 가져오기를 따르세요. 이렇게 하면
support@onesignal.com과 공유할 수 있는 추가 로깅이 생성되며 무엇이 진행되고 있는지 조사하는 데 도움이 됩니다.
- 위 단계를 재현하는 동안 디버그 로그 가져오기를 따르세요. 이렇게 하면
사용자 식별
이전에는 모바일 구독을 만드는 방법을 시연했습니다. 이제 OneSignal SDK를 사용하여 모든 구독(푸시, 이메일 및 SMS 포함)에서 사용자를 식별하는 것으로 확장하겠습니다. 플랫폼 전체에서 사용자를 통합하고 참여시키는 데 도움이 되는 External ID, 태그, 다중 채널 구독, 개인 정보 보호 및 이벤트 추적을 다룰 것입니다.External ID 할당
백엔드의 사용자 식별자를 사용하여 기기, 이메일 주소 및 전화번호에서 사용자를 일관되게 식별하려면 External ID를 사용합니다. 이렇게 하면 채널 및 타사 시스템 전체에서 메시징이 통합됩니다(통합에 특히 중요). 앱에서 식별될 때마다 SDK의login 메서드로 External ID를 설정합니다.
데이터 태그 추가
태그는 사용자 속성(username, role 또는 기본 설정) 및 이벤트(purchase_date, game_level 또는 사용자 상호 작용)를 저장하는 데 사용할 수 있는 문자열 데이터의 키-값 쌍입니다. 태그는 고급 메시지 개인화 및 세분화를 지원하여 더 고급 사용 사례를 허용합니다.
앱에서 이벤트가 발생할 때 SDK addTag 및 addTags 메서드로 태그를 설정합니다.
이 예제에서 사용자는 current_level이라는 태그로 식별 가능한 레벨 6에 도달했으며 값은 6으로 설정됩니다.

OneSignal의 "current_level"이라는 태그가 "6"으로 설정된 사용자 프로필

current_level 값이 4보다 크고 10보다 작은 사용자를 타겟팅하는 세그먼트를 보여주는 세그먼트 편집기

개인화된 메시지로 Level 5-10 세그먼트를 타겟팅하는 푸시 알림을 보여주는 스크린샷

개인화된 콘텐츠가 있는 iOS 및 Android 기기에서 푸시 알림 수신
이메일 및/또는 SMS 구독 추가
이전에 SDK가 푸시 및 인앱 메시지를 보내기 위해 모바일 구독을 만드는 방법을 보았습니다. 해당 구독을 만들어 이메일 및 SMS 채널을 통해 사용자에게 도달할 수도 있습니다.addEmail메서드를 사용하여 이메일 구독을 만듭니다.addSms메서드를 사용하여 SMS 구독을 만듭니다.

External ID로 통합된 푸시, 이메일 및 SMS 구독이 있는 사용자 프로필
- 이메일 또는 SMS 구독을 추가하기 전에 명시적 동의를 얻습니다.
- 각 커뮤니케이션 채널의 이점을 사용자에게 설명합니다.
- 사용자가 선호하는 채널을 선택할 수 있도록 채널 기본 설정을 제공합니다.
개인 정보 보호 및 사용자 동의
OneSignal이 사용자 데이터를 수집하는 시기를 제어하려면 SDK의 동의 게이팅 메서드를 사용합니다:setConsentRequired(true): 동의가 제공될 때까지 데이터 수집을 방지합니다.setConsentGiven(true): 동의가 부여되면 데이터 수집을 활성화합니다.
푸시 권한 프롬프트
앱을 열 때 즉시requestPermission()을 호출하는 대신 더 전략적인 접근 방식을 취하세요. 인앱 메시지를 사용하여 권한을 요청하기 전에 푸시 알림의 가치를 설명합니다.
모범 사례 및 구현 세부 정보는 푸시 권한 프롬프트 가이드를 참조하세요.
푸시, 사용자 및 인앱 이벤트 수신
SDK 리스너를 사용하여 사용자 작업 및 상태 변경에 반응합니다. SDK는 연결할 수 있는 여러 이벤트 리스너를 제공합니다. 자세한 내용은 SDK 참조 가이드를 참조하세요.푸시 알림 이벤트
addClickListener(): 알림을 탭할 때 감지합니다. 딥 링킹에 유용합니다.addForegroundLifecycleListener(): 포그라운드에서 알림이 동작하는 방법을 제어합니다.
사용자 상태 변경
addObserver()사용자 상태: External ID가 설정될 때 감지합니다.addPermissionObserver(): 네이티브 푸시 권한 프롬프트와 사용자의 특정 상호 작용을 추적합니다.addObserver()푸시 구독: 푸시 구독 상태가 변경될 때 추적합니다.
인앱 메시지 이벤트
addClickListener(): 인앱 클릭 작업을 처리합니다. 딥 링킹 또는 이벤트 추적에 이상적입니다.addLifecycleListener(): 인앱 메시지의 전체 수명 주기(표시됨, 클릭됨, 해제됨 등)를 추적합니다.
고급 설정 및 기능
통합을 향상시킬 더 많은 기능을 탐색하세요:- 🔁 다른 서비스에서 OneSignal로 마이그레이션
- 🌍 위치 추적
- 🔗 딥 링킹
- 🔌 통합
- 🧩 모바일 서비스 확장
- 🛎️ 작업 버튼
- 🌐 다국어 메시징
- 🛡️ 신원 확인
- 📊 사용자 지정 성과
- 📲 라이브 활동
모바일 SDK 설정 및 참조
모바일 푸시 설정 가이드를 검토하여 모든 주요 기능을 활성화했는지 확인하세요. 사용 가능한 메서드 및 구성 옵션에 대한 전체 세부 정보는 모바일 SDK 참조를 방문하세요.사용자 지정 알림 레이아웃
Android 12 이상은 사용자 지정 알림에 대한 시스템 템플릿을 적용합니다. 그러나 Android의 표준 알림 스타일을 사용하여 레이아웃을 사용자 지정할 수 있습니다.- Android의 사용자 지정 알림 가이드를 따릅니다
- 알림 서비스 확장을 통해 변경 사항을 적용합니다
기본 열기 동작 비활성화
알림을 클릭하면 OneSignal은 앱을 재개하거나 앱이 스와이프된 경우 런처 활동을 엽니다. 알림을 클릭할 때 OneSignal이 런처 활동을 자동으로 여는 것을 방지하려면AndroidManifest.xml에 다음을 추가하세요:
Application 클래스의 onCreate 메서드에서 사용자 지정 알림 열림 리스너를 구현해야 합니다. 이 콜백에서 startActivity를 호출하여 사용자를 의도한 Activity로 이동해야 합니다.
백그라운드 데이터 및 푸시 재정의
- 알림 서비스 확장을 사용하여 백그라운드 데이터를 처리하거나 알림 시각적 요소를 재정의합니다
- SDK 알림 이벤트 핸들러를 사용하여 알림에서 추가 데이터를 읽습니다
오른쪽에서 왼쪽(RTL) 언어 지원
알림 및 UI에서 RTL 언어를 지원하려면AndroidManifest.xml에 다음을 추가하세요:
support@onesignal.com으로 이메일을 보내주세요.다음을 포함해 주세요:- 발생한 문제의 세부 정보 및 재현 단계(가능한 경우)
- OneSignal 앱 ID
- External ID 또는 Subscription ID(해당하는 경우)
- OneSignal 대시보드에서 테스트한 메시지의 URL(해당하는 경우)
- 관련 로그 또는 오류 메시지