インゲームストア / アイテムカタログカタログ個人用設定

アイテムカタログカタログ個人用設定

このチュートリアルでは、次のことを説明します:

  • ユーザー側で作成した属性を使用してカタログをパーソナライズする方法(ペイステーションアクセストークンを使用してユーザーを認証するパートナー向け)
  • JSONモードで属性検証ルールを指定し、エクソーラ側でユーザーに属性を追加する方法(エクソーラログインを使用してユーザーを承認するパートナー向け)
  • カタログの表示ルールを作成する方法
  • 異なる属性値を持つユーザーのアイテムカタログを取得する方法
お知らせ
このチュートリアルでは、パーソナライズされたプロモーションの設定は含まれません。エクソーラログインを使用してユーザーを認証する場合、プロジェクトカタログ個人用設定と同じように、パーソナライズされたプロモーションをセットアップできます。

前提条件

開始する前に、以下のことを確認してください:

ペイステーションアクセストークンを使用してユーザーを認証する個人用設定

ペイステーションアクセストークンを使用してユーザーを認証する場合、トークン取得時に属性を渡すことができます。この場合、以下のようにして個人用設定を設定します:

  1. システムで属性を作成します。
  2. システム内のユーザーに属性を追加します。
  3. ゲーム内のユーザーの属性値が変更されたときに属性値を更新するロジックを実装します。
  4. 属性を使用してカタログ表示ルールを作成します
  5. ペイステーションアクセストークンを取得するときに属性を渡します。
  6. 受け取ったトークンは、アイテムカタログリクエスト方法で使用します。

エクソーラを使用してユーザーを認証するカタログ個人用設定

エクソーラログインを使ってユーザーを認証する場合、

  1. エクソーラ側でユーザー属性のJSONスキーマを作成し、その中で属性を指定する必要があります(任意)。

お知らせ
以下のことを操作できます:
  • ユーザー属性のJSONスキーマを作成し、このJSONスキーマで指定された属性のみを渡します。これを行うには、JSONスキーマでadditionalPropertiesオブジェクトにfalseを指定します。指定した属性は自動的に検証されます。
  • ユーザー属性用のJSONスキーマを作成し、JSONスキーマで指定された属性と、JSONスキーマで言及されていない追加属性の両方を渡します。これを行うには、JSONスキーマのadditionalPropertiesオブジェクトにtrueを指定します。JSONスキーマで指定された属性は自動的に検証されます。
  • ユーザー属性のJSONスキーマを作成しません。この場合、任意の属性を渡すことができ、属性の検証は実行されません。
アイテムカタログ個人用設定では、属性のキーと値が自動的に検証されるように、propertiesオブジェクト内のJSONスキーマで属性とそのタイプを指定することをお勧めします。

  1. Login APIを使用して、ユーザーに属性を追加し、属性値を更新します。
  2. 作成した属性を使用してカタログ表示ルールを作成します
  3. ユーザーのJWTの取得を実装します。JWTを取得するためのメソッドのリストは、このにあります。
  4. アイテムカタログを要求するためのメソッドで受信したトークンを使用します。

ユーザに属性を追加するには、いくつかの方法があります:

  1. これらのメソッドを使用して、ユーザーに属性を追加し、属性値を更新します。カタログをパーソナライズするには、属性値を最新の状態に保つ必要があります:ゲーム内のユーザーのために属性値が変更されたときにエクソーラの属性値を更新します。

  1. 例:ユーザーは、新しいレベルに到達し、タスクを完了し、購入することができます。

  1. 1つの属性と複数の属性の値を同時に更新できます。JSONスキーマで必須として指定された属性は例外です。必須属性値を指定しないと、属性更新APIメソッドを呼び出すことができません。
お知らせ
  • カスタムIDによる認証するメソッドを使用する場合は、ユーザーを認証する際に実際の属性値を直接渡します。このメソッドでは、ユーザー属性の現在の値を配列で渡すことができます。
お知らせ
読み出し専用のサーバー属性を作成することをお勧めします。これを行うには、パラメータ値 “attr_type”: “server”“read_only”: “true”を渡します。

個人用設定の設定例

この例では、カタログ個人用設定の設定方法を示しています。MyTestGameを購入したユーザーのみに表示される「中型クリスタルセット」アイテムです。

