SDK 추가 설정

유저 ID 설정

오퍼월 광고 유닛이나 아이언소스 보상형 광고 유닛에서 유저 보상을 위해 서버간 콜백을 사용하는 경우, setUserID 메서드를 사용하여 각 사용자 별로 고유 식별자 (UserID)를 정의해야 합니다.
사용자 관련 데이터 손실을 방지하기위해서는, UserID는 초기화 요청 이전에 설정해야 합니다. 최대 64 자리의 숫자 및 영문자로 이루어진 고유한 식별 ID를 사용해 주세요. (안드로이드의 경우 String 형식, iOS의 경우 NSString 형식) 

IronSource.Agent.setUserId(YOUR_USER_ID);
Note: 모든 각 사용자들에게 고유한 UserID가 부여되도록 하기 위해서는 IDFA나 GAID를 UserID로 사용하면 안됩니다. 

세그먼트 정의

아이언소스 SDK의 세그먼트 기능을 통해 특정 광고 시청자에 맞게 광고 제공방식을 쉽게 조정할 수 있습니다. 아이언소스 SDK가 사용자의 세그먼트를 분류하도록 하려면 레벨플레이 플랫폼 서버에 사용자들의 세부 정보를 전달하여야 합니다.

아이언소스는 사용자 구분을 위해 아래의 세 가지 데이터 전달 방식을 지원합니다:

  • 기기 속성 정보: 아이언소스 SDK는 위치, 기기 모델, 기기 제조사, 앱 버전, OS 등과 같은 사용자의 기기에 존재하는 표준 파라미터들을 자동으로 수집합니다. 해당 데이터들은 별도로 송신하지 않아도 됩니다. (위치의 경우 도시 수준의 위치까지만 수집)
  • 사용자 속성 정보: 나이, 성별, 생성일과 같은 포괄정 유저데이터(지원되는 전체 세그먼트 속성 및 설명 목록은 아래에 있는 항목을 참조)는 API를 통해서만 전달되어야 합니다. 아이언소스 SDK가 아이언소스 플랫폼에서 정의된 세그먼트들에 기반해 다양한 사용자를 분류할 수 있도록 지침을 따라 유저 상세 정보를 보내주시면 됩니다.
  • 커스텀 세그먼트: 유저 상세 정보들을 아이언소스 서버에 보내지 않고 직접 커스텀 세그먼트를 생성하고 그 설정에 맞게 광고 조정할 수 있습니다.
동적 세그먼트 구분 아이언소스 SDK 7.2.0 이상부터는 아이언소스 세그먼트 API로 세션 중에 세그먼트를 변경할 수 있습니다.
이렇게 변경된 사항은 변경 이후 로딩되는 광고부터 적용되며, 각각의 광고 유닛 로딩 전에 호출되어 워터폴에 동적으로 적용됩니다.레벨플레이 세그먼트에 대한 자세한 설명은 여기를 참고 부탁 드립니다.

사용자 속성 정보 전달하기

세그먼트 사용을 위해서는 아이언소스 플랫폼에서 세그먼트 정보 정의가 완료 후, 아이언소스 서버로 사용자 별 정보를 보내야 합니다.

세그먼트의 기반이 될 속성을 정의하고 아이언소스 서버로 전달합니다. 아래 중 한 가지 방법으로 이 정보들을 전송할 수 있습니다:

  1. 사용자가 속한 세그먼트가 이미 알고 있는 세그먼트라면 아래와 같이 세그먼트 명칭을 지정합니다:
    IronSourceSegment segment = new IronSourceSegment ();
            segment.segmentName = "nameOfSegment";
    
  2. 유저 상세 정보를 전송합니다. 아이언소스는 API 상에서 사용자를 세그먼트로 분류하기 위해 설정할 수 있는 다양한 표준 사용자 속성을 제공합니다. 아래로 스크롤하여 지원되는 사용자 세그먼트 속성들을 확인하세요.
    // Create segment object
    IronSourceSegment segment = 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개의 커스텀 사용자 속성 설정이 가능합니다:

    // Set custom parameters (up to 5)
    Dictionary<string,string> customParams = new Dictionary<string,string> ();
    customParams.Add ("customKey", "value");
    segment.customs = customParams;
           
    

다음으로, 사용자 맞춤 경험을 위한 세그먼트 기반 광고 유닛 게재를 위해, 세그먼트 명칭이나 사용자 속성 중 하나로 아래의 함수 호출을 완료하세요:

IronSource.Agent.setSegment (segment);

지원되는 사용자 세그먼트의 속성

세그먼트 속성 타입 제약 설명
segmentName String
  • 영문자/숫자
  • 최대 32자
