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.tsxuseEffect에서 호출하거나, 사용자가 특정 화면에 진입할 때 호출할 수 있습니다.


사용자 로그인

오퍼월을 사용하려면 먼저 사용자를 로그인시켜야 합니다. 앱의 사용자 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 통신

onCustomEventonDataRequest를 사용하면 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