| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
Tags
- dev
- 개발자
- 깃협업
- env사용
- 앱에 팝업띄우기
- 환경변수사용
- 파이썬 코테준비
- 앱개발기능추가
- HTML
- 깃 꼬였을 때
- 코틀린
- 앱사용자행동추적
- 깃 충돌 해결방법
- frontend
- git방식
- Git협업
- CSS
- 프론트엔드
- 앱사용자추적
- JavaScript
- 깃 충돌시
- 앱개발
- kotlin
- 백엔드
- 파이썬코테함수정리
- 위키피디아검색창
- 파이썬 코테 함수
- 코테준비
- Python3
- It
Archives
- Today
- Total
zooooss
[React Native] Amplitude로 앱 사용자 이벤트(행동) 추적하기 본문
1. 설치
npm install @amplitude/analytics-react-native
npm install @react-native-async-storage/async-storage
**문제됐던 부분**
설치 후 ios에 pod install 해줘야 했는데, XCode 버전 문제로 인해 Mac Software Update 하려고 보니 또 용량문제로..(다음 맥은 꼭 용량 큰걸로..)
드라이브 옮기고 등의 작업 해준 이후에!
다!시!
XCode 재설치 후
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
sudo xcodebuild -license accept
이후
드디어!
brew install cocoapods
ios에서 pod install
로 이슈 마무리..
2. 재시작
npm start -- --reset-cache
3. https://app.amplitude.com/와 연동하기(초기화하기)
방법 1) 타임스탬프 기반
React.useEffect(() => {
const initAmplitude = async () => {
try {
// userId 설정 (사용자 고유 ID)
const userId = 'user_' + Date.now();
//init 옆은 amplitude에 만든 프로젝트의 API 가져온 것(env로 사용해야겠죵)
await amplitude.init('2b645b2935a1e99120e0e4222e1af075', userId);
console.log('Amplitude 초기화 성공! User ID:', userId);
} catch (error) {
console.error('Amplitude 초기화 실패:', error);
}
};
initAmplitude();
}, []);
방법 2) AsyncStorage에 저장해서 재사용
import AsyncStorage from '@react-native-async-storage/async-storage';
React.useEffect(() => {
const initAmplitude = async () => {
try {
// 저장된 userId 가져오기 또는 새로 생성
let userId = await AsyncStorage.getItem('amplitude_user_id');
if (!userId) {
userId = 'user_' + Date.now() + '_' + Math.random().toString(36).substring(7);
await AsyncStorage.setItem('amplitude_user_id', userId);
}
await amplitude.init('2b645b2935a1e99120e0e4222e1af075', userId);
console.log('Amplitude 초기화 성공! User ID:', userId);
} catch (error) {
console.error('Amplitude 초기화 실패:', error);
}
};
initAmplitude();
}, []);
방법 3) 로그인 시스템 있는 앱이면,
const userId = currentUser.email; // 또는 currentUser.id
await amplitude.init('2b645b2935a1e99120e0e4222e1af075', userId);
4. React Native용 Amplitude의 함수들 사용하기
// MainScreen.js 상단에 import 추가
import * as amplitude from '@amplitude/analytics-react-native';
const searchAuthor = authorName => {
amplitude.track('Author_Clicked', {
authorName: authorName,
bookTitle: book.title,
country: country
});
//나머지 기존 코드(버튼 등!)
<TouchableOpacity
style={styles.navItem}
onPress={() => {
amplitude.track('Play_Clicked');
console.log('[Amplitude] Tracked: Play_Clicked');
setActiveTab('home');
}}
>
이런 식으로 추적하고 싶은 버튼이나 기능에 대하여 amplitude.track('blabla'); 코드를 삽입해줌.

이를 통하여 앞으로 앱 사용자의 행동 추적을 통해 더욱 더 개선시킬 방법을 구안할 것!
'STUDY > App' 카테고리의 다른 글
| [React Native] 앱에서 .env 파일과 환경 변수 사용 (0) | 2026.01.19 |
|---|---|
| [React Native] 웹뷰(WebView)로 위키피디아 창 띄워서 검색기능 제공하기 (0) | 2025.12.03 |
| [Reactive Native] 캐시(Cache) 설계 - 크롤링 주기 설정(속도 최적화) (0) | 2025.12.03 |
| [React Native] 북마크 기능 개발(AsyncStorage) (4) | 2025.11.13 |
| [React Native] 안드로이드 앱과 구글 시트 연동(vscode로 개발) (0) | 2025.11.03 |