레벨플레이 계정 내에 정의된 세그먼트의 명칭
Age Int 1-99 사용자의 나이(만)
Gender String female 또는 male 사용자의 성별
Paying Boolean True 또는 False
  • 사용자가 인앱 결제를 한 이력이 있을 경우 True
  • 사용자가 인앱결제를 한 이력이 없을 경우 False
iap_total Double 1-999999.99 사용자가 인앱결제에 사용한 총 금액량
userCreationDate Long 0 이상 유저가 앱을 설치한 날짜 (millisecond 단위)
Custom Parameters key=string, value=string
  • 아이언소스는최대 5개의 커스텀 속성 파라미터 지원
  • 영문자/숫자
  • 최대 32자
아이언소스 서버에 보낼 추가 유저 데이터

아래의 콜백을 등록하여 유저가 속한 세그먼트 명칭을 수신합니다. 만약 콜백의 문자 파라미터 (세그먼트 명칭)이 빈 문자열로 반환된다면, 아이언소스 세그먼트 모듈에서 해당 유저와 맞는 세그먼트가 발견되지 않은 것입니다.

 IronSourceEvents.onSegmentReceivedEvent += SegmentReceivedEvent;

유니티용 커스텀 파리미터

아이언소스 SDK는 보상형 동영상 광고 및 오퍼월 광고에서 커스텀 파라미터를 지원합니다. 각각의 광고 유닛 초기화시 이 커스텀 파라미터를 같이 전달할 수 있으며 사용자의 완료 이벤트 때에 파라미터를 수신할 수 있습니다.
이제 레벨플레이 미디에이션 플랫폼 상의 전체 미디에이션 네트워크들에 대해 커스텀 파라미터 전달이 가능합니다.

Note:
    1. 커스텀 파라미터는 서버간 완료 콜백 사용시에만 동작 가능합니다. 콜백 문자열의 일부로 파라미터를 수신합니다.
    2. 초기화 요청 시 한 개 이상의 커스텀 파라미터를 삽입할 수 있습니다.

구현 코드

보상형 동영상 광고

Note:
  • 커스텀 파라미터들은 한 세션 중 여러번 설정할 수 있습니다.
  • 파라미터값 초기화를 위해서는 clearRewardedVideoServerParams 메서드를 사용하고, 그 다음 새 값을 설정하시기 바랍니다.
IronSource.Agent.setRewardedVideoServerParams(Dictionary<string, string> parameters);
IronSource.Agent.clearRewardedVideoServerParams();

오퍼월 광고

Note:
  • 커스텀 파라미터들은 showOfferwall 호출 이전에 호출되어야 합니다.
