# クイックスタート

> Tapjoy Unity プラグインをプロジェクトにインポートして、SDK の統合を有効にします。このクイックスタートのウォークスルーでは、.unitypackage のインポート、SDK キーの設定、必要な Tapjoy ゲームオブジェクトの追加について説明します。

## SDK の統合##sdk-integration

アプリと統合するための最初のステップは、[Unity SDK のダウンロード](https://sdk.tapjoy.com/releases/14.8.0/TapjoyUnityPlugin_v14.8.0.zip) です。

Tapjoy Unity Plugin の zip ファイルには、簡単にインポートできる Unity パッケージファイルと、Tapjoy のアップグレード用にファイルをドラッグアンドドロップできる生のファイルが含まれています。`TapjoyUnityPlugin_vVERSION.unitypackage` をインポートするには、以下の手順に従います。

1. Unity プロジェクトを開きます。
2. **Assets** (アセット) > **Import Package** (パッケージをインポート) > **Custom Package** (カスタムパッケージ) に移動します。
3. `TapjoyUnityPlugin_vVERSION.unitypackage` ファイルを指定します。
4. インポートファイルのリストを確認し、競合がないかどうかを確認します。
5. **Import** (インポート) を選択してファイルを受け入れます。

> **Note:**
>
> &#x20;12.8.0 から、Offerwall SDK は External Dependency Manager によって Cocoapods を使用して管理されるようになりました。Cocoapods のバージョンが 1.9.0 以降で、Xcode のバージョンが 11.0 以降であることを確認してください。

### Unity 5.4 以降での更新##updating-on-unity-5.4-or-higher

統合の更新中、Unity 5.4 以降を使用している場合は、"fix" (修正) ボタンが表示され、Google Play 開発者サービスのライブラリが iOS ビルドに含まれるとマークされていることに関わるエラーを修正できます。

**Fix** を選択して、Google Play 開発者サービスが Android ビルドにのみ含まれるようにします。Unity 5.4 より前のバージョンでは、google-play-services\_lib が Android ビルドにのみ含まれるように手動で設定する必要があります。新しい統合ではこの修正は不要で、このボタンは表示されません。

### アプリ権限の追加 (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

Tapjoy の設定は Tapjoy ウィンドウで開始できます。`Window > Tapjoy` に移動して Tapjoy ウィンドウを開きます。

![ゲーム内の Unity Offerwall ウィンドウの例。](/api/media?file=/grow/media/images/tapjoy_window_screenshot.png)

Tapjoy ウィンドウでは、以下を設定できます。

* Android および iOS 用の SDK キーの設定
* Android マーケット (Google や Amazon など) のストア名の追加
* 広告 ID、永続的 ID、および IDFA の使用の有効化または無効化
  * **Disable Advertising Id** (広告 ID を無効にする): このチェックボックスは、Android の **DISABLE\_ADVERTISING\_ID\_CHECK** 接続フラグと同じ効果があります。デフォルトでは、Tapjoy の Android SDK は Google Advertising Identifier の存在を確認し、見つからない場合は初期化に失敗します。このボックスをオンにすると、このチェックが無効になり、Google Advertising Identifier が存在しない場合でも Offerwall SDK が初期化されます。これは、Google Play 開発者サービスがアプリにない場合 (Google Play 以外のアプリストアでリリースするためのビルドを作成する場合など) に便利です。
  * **Disable Persistent Ids** (永続的 ID を無効にする): このチェックボックスは、Android の **DISABLE\_PERSISTENT\_IDS** 接続フラグと同じ効果があります。Offerwall SDK は永続的識別子 (MAC アドレスや Android 識別子など) を Tapjoy サーバーに送信し、広告識別子が利用できない場合のフォールバック広告識別子として使用します ([広告 ID に関する Play Console のヘルプドキュメント](https://support.google.com/googleplay/android-developer/answer/6048248) で推奨されているオプション)。このフラグが設定されている場合、SDK 内で広告識別子が使用できない場合にのみ、広告主のトラッキング目的で永続的 ID が Tapjoy サーバーに送信されます。
  * **DISABLE\_ANDROID\_ID\_AS\_ANALYTICS\_ID** 接続フラグに相当するチェックボックスはありません。(このフラグが設定されている場合、Tapjoy が分析の目的で使う ID は Android ID のコピーではなく、ランダムに生成された文字列です。以前のバージョンからこのフラグの設定を変更するビルドをリリースすると、既存のユーザーの一部が Tapjoy の分析ツールによって新規ユーザーと見なされる場合があります。)このフラグを設定する場合は、[Tapjoy Unity の手動接続](#manual-connect) を使用し、**DISABLE\_ANDROID\_ID\_AS\_ANALYTICS\_ID** フラグを加える必要があります。
* ロギングレベルの設定。

GCMReceiver の設定や Install Referrer Receiver の設定など、統合の状態を確認することもできます。

Offerwall SDK を機能させるには、TapjoyComponent がアタッチされた TapjoyUnity ゲームオブジェクトが必要です。エディターウィンドウに "Fix" ボタンが表示され、このゲームオブジェクトが自動的に追加および設定されます。Tapjoy ゲームオブジェクトは、ゲーム内で最初に表示されるシーンにのみ追加します。

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

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

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

```csharp
Tapjoy.SetMaxLevel(10); 
```

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

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

```csharp
Tapjoy.SetUserSegment(TJSegment.VIP);
Tapjoy.SetUserSegment(TJSegment.Payer);
Tapjoy.SetUserSegment(TJSegment.NonPayer);
Tapjoy.SetUserSegment(TJSegment.Unknown); 
```

### 手動接続##manual-connect

Unity SDK では、コードで接続ステップをコントロールできます。デフォルトでは、SDK が接続を処理します。手動コントロールを行うには、まず Tapjoy の設定ウィンドウ (Window (ウィンドウ) > Tapjoy) で "Auto-Connect" (自動接続) オプションをオフにします。

このオプションをオフにすると、SDK は接続を自動的に処理しなくなります。コードで接続を処理する必要があります。この動作はネイティブ SDK と同じです。

アプリケーションの初回起動時に、`Connect` を呼び出して SDK を Tapjoy サーバーに接続する必要があります。Connect 関数には 2 つのバージョンがあります。1 つ目の形態の Connect では、SDK キーを文字列として受け取ります。アプリケーションがマルチプラットフォームの場合は、各プラットフォームに正しい SDK キーを指定する必要があります。

```csharp
#if UNITY_ANDROID
		Tapjoy.Connect("your_android_sdk_key");
#elif UNITY_IOS
		Tapjoy.Connect("your_ios_sdk_key");
#endif
```

もう 1 つのバージョンの Connect は、2 番目のパラメーターである文字列/文字列値のディクショナリを受け取ります。このディクショナリは connectFlags で、ネイティブ SDK と同じように動作します。

```csharp
Dictionary<string,string> connectFlags = new Dictionary<string,string>();
connectFlags.Add("TJC_OPTION_USER_ID", "<USER_ID_HERE>");

#if UNITY_ANDROID
  Tapjoy.Connect("your_android_sdk_key", connectFlags);
#elif UNITY_IOS
  Tapjoy.Connect("your_ios_sdk_key", connectFlags);
#endif
```

ロギングレベルをプログラムで取得および設定することもできます。

```csharp
// Set logging level
Tapjoy.SetLoggingLevel(LoggingLevel.Debug);

// Get logging level
LoggingLevel loggingLevel = Tapjoy.GetLoggingLevel();
```

SDK で他のアクション (広告のロードなど) を実行する前に、SDK の接続を完了する必要があります。接続イベントによって、OnConnectSuccess と OnConnectFailure の 2 つのイベントデリゲートがトリガーされます。接続イベントをリッスンするデリゲート関数を宣言します。onConnectSuccess が起動したら、他の SDK 関数の使用を開始できます。

SDK の接続に失敗した場合は、パラメーターを指定せずに Connect() を呼び出すことで接続を再試行できます。これにより、SDK は最後に接続しようとした SDK キーを使用して接続を再試行します。

### コールバック##callbacks

SDK を実行できたら、次はベストプラクティスのコードを作成します。Offerwall SDK は、広告のリクエストやトラッキングデータの送信を行う前に、サーバーに正常に接続する必要があります。この SDK は、SDK が正常に接続されたときに実行されるデリゲート関数 `OnConnectSuccess` を公開しています。SDK が正常に接続されるまで待ってから、広告のリクエストやデータの追跡など、他の関数の使用を試行してください。 コールバックは、接続中にノンブロッキングの問題がある場合に発生します (その後に `OnConnectWarning` も発生します)。この機能は現在、ConnectFlags で送信されたときに UserId の問題のみを検出します。`OnConnectFailure` は、エラーが発生して SDK が接続されなかったことを示します。

```csharp
Tapjoy.OnConnectSuccess += HandleConnectSuccess;
...

public void HandleConnectSuccess() {
    Debug.Log ("Connect Success");

    // Now that we are connected we can start preloading our placements
    TJPlacement p = TJPlacement.CreatePlacement("my_placement");
    p.RequestContent();
}

Tapjoy.OnConnectWarning += HandleConnectWarning;
...

void HandleConnectWarning(int code, string message)
{
    
}

Tapjoy.OnConnectFailed += HandleConnectFailed
...

public void HandleConnectFailed(int code, string message){

}
```

ブーリアン `Tapjoy.isConnected` を確認して、SDK の接続状態を確認することもできます。
