用語集

XGサブスクリプションで使用する用語をまとめています。

用語

説明

オファーID

初回無料・割引等のオファーの識別子です。オファーを適用した購入を判定するために使用します

  • App Store: 任意の文字列を指定

    • sub-product0001-monthly-first_free

    • 購入検証にはオファータイプを使用

  • Google Play: ストアで発行された特典ID(最大63文字)を指定

    • sub-product0001-first-free

    • 文字制限: 先頭は数字または小文字、スペース不可、数字(0-9)とハイフン(-)使用可

  • DMM GAMES: ストアで発行された特典ID(最大40文字)を指定

    • sub_product0001_first_free

    • 文字制限: 先頭は小文字または数字、2文字目以降は大小アルファベット・数字・ピリオド・アンダースコア

オファータイプ

オファーの分類です。初回購入時に割引や無料期間を提供する際に使用します

  • first_free: 初回無料

    • 最初の1ヶ月は無料で2ヶ月目から課金開始など

  • first_discount: 初回割引

    • 最初の1ヶ月は半額など

オファー価格

オファーを適用した時の価格です。購入検証で価格が一致するか確認するために使用します

  • 通常価格1000円のサブスクリプションに初回半額オファーを適用した場合、オファー価格は500円

キャンセル日時

サブスクリプションのキャンセル日時です。ISO 8601形式で表現されます。ユーザーが自動更新をキャンセルした日時を示します。キャンセル時のみXGサブスクリプション通知に含まれます

  • 例: 2026-02-13T00:00:00Z

  • 注意: キャンセル日時が設定されていても、有効期限切れになるまではサブスクリプション状態は有効のままになります

サブスクリプショングループID

ストア横断で同一商品を管理するためのXG側のIDです。同一ユーザーが同一グループのサブスクリプションを複数有効にすることを防止します。App Store / Google Play / DMM GAMESの各プランを同一商品として管理できます

  • 例: sub-product0001

サブスクリプション状態

サブスクリプションの現在の状態です。サービス利用可否の判定に使用します。サービス利用不可の場合は利用権を無効として扱ってください。

状態

説明

サービス利用可否

active(有効)

有効な状態。購入時、継続時、復元時、再開時に設定

利用可

canceled(キャンセル済み)

自動更新をキャンセルした状態。有効期限切れまで利用可(有効期限切れは expired)

利用可

grace_period(猶予期間)

継続の決済失敗後、ストアが請求を再試行している期間

利用可

on_hold(保留中)

猶予期間終了後、ストアが請求を再試行している状態

利用不可

expired(期限切れ)

有効期限が切れた状態

利用不可

paused(停止)

支払い問題等で停止した状態。Google Playのみ

利用不可

revoked(返金済み)

返金・払い戻しが行われた状態

利用不可

サブスクリプション状態変更イベント

XGサブスクリプション通知で送信されるイベント種別です。サービス利用可否はサブスクリプション状態で判断し、利用権の処理は通知に含まれる itemAction で判断します。 表の各イベントのサブスクリプション状態および利用権処理( itemAction )は通常時の値であり、通知の順序が前後した場合などは異なることがあります。

イベント

説明

サブスクリプション状態

利用権処理(itemAction)

purchase(購入)

購入時に発生
期限切れ後の再購入も含む

有効(active)

付与(grant)

renewal(継続)

自動更新された時に発生

有効(active)

付与(grant)

recovered(復元)

復元された時に発生

有効(active)

付与(grant)

canceled(キャンセル)

自動更新をキャンセルした時に発生 ※1
有効期限切れまで利用可

キャンセル(canceled)

なし(none)

restart(再開)

キャンセル後に自動更新を再開した時に発生 ※1

有効(active)

なし(none)

expired(期限切れ)

有効期限が切れた時に発生

期限切れ(expired)

なし(none)

paused(停止)

支払い問題等で停止した時に発生
Google Playのみ

停止(paused)

なし(none)

revoked(返金)

返金・払い戻しが行われた時に発生

返金済み(revoked)

回収(revoke)

grace_period(猶予期間)

継続の決済に失敗し猶予期間へ移行した時に発生

猶予期間(grace_period)

なし(none)

on_hold(保留中)

猶予期間の期限切れ後、請求再試行中へ移行した時に発生

保留中(on_hold)

なし(none)

注釈

※1 DMM GAMESの場合はバッチの実行タイミング次第では届かない場合があります

サブスクリプションタグ

ゲーム内通貨の発行数を切り替えるためのタグです。ゲームサーバーがXGサブスクリプション通知のレスポンスで指定します

設定方法: XG商品マスタで、サブスクリプションタグごとに発行するゲーム内通貨の種類・数量を設定します。

