푸시 알림 캠페인 측정
iOS 및 Android에서 푸시 알림 캠페인 성과를 추적 및 측정하여 리인게이지먼트 이벤트를 특정 푸시 캠페인에 귀속시키고 사용자 리텐션 전략을 최적화하세요.
Singular는 Firebase 클라우드 메시징(FCM), Apple 푸시 알림 서비스(APN), 그리고 CleverTap, MoEngage, WebEngage, OneSignal, Salesforce Marketing Cloud, Braze 등의 타사 플랫폼에서 푸시 알림 캠페인을 원활하게 추적할 수 있는 기능을 제공합니다.
푸시 알림 추적 작동 방식
Singular는 알림 페이로드에 추적 링크를 삽입하고 앱 오픈을 원래 캠페인에 어트리뷰션하여 푸시 알림 캠페인을 추적합니다.
추적 흐름
- 캠페인 만들기: 사용자 지정 키/값 데이터로 임베드된 Singular 추적 링크를 사용하여 푸시 알림을 구축합니다.
- 사용자가 알림을 수신합니다: 푸시 제공자가 사용자의 디바이스로 알림을 전달합니다.
- 사용자가 알림을 탭합니다: 사용자가 알림을 탭하여 앱 실행
- SDK가 페이로드를 처리합니다: Singular SDK가 알림 페이로드에서 트래킹 데이터를 추출합니다.
- 기록된 어트리뷰션: 앱 실행을 푸시 캠페인에 대한 리인게이지먼트 이벤트로 어트리뷰션합니다.
리인게이지먼트 대 획득: 푸시 알림 추적은 신규 사용자 확보가 아닌 리인게이지먼트(기존 사용자가 앱으로 다시 돌아오는 것)를 측정합니다. 추적 링크는 리인게이지먼트가 활성화된 상태로 구성해야 합니다.
지원되는 푸시 알림 제공업체
Singular는 모든 주요 푸시 제공업체 및 마케팅 자동화 플랫폼에서 푸시 알림 추적을 지원합니다.
플랫폼 지원 매트릭스
| 제공업체 | 플랫폼 | 연동 유형 | Singular 지원 |
|---|---|---|---|
| Firebase 클라우드 메시징(FCM) | 안드로이드 | 사용자 지정 데이터 페이로드 | ✔ |
| Apple 푸시 알림 서비스(APN) | iOS | 사용자 지정 데이터 페이로드 | ✔ |
| CleverTap | iOS, Android | 커스텀 데이터 페이로드 | ✔ |
| MoEngage | iOS, Android | 사용자 지정 데이터 페이로드 | ✔ |
| WebEngage | iOS, Android | 사용자 지정 데이터 페이로드 | ✔ |
| OneSignal | iOS, Android | 사용자 지정 데이터 또는 실행 URL | ✔ |
| Salesforce 마케팅 클라우드(SFMC) | iOS, Android | 사용자 지정 데이터 또는 OpenDirect | ✔ |
| Braze | iOS, Android | 사용자 지정 데이터 또는 온클릭 동작 | ✔ |
연동 유연성: 일부 제공업체(원시그널, SFMC, Braze)는 CTA 필드를 통한 직접 추적 링크 연동을 지원하므로 사용자 지정 SDK 구성이 필요하지 않습니다. 자세한 내용은 대체 연동 방법을 참조하세요.
전제 조건
푸시 알림 추적을 구현하기 전에 앱이 이러한 요구 사항을 충족하는지 확인하세요.
필수 설정
Singular SDK 연동
푸시 알림 지원을 사용하도록 설정한 Singular SDK를 설치하고 구성합니다.
- Android SDK: Android SDK 연동 가이드에따라 연동하세요.
- iOS SDK: iOS SDK 연동 가이드에따라 연동하세요.
- 푸시 지원: SDK 초기화 중 푸시 알림 지원 사용 설정하기
푸시 알림 인프라
앱과 백엔드 시스템에서 푸시 알림 전송을 구성합니다.
- Android: 유효한 서버 키로 구성된 Firebase 클라우드 메시징
- iOS: Apple 개발자 계정에 구성된 APN 인증서 또는 토큰
- 디바이스 등록: 앱이 푸시 알림을 성공적으로 등록하고 토큰을 저장합니다.
- 배달 테스트: 푸시 알림이 디바이스에 성공적으로 도달했는지 확인
푸시 공급자 계정
푸시 알림 서비스 제공업체를 설정하고 구성합니다.
- 공급자 계정: FCM, APN 또는 타사 플랫폼의 활성 계정
- 사용자 지정 데이터 지원: 제공업체가 페이로드에서 사용자 지정 키/값 쌍을 지원하는지 확인합니다.
- API 액세스: 프로그래밍 방식으로 알림을 전송하도록 구성된 자격 증명
구현 단계
Singular로 푸시 알림 캠페인 추적을 구현하려면 다음 단계를 따르세요.
1단계: Singular 트래킹 링크 생성
리인게이지먼트 링크 생성
푸시 알림 캠페인의 리인게이지먼트 추적을 위해 특별히 구성된 Singular 링크를 생성합니다.
- Singular 링크로 이동합니다: Singular 대시보드의 Singular 링크 섹션에 액세스합니다.
- 새 링크 생성을 클릭합니다: "새 링크 만들기"를 클릭하고 앱을 선택합니다.
- 리인게이지먼트 활성화: "리인게이지먼트" 설정을 켜기로 전환합니다(푸시 추적에 중요).
- 파라미터 구성: 어트리뷰션에 대한 캠페인 파라미터를 추가합니다(소스, 매체, 캠페인 이름).
- 링크 생성: 링크 생성: 짧은 URL 형식과 긴 URL 형식을 모두 저장하고 생성합니다.
전체 가이드: Singular 추적 링크 구축하기
중요: 추적 링크에는 반드시 리인게이지먼트가 활성화되어 있어야 합니다. 리인게이지먼트가 활성화되지 않은 링크는 푸시 알림이 열렸을 때 제대로 어트리뷰션되지 않습니다.
링크 구성 예시:
리인게이지먼트 토글:
링크 생성:
2단계: 푸시 알림 페이로드에 링크 추가하기
사용자 지정 데이터 구성
표준 키 이름을 사용하여 푸시 알림의 사용자 지정 데이터 섹션에 Singular 추적 링크를 임베드합니다.
구성 요구 사항:
-
키 이름:
sng_link을 사용자 지정 데이터 키로 사용하세요(대소문자 구분). - 값: 전체 Singular 추적 링크(짧거나 긴 형식)를 붙여넣습니다.
- 데이터 유형: 사용자 지정 데이터 페이로드의 문자열 값
Firebase 클라우드 메시징 예제
Firebase 콘솔 또는 API를 통해 FCM 알림에 사용자 지정 데이터를 추가합니다.
Firebase 콘솔 구성:
{
"notification": {
"title": "Special Offer Inside!",
"body": "Open now to claim your reward"
},
"data": {
"sng_link": "https://your-app.sng.link/Abc12/xyz9?pcn=push_campaign"
},
"to": "device_registration_token_here"
}
Apple 푸시 알림 서비스 예제
표준 aps 사전 형식을 사용하여 APN 페이로드에 사용자 지정 데이터를 포함합니다.
APN 페이로드 구조:
{
"aps": {
"alert": {
"title": "Special Offer Inside!",
"body": "Open now to claim your reward"
},
"sound": "default",
"badge": 1
},
"sng_link": "https://your-app.sng.link/Abc12/xyz9?pcn=push_campaign"
}
두 가지 형식 모두 지원됩니다: Singular는 짧은 링크(sng.link)와 긴 링크(사용자 지정 도메인 형식)를 모두 허용합니다. 추적 인프라에 적합한 형식을 사용하세요.
3단계: 사용자 지정 키를 처리하도록 SDK 구성하기
안드로이드 SDK 구성
FCM 알림에서 sng_link 사용자 지정 데이터 키를 추출하고 처리하도록 Singular Android SDK를 구성합니다.
// In your FirebaseMessagingService
override fun onMessageReceived(remoteMessage: RemoteMessage) {
super.onMessageReceived(remoteMessage)
// Extract custom data from notification
val data = remoteMessage.data
// Check for Singular tracking link
if (data.containsKey("sng_link")) {
val singularLink = data["sng_link"]
// Pass to Singular SDK for attribution
Singular.setGCMData(data)
}
// Display notification to user
showNotification(remoteMessage)
}
전체 연동 가이드: Android 푸시 알림 지원
iOS SDK 구성
APN 알림에서 sng_link 사용자 지정 데이터 키를 추출하고 처리하도록 Singular iOS SDK를 구성합니다.
// In your AppDelegate
func application(_ application: UIApplication,
didReceiveRemoteNotification userInfo: [AnyHashable : Any],
fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
// Check for Singular tracking link
if let singularLink = userInfo["sng_link"] as? String {
// Pass to Singular SDK for attribution
Singular.setAPNSData(userInfo)
}
completionHandler(.newData)
}
// For iOS 10+ UNUserNotificationCenter
func userNotificationCenter(_ center: UNUserNotificationCenter,
didReceive response: UNNotificationResponse,
withCompletionHandler completionHandler: @escaping () -> Void) {
let userInfo = response.notification.request.content.userInfo
// Check for Singular tracking link
if let singularLink = userInfo["sng_link"] as? String {
// Pass to Singular SDK for attribution
Singular.setAPNSData(userInfo)
}
completionHandler()
}
전체 연동 가이드: iOS 푸시 알림 지원
4단계: 테스트 및 유효성 검사
테스트 절차
캠페인을 시작하기 전에 푸시 알림 추적이 올바르게 작동하는지 확인합니다.
- 테스트 알림을 보냅니다: 사용자 지정 데이터의 Singular 링크를 사용하여 테스트 푸시 알림을 트리거합니다.
- 디바이스에서 수신: 테스트 디바이스에 알림이 표시되는지 확인합니다.
- 알림을 탭합니다: 알림을 탭하여 앱 열기
- SDK 로그를 확인합니다: SDK 로그에 Singular 링크 추출이 표시되는지 확인합니다.
- 대시보드 확인: 5분 이내에 Singular 대시보드에 리인게이지먼트 이벤트가 나타나는지 확인합니다.
플랫폼별 유효성 검사:
- iOS: iOS 검증 가이드
- 안드로이드: 안드로이드 검증 가이드
일반적인 문제
-
누락된 이벤트:
sng_link키 이름이 정확한지 확인(대소문자 구분) - 잘못된 어트리뷰션: 추적 링크에서 리인게이지먼트가 활성화되어 있는지 확인
- SDK가 처리되지 않음: 알림 처리 전에 SDK 초기화가 발생하는지 확인
5단계: 캠페인 성과 모니터링
푸시 알림 결과 분석
Singular의 분석 보고서에서 푸시 알림 캠페인의 리인게이지먼트 성과와 ROI를 추적하세요.
사용 가능한 지표:
- 리인게이지먼트 이벤트: 푸시 알림으로 인한 총 앱 실행 횟수
- 리인게이지먼트율: 푸시를 통해 앱을 실행한 사용자의 백분율
- 구매 어트리뷰션: 리인게이지먼트한 사용자가 창출한 구매
- 캠페인 비교: 다양한 푸시 캠페인의 성과 비교
- 코호트 분석: 리인게이지먼트 후 사용자 행동
대시보드 예시:
애널리틱스 → 집계된 애널리틱스 보고서 → 리인게이지먼트 소스별 필터링을통해 보고서에 액세스합니다.
대체 연동 방법
일부 푸시 제공업체는 SDK에서 사용자 지정 데이터를 구성할 필요 없이 직접 추적 링크 연동을 지원합니다.
직접 CTA 연동
특정 플랫폼에서는 알림 CTA 필드에 직접 Singular 트래킹 링크를 구성하여 어트리뷰션 데이터로 앱을 자동으로 실행할 수 있습니다.
원시그널 실행 URL
원시그널은 실행 URL 기능을 통해 직접 추적 링크를 지원합니다.
- 구성: 알림 작성기의 실행 URL 필드에 Singular 링크를 추가합니다.
- 동작: 동작: 알림을 탭하면 자동으로 처리된 Singular 링크가 포함된 앱이 열립니다.
- SDK 요구 사항: 최소한의 표준 Singular SDK 연동으로 충분함
문서: OneSignal 실행 URL
세일즈포스 마케팅 클라우드 오픈다이렉트
SFMC는 추적 링크가 있는 앱을 실행하기 위한 OpenDirect 기능을 제공합니다.
- 구성: 메시지 설정에서 Singular 링크를 OpenDirect URL로 설정합니다.
- 동작: 알림 탭은 OpenDirect 프로토콜을 통해 앱 실행을 트리거합니다.
- 플랫폼 지원: iOS 및 Android에서 모두 사용 가능
문서: SFMC OpenDirect
Braze 온클릭 비헤이비어
Braze에서는 알림 온클릭 동작 설정에서 Singular 추적 링크를 구성할 수 있습니다.
- 구성: 푸시 작성기의 온클릭 동작 필드에 Singular 링크 추가하기
- 동작: 자동 링크 처리를 통해 알림 탭으로 앱 열기
- 동작 유형: 딥링킹 및 외부 URL 옵션 지원
문서: 브레이즈 온-클릭 동작
권장 사항: 가능한 경우 직접 CTA 연동을 사용하면 구현이 간소화되고 SDK 구성 요구 사항이 줄어듭니다. 그러나 사용자 지정 데이터 방식은 모든 제공업체에 최대한의 유연성을 제공합니다.
모범 사례
푸시 알림 캠페인 추적의 정확성과 효과를 극대화하려면 다음 가이드라인을 따르세요.
캠페인 구조
링크 구성
- 캠페인별 고유 링크: 각 푸시 캠페인에 대해 별도의 추적 링크를 생성하여 성과를 분리합니다.
- 설명 매개변수: 추적 링크 매개변수에 명확한 캠페인 이름 사용
- 일관된 이름 지정: 푸시 캠페인에 대한 네이밍 규칙을 설정합니다(예: push_promo_2025_q1).
- 출시 전 테스트: 테스트 알림을 통해 각각의 새로운 트래킹 링크를 검증합니다.
기술적 구현
-
대소문자 구분: 항상
sng_link을 소문자 그대로 사용하세요. - URL 인코딩: API 요청에서 추적 링크가 올바르게 URL 인코딩되었는지 확인합니다.
- 페이로드 크기: 알림 페이로드 크기를 모니터링하여 플랫폼 제한(APN의 경우 4KB, FCM의 경우 4KB) 이하로 유지합니다.
- 오류 처리: 알림에서 사용자 지정 데이터가 누락된 경우 폴백 로직 구현
- SDK 버전: 최적의 푸시 알림 지원을 위해 최신 Singular SDK 버전 사용
성능 최적화
- 세분화: 참여도가 높은 사용자 세그먼트로 푸시 캠페인을 타겟팅하여 오픈율을 높입니다.
- 타이밍: 사용자 행동에 따라 최적의 참여 기간 동안 알림을 전송합니다.
- A/B 테스트: 별도의 추적 링크로 다양한 메시지와 타이밍을 테스트하세요.
- 빈도 제한: 사용자의 피로도와 옵트아웃을 방지하기 위해 푸시 빈도를 제한합니다.
- 딥링킹: 푸시 트래킹과 특정 인앱 콘텐츠에 대한 딥링킹을 결합
문제 해결
일반적인 문제 및 해결 방법
| 문제 | 원인 | 해결 방법 |
|---|---|---|
| 대시보드에 이벤트가 표시되지 않음 | 링크에서 리인게이지먼트가 활성화되지 않음 | Singular 링크에서 추적 링크에 리인게이지먼트 토글이 활성화되어 있는지 확인합니다. |
| SDK가 링크를 추출하지 않음 | 잘못된 사용자 지정 데이터 키 이름 |
키가 정확히 sng_link (대소문자 구분)인지 확인하세요. |
| 잘못된 캠페인에 어트리뷰션 | 여러 캠페인에서 동일한 링크 사용 | 각 캠페인에 대해 고유한 추적 링크 생성 |
| 지연된 이벤트 보고 | 네트워크 지연 또는 오프라인 모드 | SDK가 이벤트를 대기열에 넣고 연결이 복구되면 전송 - 최대 24시간 허용 |
| iOS 알림이 추적되지 않음 | 누락된 APN 데이터 핸들러 |
알림 델리게이트 메서드에 setAPNSData() 구현 |
| 안드로이드 알림이 추적되지 않음 | 누락된 FCM 데이터 핸들러 |
FirebaseMessagingService에서 setGCMData() 호출 |
Support에 문의하세요: 추가적인 문제 해결 지원이 필요하면 푸시 알림 페이로드 예제, SDK 로그 및 문제를 보여주는 대시보드 스크린샷을 첨부하여 Singular 지원팀에 문의하세요.