招待コードベースのマッチング
ユーザー招待は、ユーザーが招待コードを発行して他のユーザーをゲームに招待し、そのために開発者から報酬を受け取ることを可能にする機能です。ユーザー招待APIは、ゲームが招待コードを発行し、招待を受け入れたユーザーをマッチングすることを可能にするAPIです。
Warning
以下のすべてのAPIに対して、Authorization Headerは必須ではありません。ただし、セキュリティ上の理由から、Hive認証キーを使用し、ゲームサーバーからAPIを直接呼び出すことをお勧めします。
使い方
- Hiveコンソール > プロモーション > ユーザー招待 > 登録招待キャンペーンで、招待コード発行タイプのcampaignを作成します。
- 招待キャンペーン情報を取得し、有効なキャンペーンIDをゲームサーバーに保存します。
- ユーザー招待ページで、受け取った招待者情報と上記で保存したキャンペーンIDを呼び出しパラメータとして渡して、招待コードを発行します。
- 招待者の情報(
player_id
など)と、招待者が受け取った招待コードを呼び出しパラメータとして渡し、マッチリクエストを行います。 - 報酬状況を確認して、ユーザー招待ページで報酬受取の進捗を表示します。
準備
招待コード関連のAPIを使用するには、以下の項目を準備する必要があります。
- 認証ヘッダーで使用するHive認証キー: Hive Console > App Center > Project Management > アプリを検索して選択 > ゲーム詳細 > 基本情報 > Hive認証キー
server_id
: Hive Console > App Center > Project Management > アプリを検索して選択 > ゲーム詳細 > ゲームサーバー - 招待キャンペーン: キャンペーン作成を登録して招待コードタイプを発行する Hive Console > Promotion > User Invitation > 招待キャンペーン登録
キャンペーン情報取得
Hiveコンソールで作成された招待キャンペーン情報を取得しています。アクティブで利用可能な招待キャンペーン情報のみが取得されます。キャンペーンに設定された報酬情報もレスポンスに含まれます。
APIリクエスト仕様
リクエストURL
環境 | URL |
商業用 | https://promotion.qpyou.cn/ua/inviteCode/campaign |
サンドボックス | https://sandbox-promotion.qpyou.cn/ua/inviteCode/campaign |
リクエストメソッドとデータフォーマット
アイテム | 説明 |
HTTPメソッド | POST |
コンテンツタイプ | application/json |
ヘッダー
フィールド名 | 説明 | タイプ | 必須 |
Authorization | Bearer認証を通じたcertificationKey の有効性チェック | 文字列 | N |
リクエストボディ
フィールド名 | 説明 | タイプ | 必須 |
gameindex | ユニークなゲーム番号 | 整数 | Y |
コール例
curl -L -v -X POST --location "http://sandbox-promotion.qpyou.cn/ua/inviteCode/campaign" \
-H "Content-Type: application/json" \
-d '{
"gameindex": 539
}'
APIレスポンス仕様
応答
フィールド名 | 説明 | タイプ | 必須 |
result_code | レスポンスコード | 整数 | Y |
result_message | レスポンスメッセージ | 文字列 | Y |
campaign_list | 招待コードキャンペーンリスト | 配列 | Y |
ㄴ id | プロモーションキャンペーンID | 整数 | N |
ㄴ title | キャンペーンタイトル | 文字列 | N |
ㄴ rewards | 報酬リスト | 配列 | N |
ㄴㄴ reward_id | 報酬ID | 整数 | N |
ㄴㄴ description | 報酬の説明 | 文字列 | N |
ㄴㄴ reward_type | 報酬タイプ - action: アクション報酬
- goal: 目標達成報酬
| 文字列 | N |
ㄴㄴ action_type | アクションタイプ - match: マッチング
- cpi: インストール
- cpa: 特定のアクションの達成
| 文字列 | N |
ㄴㄴ cpa_code | CPAユニーク番号 - アクションタイプがcpaの場合は有効な値を提供してください
- cpaでない場合はNullを提供してください
| 整数 | N |
ㄴㄴ goal | 目標金額 | 整数 | N |
ㄴㄴ limit | 報酬制限 | 整数 | N |
応答例
{
"campaign_list": [
{
"id": "19",
"title": "초대 코드 발급_행동_설치(초대 2, 수락 3, 제한 2)",
"rewards": [
{
"reward_id": 33,
"description": "행동_설치(초대 2, 수락 3, 제한 2)",
"reward_type": "action",
"action_type": "cpi",
"cpa_code": null,
"goal": 1,
"limit": 2
}
]
}
],
"result_code": 200,
"result_message": "Success"
}
招待コードを取得
ユーザーはキャンペーンで招待コードを受け取ることができます。各キャンペーンは1つの招待コードのみを発行できます。招待者に報酬を与えるためには、招待者がアクセスしたサーバーIDを提供する必要があります。
APIリクエスト仕様
リクエストURL
環境 | URL |
本番 | https://promotion.qpyou.cn/ua/inviteCode/getCode |
サンドボックス | https://sandbox-promotion.qpyou.cn/ua/inviteCode/getCode |
リクエストメソッドとデータフォーマット
アイテム | 説明 |
HTTPメソッド | POST |
コンテンツタイプ | application/json |
ヘッダー
フィールド名 | 説明 | タイプ | 必須 |
Authorization | Bearer認証を通じたcertificationKey の有効性チェック | 文字列 | N |
リクエストボディ
フィールド名 | 説明 | タイプ | 必須 |
gameindex | ユニークなゲーム番号 | 整数 | Y |
campaign_id | 招待コードキャンペーンのユニーク番号 | 整数 | Y |
player_id | モジュールに応じてvidまたはuidのいずれかが必要 - vid: 統合モジュールに必要 - uid: 個別モジュールに必要 | 文字列 | Y |
server_id | ゲームサーバーのユニークID | 文字列 | Y |
呼び出し例
curl -L -v -X POST --location "http://sandbox-promotion.qpyou.cn/ua/inviteCode/getCode" \
-H "Content-Type: application/json" \
-d '{
"gameindex" : 539,
"campaign_id": 19,
"player_id" : 12341234,
"server_id" : "kr"
}'
APIレスポンス仕様
応答
フィールド名 | 説明 | タイプ | 必須 |
result_code | レスポンスコード | 整数 | Y |
result_message | レスポンスメッセージ | 文字列 | Y |
invite_code | 発行された招待コード | 文字列 | Y |
応答例
{
"invite_code": "ESOJ0TOC",
"result_code": 200,
"result_message": "Success"
}
招待コードの一致
招待者と受取人をマッチさせるために招待コードを入力してください。報酬の濫用を防ぐために、マッチングリクエストを行う前にゲームサーバーで受取人のアカウント情報を確認することをお勧めします。マッチング報酬はキャンペーンごとに1回のみ付与されます。
APIリクエスト仕様
リクエストURL
環境 | URL |
商業用 | https://promotion.qpyou.cn/ua/inviteCode/companion |
サンドボックス | https://sandbox-promotion.qpyou.cn/ua/inviteCode/companion |
リクエストメソッドとデータ形式
アイテム | 説明 |
HTTPメソッド | POST |
Content-Type | application/json |
ヘッダー
フィールド名 | 説明 | タイプ | 必須 |
Authorization | Bearer認証を通じたcertificationKey の有効性チェック | 文字列 | N |
リクエストボディ
フィールド名 | 説明 | タイプ | 必須 |
gameindex | ユニークなゲーム番号 | 整数 | Y |
invite_code | 発行された招待コード | 文字列 | Y |
player_id | モジュールに応じてvidまたはuidのいずれかが必要です - vid: 統合モジュールに必要 - uid: 個別モジュールに必要 | 文字列 | Y |
server_id | ゲームサーバーのユニークID | 文字列 | Y |
コール例
curl -L -v -X POST --location "http://sandbox-promotion.qpyou.cn/ua/inviteCode/companion" \
-H "Content-Type: application/json" \
-d '{
"gameindex" : 539,
"invite_code" :"ESOJ0TOC",
"player_id" : 234234,
"server_id" : "kr"
}'
APIレスポンス仕様
応答
フィールド名 | 説明 | タイプ | 必須 |
result_code | レスポンスコード | 整数 | Y |
result_message | レスポンスメッセージ | 文字列 | Y |
detail | 発行された招待コード | 配列 | Y |
ㄴㄴmatched | 一致状況 | ブール | Y |
ㄴㄴreason | 一致失敗の理由 | 文字列 | Y |
応答例
{
"detail": {
"matched": true,
"reason": "Both matching and rewards were successful"
},
"result_code": 200,
"result_message": "Success"
}
報酬ステータスを確認
招待コードの報酬ステータスを確認中です。
APIリクエスト仕様
リクエストURL
環境 | URL |
本番 | https://promotion.qpyou.cn/ua/inviteCode/progress |
サンドボックス | https://sandbox-promotion.qpyou.cn/ua/inviteCode/progress |
リクエストメソッドとデータ形式
アイテム | 説明 |
HTTPメソッド | POST |
Content-Type | application/json |
ヘッダー
フィールド名 | 説明 | タイプ | 必須 |
Authorization | Bearer認証を通じたcertificationKey の有効性チェック | 文字列 | N |
リクエストボディ
フィールド名 | 説明 | タイプ | 必須 |
gameindex | ユニークなゲーム番号 | 整数 | Y |
invite_code | 発行された招待コード | 文字列 | Y |
呼び出し例
curl -L -v -X POST --location "http://sandbox-promotion.qpyou.cn/ua/inviteCode/progress" \
-H "Content-Type: application/json" \
-d '{
"gameindex" : 539,
"invite_code" :"ESOJ0TOC"
}'
APIレスポンス仕様
応答
フィールド名 | 説明 | タイプ | 必須 |
result_code | レスポンスコード | 整数 | Y |
result_message | レスポンスメッセージ | 文字列 | Y |
progress_list | 報酬進捗状況のリスト(報酬進捗履歴がない場合、空の配列が返されます) | 配列 | Y |
ㄴ reward_id | 報酬ID | 整数 | N |
ㄴ reward_type | 報酬タイプ - action: アクション報酬
- goal: 目標達成報酬
| 文字列 | N |
ㄴ action_type | アクションタイプ - match: マッチング
- cpi: インストール
- cpa: 特定のアクションの達成
| 文字列 | N |
ㄴ count | 与えられた報酬の数 | 整数 | N |
ㄴ max_reward | 最大報酬制限 | 整数 | N |
ㄴ goal_progress | 目標達成状況 - 報酬タイプが「目標達成報酬」の場合に使用
- 目標(goal)が達成された場合に報酬が与えられます
| 整数 | N |
ㄴ goal | 目標数 | 整数 | N |
ㄴ goal_achieved | 達成された目標の数 | 整数 | N |
応答例
{
"progress_list": [
{
"reward_id": 19,
"reward_type": "action",
"action_type": "match",
"count": 1,
"max_reward": 1,
"goal_progress": 0,
"goal_achieved": 0
},
{
"reward_id": 20,
"reward_type": "goal",
"action_type": "cpi",
"count": 2,
"max_reward": 2,
"goal_progress": 1,
"goal": 3,
"goal_achieved": 2
}
],
"result_code": 200,
"result_message": "Success"
}