React Native SDK의 주요 API와 사용법을 설명합니다.
앱이 시작되면 가장 먼저 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 예시 :
"profile_section" - 프로필 섹션
사용자 행동을 추적하여 서버로 전송합니다. 이벤트는 즉시 전송되지 않고 배치로 모아서 보냅니다 (10개 또는 30초마다).
즉시 전송하려면 flushEvents()를 호출하세요:
SDK와 사용자의 현재 상태를 확인합니다.
AdchainOfferwallView 컴포넌트
앱 화면 내부에 임베디드 방식으로 오퍼월을 표시합니다. 탭, 섹션, 프래그먼트 등에 통합할 수 있습니다.
WebView ↔ Native 통신
onCustomEvent와 onDataRequest를 사용하면 WebView와 Native 간 양방향 통신이 가능합니다.
onCustomEvent - WebView에서 발생한 이벤트를 Native로 전달:
onDataRequest - WebView가 Native에 데이터를 요청:
실전 팁 : 이벤트와 데이터 요청 타입은 애드체인 팀과 사전 협의하여 정의합니다. 위 예시는 참고용입니다.
Android에서는 하드웨어 백버튼을 직접 처리해야 합니다. 그렇지 않으면 WebView 내부 네비게이션을 무시하고 앱이 종료됩니다.
더 자세한 Android 백버튼 처리 방법은 각 고객사 통합 가이드를 참고하세요.
SDK 메서드는 실패 시 예외를 던집니다. try-catch로 처리하세요.
에러 케이스 :
SDK_NOT_INITIALIZED - 초기화 전에 다른 메서드 호출
INVALID_CREDENTIALS - appKey 또는 appSecret이 잘못됨
NOT_LOGGED_IN - 로그인 전에 오퍼월 호출
SDK는 TypeScript 타입 정의를 포함하고 있어서 별도 @types 패키지가 필요 없습니다. IDE에서 자동완성과 타입 체크가 지원됩니다.