SelectOfferInfo

public SelectOfferResult SelectOfferInfo(
    string player_uuid,
    string language
);

説明

クライアントのDBにある有効なOfferメールの簡単な情報を、新しく作られたメール順に読み込みます。

パラメータ

名前 説明 必須か

player_uuid

プレイヤーの固有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 Offerのインポートが成功した場合、有効なOfferの数はsucceeded_offers_numの値として返されます。

Offerのインポートは成功しましたが、Offerデータに問題がある場合、無効なOfferの数がfailed_offers_numの値として返されます。Unity Edition ConsoleのTentuPlay debug modeから次のメッセージが出力されます。

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

Offerのインポートに失敗した場合、SelectOfferResulttpResultの値としてTPResult.ERRORが返され、offer_infoリストが空のリストになり、succeeded_offers_numfailed_offers_numの両方がデフォルトの0が返されます。

2 OfferInfo:オファーの情報です。
3 OfferInfo.offer_expires_inは、Offerの有効期限を示します。製品の有効期限は、 OfferInfo.recommended_productsで確認できます。
4 offerType enumでAIショップ(offerType.AI)とパーソナライズされたオファー(offerType.Manual)を区別します。
5 AI商品の推薦方法
  1. SelectOfferInfoを呼び出します。

  2. お勧めの商品の有効期限が切れていないことを確認します。

  3. さらに、ユーザーに購入可能な回数が残っているかどうかを、インゲームロジックなどを使って確認します。

ゲーム「神弓」のTentuPlayCRMPlayerControllerSelectOfferInfoに関する詳細なコード例をご覧いただけます。