# Adobe AIR 고급 설정

> GDPR 및 CCPA 규정 준수, 사용자 세분화, 커스텀 사용자 ID 등 Adobe AIR에 대한 고급 설정을 설정.

## GDPR - 동의 관리##gdpr---managing-consent

Unity 레벨플레이 및 네트워크 지원 퍼블리셔의 사용자 동의 선택 커뮤니케이션(지원되는 네트워크의 경우)

레벨플레이 API 사용하여 사용자 동의 상태를 업데이트하려면 다음 함수 사용하십시오.

사용자 동의를 제공한 경우 다음 플래그 true로 설정합니다.

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

사용자 동의하지 않으면 다음 플래그 false로 설정합니다.

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

SDK 초기화 전에 API 설정하는 것이 좋습니다.

## CCPA 규정 준수##ccpa-compliance

Unity 레벨플레이 플랫폼(SDK 버전 6.14.0 이상)은 퍼블리셔가 캘리포니아 소비자 개인정보 보호법(CCPA)에 따라 최종 사용자의 개인정보를 판매하는 것을 제한하도록 지원합니다.

캘리포니아에 거주하는 특정 사용자의 개인정보에 대한 알림은 값을 ‘true’ 또는 ‘false’로 설정하여 ‘not sell’ 설정을 기반으로 처리해야 합니다.

SDK를 초기화하기 전에 API 설정해야 합니다.

사용자 개인정보의 "판매"를 거부한 경우:

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

개인정보의 "판매"가 허용되는 경우:

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

## UserID 설정##set-userid

서버 간 콜백을 사용하여 사용자에게 보상형 광고 유닛을 제공하는 경우 UserID를 설정해야 합니다.

> **Note:**
>
> userID를 수동으로 정의하려면 init 요청 전에 이 작업을 수행해야 합니다. init 요청 후 userID를 정의할 수 없습니다.

userID는 각 사용자의 고유 식별자. userID 파라미터 설정하거나 생략하여 생성할 수 있습니다. 코드에서 userID 설정을 건너뛰기로 선택하면 SDK가 공정한 userID를 생성합니다.

문자열(Android) 또는 NSString(iOS)은 1-64자를 지원합니다. 일반적으로 Google Advertising ID(GAID) 또는 Apple Advertising ID(IDFA)를 사용합니다.

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

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

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

레벨플레이 다음 세 가지 메서드를 지원하여 사용자 세그먼트 설명하기 위해 서버로 데이터를 전달합니다.

* **기기 속성**: 레벨플레이 SDK는 기기 모델, 기기 제조사, 앱 버전, OS와 같은 사용자의 기기에 관련된 특정 표준 파라미터를 자동으로 수집합니다. 이 데이터를 전달할 필요가 없습니다.
* **사용자 속성**: SDK에서 수집하지 않는 사용자 데이터(예: 연령, 성별 또는 생성일)는 API를 통해 전달되어야 합니다. (다음 섹션 지원되는 세그먼트 프로퍼티의 전체 목록과 설명을 참조하십시오.) 이 지침에 따라 SDK가 레벨플레이 플랫폼에서 정의한 세그먼트에 관련 광고 설정을 적용할 수 있도록 이 세부 정보를 전송합니다.
* **커스텀 세그먼트**: 사용자 세부 정보를 서버로 전달하지 않고 커스텀 세그먼트를 생성하고 해당 사용자 세그먼트에 맞춤형 광고 설정을 구성할 수 있습니다.

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

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

> **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
   세그먼트 = 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      | 문자열                      | - 영숫자 - 최대 32자                                | Ironsource 계정에 있는 세그먼트 특정 이름입니다.                              |
| 연령               | Int                      | 1-99                                          | 사용자 연령                                                        |
| 성별               | 문자열                      | 여성 또는 남성                                      | 사용자 성별                                                        |
| 지급               | 부울                       | 참 또는 거짓                                       | - 사용자 인앱 구매에 비용을 지출한 경우 true, 사용자 인앱 구매에 비용을 지출하지 않은 경우 false |
| iap\_total       | 더블                       | 1-999999.99                                   | 사용자 인앱 구매에 지출한 총 금액입니다.                                       |
| userCreationDate | 길이                       | 0보다 작을 수 없음                                   | 사용자 앱을 설치한 날짜입니다(예: NSDate date).                             |
| 커스텀 파라미터         | key=string, value=string | - 레벨플레이 최대 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

