# 플러터의 고급 설정

> 사용자 세그먼트, 커스텀텀 파라미터, 단가 등 Flutter용 고급 SDK 설정을 설정 광고 게재와 수익화 최적화합니다.

## 세그먼트 정의##define-segments

이제 특정 잠재 고객에게 맞게 광고를 게재하는 방법을 쉽게 커스터마이즈할 수 있습니다. 사용자 속한 세그먼트 따라 광고를 게재할 수 있도록 SDK에 사용자 세부 정보를 서버에 알려야 합니다.

Unity 레벨플레이 SDK는 다음 메서드를 지원하여 Unity 사용자 세그먼트 간략하게 설명합니다.

| 메서드      | 설명                                                                                | 참고                                                                    |
| -------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------- |
| 기기 속성    | Unity 레벨플레이 SDK는 위치, 기기 모델, 기기 제조사, 앱 버전, OS 등 사용자 기기 관련된 특정 표준 파라미터를 자동으로 수집합니다. | 이 데이터를 Unity와 공유할 필요가 없습니다.                                           |
| 사용자 속성   | 생성일과 같은 포괄적인 사용자 데이터(아래에 설명이 포함된 지원되는 전체 세그먼트 프로퍼티 목록 참조)는 API 통해 전달되어야 합니다.      | 지침에 따라 사용자 세부 정보를 전송하여 SDK가 레벨플레이 플랫폼에서 정의한 세그먼트에 따라 사용자를 분류할 수 있습니다. |
| 커스텀 세그먼트 | 사용자 세부 정보를 Unity 서버로 전달하고 해당 사용자 세그먼트 맞게 광고 설정을 커스터마이즈하지 않고 커스텀 세그먼트 생성할 수 있습니다.  |                                                                       |

> **Note:**
>
> 레벨플레이 SDK 7.2.0 이상을 사용하는 경우 **LevelPlaySegment** API 사용하여 세션 중에 세분화를 변경할 수 있습니다. 이는 다음 로드된 광고에 영향을 미치며 각 광고 유닛을 로드하기 전에 호출되어 워터폴에 동적으로 영향을 미칠 수 있습니다. 레벨플레이 세분화에 대해 자세히 알아볼 수 있습니다. [여기](/grow/levelplay/platform/settings/segments.md).

### 사용자 프로퍼티 전달##pass-user-properties

레벨플레이 플랫폼에서 세그먼트를 정의했으면 Unity 서버에 사용자 세부 정보를 알려야 합니다.

세그먼트를 지지대 Unity 서버에 전송할 프로퍼티를 정의합니다. 다음 방법 중 하나를 통해 이 정보를 전송할 수 있습니다.

1. 사용자 속한 세그먼트 익숙하다면 세그먼트 이름을 입력합니다.

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

2. Unity 사용자 세부 정보를 보냅니다. 레벨플레이 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`        | 문자열                      | * 영숫자
* 최대 32개의 문자                                               | 지정된 이름                                                      |
| **지급**               | 부울                       | 참 또는 거짓                                                          | - 사용자 인앱 구매에 비용을 지출한 경우 true
- 사용자 인앱 구매에 비용을 지출하지 않은 경우 거짓 |
| **iap\_total**       | Double                   | 1-999999.99                                                      | 사용자가 인앱 구매에 지출한 총 금액입니다.                                    |
| **userCreationDate** | 길이                       | 일 수 없음                                                           | 사용자가 앱을 설치한 날짜(밀리초)                                         |
| **커스텀 파라미터**         | key=string, value=string | * 레벨플레이 SDK는 최대 5개의 커스텀 파라미터를 지원합니다.
* alphanumeric
* 최대 32개의 문자 | 서비스 서버에 디스패치하려는 추가 데이터                                      |

## 보상형 광고 서버 간 콜백에 대한 커스텀 파라미터##custom-parameters-for-rewarded-server-to-server-callbacks

레벨플레이 보상형 광고 유닛은 서버 측 이벤트를 지원하여 성공적인 광고 완료 이벤트 후 사용자에게 제공해야 하는 보상을 알려줍니다. 자세한 내용은 [서버 간 콜백 설정](/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]&rewards=[리워드]&eventId=[이벤트_ID]&itemName=[ITEM_NAME]& 커스텀_key1=value1& 커스텀_key2=value2
```

## 레벨플레이 SDK 오류 코드##levelplay-sdk-error-codes

Unity 레벨플레이 SDK 연동의 실패에 대한 설명을 제공하는 오류 피드백 메커니즘을 제공합니다. 무언가 잘못되었거나 연동의 한 부분이 올바르게 완료되지 않은 경우 이러한 오류가 표시됩니다.

레벨플레이 Error 오브젝트 오류 코드와 메시지 포함되어 있습니다. 다음은 가능한 모든 오류와 함수에 따라 해당 메시지.

| 오류 코드 | 광고 단위                 | 설명                                                                                               |
| ----- | --------------------- | ------------------------------------------------------------------------------------------------ |
| 508   | 해당 없음                 | * Mediation/네트워크의 초기 실패
* Demand Only 모드가 아닌 API 호출
* Demand Only 모드에서 비요청 전용 API 호출             |
| 509   | 인터스티셜 광고, 보상형 동영상     | **Show Fail**: 표시할 광고가 없습니다                                                                      |
| 510   | 인터스티셜 광고, 보상형 비디오, 배너 | **로드 실패**: 서버 응답 실패                                                                              |
| 520   | 인터스티셜 광고, 보상형 동영상     | **Show Fail**: 인터넷 연결 없음. ShouldTrackNetworkState가 활성화되어 있고, 사용 가능한&#xA;**Show Fail**: 인터넷 연결 없음 |
| 524   | 인터스티셜 광고, 보상형 동영상     | **Show Fail**: %@ 플레이스먼트가 속도별로 정의된 한도에 도달했습니다.&#xA;**Show Fail**: 플레이스먼트 %@가 한도에 도달했습니다.         |
| 526   | 인터스티셜 광고, 보상형 동영상     | **Show Fail**: 광고 유닛이 세션당 일일 한도에 도달했습니다                                                          |
| 604   | Banner                | 로드할 수 없습니다                                                                                       |
| 605   | 배너                    | 예기치 않은 예외                                                                                        |
| 606   | Banner                | 첫 번째 로드 시 모든 네트워크에 배너 채우지 않음                                                                     |
| 1007  | 인터스티셜 광고, 보상형 동영상     | **경매 실패**: 경매 요청에 필요한 모든 정보가 포함되지 않았습니다                                                          |
| 1022  | 보상형 비디오               | **Show Fail**: 다른 RV가 표시되는 동안 RV를 표시할 수 없습니다                                                     |
| 1023  | 보상형 비디오               | **Show Fail**: 표시할 수 있는 광고가 없을 때 호출되는 RV 표시                                                      |
| 1035  | 인터스티셜 광고              | **빈 폭포**                                                                                         |
| 1036  | 인터스티셜 광고              | **Show Fail**: 다른 인터스티셜 광고가 표시되는 동안 인터스티셜 광고를 표시할 수 없습니다                                         |
| 1037  | 인터스티셜 광고              | **로드 실패**: 다른 인터스티셜 광고가 표시되는 동안 인터스티셜 광고를 로드할 수 없습니다                                             |
| 1039  | 인터스티셜 광고              | 호출하는 동안 인터스티셜 광고                                                                                 |
