Version: Unity 6.0 (6000.0)
言語 : 日本語
Codeless IAP
サブスクリプションプロダクトサポート

プロダクトの定義

アプリ内購入 (IAP) を使用するには、アプリケーション内で販売するプロダクトのリストを提供する必要があります。これを行うにはスクリプトを使用するか、Codeless IAP Catalog (Window > Unity IAP > IAP Catalog) を使用します。いずれの方法で実装する場合でも、各プロダクトに適切な属性を定義する必要があります。このページではこれらの属性について詳しく説明します。

Unity エディターの IAP カタログ GUI
Unity エディターの IAP カタログ GUI

Product ID

異なるプラットフォームで認識可能な (全プラットフォーム共通の) 一意の ID を入力します。この ID は、アプリケーションストアと通信するときに製品のデフォルト ID として使用されます。

重要: ID には小文字のアルファベット、数字、アンダースコア、ピリオドのみを使用できます。

Type

プロダクトのタイプには以下の 3 つがあります。

タイプ 説明
Consumable 繰り返し購入できるプロダクトです。Consumable (消費型) プロダクトは復元できません。 * 仮想通貨
* ヘルスポーション
* 一時的なパワーアップ
Non-Consumable 1 度だけしか購入できないプロダクトです。Non-Consumable (非消費型) のプロダクトは復元可能です。 * 武器または鎧
* 追加コンテンツへのアクセス
Subscription 限られた期間使用できるプロダクトです。Subscription (サブスクリプション) プロダクトは復元可能です。 * オンラインゲームへの月次アクセス
* 毎日のボーナスを付与する VIP ステータス
* 無料トライアル

ノート: サブスクリプションタイプのサポートに関する詳細は、サブスクリプションプロダクトサポート を参照してください。

Advanced

このセクションでは IAP で使用するプロダクト関連のメタデータを定義します。

Descriptions

以下のフィールドを利用してプロダクトの説明を加えます。

フィールド データ型 説明
Locale Enum 属する地域で使用可能なアプリケーションストアを定義します English (U.S.) (Google Play,Apple)
Title 文字列 アプリケーションストアで表示されるプロダクト名 Health Potion (ヘルスポーション)
Product Description 文字列 アプリケーションストアで表示されるプロダクトの叙述文で、どんなプロダクトであるか説明されることが多い。 Restores 50 HP (50 HP 回復します)

プラス (+) アイコンをクリックして追加の地域を選択し、TranslationsTitleDescription フィールドを追加します。翻訳はいくつでも追加できます。

IAP Catalog GUI でプロダクトの Descriptions フィールドに入力
IAP Catalog GUI でプロダクトの Descriptions フィールドに入力

ペイアウト

このセクションを使用して、購入者に払い出しするコンテンツのローカルの固定定義を加えます。Payouts は、ゲーム内のウォレットや在庫の管理を容易にします。プロダクトに名前と数量のラベルを付けることによって、購入発生時に開発者はゲーム内の特定のタイプのアイテム数をすばやく調整できます (例えば、コインや宝石)。

ノート: この機能は Unity 2017.2 以降でのみ利用可能です。

フィールド データ型 説明
Type Enum 購入者が受け取るコンテンツのカテゴリを定義します4 つのタイプがあります。 * Currency
* Item
* Resource
* Other
Subtype 文字列 コンテンツのタイプをさらに細分化します * Currency タイプのサブタイプとして “Gold”、“Silver”
* Item タイプのサブタイプとして “Potion”、“Boost”
Quantity Int 払い出しで購入者が受け取るアイテム、通貨、などの数を指定します * 1
* >25
* 100
データ
このフィールドは、コード内で参照するプロパティとして自由に使用できます * UI 要素のフラグ
* アイテムのレア度
IAP Catalog GUI でプロダクトの Payouts フィールドに入力
IAP Catalog GUI でプロダクトの Payouts フィールドに入力

ノート: 1 つのプロダクトに複数の Payouts を追加することができます。

PayoutDefinition クラスの詳細については、スクリプトリファレンス を参照してください。このクラスを使用して、いつでもスクリプトでプロダクトに払い出し情報を追加できます。 例:

using UnityEngine.Purchasing;

new PayoutDefinition (PayoutType.Currency, "Gold", 100)

IAP Catalog は、在庫管理というよりは、プロダクトカタログのディクショナリのような働きをします。そのため、別途、購入されたコンテンツの流れを処理するコードの実装が必要です。

Store ID Overrides

デフォルトでは、Unity IAP は、プロダクトはすべてのアプリストアで同じ識別子 (上部 ID フィールドで指定) を使用していると仮定します。Unity では、可能な限りこれに従うことを推奨しています。ただし、これができない場合もあります。例えば、iOS と Mac ストアで公開する場合、開発者が同じプロダクトID を使用することは禁止されています。

このような場合は、Overrides フィールドを使用して、全プラットフォーム共通 ID と異なるプロダクト ID を指定します。

以下のように、コードでも同じことができます。

using UnityEngine;
using UnityEngine.Purchasing;

public class MyIAPManager {
    public MyIAPManager () {
        var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
        builder.AddProduct("100_gold_coins", ProductType.Consumable, new IDs
        {
            {"100_gold_coins_google", GooglePlay.Name},
            {"100_gold_coins_mac", MacAppStore.Name}
        });
        // Initialize Unity IAP...
    }
}

この例では、Google Play 用の ID を 100_gold_coins_google、Apple App Store 用の ID を 100_gold_coins_mac と設定しています。

ノート: Overrides で変更される ID は、Unity IAP がアプリストアとの通信時に使用する ID のみです。そのため、API の呼び出しを行うときはプロダクトのクロスプラットフォーム ID を使用する必要があります。

重要: ID には小文字のアルファベット、数字、アンダースコア、ピリオドのみを使用できます。

Google Configuration (Google Play エクスポートに必要)

プロダクトの価格、または Google Playで作成した 価格設定テンプレート の ID を入力します。

IAP Catalog GUI でプロダクトの Google Configuration フィールドに入力
IAP Catalog GUI でプロダクトの Google Configuration フィールドに入力

Apple Configuration (Apple エクスポートに必要)

Price Tier ドロップダウンメニューから価格ティアを選択します。Unity は定義済みの Apple の価格帯をサポートしますが、任意の値はサポートしません。

アップロードするには Select a screenshot を選択します。

スクリーンショットの仕様については、Apple のパブリッシャーサポートドキュメントを参照してください。

IAP Catalog GUI でプロダクトの Apple Configuration フィールドに入力
IAP Catalog GUI でプロダクトの Apple Configuration フィールドに入力

スクリプトによるプロダクトの定義

Purchasing Configuration Builder を使用してコードでプロダクトリストを設定することもできます。これには、各プロダクトの一意の Product IDProduct Type が必要です。

using UnityEngine;
using UnityEngine.Purchasing;

public class MyIAPManager {
    public MyIAPManager () {
        var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
        builder.AddProduct("100_gold_coins", ProductType.Consumable);
        // Initialize Unity IAP...
    }
}

  • 2018–05–30
Codeless IAP
サブスクリプションプロダクトサポート