SelectOfferInfo

public SelectOfferResult SelectOfferInfo(
    string player_uuid,
    string language
);

설명

현재 클라이언트 DB 내 유효한 오퍼에 대한 정보를 최신 생성된 순으로 불러오는 메소드입니다.

파라미터

이름 설명 필수 여부

player_uuid

플레이어의 고유 ID(캐릭터 ID가 아닌)로 Steam 사용자 ID나 Google Play 사용자 ID를 말함

필수

language

개인화 오퍼 콘솔에서 설정한 언어 코드 (두자리 알파벳)

필수

예시 코드

public class SelectOfferResult (1)
{
    public TPResult tpResult;
    public List<OfferInfo> offer_info = new List<OfferInfo>();
    public int succeeded_offers_num = 0;
    public int failed_offers_num = 0;
}

// 이하 SelectOfferResult에 쓰이는 각 클래스에 대한 설명
public enum TPResult
{
    OK,
    ERROR
}

public class OfferInfo (2)
{
    public offerType offer_type;
    public int offer_id;
    public DateTime? offer_expires_in; (3)
    // valid until과 valid for 를 계산한 값. 만료 날짜가 설정되지 않으면 null
    public string title;
    public List<RecommendedProduct> recommended_products; (3)
    // AI 인게임 상점인 경우만 해당. 개인화 오퍼인 경우 값없음(빈 리스트)
    public bool has_opened;
    public bool checked_dont_show_today;
}

public enum offerType (4)
{
    AI = 0,
    Manual = 1
}

public class RecommendedProduct (5)
    {
        public string purchasable_slug;
        public string product_index;
        public string purchase_link;
        public string store;
        public DateTime? start_datetime;
        public DateTime? end_datetime;
        public bool is_in_sale_now; //start_datetime과 end_datetime을 UTC now와 비교한 값
    }
1 오퍼 가져오기에 성공하면 유효한 오퍼의 갯수가 succeeded_offers_num으로 반환됨

오퍼 가져오기는 성공하였으나 오퍼 데이터에 문제가 있다면 유효하지 않은 오퍼의 갯수가 failed_offers_num로 반환되며 유니티 에디터 콘솔 TentuPlay debug mode에서 다음과 같은 메시지가 출력됨

TPWarn||Skipping a recommended product for 'store' store in Offer ID 'id': error_message.

오퍼 가져오기에 실패하면 TPResult.ERRORSelectOfferResulttpResult로 반환되고, offer_info 리스트는 비게 되며, succeeded_offers_numfailed_offers_num는 둘 다 기본값인 0을 반환함

2 OfferInfo는 오퍼 정보를 말함
3 OfferInfo.offer_expires_in는 오퍼의 만료 시기를 나타냄. 상품 만료 시기는 OfferInfo.recommended_products에서 확인 가능
4 offerType 열거형을 이용하여 AI 인게임 상점(offerType.AI)과 개인화 오퍼(offerType.Manual)을 구분함
5 AI 상품 추천 방법
  1. SelectOfferInfo 호출

  2. 추천 상품의 유효 기간이 지나지 않았는지 확인

  3. 인게임 로직 등을 이용해 사용자에게 구매 가능 횟수가 남아 있는지 추가 확인

SelectOfferInfo의 사용 예시 코드를 더 보려면 신궁 데모가 제공하는 TentuPlayCRMPlayerController를 참고하십시오.