@adstage/react-native-sdk
v1.0.10
Published
AdStage SDK for React Native - 광고 어트리뷰션, 딥링크, 인앱 이벤트 트래킹
Maintainers
Readme
AdStage React Native SDK
React Native용 AdStage SDK - 광고 어트리뷰션, 딥링크, 인앱 이벤트 트래킹
목차
설치
npm install @adstage/react-native-sdk
# or
yarn add @adstage/react-native-sdk플랫폼별 설정
iOS 설정
1. Pod 설치
cd ios && pod install2. Info.plist 설정 (필수)
<!-- ATT(App Tracking Transparency) 권한 - iOS 14.5+ 필수 -->
<key>NSUserTrackingUsageDescription</key>
<string>광고 효과 측정 및 맞춤형 광고 제공을 위해 사용됩니다.</string>
<!-- URL Scheme 설정 -->
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>your_app_scheme</string>
</array>
</dict>
</array>Android 설정
1. Maven 저장소 추가 (필수)
android/settings.gradle 또는 android/build.gradle에 추가:
// settings.gradle (신규 방식)
dependencyResolutionManagement {
repositories {
// ... 기존 저장소
maven { url 'https://repo.nbase.io/repository/nbase-releases' }
}
}
// 또는 build.gradle (기존 방식)
allprojects {
repositories {
// ... 기존 저장소
maven { url "https://repo.nbase.io/repository/nbase-releases" }
}
}2. minSdkVersion 확인
android/build.gradle에서 minSdkVersion이 24 이상인지 확인:
buildscript {
ext {
minSdkVersion = 24 // 최소 24 필요
}
}3. 딥링크 설정 (URL Scheme)
AndroidManifest.xml에 Intent Filter 추가:
<activity
android:name=".MainActivity"
android:launchMode="singleTask">
<!-- URL Scheme 딥링크 -->
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="your_app_scheme" />
</intent-filter>
</activity>📌 참고: SDK v1.0.4부터
MainActivity에서onNewIntent오버라이드가 필요 없습니다.
SDK가ActivityEventListener를 통해 Warm Start 딥링크를 자동으로 처리합니다. } }
## 빠른 시작
### 1. SDK 초기화
앱 시작 시 SDK를 초기화합니다:
```typescript
import { AdStage } from '@adstage/react-native-sdk';
// App.tsx 또는 진입점에서
useEffect(() => {
const initSDK = async () => {
await AdStage.initialize({
apiKey: 'your-api-key-here',
});
console.log('✅ AdStage SDK 초기화 완료');
};
initSDK();
}, []);2. 딥링크 리스너 설정
useEffect(() => {
const unsubscribe = AdStage.deepLink.setListener((data) => {
console.log('✅ 딥링크 수신:', data.shortPath);
console.log('파라미터:', data.parameters);
// 화면 이동 등 처리
if (data.parameters.screen) {
navigation.navigate(data.parameters.screen);
}
});
return () => unsubscribe();
}, []);3. 이벤트 트래킹
// 구매 이벤트
await AdStage.event.trackPurchase({
value: 29900,
currency: 'KRW',
transactionId: 'ORDER_001',
});
// 로그인 이벤트
await AdStage.event.trackLogin('email');딥링크
딥링크 리스너
const unsubscribe = AdStage.deepLink.setListener((data) => {
console.log('Short Path:', data.shortPath);
console.log('Link ID:', data.linkId);
console.log('Parameters:', data.parameters);
console.log('Source:', data.source); // "realtime" | "install"
});
// 컴포넌트 언마운트 시 해제
unsubscribe();딥링크 생성
const result = await AdStage.deepLink.create({
name: '여름 프로모션',
description: '2024년 여름 시즌용',
channel: 'google-ads',
campaign: 'summer_2024',
redirectConfig: {
type: 'APP',
android: {
packageName: 'com.example.app',
appScheme: 'myapp'
},
ios: {
appStoreId: '123456789',
appScheme: 'myapp'
}
},
parameters: {
productId: 'SUMMER_2024',
discount: '20'
}
});
console.log('Short URL:', result.shortUrl);Pending 딥링크 확인
앱이 종료된 상태에서 딥링크로 실행된 경우:
AdStage.deepLink.checkPendingDeepLink();인앱 이벤트
AdStage SDK는 46개의 표준 이벤트를 제공합니다.
사용자 라이프사이클
// 회원가입
await AdStage.event.trackSignUp('google');
// 로그인
await AdStage.event.trackLogin('email');
// 로그아웃
await AdStage.event.trackLogout();전자상거래
// 장바구니 추가
await AdStage.event.trackAddToCart({
value: 99000,
currency: 'KRW',
items: [
{ itemId: 'PROD_123', itemName: 'Wireless Earbuds', price: 99000, quantity: 1 }
]
});
// 구매 완료 ⭐
await AdStage.event.trackPurchase({
value: 129000,
currency: 'KRW',
transactionId: 'ORDER_20250105_001',
tax: 12900,
shipping: 3000,
coupon: 'SUMMER2025',
items: [
{ itemId: 'PROD_123', itemName: 'Wireless Earbuds', price: 126000, quantity: 1 }
]
});
// 환불
await AdStage.event.trackRefund({
transactionId: 'ORDER_20250105_001',
value: 129000,
currency: 'KRW'
});콘텐츠 조회
// 화면 조회
await AdStage.event.trackScreenView({
screenName: 'ProductDetail',
screenClass: 'ProductDetailScreen'
});
// 상품 상세 조회
await AdStage.event.trackProductDetailsView({
itemId: 'PROD_123',
itemName: 'Wireless Earbuds'
});
// 검색
await AdStage.event.trackSearch({ searchTerm: 'wireless headphones' });게임/진행
// 레벨업
await AdStage.event.trackLevelUp({ level: 25, character: 'warrior' });
// 업적 달성
await AdStage.event.trackAchievement({ achievementId: 'first_win' });
// 튜토리얼 완료
await AdStage.event.trackTutorialComplete();커스텀 이벤트
// 커스텀 이벤트 (event_name으로 이벤트명 지정 가능)
await AdStage.event.track('custom', {
event_name: 'promotion_click', // 이 값이 대시보드에서 이벤트명으로 표시
promotion_id: 'summer_sale_2025',
screen: 'home_banner'
});사용자 속성
// 사용자 속성 설정
await AdStage.setUserAttributes({
gender: 'female',
country: 'KR',
city: 'Seoul',
age: '28',
language: 'ko-KR'
});
// 사용자 속성 초기화 (로그아웃 시)
await AdStage.clearUserAttributes();요구 사항
| 플랫폼 | 최소 버전 | |--------|----------| | React Native | >= 0.70.0 | | iOS | >= 15.0 | | Android | minSdkVersion >= 24 |
상세 문서
더 자세한 사용법과 고급 기능은 공식 문서를 참조하세요:
- 딥링크: https://docs.adstage.net/ko/docs/core/dev-guide/mobile/sdk/deeplink/reactnative
- 인앱 이벤트: https://docs.adstage.net/ko/docs/core/dev-guide/mobile/sdk/inapp-event/reactnative
지원
- 이메일: [email protected]
- GitHub Issues: https://github.com/nbase-io/NBase-SDK-ReactNative/issues
라이선스
MIT © NBase
