React Native API
React Native SDK의 주요 API와 사용법을 설명합니다.
AdchainSdk 모듈
SDK 초기화
앱이 시작되면 가장 먼저 initialize()를 호출해야 합니다. 이 메서드는 네이티브 모듈을 활성화하고 애드체인 서버와 연결을 설정합니다.
import { AdchainSdk } from '@1selfworld/adchain-sdk-react-native';
await AdchainSdk.initialize({
appKey: 'your-app-key',
appSecret: 'your-app-secret',
environment: 'PRODUCTION' // 또는 'STAGING'
});설정 옵션:
interface AdchainSdkConfig {
appKey: string; // 필수: AdChain 대시보드에서 발급
appSecret: string; // 필수: AdChain 대시보드에서 발급
environment?: 'PRODUCTION' | 'STAGING'; // 선택: 기본값 'PRODUCTION'
}초기화는 앱 시작 시 한 번만 수행합니다. App.tsx의 useEffect에서 호출하거나, 사용자가 특정 화면에 진입할 때 호출할 수 있습니다.
사용자 로그인
오퍼월을 사용하려면 먼저 사용자를 로그인시켜야 합니다. 앱의 사용자 ID를 AdChain에 전달하면, 애드체인 서버에서 세션을 생성합니다.
사용자 정보:
userId는 필수이고, gender와 birthYear는 선택사항입니다. 다만 성별과 출생연도를 제공하면 광고 타겟팅 정확도가 높아지므로 가급적 포함하는 게 좋습니다.
주의: userId는 빈 문자열이면 안 됩니다. 앱 로그아웃 후 다른 사용자로 전환할 때는 반드시 logout() 후 login()을 호출하세요.
로그아웃
현재 로그인된 사용자의 세션을 종료합니다. 로그아웃 후에는 오퍼월을 사용할 수 없습니다.
오퍼월 열기
전체 화면 방식으로 오퍼월을 표시합니다. 새로운 Activity(Android) 또는 ViewController(iOS)가 생성됩니다.
placementId는 오퍼월이 어디에서 호출되었는지 식별하는 문자열입니다. 애드체인 팀과 사전 협의하여 정의하며, 이 값에 따라 다른 URL이 로드될 수 있습니다.
placementId 예시:
"main_tab"- 메인 탭"profile_section"- 프로필 섹션"popup_event"- 팝업 이벤트"banner_promo"- 배너 프로모션
이벤트 추적
사용자 행동을 추적하여 서버로 전송합니다. 이벤트는 즉시 전송되지 않고 배치로 모아서 보냅니다 (10개 또는 30초마다).
즉시 전송하려면 flushEvents()를 호출하세요:
상태 확인 메서드
SDK와 사용자의 현재 상태를 확인합니다.
기타 메서드
AdchainOfferwallView 컴포넌트
앱 화면 내부에 임베디드 방식으로 오퍼월을 표시합니다. 탭, 섹션, 프래그먼트 등에 통합할 수 있습니다.
기본 사용법
Props
WebView ↔ Native 통신
onCustomEvent와 onDataRequest를 사용하면 WebView와 Native 간 양방향 통신이 가능합니다.
onCustomEvent - WebView에서 발생한 이벤트를 Native로 전달:
onDataRequest - WebView가 Native에 데이터를 요청:
실전 팁: 이벤트와 데이터 요청 타입은 애드체인 팀과 사전 협의하여 정의합니다. 위 예시는 참고용입니다.
Android 백버튼 처리
Android에서는 하드웨어 백버튼을 직접 처리해야 합니다. 그렇지 않으면 WebView 내부 네비게이션을 무시하고 앱이 종료됩니다.
더 자세한 Android 백버튼 처리 방법은 각 고객사 통합 가이드를 참고하세요.
타입 정의
AdchainQuiz
AdchainMission
에러 처리
SDK 메서드는 실패 시 예외를 던집니다. try-catch로 처리하세요.
에러 케이스:
SDK_NOT_INITIALIZED- 초기화 전에 다른 메서드 호출INVALID_CREDENTIALS- appKey 또는 appSecret이 잘못됨NETWORK_ERROR- 서버 연결 실패NOT_LOGGED_IN- 로그인 전에 오퍼월 호출
TypeScript 지원
SDK는 TypeScript 타입 정의를 포함하고 있어서 별도 @types 패키지가 필요 없습니다. IDE에서 자동완성과 타입 체크가 지원됩니다.
다음 단계
Last updated