# 手動での統合

> Tapjoy Android SDK を手動で統合するには、.aar ファイルをダウンロードしてプロジェクトの libs フォルダーに追加し、Tapjoy および Google Play Services を使用して Gradle の依存関係を更新します。

## SDK のダウンロード##download-sdk

SDK を手動で統合する最初のステップは、[Android SDK をダウンロード](https://sdk.tapjoy.com/releases/14.8.0/TapjoySDK_Android_v14.8.0.zip) することです。

## SDK をプロジェクトに加える##add-the-sdk-to-your-project

SDK を解凍すると、ドキュメント、ライブラリ、TapjoyEasyApp があります。

1. `tapjoyconnectlibrary.aar` ファイルをプロジェクトの /lib フォルダーにコピーします (このフォルダーがない場合は、最初に作成してください)
2. Tapjoy をアプリケーションの build.gradle に追加します。

```java
  dependencies {
    implementation files('libs/tapjoyconnectlibrary.aar')
  }
```

3. build.gradle に Google Play Services を追加します。

```java
repositories {
  maven {
    url 'https://maven.google.com/'
    name 'Google'
  }
}
```

```java
dependencies {
  implementation 'com.google.android.gms:play-services-ads-identifier:17.1.0'
}
```

### アプリの権限とアクティビティの追加##add-app-permissions-and-activities

以下の権限が必要です。

* `ACCESS_WIFI_STATE` (任意)

#### AD\_ID と Google Play ファミリープログラム##ad\_id-and-the-google-play-families-program

`play-services-ads` v17.1.0 には、Google Play ファミリープログラムのメンバーに対して削除する必要がある `AD_ID` 権限が含まれています。

マニフェストに以下の要素を追加することで、アクセス権を除外できます。

```java
  <uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>
```

詳細については、[広告 ID に関する Play Console のヘルプドキュメント](https://support.google.com/googleplay/android-developer/answer/6048248) を参照してください。

#### JAR のインテグレーション##jar-integration

AAR の代わりに JAR オプションを使用する場合は、以下の権限とアクティビティも必要です。

* `INTERNET`
* `ACCESS_NETWORK_STATE`

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

現在の SDK バージョンで Tapjoy の全機能を使用するには、以下のアクティビティを `AndroidManifest.xml` ファイルの Application ブロックに追加します。

```java
 <activity
    android:name="com.tapjoy.TJAdUnitActivity"
    android:configChanges="orientation|keyboardHidden|screenSize|uiMode"
    android:theme="@style/TranslucentTheme"
    android:enableOnBackInvokedCallback="true"
    android:hardwareAccelerated="true"
    tools:ignore="UnusedAttribute" />
<activity
    android:name="com.tapjoy.TJWebViewActivity"
    android:configChanges="orientation|keyboardHidden|screenSize|uiMode"
    android:theme="@style/TranslucentTheme"
    android:enableOnBackInvokedCallback="true"
    android:hardwareAccelerated="true"
    tools:ignore="UnusedAttribute" />
```

アプリのマニフェストアクティビティにも同じ configChanges を追加する必要があります。

```java
android:configChanges="orientation|keyboardHidden|screenSize|uiMode"
```

この時点で、アプリケーションをコンパイルして実行し、アプリのすべてが動作していることを確認するようお勧めします。実際にはアプリケーションのコードに対して何も行っていないため、アプリケーションの機能にエラーや変更はありません。

## Tapjoy への接続##connect-to-tapjoy

次のステップは、アプリケーションに Tapjoy 接続コードを追加することです。このコードのキー ビットは、アプリケーションで Offerwall SDK を "オン" にします。

> **Note:**
>
> Tapjoy Connect 呼び出しは非常に重要です。正しく実装されていないと、Tapjoy の製品や機能は動作しません。

Tapjoy 接続呼び出しを実装するには、統合するアプリケーション用の Offerwall SDK キーが必要です。これを見つけるには、Tapjoy ダッシュボードでアプリケーションを操作し、上部のナビゲーションバーにある "Settings" (設定) ボタンを選択します。"App Settings" (アプリ設定) に移動すると、ページの下部に SDK キーがあります。

次に、コードを記述します。Tapjoy をアクティビティにインポートします。

```java
  import com.tapjoy.Tapjoy
```

次に、メインアクティビティの `onCreate()` メソッドで Tapjoy に接続します。

```java
  Hashtable<String, Object> connectFlags = new Hashtable<String, Object>();
  connectFlags.put(TapjoyConnectFlag.TJC_OPTION_LOGGING_LEVEL, TJLogLevel.DEBUG); // 本番ビルドではこれを無効にする
  connectFlags.put(TapjoyConnectFlag.USER_ID, "USER_ID_GOES_HERE"); // 自己管理通貨で重要

  Tapjoy.connect(getApplicationContext(), "SDK_KEY_GOES_HERE", connectFlags, new TJConnectListener() {
        @Override
        public void onConnectSuccess() {
          
        }
        @Override
        public void onConnectWarning(int code, String message) {
          
        }
        @Override
        public void onConnectFailure() {
          
        }
   });
```

このコードでは、Tapjoy に接続し (成功、失敗、警告のコールバックをリッスン)、2 つの '接続フラグ' (ロギングとユーザー ID) を設定していることがわかります。`onConnectSuccess` は、SDK が Tapjoy サーバーに正常に接続されたことを示します。接続に成功したが、ノンブロッキングの問題が発生した場合、`onConnectWarning` が最初に発生します。この機能は現在、ConnectFlags で送信されたときに UserId の問題のみを検出します。サーバーに正常に接続できない場合、`onConnectFailure` が発生します。

パブリッシャーにとって最も一般的で便利な接続フラグは、**ENABLE\_LOGGING** と **USER\_ID** の 2 つです。

デバッグビルドではロギングフラグを使用しますが、本番用にビルドする場合は無効にすることが重要です。

**USER\_ID** フラグの設定は、自己管理通貨を使用する場合に重要です。これを接続時に設定することが重要です。プレースメントが呼び出される前に確実に設定し、報酬の問題が発生しないようにするためです。

OS から提供されるさまざまな Android 識別子が Tapjoy でどのように使用されるかをパブリッシャーが制御するのに役立つ、その他の接続フラグがいくつかあります。

| フラグ                            | 説明                                                                                                                                                                                | ノート                                                                                   |
| ------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| `ALLOW_LEGACY_ID_FALLBACK`     | このフラグを設定すると、広告 ID を使用できない場合、Offerwall SDK は永続化された ID を広告の目的に使用します。                                                                                                                | SDK バージョン 12.2.1 以降で使用できます。                                                           |
| `DISABLE_ADVERTISING_ID_CHECK` | デフォルトでは、Tapjoy の Android SDK は Google Advertising Identifier の存在を確認し、見つからない場合は初期化に失敗します。このフラグを設定すると、このチェックが無効になり、Google Advertising Identifier が存在しない場合でも Offerwall SDK が初期化されます。 | これは、Google Play 開発者サービスがアプリにない場合 (Google Play 以外のアプリストアでリリースするためのビルドを作成する場合など) に便利です。 |

すべての接続フラグの説明については、[Java SDK リファレンス](https://ltv.tapjoy.com/sdk/api/java/com/tapjoy/TapjoyConnectFlag.html) を参照してください。

次に、アプリケーションをコンパイルして実行します。

Tapjoy ダッシュボード で、上部のナビゲーションバーの **Analytics** (分析) を選択し、左側のナビゲーションバーの "Real-time" (リアルタイム) タブを選択すると、実行直後にアプリケーションのアクティビティが表示されます。
