# Flutter の詳細設定

> ユーザー・セグメント、カスタム・パラメータ、価格帯など、FlutterのSDKの詳細設定を構成して、広告の配信とMonetizationを最適化します。

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

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

Unity LevelPlay SDK は、Unity でユーザーセグメントのアウトラインを作成する以下の方法をサポートします。

| メソッド       | 説明                                                                                                | ノート                                                                             |
| ---------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| デバイス プロパティ | Unity LevelPlay SDK は、場所、デバイスモデル、デバイス製造元、アプリケーションバージョン、OS など、ユーザーのデバイスに関連する特定の標準パラメーターを自動的に収集します。 | このデータを Unity と共有する必要はありません。                                                     |
| ユーザープロパティ  | 作成日などの包括的なユーザーデータ (後述のサポートされているセグメントプロパティの完全なリストを参照) は、API を通じてリレーする必要があります。                      | 指示に従ってユーザーの詳細を送信し、LevelPlay プラットフォームで定義したセグメントに基づいて SDK がさまざまなユーザーを分類できるようにします。 |
| カスタムセグメント  | ユーザーの詳細をサーバーに送信せずにカスタムセグメントを作成し、そのユーザーセグメントの広告設定を調整できます。                                          |                                                                                 |

> **Note:**
>
> LevelPlay SDK 7.2.0 以降を使用している場合は、**LevelPlaySegment** API を使用してセッション中にセグメントを変更できます。これは次にロードされる広告に影響し、各広告単位をロードする前に呼び出すことでウォーターフォールに動的に影響します。LevelPlay のセグメント化の詳細については、[こちら](/grow/levelplay/platform/settings/segments.md)を参照してください。

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

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

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

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

   ```dart
   segment.setSegmentName(name);
   ```

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

   ```dart
   final segment = LevelPlaySegment();
   segment.level = levelParam;
   segment.isPaying = isPayingParam;
   segment.userCreationDate = dateTimeParam;
   segment.iapTotal = iaptParam;

   // up to 5 custom params
   segment.setCustom(key:'CustomKey1', 値:'CustomVal1');

   // Set LevelPlay Segment
   LevelPlay.setSegment(segment);
   ```

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

| セグメントプロパティ            | Type (タイプ)               | 制限                                                       | 説明                                                                         |
| --------------------- | ------------------------ | -------------------------------------------------------- | -------------------------------------------------------------------------- |
| `segmentName`         | String                   | * 英数字
* 最大 32 文字                                         | LevelPlay アカウントで指定されたセグメント名                                                |
| **支払**                | Boolean                  | true または false                                           | - ユーザーがアプリケーション内課金に課金したことがある場合は true
- ユーザーがアプリケーション内課金にお金を使っていない場合は false |
| **iap\_total**        | Double                   | 1-999999.99                                              | ユーザーがアプリ内課金に費やした金額の合計                                                      |
| **userCreationDate**  | Long                     | 0 より小さい値にすることはできません                                      | ユーザーがアプリケーションをインストールした日付（ミリ秒単位）                                            |
| **Custom Parameters** | key=string, value=string | * LevelPlay SDK は最大 5 つのカスタムパラメーターをサポート
* 英数字
* 最大 32 文字 | サーバにディスパッチする追加データ                                                          |

## リワードサーバーからサーバーへのコールバックのカスタムパラメーター##custom-parameters-for-rewarded-server-to-server-callbacks

LevelPlay 報酬ベースの広告ユニットは、広告完了イベントの成功後にユーザーに付与する必要があるゲーム内報酬を通知するサーバー側のイベントをサポートします。詳細については、[サーバ間コールバック設定](/grow/levelplay/platform/settings/server-to-server-callback.md) を参照してください。

ランタイム カスタム パラメータをクライアント経由で共有することもできます。これを実装するには、`setMetadata` API を使用してカスタムパラメーターを`LevelPlay_Rewarded_Server_Params`に渡します。カスタム パラメータは、以前の値を上書きしてセッションを通じて複数回更新できます。

カスタム パラメータをリセットするには、`LevelPlay_Rewarded_Server_Params` を空の配列に設定します。

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

```dart
LevelPlay.setMetaData({
  'LevelPlay_Rewarded_Server_Params': ['key1=value1', 'key2=value2'],
});
```

その後、以下のようなコールバックを受け取ります。

```http
http://www.mydomain.com/rewardsCallback?appUserId=[ユーザー ID]&ゲーム内報酬=[ゲーム内報酬]&eventId=[イベント ID]&itemName=[項目名]&custom_key1=値1&custom_key2=値2
```

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

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

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

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