お知らせ
「中型クリスタルセット」と「MyTestGame」の名前は、例として提供されています。プロジェクトの項目と属性を使用して、カタログ個人用設定を構成できます。
エクソーラ側(エクソーラログインによるユーザー認証)とパートナー側(ペイステーションアクセストークンによるユーザ認証)で属性を作成するオプションが考えられます。ペイステーションアクセストークンオプションについては、直接カタログ表示ルールの作成に進むことができます。

属性スキーマの作成

ゲーム名と購入回数に対応する属性を持つJSONスキーマを追加する。これを行うには、スキーマに以下を指定します:
  • 属性“game”、タイプ“string” — ユーザーが購入したゲームの名前。“game”属性は必須とマークされています。“game”属性を渡さなければ、属性更新メソッドを呼び出すことはできません。
  • 属性“purchase_number”、タイプ“integer” — ユーザー購入数。

スキーマの例:
Copy
Full screen
Small screen

{
	"$schema": "https://json-schema.org/draft/2020-12/schema",
	"title": "Example",
	"description": "JSON Schema description.",
	"properties": {
		"game": {
			"description": "Name of the game played by a user.",
			"type": "string"
		},
		"purchase_number": {
			"description": "The number of purchases the user made.",
			"type": "integer"
		}
	},
	"additionalProperties": false,
	"required": [
		"game"
	],
	"type": "object"
}

ユーザーに属性を追加する

サーバーからユーザーの読み出し専用属性を更新するメソッドを使用して、ユーザーデータベースからユーザーに属性を追加します。

サーバーからユーザーの読み出し専用属性を更新するメソッドで、以下のことを指定する必要があります:

  • サーバートークン
  • ユーザー属性値。
  • user_idユーザーデータベース > ユーザーセクションのアドミンページのログインプロジェクトの設定で指定されたユーザー識別子。
  • publisher_id ― マーチャントIDは以下の場所で指定されます:
    • 会社設定 > 会社セクション。
    • アドミンページページのブラウザアドレスバーのURL。URLは以下の形式があります:https:​//publisher.xsolla.com/<merchant ID>/<Publisher Account section>
  • publisher_project_id — アドミンページでプロジェクト名の側に表示されるプロジェクトID。
お知らせ

APIメソッドのパラメータ名は、製品によって異なる場合があります:

JWTを生成するメソッドを使用して、サーバートークンを事前に取得します。


次に、サーバーからユーザーの読み出し専用属性を更新するメソッドに進みます。

attributesの配列を持つリクエスト本文の書式は次のようになります:

Copy
Full screen
Small screen
{
  "attributes": [
    {
      "key": "game",
      "permission": "private",
      "value": "MyTestGame"
    },
 {   
     "key": "purchase_number",
      "permission": "private",
      "value": "30"
    }

  ],
  "publisher_id": 000000,
  "publisher_project_id": 000000
}

リクエストを実行した結果、属性を持っていないユーザーは、指定された値を持つ属性を持つようになります:

カタログの表示ルールを作成

MyTestGameを購入したユーザーにのみ、「中型クリスタルセット」アイテムを表示するルールを設定します。

操作するには:

  1. アドミンページで、「ストア > カタログ管理 > カタログ表示ルール」に移動します。
  2. ルールを作成する」をクリックして、以下の必須なフィルドを完了します:
    1. ユーザー属性フィルドでの属性キー — game
    2. た — string
    3. 比較演算子 — equal to
    4. 値 — MyTestGame
  1. 条件を満たした場合に表示するアイテムを指定します。下記の例では、MyTestGameを所有しているユーザーに対して、「中型クリスタルセット」を表示しています。
  1. ルールをチェックし、アクティブにして保存します。

トークンの取得

エクソラログインJWTの取得

MyTestGameという値でgame属性を追加したユーザのトークンを取得します。
エクソーラログインJWTは、クライアント側またはサーバー側でユーザー認証に成功した後に、ユーザーを介さずに取得することができます。これを行うには、以下のエクソーラログイン認証メソッドのいずれかを使用します:

ペイステーションアクセストークンの取得

必須の属性を持つペイステーションアクセストークンを取得します。これを行うには、トークンをを作成するメソッドのattributesオブジェクトで“game”: “MyTestGame”を渡す必要があります。