레벨플레이 SDK는 보상형 비디오 광고 유닛 초기화 시 커스텀 파라미터 전달 기능을 지원합니다. 그러면 사용자 완료 이벤트 이 데이터가 수신됩니다.

> **Note:**
>
> 1. 커스텀 파라미터는 **서버 간** 완료 콜백과 함께만 작동합니다. 파라미터 콜백 문자열의 일부로 수신됩니다.
> 2. Init 요청에 두 개 이상의 커스텀 파라미터 삽입할 수 있습니다.

### 구현 규칙##implementation-code

#### 보상형 비디오##rewarded-video

> **Note:**
>
> 커스텀 파라미터는 세션당 여러 번 설정할 수 있습니다. 값을 재설정하려면 clearRewardedVideoServerParameters를 사용하고 새 값을 설정합니다.

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

또한 다음 함수 호출하여 보상형 비디오 대한 커스텀 파라미터를 제거할 수 있습니다.

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

## 워터폴 설정 사용 가격 제한(베타)##price-limitations-using-waterfall-configuration-(beta)

Set Waterfall 설정 워터폴의 한계(예: 가격 천장 및 가격 한도)를 동적으로 설정하는 데 사용할 수 있는 API. 이를 사용하여 제한을 설정하고 사용자 반환되는 WF에 동적으로 영향을 줄여 로드 시간과 지연 단축할 수 있습니다.

제한에는 다음 파라미터가 포함되며, 이 파라미터는 다음과 같은 조합 수 있습니다.

| 프로퍼티 | Type | 설명                                              |
| ---- | ---- | ----------------------------------------------- |
| 천장   | 더블   | 기존 인스턴스에 적용되는 최대 eCPM을 정의하는 USD 단위 가격입니다.       |
| 바닥   | 더블   | 기존 인스턴스 및 입찰자에 적용되는 최소 eCPM을 정의하는 USD 단위 가격입니다. |

### 워터폴 설정 만들기##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);

```

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

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

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

| 오류 코드 | Ad Unit              | 설명                                                                                               |
| ----- | -------------------- | ------------------------------------------------------------------------------------------------ |
| 508   | N/A                  | * Mediation/네트워크의 초기 실패
* Demand Only 모드가 아닌 API 호출
* Demand Only 모드에서 비요청 전용 API 호출             |
| 509   | - 인터스티셜 광고
- 보상형 비디오 | **Show Fail**: 표시할 광고가 없습니다                                                                      |
| 510   | 인터스티셜 광고             | **Load Fail**: 서버 응답 실패&#xA;**Load Fail**: 어댑터 로딩 실패                                             |
| 520   | * 인터스티셜 광고
* 보상형 비디오 | **Show Fail**: 인터넷 연결 없음. ShouldTrackNetworkState가 활성화되어 있고, 사용 가능한&#xA;**Show Fail**: 인터넷 연결 없음 |
| 524   | - 인터스티셜 광고
- 보상형 비디오 | **Show Fail**: %@ 플레이스먼트가 속도별로 정의된 한도에 도달했습니다.&#xA;**Show Fail**: 플레이스먼트 %@가 한도에 도달했습니다.         |
| 526   | * 인터스티셜 광고
* 보상형 비디오 | **Show Fail**: 광고 유닛이 세션당 일일 한도에 도달했습니다.&#xA;**Show Fail**: 광고 유닛이 세션당 일일 한도에 도달했습니다.            |
| 1022  | 보상형 비디오              | **Show Fail**: 다른 RV가 표시되는 동안 RV를 표시할 수 없습니다                                                     |
| 1023  | 보상형 비디오              | **Show Fail**: 표시할 수 있는 광고가 없을 때 호출되는 RV 표시                                                      |
| 1036  | 인터스티셜 광고             | **Show Fail**: 다른 인터스티셜 광고 표시되는 동안 인터스티셜 광고 표시할 수 없습니다.                                          |
| 1037  | 인터스티셜 광고             | **Load Fail**: 다른 인터스티셜 광고 표시되는 동안 인터스티셜 광고 로드할 수 없습니다.                                          |
