デバッグツールを使用した収益化のデバッグ

このページの内容は ApigeeApigee ハイブリッドに該当します。

Apigee Edge のドキュメントを表示する。

以降のセクションで説明するように、Debug を使用して Monetization をデバッグします。

認証ポリシー フェーズのデバッグ

Apigee Monetization では、VerifyAPIKey または VerifyAccessToken ポリシーを使用してアクティブな公開料金プランを確認することで、受信リクエストが収益化可能かどうかを確認します。ポリシーの追加の詳細については、認証ポリシーの追加をご覧ください。

たとえば、次の図では、リクエスト フローにおける VerifyAPIKey ポリシー フェーズの詳細を示します。

VerifyAPIKey ポリシー フェーズの詳細(Monetization フロー変数など)

ユーザーの認証後、VerifyAPIKey ポリシーで公開済みのすべての料金プランを確認し、有効化日時と有効期限に基づいて有効な料金プランを判別します。有効な公開済みの料金プランが見つかった場合は、次のフロー変数が設定されます。

フロー変数 設定
mint.mintng_is_apiproduct_monetized 有効な公開済みの料金プランが見つかった場合は true
mint.mintng_rate_plan_id 料金プラン ID。
mint.rateplan_end_time_ms 料金プランの有効期限。例: 1619433556408
mint.rateplan_start_time_ms 料金プランの有効化日時。例: 1618433956209

有効な公開済みの料金プランが見つからない場合は、mint.mintng_is_apiproduct_monetized フロー変数が false に設定され、追加のフロー変数は設定されません。

詳細については、mint フロー変数をご覧ください。

MonetizationLimitsCheck ポリシー フェーズのデバッグ

Apigee Monetization では、MonetizationLimitsCheck ポリシーを使用して API プロダクトのデベロッパー サブスクリプションを強制します。ポリシーの追加について詳しくは、API プロダクトに対するデベロッパー サブスクリプションの適用をご覧ください。

たとえば、次の図では、リクエスト フローにおける MonetizationLimitsCheck ポリシー フェーズの詳細を示します。

MonetizationLimitsCheck ポリシー フェーズの詳細(Monetization フロー変数など)

デベロッパーが API プロダクトのサブスクリプションを購入した場合は、次のフロー変数が設定されます。

フロー変数 説明
mint.limitscheck.is_request_blocked ブロックされたリクエストでは true
mint.limitscheck.is_subscription_found API サブスクリプションが見つかった場合は true
mint.limitscheck_purchased_product_name 購入した API プロダクトの名前。例: MyProduct
mint.limitscheck.status_message ステータス メッセージ。例: limits_check_success
mint.prepaid_developer_balance 料金プランの通貨に関連付けられた、デベロッパーの前払いアカウント ウォレットの現在の残高。
mint.prepaid_developer_currency mint.prepaid_developer_balance 変数で使用できる残高の通貨。
mint.subscription_end_time_ms API プロダクト サブスクリプションの終了時刻。
mint.subscription_start_time_ms API プロダクト サブスクリプションの開始時刻。例: 1618433956209

デベロッパーが API プロダクトのサブスクリプションを購入していない場合:

  • mint.limitscheck_is_subscription_found フロー変数は false に設定されます
  • mint.limitscheck.is_request_blocked の値は true に設定されます。
  • 他のフロー変数は設定されません。

詳細については、mint フロー変数をご覧ください。

Quota ポリシー フェーズのデバッグ

Apigee Monetization では、Quota ポリシーを使用して、API プロダクト レベルで定義された割り当てが適用されます。割り当てでは、API プロダクトに対して一定期間内に許可されるリクエストの数が定義されます。ポリシーの追加の詳細については、API プロキシでの Monetization の割り当ての適用をご覧ください。

たとえば、次の図では、割り当てを超過したリクエスト フローの割り当てポリシー フェーズの詳細を示します。

Quota ポリシー フェーズの詳細(Monetization フロー変数など)

この例では、割り当てを超過し、HTTP 429 Too Many Requests ステータスが返され、割り当て例外の詳細を示すために ratelimit.* フロー変数が入力されています。ratelimit.* の説明については、割り当てポリシーのフロー変数をご覧ください。

DataCapture ポリシー フェーズのデバッグ

Apigee は、DataCapture ポリシーによってキャプチャされた Monetization 変数を使用して、レーティング、収益分配の計算、分析を行います。ポリシー内の Monetization 変数のキャプチャについて詳しくは、Monetization データのキャプチャをご覧ください。

たとえば、次の図では、レスポンス フローの DataCapture ポリシー実行フェーズの詳細を示します。

Monetization フロー変数を使用した DataCapture ポリシーの実行フェーズ

Monetization 変数のキャプチャ時にエラーがなければ、次のフロー変数がトランザクション用に設定されます。

フロー変数 説明
mint.mintng_currency

収益の計算に使用する通貨。

このフロー変数には、currency Monetization 変数の値が含まれます。

mint.mintng_price

デベロッパーに分配する料金の計算に使用する収益。

このフロー変数には、revShareGrossPrice Monetization 変数の値が含まれます。

mint.mintng_price_multiplier

トランザクションごとのコストにかける係数(乗数)。

このフロー変数には、perUnitPriceMultiplier Monetization 変数の値が含まれます。

mint.mintng_tx_success

トランザクションが収益化されている場合は指定します。

このフロー変数には、transactionSuccess Monetization 変数の値が含まれます。

収益化された API プロキシ実行フェーズのデバッグ

収益化された API プロキシが正常に実行されると、Monetization の使用量に基づく料金と課金されるレートに関する情報がフロー変数のセットに設定されます。

たとえば、次の図では、変数が設定された PostClient フローのプロキシ実行フェーズの詳細を示します。

プロキシ実行フェーズの詳細(Monetization フロー変数など)

収益化された API プロキシの実行が成功すると、次のフロー変数が設定されます。

フロー変数 説明
message.status.code ターゲットからのレスポンス メッセージの HTTP ステータス コード。

レスポンスにポリシーがある場合、この変数の値は、ポリシーによって返されるステータス コードでオーバーライドされます。

mint.limitscheck.is_request_blocked API リクエストがブロックされたかどうかを示すフラグ。
mint.mintng_consumption_pricing_rates 料金プランに設定された従量制の料金。
mint.mintng_consumption_pricing_type 料金プランに設定された従量制の料金タイプ。例: FIXED_PER_UNIT
mint.mintng_dev_share デベロッパーに分配する収益。
mint.mintng_price_multiplier DataCapture ポリシーから取得された係数(乗数)。トランザクションごとのコストはこの係数で乗算されます。
mint.mintng_rate

API 呼び出しに対して課金される料金。

mint.mintng_rate_before_multipliers API 呼び出しに対して課金される perUnitPriceMultiplier の計算を含まない料金。
mint.mintng_revenue_share_rates 料金プランに設定された収益分配率。
mint.mintng_revenue_share_type 料金プランに設定された収益分配タイプ。
mint.prepaid_updated_developer_usage 前払いデベロッパーの現在の使用量。
mint.status 収益化呼び出しのステータス。エラー時にのみ設定されます。
mint.status_code 収益化された呼出しの HTTP ステータス コード。エラー時にのみ設定されます。
mint.tx_success_result トランザクションの収益化が成功したかどうかを示します。

すべての変数の詳細については、mint フロー変数をご覧ください。