# Adobe AIR の詳細設定

> GDPRおよびCCPAへの準拠、ユーザーセグメント化、カスタムユーザーIDなど、Adobe AIRの高度な設定を行います。

## GDPR - 同意の管理##gdpr---managing-consent

Unity LevelPlay とネットワーク サポート パブリッシャーは、ユーザーの同意に基づいて通信を行います。これには、メディエーション ネットワーク(サポート対象ネットワークの場合)にこの情報を渡すことも含まれます。

LevelPlay の API を使用してユーザーの同意状態を更新するには、次の機能を使用します。

ユーザーが同意した場合は、以下のフラグを true に設定します。

```java
IronSource.instance.setConsent(true);
```

ユーザーが同意しない場合は、以下のフラグを false に設定します。

```java
IronSource.instance.setConsent(false);
```

SDK 初期化期化の前に API を設定することをお勧めします。

## CCPA への準拠##ccpa-compliance

Unity LevelPlay プラットプラットフォーム (SDK バージョン 6.14.0 以降) では、パブリッシャーがカリフォルニア州コンシューマー者プライバシー法 (CCPA) に基づいてエンドユーザーの個人情報の販売を制限できます。

カリフォルニア州にある特定のユーザーの個人情報に関する通知は、「do not sell(販売しない)」設定に基づいて、その値を「true」または「false」に設定して処理する必要があります。

SDK を初期化する前に API を設定する必要があります。

ユーザーが個人情報の「販売」をオプトアウトした場合:

```java
IronSource.instance.setMetaData("do_not_sell","true");
```

個人情報の「販売」が許可されている場合

```java
 IronSource.instance.setMetaData("do_not_sell","false");
```

## UserID の設定##set-userid

サーバー間のコールバックを使用して、リワード広告ユニットをユーザーに付与する場合は、UserID を設定する必要があります。

> **Note:**
>
> userID を手動で定義する場合は、リクエストの前に行う必要があります。リクエストの後に userID を定義することはできません。

userID は、各ユーザーの一意の識別子です。userIDパラメーターを設定するか、省略して生成します。コードでの userID の設定のスキップを選択した場合、SDK は公平な userID を生成します。

1 \~ 64 文字の文字列（Android）または NSString（iOS）をサポートします。GAID(Google Advertising ID)またはIDFA(Apple Advertising ID)を使用するのが一般的です。

```java
IronSource.instance.setUserId(YOUR_USER_ID);
```

## セグメントの定義##define-segments

特定のオーディエンスに合わせて広告の配信方法をカスタマイズできるようになりました。ユーザーの詳細をサーバーに通知して、ユーザーが属するセグメントに応じてSDKが広告を配信するようにする必要があります。

LevelPlay は、ユーザーセグメントのアウトラインを作成するためにサーバーにデータを送信する 3 つの方法をサポートしています。

* **デバイスプロパティ**: LevelPlay SDK は、デバイスモデル、デバイス製造元、アプリケーションバージョン、OS など、ユーザーのデバイスに関連する特定の標準パラメータを自動的に収集します。このデータを当社に送信する必要はありません
* **ユーザープロパティ**: SDKによって収集されないユーザーデータ(例えば、年齢、性別、作成日)は、APIを通じてリレーする必要があります。（サポートされているセグメント プロパティの全リストと以下のセクションの説明を参照してください）。指示に従ってこれらの詳細を送信し、LevelPlay プラットフォームで定義したセグメントに関連する広告設定を SDK が適用できるようにします。
* **カスタムセグメント**: ユーザーの詳細をサーバに送信せずにカスタムセグメントを作成し、そのユーザーセグメントの広告設定を調整できます。

### Pass ユーザープロパティ##pass-user-properties

LevelPlay プラットフォームでセグメントを定義したら、サーバーにユーザーの詳細情報を通知する必要があります。

> **Note:**
>
> セグメントは SDK を初期化する **前に**必ず\*\* 設定してください。

まず、ironsource セグメントクラスをインポートしてユーザをセグメント化する必要があります。

```java
import com.ironsource.adobeair.IronSourceSegment;
```

セグメントのベースとなるサーバーに送信するプロパティを定義します。この情報は以下の**いずれ**かの方法で送信できます。