使い方: ゲームサーバーは、XGサブスクリプション通知のレスポンスで subscriptionTag を返却します。XGは、返却されたタグに対応するゲーム内通貨発行設定を基に、ゲーム内通貨を発行します。

活用例:

  • 初回購入: initial タグで初回特典として追加のゲーム内通貨を発行

  • 通常継続: repeat タグで通常の継続時のゲーム内通貨を発行

  • 3ヶ月ごとのボーナス: 3month_bonus タグで3ヶ月ごとにボーナスを付与

例: initial で有償gem 500 + 無償gem 1000発行、 repeat で有償gem 500 + 無償gem 500発行

プランID

プランの識別子です。月額・年額など、同一商品内の異なる期間プランを識別します

  • App Store: 任意の文字列を指定

    • appstore01_monthly

  • Google Play: basePlanIdを指定

    • googleplay01-monthly

    • 文字制限: 先頭は数字または小文字、スペース不可、数字(0-9)とハイフン(-)使用可

  • DMM GAMES: planIdを指定

    • dmmgames01_monthly

    • 文字制限: 先頭は小文字または数字、2文字目以降は大小アルファベット・数字・ピリオド・アンダースコア(最大40文字)

有効期限

サブスクリプションの有効期限です。XGサブスクリプション通知の subscriptionExpiryAt で渡されます。

表示用途

ゲーム端末での表示に使用してください(例:「〇月〇日まで有効」のように、ユーザーに課金期間の終了日時を示す)。

有効判定

サービス利用可否(課金コンテンツへのアクセス可否など)の判定は、サブスクリプション状態(subscriptionStatus)で行ってください。

  • 例: 2026-02-13T00:00:00Z

注釈

有効期限が過ぎていても、期限切れイベント(expired)を受信するまではサブスクリプション状態は有効のままになります

purchaseTransactionId

サブスクリプションの購入時にストアが発行した取引IDです

  • App Store: transactionId

    • 2000000012345678

  • Google Play: purchaseToken

    • ankcbblmmnehcmgjdnjiaapb.AO-J1OxRcRVpIW-NkPAD95HT_lsp51HhwLwtLWrsDGp11sJZ3nds20d5MN0wtYgBOVsyUYuF66gV77qmSpklyF-TZmB9aFK-IaKKuQwJO6xFmv_9Ez3MYJk

  • DMM GAMES: purchaseToken

    • 12345678-aabb-ccdd-eeff-999999000000

renewalTransactionId

サブスクリプションの継続時にストアが発行した取引IDです。利用権を付与する際( itemActiongrant のとき)はこのIDをアイテムと紐づけて保存し、回収時( itemActionrevoke のとき)は回収対象を特定するために使用します。

  • App Store: 継続ごとに新規の transactionId が発行され、renewalTransactionId にはその transactionId が入ります

  • Google Play / DMM GAMES: 決済ごとに OrderID が発行され、renewalTransactionId にはその OrderID が入ります

eventAt

サブスクリプションの更新が行われた日時です

  • Google Play: eventTimeMillis に相当

  • App Store: signedDate に相当

  • DMM GAMES: バッチ実行時

  • ストア通知以外の場合は、ストアのイベント日時とは異なる日時になります

  • 例: 2026-02-13T00:00:00Z

trigger

通知の生成元を表します

  • store_notification: ストア通知起点

  • api_request: 購入・継続 API 経由

  • batch: バッチ経由(DMM GAMES)

storeNotificationStatus

ストアからの通知が順番どおりに届いたかどうかを表します。通知の届く順序は前後する場合があります

  • on_time: 遅延なし

    • ストアからの通知が順番どおりに届いています

    • ただし、この通知より前に発生したイベントの通知が遅延している場合があります

  • delayed: 遅延あり

    • サブスクリプション状態変更イベントの届く順序が前後し、すでに処理済みのものより前のイベントの通知です

    • itemAction が on_time の場合と異なる場合があります

itemAction

通知に応じてゲームサーバーが行う利用権の操作を表します

  • grant: 利用権を付与(アイテム付与、コンテンツのアンロック等)

  • revoke: 利用権を回収(付与したアイテムの回収、アンロックしたコンテンツの再ロック等)

  • none: 利用権の処理なし。サブスクリプション状態に基づきサービス利用可否を判断

ゲームサーバーは itemAction に応じて利用権を付与または回収してください。none の場合は利用権の処理は行いません。

grant のときは、レスポンスで subscriptionTag を返すことで XG がゲーム内通貨を発行します。

ストアからの通知の届く順序が入れ替わった場合、利用権を付与せずサブスクリプション状態の更新のみとなる場合があります