Dictionary<string, string> owParams = new Dictionary<string, string>();
owParams.Add(“key1”, “value1");
owParams.Add(“key2”, “value2");
IronSourceConfig.Instance.setOfferwallCustomParams (owParams);

구현 예제

예를 들어, 오퍼월 광고를 사용하는 한 유저의 IP를 받아오려면, 아래와 같이 추가 파라미터를 완료 콜백에 추가하면 됩니다:

Dictionary<string, string> owParams = new Dictionary<string, string>();
owParams.Add("ip", "1.0.0.9");
IronSourceConfig.Instance.setOfferwallCustomParams (owParams);

그 다음 아래의 예제와 같이 이에 응답하는 콜백을 받게 됩니다:

http://www.mydomain.com/rewardsCallback?appUserId=[USER_ID]&rewards=[REWARDS]&eventId=[EVENT_ID]&itemName=[ITEM_NAME]&custom_ip=1.0.0.9 

Pause Game

setPauseGame API는, 아이언소스 유니티 SDK 7.2.4부터 도입된 기능이며, iOS앱에서만 적용됩니다.

PauseGame 상태를 “true”로 설정하면, 앱 내 모든 Unity 3D 게임 동작이 일시정지(광고 콜백 제외) 됩니다. 게임 동작은 광고가 닫히면 자동으로 다시 재개됩니다.

setPauseGame API는 세션 중, 아이언소스 SDK 초기화 이전 또는 이후를 통틀어 단 한번만 호출해야 합니다. 이는, 해당 설정 사항이 세션 내의 모든 광고 (보상형 동영상 광고 및 인터스티셜 광고)에 영향을 주기 때문입니다.

IronSource.Agent.SetPauseGame(true);
이 세션에서 해당 기능을 비활성화 하려면 SetPauseGame을 false 파라미터와 함께 호출합니다:

IronSource.Agent.SetPauseGame(false);

 

워터폴 구성 설정을 통한 가격 제한 (베타)

워터폴 구성 설정 API는 워터폴 상에 동적으로 최소 또는 최대 가격 제한을 설정할 수 있는 API입니다. 이 API를 통해 제한을 설정해서 사용자 별로 반환되는 워터폴을 동적으로 조정하면 광고 로딩 횟수 및 지연 시간을 줄일 수 있습니다.

제한 설정을 할 수 있는 항목은 다음과 같으며, 각 항목들은 모두 동시에 설정 가능합니다:

설정 항목 타입 설명
ceiling double 비(非)경매 인스턴스의 최대 eCPM값 (USD)
floor double 비(非)경매 인스턴스 및 경매 인스턴스의 최소 eCPM 값 (USD)

워터폴 구성 설정 생성하기

WaterfallConfiguration 객체는 워터폴을 커스터마이징하거나 선별하는 구성 내용을 포함합니다.

워터폴 구성을 생성하려면, WaterfallConfigurationBuilder를 사용합니다:

// Build the WaterfallConfiguration and add data to constrain or control a waterfall
WaterfallConfiguration config = WaterfallConfiguration.Builder()
            .SetCeiling(ceiling)
            .SetFloor(floor)
            .Build();
// set a configuration for an ad unit
IronSource.Agent.SetWaterfallConfiguration(config, AdFormat.adFormat);

워터폴 구성 삭제하기

세션 도중에도 워터폴 구성을 변경이 가능합니다. 구성을 삭제하려면 WaterfallConfiguration.Empty() 함수를 사용하세요:

IronSource.Agent.SetWaterfallConfiguration(WaterfallConfiguration.Empty(), AdFormat.adFormat);

워터폴 구성 덮어쓰기

생성된 WaterfallConfiguration 객체는 변경이 불가능하기 때문에, 현재 구성을 변경하려면 새로운 WaterfallConfiguration 객체를 생성해야 합니다. 마찬가지로 WaterfallConfigurationBuilder를 사용하여 새 WaterfallConfiguration을 정의하면 됩니다.

...
IronSource.Agent.SetWaterfallConfiguration(waterfallconfiguration, AdFormat.RewardedVideo);
WaterfallConfiguration waterfallConfiguration2 = WaterfallConfiguration.Builder()
  .SetFloor(ceiling)
  .SetCeiling(floor)
  .Build();
IronSource.Agent.SetWaterfallConfiguration(waterfallConfiguration2, AdFormat.RewardedVideo);

ironSource SDK 에러 코드

아이언소스는 아이언소스 SDK 연동 상의 실패 사항에 대한 설명을 제공하기 위해 오류 피드백 메커니즘을 제공합니다. 문제가 발생했거나, 연동 중 일부분이 올바르게 완료되지 않은 경우 아래에 등재된 오류가 발생합니다.

ironSource Error 오브젝트에는 error codemessage가 포함됩니다. 아래는 발생 가능한 에러들과 해당 기능에 따른 메시지 들입니다.

에러 코드 광고 유닛(유형) 설명
508 N/A
  • 미디에이션 / 네트워크 초기화 실패
  • Demand Only 모드가 아닌 모드에서 Demand Only API 호출
  • Demand Only모드에서 Demand Only API가 아닌 API를 호출
509 인터스티셜 송출 실패: 송출할 광고가 없음
보상형 동영상
오퍼월
510 인터스티셜 로드 실패: 서버 응답 실패
로드 실패: 아답터 로딩 실패
520 인터스티셜 송출 실패: 인터넷 연결 없음
(ShouldTrackNetworkState가 활성화 되어 있는 상태)
보상형 동영상 송출 실패: 인터넷 연결 없음
오퍼월
524 인터스티셜 송출 실패: 플레이스먼트 %@가 설정된 광고 빈도 한도를 초과
송출 실패: 플레이스먼트 %@가 설정된 광고 빈도 한도를 초과
보상형 동영상
오퍼월
525 인터스티셜 송출 실패: 광고 유닛에 설정된 광고 빈도 한도를 초과
송출 실패: 광고 유닛에 설정된 광고 빈도 한도를 초과
보상형 동영상
배너
526 인터스티셜 송출 실패: 광고 유닛에 설정된 세션당 일일 광고 횟수 한도를 초과
보상형 동영상
1007 인터스티셜 광고 경매 실패: 경매 요청에 필요한 정보가 포함되어 있지 않음
보상형 동영상
1022 보상형 동영상 송출 실패: 다른 보상형 동영상 광고 재생중에 보상형 동영상 광고 재생할 수 없음
1023 보상형 동영상 송출 실패: 송출할 수 있는 광고가 없는 상태에서 광고 송출 API 호출
1036 인터스티셜 송출 실패: 다른 인터스티셜 광고가 재생 중에 인터스티셜 광고 재생할 수 없음
1037 인터스티셜 로드 실패: 다른 인터스티셜 광고가 재생 중에 인터스티셜 로드할 수 없음.
1055 보상형 동영상 로드 실패: 시간 초과로 로딩 취소
1056 보상형 동영상 로드 실패: 다른 보상형 동영상 재생 중 보상형 동영상 로드 할 수 없음