1. ユーザーが属するセグメントに精通している場合は、セグメント名を入力します。

   ```java
   IronSourceSegment segment = new IronSourceSegment ();
           segment.segmentName = "nameOfSegment";

   ```

2. ユーザーの詳細を送信してください。Ironsource は、API でユーザーをセグメントにアトリビュートするように設定できる、範囲な標準ユーザープロパティを提供します。サポートユーザーセグメントのプロパティの表を下にスクロールします。

   ```java
   // Create segment object
   var segment:IronSourceSegment = new IronSourceSegment();
   // Set user age
   segment.age = age;
   // Set user gender
   segment.gender = "gender";
   // Set user's level
   segment.level = levelnumber;
   // Set user creation date
   segment.userCreationDate=creationData
   // Set user's total in-app purchases
   segment.iapt = numberOfInAppPurchases;
   // Set user's paying status, 1 is yes 0 is no
   segment.isPaying = payingStatus;
   ```

   さらに、セグメントごとに最大5つのカスタムユーザープロパティを設定できます。

   ```java
   // Set custom parameters (up to 5)
   segment.setCustom("customKey1", "value1");
   segment.setCustom("customKey2", "value2");
          

   ```

次に、セグメントに基づいて広告ユニットを配信するには、セグメント名またはユーザープロパティーのいずれかを指定して以下の機能を呼び出します。

```java
IronSource.instance.setSegment(segment);
```

### サポートされるユーザーセグメントプロパティ##supported-user-segment-properties

| **セグメントプロパティ**   | **Type (タイプ)**           | **制限**                                                     | **説明**                                                                         |
| ---------------- | ------------------------ | ---------------------------------------------------------- | ------------------------------------------------------------------------------ |
| segmentName      | String                   | - 英数字 - 最大 32 文字                                           | ironsource アカウントのセグメントの名前                                                      |
| 年齢               | Int                      | 1-99                                                       | ユーザーの年齢                                                                        |
| 性別               | String                   | 女性または男性                                                    | ユーザーの性別                                                                        |
| 支払い              | Boolean                  | true または false                                             | - ユーザーがアプリケーション内課金にお金を使ったことがない場合は true - ユーザーがアプリケーション内課金にお金を使ったことがない場合は false |
| iap\_total       | ダブル                      | 1-999999.99                                                | ユーザーがアプリケーション内課金に費やした金額の合計                                                     |
| userCreationDate | ロング                      | 0 より小さい値にすることはできません                                        | ユーザーがアプリケーションをインストールした日付 (例えば、NSDate date)                                     |
| カスタムパラメーター       | key=string, value=string | - LevelPlay は、最大 5 つのカスタムパラメーター (英数字 - 最大 32 文字) をサポートします。 | サーバにディスパッチする追加データ                                                              |

ユーザーが属するセグメント名を受け取るには、以下のコールバックに登録します。コールバック文字列 (セグメント名) が空を返す場合、ironsource セグメントモジュールにユーザーに関連するセグメントが見つかりませんでした。

```java
IronSource.instance.addEventListener(“onSegmentReceived”, onSegmentReceived);
```

サンプル実装：

```java
function onSegmentReceived(event:DataEvent):void {
                trace (“onSegmentReceived: ” + event.data);
            }
```

## Adobe AIR のカスタムパラメーター##custom-parameters-for-adobe-air

LevelPlay SDK では、動画リワード広告単位の初期化期化時にカスタムパラメーターを渡す機能がサポートされます。その後、ユーザーの完了イベントでこのデータを受け取ります。

> **Note:**
>
> 1. カスタムパラメーターは、**サーバー間の** 完了コールバックとともにのみ機能します。パラメーターはコールバック文字列の一部として受け取ります。
> 2. Init リクエストには複数のカスタムパラメーターを挿入できます。

### 実装コード##implementation-code

#### 動画リワード##rewarded-video

> **Note:**
>
> Custom Parameters (カスタムパラメーター) は、セッションごとに複数回設定できます。値をリセットするには、clearRewardedVideoServerParameters を使用してから、新しい値を設定します。

```java
IronSource.instance.setRewardedVideoServerParameters(YOUR_CUSTOM_PARAMETERS);
```

さらに、この機能を呼び出すことで、リワード動画のカスタムパラメーターを削除できます。

