React Native

React Native 앱에 애드체인 SDK를 연동하는 방법을 소개합니다.

시작하기 전에

SDK를 설치하기 전에 다음을 준비해주세요:

  • React Native: 0.70 이상

  • iOS: 14.0 이상

  • Android: SDK 24 (Android 7.0) 이상

  • Node.js: 16 이상

  • appKey & appSecret: 애드체인 ADMIN에서 발급받은 인증 정보 ([email protected]로 문의)

Expo 프로젝트에서도 쓸 수 있습니다. SDK가 자동으로 Expo 환경을 감지합니다.

1. SDK 설치

npm으로 설치

npm install @1selfworld/adchain-sdk-react-native

또는 yarn을 쓴다면:

yarn add @1selfworld/adchain-sdk-react-native

iOS 의존성 설치

iOS는 CocoaPods로 네이티브 라이브러리를 설치해야 합니다:

Android 추가 설정 (필수)

React Native는 네이티브 모듈을 사용하므로, Android 프로젝트에 Adjoe Maven 저장소를 추가해야 합니다.

android/build.gradle 파일을 열어서 다음 내용을 추가하세요:

중요: https://releases.adjoe.io/maven 저장소를 빠뜨리면 Android 빌드 시 Adjoe SDK를 찾을 수 없어서 오류가 발생합니다. Adchain SDK가 내부적으로 Adjoe SDK를 사용하기 때문에 이 설정은 필수입니다.

또는, 프로젝트가 settings.gradle을 사용한다면:

2. 네이티브 설정

Android 매니페스트 설정

android/app/src/main/AndroidManifest.xml 파일을 열어서:

iOS 설정

ios/YourApp/Info.plist 파일에:

3. SDK 초기화

App.tsx 또는 메인 컴포넌트에서 SDK를 초기화합니다:

environment는 개발 중에는 'STAGING'으로, 릴리스할 때는 'PRODUCTION'으로 바꿔주세요.

4. 사용자 로그인

SDK를 쓰려면 사용자 로그인이 필요합니다:

일반적으로 앱의 로그인 화면에서 처리합니다.

5. 오퍼월 띄우기

전체 화면 오퍼월

버튼을 누르면 오퍼월이 열리도록:

임베디드 오퍼월 (화면 일부에 넣기)

화면의 특정 영역에 오퍼월을 넣고 싶다면:

이렇게 하면 탭이나 화면 일부에 오퍼월을 계속 띄워둘 수 있습니다.

6. 이벤트 추적

사용자 행동을 추적하려면:

iOS ATT 권한 요청

iOS에서 광고 추적 권한을 요청하려면 별도로 처리해야 합니다:

Expo가 아니라면 react-native-tracking-transparency 같은 라이브러리를 쓰시면 됩니다.

로그아웃

사용자가 로그아웃할 때:

샘플 프로젝트

전체 예제 코드를 보고 싶으시면 GitHub 샘플 프로젝트를 참고하세요:

  • React Native 샘플: https://github.com/1selfworld-labs/adchain-sdk-react-sample

  • Expo 샘플: https://github.com/1selfworld-labs/adchain-sdk-react-native-expo-sample

샘플 프로젝트에는 일반 React Native와 Expo 환경 모두의 예제가 포함되어 있습니다.

다음 단계

기본 설정이 끝났습니다. 이제 다른 기능들을 써볼 수 있습니다:

문제가 생겼다면

  • Android에서 빌드 에러가 나면: cd android && ./gradlew clean 후 다시 빌드

  • iOS에서 빌드 에러가 나면: cd ios && pod deintegrate && pod install 후 다시 빌드

  • 그 외 문제는 문제 해결 페이지 참고

Expo 프로젝트 주의사항

Expo Go 앱에서는 네이티브 모듈을 쓸 수 없어서 SDK가 작동하지 않습니다. Development Build를 만들어서 테스트해야 합니다:

TypeScript

SDK는 TypeScript 타입 정의를 포함하고 있어서, VSCode에서 자동완성이 잘 됩니다. 따로 @types 패키지를 설치할 필요 없습니다.

Last updated