# クイックスタート

> Tapjoy Unity プラグインパッケージをプロジェクトにインポートし、SDK キーを設定し、最初のシーンに Tapjoy ゲームオブジェクトを追加して統合を開始します。

## 最小要件##minimum-requirements

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

## SDK のインテグレーション##sdk-integration

アプリと統合する最初のステップは、Tapjoy 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
```

その後、Tapjoy をアプリケーションにインポートしてプラグインを使用できます。

```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>
```

## Tapjoy への接続##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 の問題のみを検出します。

Tapjoy の設定が完了したら、アプリケーションをビルドして実行できます。

### ロギング##logging

以下の方法を使用して、ロギングレベルを取得および設定できます。

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

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

### 最大ユーザーレベル##max-user-level

Tapjoy にゲーム内のレベル数を伝えることができます。この値は、connect を呼び出す前または後に設定できます。

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

### ユーザーセグメント##user-segment

`setUserSegment` を呼び出すことで、ユーザーをセグメントの一部として識別できます。これは connect を呼び出す前または後に設定できます。

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

## App Tracking Transparency 承認のリクエスト##request-app-tracking-transparency-authorization

アプリケーションが [App Tracking Transparency](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);
}
```
