# 빠른 시작

> Tapjoy Unity 플러그인 패키지를 프로젝트로 임포트하고 SDK 키를 설정하고, 첫 번째 씬(scene)에 탭조이 게임 오브젝트를 추가하여 연동을 시작합니다.

## 최소 요구 사항##minimum-requirements

* React Native: 0.71.6
* Node 14 이상
* Ruby 2.7.6
* iOS: 13.0
* Android: 5.0(API 21)

## SDK 연동##sdk-integration

탭조이 React Native 플러그인을 설치하는 것이 앱과 연동하는 첫 번째 단계입니다. NPM과 Yarn을 지원합니다.

### npm##npm

`npm`을 사용할 때는 Android 앱 또는 프로젝트 수준의 build.gradle 파일에 Maven 저장소를 추가해야 합니다.

```text
repositories {
    maven {
        url "https://sdk.tapjoy.com/"
    }
}
```

그런 다음 플러그인을 설치할 수 있습니다.

```zsh
npm install tapjoy-react-native-sdk
```

### Yarn##yarn

```zsh
yarn add tapjoy-react-native-sdk
```

그런 다음 탭조이를 애플리케이션으로 임포트하여 플러그인을 사용할 수 있습니다.

```javascript
import {Tapjoy, TJPlacement} from 'tapjoy-react-native-sdk'
```

## 앱 권한 추가(Android용)##add-app-permissions-(for-android)

`ACCESS_WIFI_STATE` 권한은 필요에 따라 매니페스트에 포함될 수 있습니다.

```java
<manifest ...>
  ...
  <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
  ...
</manifest>
```

## 탭조이에 연결##connect-to-tapjoy

연결 호출은 Offerwall SDK를 초기화하는 방법입니다. 앱 실행 후 가능한 한 빨리 수행합니다.

```javascript
try {
  let sdkKey = Platform.OS === 'ios' ? 'ios-sdk-key' : 'android-sdk-key'
  let flags: object = { TJC_OPTION_USER_ID: 'userId' };
  await Tapjoy.connect(sdkKey, flags, (event: TapjoyEvent) => {
       // Handle Warning
     },
  );

  // Handle Success
} catch (error: any) {
  // Handle Failure
}
```

연결 중에 블로킹 이외 문제가 발생하면 경고가 발생합니다. 성공은 이후에 발생합니다. 현재 이 기능은 ConnectFlags에서 전송된 경우에만 UserId 관련 문제를 감지합니다.

탭조이 설정을 마치면 애플리케이션을 빌드하고 실행할 수 있습니다.

### 로깅##logging

다음 메서드를 사용하여 로깅 레벨을 가져오고 설정할 수 있습니다.

```javascript
// Set logging level
Tapjoy.setLoggingLevel(TJLoggingLevel.Debug);

// Get logging level
var loggingLevel = await Tapjoy.getLoggingLevel();
```

### 최대 사용자 레벨##max-user-level

게임의 레벨 수를 탭조이에 제공할 수 있습니다. 이 값은 연결을 호출하기 전이나 후에 설정 가능합니다.

```javascript
Tapjoy.setMaxLevel(10); 
```

### 사용자 세그먼트##user-segment

`setUserSegment`를 호출하여 사용자를 세그먼트의 일부로 식별할 수 있습니다. 이는 연결 호출 전이나 후에 설정할 수 있습니다.

```javascript
Tapjoy.setUserSegment(TJSegment.VIP);
Tapjoy.setUserSegment(TJSegment.Payer);
Tapjoy.setUserSegment(TJSegment.NonPayer);
Tapjoy.setUserSegment(TJSegment.Unknown);
```

## 앱 트래킹 투명성 승인 요청##request-app-tracking-transparency-authorization

애플리케이션이 [앱 트래킹 투명성](https://developer.apple.com/documentation/apptrackingtransparency)을 사용하도록 설계된 경우 IDFA에 대한 액세스 권한을 요청하는 다이얼로그를 표시하려면 애플리케이션에서 IDFA 사용 권한을 설명하는 커스텀 메시지와 함께 NSUserTrackingUsageDescription 키를 포함하여 Info.plist를 업데이트합니다.

다음으로 `react-native-tracking-transparency` [패키지](https://www.npmjs.com/package/react-native-tracking-transparency)를 설치합니다.

```javascript
yarn add react-native-tracking-transparency
```

라이브러리를 임포트한 다음 권한 다이얼로그를 표시합니다.

```javascript
import {
    getTrackingStatus,
    requestTrackingPermission,
} from 'react-native-tracking-transparency';

...

let trackingStatus = await getTrackingStatus();
if (trackingStatus === 'authorized' || trackingStatus === 'unavailable') {
    await Tapjoy.connect(sdkKey, flags);
}else{
    trackingStatus = await requestTrackingPermission();
    await Tapjoy.connect(sdkKey, flags);
}
```
