ドキュメント

リモートカタログの作成

製品カタログを定義し、リモートカタログサービスにアップロードします。
読み終わるまでの所要時間 17 分最終更新 2ヶ月前

製品カタログを設定してリモートカタログサービスにアップロードすると、ユーザーは新しいバージョンをインストールしなくても、アプリケーションの最新製品にアクセスできます。
製品カタログをリモートカタログにアップロードすると、Unity Iap SDK は
RemoteCatalogProvider
クラスから製品カタログを取得してユーザーに製品をディスプレイできます。これには以下の利点があります。
  • ユーザーがアプリケーションを更新することなく、製品と価格をリアルタイムで確実に分布できます。
  • 複数の支払いプロバイダーにわたって製品情報を設定する必要はありません。

製品とカタログのリスト

Unity Iap は、次の 2 つの関連概念でカタログを表します。
  • 製品とは、ユーザーに付与するものです。各製品には、
    productId
    とも呼ばれる SKU があります。
  • カタログ リストは、
    catalogListingId
    によって識別される製品の購入可能なバージョンです。1 つの製品に複数のカタログリストがあるため、同じ製品を複数の方法で販売できます。
製品を購入するには、ユーザーがカタログ リストの1つを購入します。購入の開始や特定のリスティングのターゲット設定には、
catalogListingId
ではなく
productId
を使用します。1 つの製品に複数のリストを定義しない場合、Unity Iap は
catalogListingId
が SKU に一致するカタログを 1 つ作成します。既存の単一リストカタログは、変更なしで引き続き機能します。
製品カタログを展開する前に、Deploymentパッケージをインストールする必要があります。
注意
D2C(ダイレクト トゥ コンシューマー)支払いプロバイダーの場合は、IAP Catalogウィンドウを使用して製品を作成しないでください。IAP カタログ項目として製品を作成 する必要があります。同様に、Codeless IAPパスも使用しないでください。カタログエディターの自動初期化オプションは、D2C決済プロバイダーでは使用できないためです。

製品カタログの定義

以下の方法を使用して、リモート製品カタログの製品に関する情報を定義できます。
Unity CloudダッシュボードのIn-Application Purchases >Catalogで直接カタログを作成することもできます。
Unity エディターを使用して製品を追加する場合、Unity アプリ内課金 (IAP) は、購入処理に必要なバックエンドロジックの一部を自動的に処理します。これは特に、バックエンド API で購入を履行することを選択した場合に役立ちます。
Unity エディター UI で製品カタログを作成するには、Unity エディターバージョン 6.0 以降を使用する必要があります。以前のバージョンを使用している場合は、代わりに API を使用して 製品カタログを作成できます。

Unity エディターでの製品カタログの作成

Unity エディターで製品を定義する場合、エディターは製品設定をファイルに保存するため、コード設定のワークフローを使用して管理できます。
Unity エディターで製品を作成するには、次の手順に従います。
  1. カタログ項目を作成するには、ディレクトリを右クリックし、[Create]> [Services]> [IAP Catalog] 項目を選択します。
  2. カタログ項目に名前を付けます。カタログ項目アセットが作成され、Inspector ウィンドウでアセットが開きます。
  3. カタログ項目の詳細を入力します。詳細については、Catalog 項目 Asset Inspector リファレンスを参照してください。
  4. Apply (適用) を選択します。
これらの手順を繰り返して、すべての製品のカタログアイテムを作成します。
Unity エディターの Inspector ウィンドウで開いたカタログ項目アセットのスクリーンショット。画像は、「Catalog Listing Id」、「Sku」、「Product Type」、「Product Details」、「Pricing Details」、「Image URL」、「Store ID Overrides」の各フィールドを示しています。
製品を追加したら、「View in Deploymentウィンドウ」を選択して製品カタログをDeploymentウィンドウで開き、リモートカタログにアップロードします。
Unity エディターではなく、 ファイル内で製品の詳細を直接編集することもできます。ファイルのプロパティは、Catalog 項目 Asset Inspector リファレンスにリストされているプロパティにマップされます。

Catalog 項目 アセット Inspector のリファレンス

以下のプロパティを参照して、IAP カタログアイテムを定義します。

プロパティ

説明

Scriptデフォルトで満たされます。
カタログリスト IDデフォルトで入力(ファイルパスを使用)。購入の開始時にこのリストをターゲットにするために使用する識別子。
SKUデフォルトで入力(ファイル名を使用)。
製品タイプIAP 製品のタイプを選択します。
製品詳細以下を含む製品に関する情報を入力します。
  • Title (タイトル)
  • 説明
  • 言語
  • 字幕
  • バッジ (テキストおよび画像 URL)
価格の詳細以下を含む製品価格情報を入力します。
  • 通貨コード
  • 金額
画像 URL画像 URL を入力して、製品のディスプレイ画像を指定します。
ストア ID オーバーライド任意。ネーミング要件が異なる アプリストア と google play にリスティングをマップします。以下のフィールドは、SKU がストアの要件を満たしていない場合にのみ使用します。
  • Apple オーバーライド
  • Google オーバーライド