```java
IronSource.instance.clearRewardedVideoServerParameters();
```

## ウォーターフォール設定を使用した価格制限 (ベータ)##price-limitations-using-waterfall-configuration-(beta)

ウォーターフォール設定 は、ウォーターフォールの制限を動的に設定するために使用できる API です。上限価格と下限価格を設定できます。これを使用して制限を設定し、ユーザーごとに返される WF に動的に影響し、ロード時間と待ち時間を削減できます。

制限には以下が含まれ、これらのパラメーターを任意に組み合わせることができます。

| プロパティ | Type (タイプ) | 説明                                     |
| ----- | ---------- | -------------------------------------- |
| 天井    | double     | 従来のインスタンスに適用される最大 eCPM を定義する米ドルの価格     |
| 床     | double     | 従来のインスタンスと入札者に適用される最小 eCPM を定義する米ドルの価格 |

### ウォーターフォール設定の作成##create-a-waterfall-configuration

WaterfallConfiguration クラスは、ウォーターフォールをカスタマイズまたはフィルタリングするための設定オブジェクトを表します。ウォーターフォール設定を作成するには、以下の実装します。

```js
var builder:WaterfallConfigurationBuilder = new WaterfallConfigurationBuilder();
        builder.SetCeiling(ceiling);
        builder.SetFloor(floor);
var configuration:WaterfallConfiguration = builder.Build();
        IronSource.instance.setWaterfallConfiguration(configuration,ISAdFormat.AdUnitName);
```

### ウォーターフォール設定の消去##clearing-a-waterfall-configuration

ウォーターフォール設定はセッション中に変更できます。特定の広告単位の設定を消去するには、`empty` WaterfallConfiguration 機能を使用します。

```js
var builder:WaterfallConfigurationBuilder = new WaterfallConfigurationBuilder();
var configuration:WaterfallConfiguration = builder.Build();
IronSource.instance.setWaterfallConfiguration(configuration.Empty(),ISAdFormat.AdUnitName);

```

## LevelPlay SDK のエラーコード##levelplay-sdk-error-codes

ironsource は、SDK インテグレーションで障害が発生した場合に説明を提供するエラーフィードバックメカニズムを提供します。これらのエラーは、問題が発生したときやインテグレーションのアスペクトが正しく完了しなかったときに発生します。

ironsource Error オブジェクトには、**エラー コード**と**メッセージ**が含まれます。以下は、考えられるすべてのエラーと、その機能に基づくメッセージです。

| エラーコード | 広告ユニット                | 説明                                                                                                             |
| ------ | --------------------- | -------------------------------------------------------------------------------------------------------------- |
| 508    | N/A                   | * メディエーション/ネットワークの初期化失敗
* Demand Only API を非 Demand Only モードで呼び出す
* Demand Only モードで Demand Only 以外の API を呼び出す |
| 509    | - インタースティシャル
- 動画リワード | **Show Fail**:No ads to show                                                                                   |
| 510    | インタースティシャル            | **ロード失敗**:サーバー反応失敗&#xA;**ロード失敗**:アダプタのロード失敗                                                                    |
| 520    | * インタースティシャル
* 動画リワード | **Show Fail**:インターネット接続なし。TrackNetworkState が有効になっている必要があります。&#xA;**Show Fail**:インターネット接続なし                    |
| 524    | - インタースティシャル
- 動画リワード | **Show Fail**:配置%@ はペースごとに定義された制限に達しました&#xA;**Show Fail**:配置%@ が制限に達しました                                       |
| 526    | * インタースティシャル
* 動画リワード | **Show Fail**:広告単位がセッションあたりの日予算の上限に達しました&#xA;**Show Fail**:広告単位がセッションあたりの日予算の上限に達しました                          |
| 1022   | 動画リワード                | **Show Fail**:別の RV が表示されている間は RV を表示できない                                                                      |
| 1023   | 動画リワード                | **Show Fail**:Show RV called when there are no available ads to show                                           |
| 1036   | インタースティシャル            | **Show Fail**:別のインタースティシャルが表示されている間はインタースティシャルを表示できません                                                         |
| 1037   | インタースティシャル            | **ロード失敗**:別のインタースティシャルの表示中にインタースティシャルをロードできません                                                                 |