リクエスト本文の例:

Copy
Full screen
Small screen

{
  "settings": {
    "currency": "USD",
    "language": "en",
    "project_id": 000001,
    "ui": {
      "size": "medium"
    }
  },
  "user": {
    "email": {
      "value": "email@example.com"
    },
    "id": {
      "value": "user_2"
    },
    "name": {
      "value": "John Smith"
    },
    "attributes": {
      "game": "MyTestGame"
    }
  }
}

アイテムカタログの取得

アイテムカタログを取得するには、エクソーラログインユーザーJWTまたはペイステーションアクセストークンを認証に使用して、仮想アイテムリストを取得するメソッドを呼び出します。

エクソーラログインJWTを使用したアイテムカタログの取得

MyTestGameの値を持つgame属性を追加したユーザーのトークンを使用してカタログを取得します。これを行うには、仮想アイテムリストを取得するメソッドで以下を指定します:

応答には3つのアイテムが含まれます:

  • エンパイアキー
  • 小型クリスタルパック
  • 個人用設定ルールが構成された中型クリスタルセット


アイテムカタログを取得する際に、属性値がルールで指定したものと一致しない場合のレスポンスをテストすることができます。テストのために、カスタムIDによる認証するメソッドを使用してトークンを取得する際に属性を直接渡すことができます。
お知らせ
このメソッドは、カスタムIDによる認証するメソッドで認証されたユーザーにのみ使用できます。
カスタムIDによる認証するメソッドでユーザーJWTを取得し、attributes配列にOtherGame値を持つgame属性を渡します:
Copy
Full screen
Small screen
"attributes": [
{
    "attr_type": "server",
    "key": "game",
    "permission": "private",
    "value": "OtherGame",
    "read_only": true
 },
{
    "attr_type": "server",
    "key": "purchase_number",
    "permission": "private",
    "value": "30",
    "read_only": true
  }
]

取得したトークンを使って仮想アイテムリストを取得するメソッドを実行すると、2つのアイテムが返されます:「エンパイアキー」と「小型クリスタルパック」。個人用設定ルールがが適用された「個人用設定ルール」セットは、応答に含まれません。


比較のために、game属性にMyTestGame値を渡します。

これは、ゲームMyTestGameを持つユーザのカスタムIDによる認証するメソッドのattributes配列です:

Copy
Full screen
Small screen

"attributes": [
{
    "attr_type": "server",
    "key": "game",
    "permission": "private",
    "value": "MyTestGame",
    "read_only": true
 },
{
    "attr_type": "server",
    "key": "purchase_number",
    "permission": "private",
    "value": "30",
    "read_only": true
  }
]

仮想アイテムリストを取得するメソッドでアイテムカタログを要求する際に、取得したトークンを指定します。

その結果、「中型クリスタルセット」が応答に含まれます。

ペイステーションアクセストークンを使用したアイテムカタログの取得

パーソナライズされたアイテムカタログを取得するには、仮想アイテムリストを取得するメソッドで以下を指定する必要があります:

応答には3つのアイテムが含まれます:

  • エンパイアキー
  • 小型クリスタルパック
  • 個人用設定ルールが構成された中型クリスタルセット


ユーザーがgame属性にMyTestGameを指定していない場合、アイテムカタログ取得時のレスポンスをテストすることができます。

ペイステーションアクセストークンを受け取ったら、attributesオブジェクトを削除し、仮想アイテムを取得するリストメソッドを使用してアイテムカタログを再度リクエストします。今度は、応答にミディアムクリスタル・セットが含まれません:

この記事は役に立ちましたか?
ありがとうございます!
改善できることはありますか? メッセージ
申し訳ありません
この記事が参考にならなかった理由を説明してください。 メッセージ
ご意見ありがとうございました!
あなたのメッセージを確認し、体験を向上させるために利用させていただきます。
最終更新日: 2024年10月3日

誤字脱字などのテキストエラーを見つけましたか? テキストを選択し、Ctrl+Enterを押します。

問題を報告する
当社は常にコンテンツを見直しています。お客様のご意見は改善に役立ちます。
フォローアップ用のメールをご提供してください
ご意見ありがとうございました!