既存のカタログのインポート

すでに アプリストア または google play でカタログを設定している場合は、プロダクトを再作成する代わりに Unity エディターにインポートできます。
  1. Unity エディターで、サービス > アプリ内課金 > インポート カタログ を選択します。
  2. インポート元のストアのアプリストアまたは Google Play ストアのタブを選択します。
  3. ステップ 1:カタログデータをフェッチし、ストアの認証情報を入力し、Fetch Catalog (カタログの取得):
    • 秘密鍵 /secret key
    • シークレットスコープ
  4. ステップ 2:インポートまたはエクスポート。生成されたカタログ アイテムのインポート先パスを設定し、適用を選択します。
変更された SKU は既存の
.ucat
ファイルのみを更新し、新しい SKU はインポート先に新しい
.ucat
ファイルを作成します。
カタログをインポートしたら、リモートカタログサービスにアップロードします。

APIを使用して製品カタログを作成する

このメソッドは、Unity エディター UI を使用する代わりにエディタースクリプトを使用して製品カタログを管理する場合に使用します。
まず、必要なすべての依存関係を含む
.asmdef
ファイルを作成する必要があります。 以下の例を参照して、
.asmdef
ファイルを作成します。
{ "name": "MyIAPProject.Authoring", "rootNamespace":"MyIAPProject.Authoring", "references": [ "Unity.Services.Core", "Unity.Services.Core.Editor", "Unity.Services.Core.Internal", "Unity.Services.DeploymentApi", "Unity.Services.Core.Environments.Editor", "UnityEditor.Purchasing.Authoring", "UnityEditor.Purchasing.Editor.Authoring.Core", "Unity.Purchasing.Editor.Shared", "Unity.Purchasing" ], "includePlatforms": [ エディター ]}
次に、
ILiveContentConfigClient
API を使用してリモートカタログを直接変更できます。
  1. PurchasingAuthoringServiceProvider
    から関連するサービスを取得します。
    • ILiveContentConfigClient
    • IEnvironmentsApi

      PurchasingAuthoringServiceProvider.GetService<ILiveContentConfigClient>()
  2. 必要な情報を使用して
    ILiveContentConfigClient
    インターフェースを初期化します。
  3. カタログの読み取り/更新の呼び出しを行います (これらの呼び出しは、現在のサインインユーザー権限で行われます)。
注意
この操作は破壊的です。項目を送信しないと、カタログに含まれません。また、Deployment プロセスで通常検証される検証もスキップされます。
以下のコードサンプルを参照してください。
[MenuItem("IAP/Deployment/Get and print the catalog")]public static async void Select(){ var lcc = PurchasingAuthoringServiceProvider.GetService<ILiveContentConfigClient>(); var env = PurchasingAuthoringServiceProvider.GetService<IEnvironmentsApi>(); await lcc.Initialize( env.ActiveEnvironmentId.ToString(), CloudProjectSettings.projectId, CancellationToken.None); var items = await lcc.List(CancellationToken.None); Debug.Log(string.Join("\n", items.Select(i => $"{i.uSku} - {i.ProductDetails[0].Description}")));}

カスタムDeploymentウィンドウのインテグレーションを使用して製品カタログを作成

Deployment ウィンドウを使用してカスタムインテグレーションをホストできるため、CSV などの単純なカスタム Deployment を作成したり、リモートカタログに直接送信したりできます。
単純な Deployment ウィンドウの作成方法については、Deployment パッケージのドキュメントを参照してください。

リモートカタログサービスへの製品カタログのアップロード

Deploymentウィンドウを使用して、リモートカタログに製品をアップロードします。
  1. Unity エディターで、「Services」>「Deployment」を選択して Deployment ウィンドウを開きます。
  2. リモートカタログに追加する製品を選択し、「Deploy Selected(選択済みを展開)」を選択します。
Unity エディターの Deployment ウィンドウのスクリーンショット。.ucat カタログアイテムのリストが表示されています。
重要
購入時に、IAPはリモート カタログ定義を使用して、D2C支払いプロバイダー チェックアウト データを作成します。IAPは、StripeまたはCodaで直接追加した製品を使用しません。

リモートカタログからの製品の削除

Unity エディターでリモートカタログから項目を削除するには、複数の方法があります。
  • Inspectorウィンドウでカタログ項目を開き、Delete Remoteを選択します。
  • Deploymentウィンドウを開き、カタログ項目を右クリックして、Delete Remoteを選択します。
名前が変更されたカタログ項目をリモートカタログから削除するには、最初に元の SKU を使用して一時項目を再作成します。その後、Deployment ウィンドウでその項目を削除すると、削除が正常に同期されます。

次のステップ

このページは、IAPでD2C支払いプロバイダーを設定するワークフローの一部です。このワークフローを続行するには、以下のオプションのいずれかを選択します。