Server-to-Server - 기본 사항
SDK 연동의 대안으로 Singular의 REST API를 구현하여 완전한 서버 사이드 트래킹을 수행하고, 데이터 수집, 전송, 어트리뷰션 워크플로를 완전히 제어하십시오.
연동 방식 선택: SDK 또는 S2S? 클라이언트 SDK를 임베드할 수 있다면 SDK 연동 문서 부터 시작하십시오. 서버 사이드 이벤트 전달이 필요하거나, SDK가 없는 플랫폼을 사용 중이거나, 데이터 수집을 완전히 제어하고자 할 때 Server-to-Server를 사용하십시오. 본 문서 세트는 S2S 경로를 다루며, Mobile, Web, PC/Console S2S 가이드의 공통 참조 자료입니다.
개요
Server-to-Server 사용 사례
Server-to-server (S2S) 연동은 클라이언트 애플리케이션에 Singular SDK를 임베드하지 않고도 백엔드 인프라에서 실행되는 완전한 어트리뷰션 및 분석 솔루션을 구축할 수 있도록 REST API 엔드포인트를 제공합니다.
연동 방식:
- 순수 S2S: 세션과 이벤트 트래킹을 모두 처리하는 100% 서버 사이드 구현
- 하이브리드: Singular SDK가 세션을 관리하고 서버 사이드가 이벤트 트래킹을 처리
순수 S2S 연동
순수 S2S는 완전한 서버 사이드 구현입니다. 백엔드가 필요한 데이터를 수집하고, 디바이스 그래프를 유지 관리하며, 세션과 이벤트를 모두 Singular로 전달합니다. 단계별 파이프라인은 아래의 구현 단계를 참조하십시오.
하이브리드 연동 패턴
하이브리드 연동은 세션 관리를 위한 Singular SDK와 백엔드 이벤트 트래킹을 위한 서버 사이드 EVENT API를 결합하여, 구현 용이성과 서버 사이드 유연성의 균형을 맞춥니다.
하이브리드의 이점:
- SDK가 복잡한 세션 로직, 딥링킹, 디바이스 데이터 수집을 자동으로 처리
- 서버가 백엔드 시스템에서 처리된 트랜잭션에 대한 이벤트를 전송
- 클라이언트 사이드 구현 복잡성 감소
- SESSION 엔드포인트 불필요—SDK가 세션 수명 주기를 관리
디바이스 데이터 검색 방법:
- 클라이언트 관리 흐름: 클라이언트에서 필수 데이터 포인트를 캡처하고, Singular EVENT 엔드포인트와 함께 사용하기 위해 내부 API를 통해 서버로 전달
- Internal BI 포스트백: Singular Internal BI 포스트백을 구성하여 설치, 리인게이지먼트, 이벤트 이후 디바이스 식별자가 포함된 실시간 JSON 페이로드를 수신 ( 설정 가이드 )
디바이스 그래프 유지 관리: 두 방법 모두 디바이스 그래프를 유지 관리하기 위한 서버 사이드 로직이 필요합니다. SDK가 디바이스 식별자 변경을 감지하면, 정확한 트래킹을 보장하기 위해 서버를 그에 맞게 업데이트하십시오.
관련 리소스:
- 디바이스 데이터 검색 가이드 (iOS/Android 코드 샘플)
핵심 연동 원칙
이 원칙들은 플랫폼이나 방식과 관계없이 모든 S2S 연동에 적용됩니다:
| 원칙 | 설명 |
|---|---|
| 유연성 | 데이터 수집 및 전송 시점에 대한 완전한 제어 |
| 기능 동등성 | 적절한 데이터가 제공될 경우 모든 SDK 기능을 지원 |
| 연동 경로 | 클라이언트 → 사용자의 서버 → Singular API |
| 실시간 처리 | 한 번에 하나의 요청—배치 처리 미지원 |
| 순차적 흐름 | 이벤트는 시간 순서대로 처리되어야 함 |
| 중복 제거 없음 | Singular는 중복을 제거하지 않음—서버 사이드에서 중복 제거를 구현 |
| 데이터 영속성 | 디바이스 수준 데이터는 수집 후 삭제할 수 없음—전송 전에 검증 |
구현 단계
완전한 S2S 연동은 순서대로 실행되는 네 단계를 거치며, 각 단계는 이전 단계를 기반으로 합니다.
1단계: 데이터 수집
필수 데이터 포인트
Singular가 정확하게 어트리뷰션하고 리포팅하는 데 필요한 모든 것을 갖출 수 있도록, 모든 필수 파라미터를 캡처하는 데이터 수집을 설정하십시오.
모든 필수 파라미터는 필수: 필수 파라미터를 생략하면 데이터 불일치와 어트리뷰션 오류가 발생합니다. 선택적 파라미터는 없습니다.
비동기 함수 처리: 서버 전송을 위해 클라이언트 사이드 데이터를 수집할 때, 비동기 함수가 완료될 때까지 기다리고 엣지 케이스를 처리하십시오. 데이터 누락 및 부분 어트리뷰션을 유발하는 흔한 문제입니다.
구현 리소스:
- SESSION 엔드포인트 필수 파라미터
- EVENT 엔드포인트 필수 파라미터
- 디바이스 데이터 검색 가이드 (iOS/Android 코드 샘플)
- SKAdNetwork 4 구현 가이드 (iOS 관련 데이터 포인트)
2단계: 실시간 스트리밍
중요 타이밍 요구사항
실시간 데이터 스트리밍은 어트리뷰션 정확도를 유지하고 SKAdNetwork 전환 값 업데이트와 같은 시간에 민감한 기능을 가능하게 합니다.
어트리뷰션 영향:
- 지연된 세션: 어트리뷰션 정확도에 심각한 영향을 미침—시스템은 캠페인 연관을 위해 정밀한 시간 데이터를 필요로 함
- SKAdNetwork 타이머: 전환 값에 대한 엄격한 온디바이스 타이머 윈도우로 인해 실시간 스트리밍이 매우 중요합니다. 지연은 전환 값 업데이트 누락 및 불완전한 캠페인 데이터를 초래합니다
모범 사례:
- 앱 세션 시작에 대한 서버 사이드 이벤트 리스너를 구현
- 모든 필수 파라미터와 함께 세션 데이터 를 즉시 전달
- 인앱 이벤트에 대한 서버 사이드 이벤트 리스너를 구현
- 모든 필수 파라미터와 함께 이벤트 데이터 를 즉시 전달
- 안정적인 데이터 전송을 위해 웹훅 아키텍처를 사용
- 실패한 요청에 대한 재시도 메커니즘을 구현
- 품질 보증을 위해 데이터 흐름을 모니터링
3단계: 응답 처리
양방향 통신
응답 처리는 서버 사이드 API 호출을 다시 클라이언트 앱으로 연결하며, 이것이 디퍼드 딥링킹 및 전환 값 업데이트를 가능하게 합니다.
주요 응답 유형:
- 디퍼드 딥링크: API 응답에 대기 중인 딥링크 데이터가 포함되며, 사용자 라우팅 및 개인화를 위해 즉시 앱으로 전달해야 함
- 전환 값: iOS SKAdNetwork 전환 값은 정확한 캠페인 측정을 위해 즉시 앱으로 전달해야 함
모범 사례:
- 서버 인프라에서 응답 처리를 구현
- Singular API 응답을 파싱하고 검증
- 관련 응답 데이터를 클라이언트 앱으로 전달(iOS SKAdNetwork에 필수)
- 클라이언트 사이드 응답 처리를 구현
- 적절한 HTTP 상태 코드로 오류를 우아하게 처리
- 재시도 메커니즘을 위해 실패한 응답을 로깅
4단계: 테스트 & 검증
데이터 흐름 검증
프로덕션에 배포하기 전에 전체 데이터 파이프라인을 엔드투엔드로 검증하고 어트리뷰션이 정확한지 확인하십시오.
세션 어트리뷰션 프로세스:
- 첫 세션(신규 설치): Singular이 신규 설치를 인식하고 설치 어트리뷰션 프로세스를 트리거
- 리인게이지먼트 자격 충족: Singular이 리인게이지먼트 어트리뷰션 프로세스를 트리거 ( 리인게이지먼트 FAQ )
- 표준 세션: Singular이 사용자 활동 및 리텐션 지표를 위해 세션을 기록
중요 타이밍 요구사항:
- 이벤트 이전 세션: 어떤 이벤트보다 먼저 단일 SESSION이 수신되어야 합니다. SDK는 앱 열기 시 세션을 트리거한 후 인앱 이벤트를 전송합니다. 1분 이상 백그라운드 상태가 지속되면 세션이 타임아웃됩니다. 앱이 포그라운드로 복귀하면 새 세션이 전송됩니다. 세션 관리를 위해 앱 수명 주기 이벤트와 타이머를 사용하십시오
- 실시간 이벤트: 앱에서 발생하는 이벤트는 해당 세션 이후 실시간으로 전송되어야 합니다
검증 체크리스트:
- 세션 데이터 흐름 테스트—첫 세션과 이후 세션이 올바른 데이터 포인트와 값을 갖는지 검증
- 이벤트가 세션이 Singular에 보고된 이후에만 수신되는지 확인(세션 이전의 이벤트는 오가닉 어트리뷰션을 생성함)
- 세션 응답이 처리되어 클라이언트 앱으로 전달되는지 확인(디퍼드 딥링크에 필수)
연동 완료:
- ✓ 데이터 수집 및 저장 검증 완료
- ✓ Singular로의 실시간 스트리밍 검증 완료
- ✓ 응답 처리 및 로깅 검증 완료
- ✓ 모든 테스트 데이터 흐름 검증 완료
테스트 가이드: S2S 연동 테스트 가이드
추가 기능
포괄적인 분석을 위해 크로스 디바이스 트래킹, 수익 트래킹, 앱 삭제 모니터링, 데이터 프라이버시 준수를 구현하십시오.
크로스 디바이스 트래킹
Custom User ID 구현
custom_user_id
파라미터를 활용하여 사용자를 디바이스 수준 세션과 연결함으로써 크로스 디바이스 리포팅 및 사용자 수준 분석을 수행하십시오.
프라이버시 준수:
custom_user_id
에 개인 식별 정보(PII)를 사용하지 않음으로써 데이터 프라이버시 정책을 준수하십시오. 고유한 사용자 식별자로 해시 처리된 사용자 이름, 이메일, 또는 무작위로 생성된 문자열을 사용하십시오.
사용자 프라이버시를 유지하면서 포괄적인 크로스 디바이스 리포팅, 사용자 수준 데이터 내보내기, Internal BI 포스트백을 가능하게 합니다.
자세한 정보: Custom User ID 파라미터
수익 트래킹
인앱 구매 리포팅
ROI 분석, 캠페인 성과 측정, 내보내기/포스트백 강화를 위해 인앱 구매로 인한 수익을 트래킹하십시오.
EVENT 엔드포인트 를 수익 파라미터 와 함께 사용하십시오:
-
is_revenue_event: 수익 이벤트인 경우 true로 설정하고, 그렇지 않으면 false로 설정. -
purchase_receipt: Android/iOS 인앱 구매 객체—트랜잭션 세부 정보 및 리포트 강화를 위해 적극 권장 -
receipt_signature(Android): 트랜잭션 검증 및 사기 방지를 위해 적극 권장 -
amt: Double 형식의 수익 금액(예: "amt=1.99") -
cur: ISO 4217 통화 코드(예: "cur=USD")
구현 가이드: 구독 상태 관리
데이터 프라이버시 준수
사용자 동의 처리
GDPR, CCPA 및 기타 프라이버시 규정을 준수하기 위해 데이터 공유에 대한 최종 사용자 동의를 Singular에 알리십시오.
data_sharing_options
파라미터를 사용하여 사용자 선택을 전달하십시오:
-
{"limit_data_sharing":false}: 사용자가 정보 공유에 동의(옵트인) -
{"limit_data_sharing":true}: 사용자가 정보 공유를 거부
Singular은
limit_data_sharing
을
User Privacy 포스트백
에서 사용하며, 준수가 필요한 파트너에게 정보를 전달합니다.
선택 사항이지만 권장: 파라미터는 선택 사항이지만, 일부 어트리뷰션 정보는 사용자가 명시적으로 옵트인한 경우에만 파트너가 공유합니다.
엔드포인트 참조 자료
각 엔드포인트 참조 자료는 완전한 필수 및 선택 파라미터를 인라인으로 문서화합니다. 전체 파라미터 표는 다음을 참조하십시오:
가이드
본 문서는 S2S 문서 세트의 공통 참조 자료입니다. 플랫폼에 맞는 가이드를 사용하고, 전체 파라미터 세부 정보는 엔드포인트 참조 자료를 확인하십시오.
플랫폼 가이드
기능 가이드