Monetization での問題のトラブルシューティング

このセクションでは、収益化でよくある問題のトラブルシューティングに関する情報とガイダンスを示します。

デベロッパーの停止

症状

デベロッパーが停止されて、それ以降の収益化のトランザクション / API 呼び出しを行うことができなくなります。

エラー メッセージ

    <error>
       <messages>
            <message>Exceeded developer limit configuration -</message>
            <message>Is Developer Suspended - true</message>
       </messages>
    </error>
    

診断

デベロッパーが停止された理由を判断するには、以下の手順を行います。

  1. 次の API 呼び出しを実行して、停止されたデベロッパーに関連付けられているエラーコードを特定します。
    1. Public Cloud ユーザーの場合は、次の API を使用します。
          curl -X GET "https://api.enterprise.apigee.com/v1/mint/organizations/{org}/suspended-developers/{developer-email}" -u orgadminEmail:password
          
    2. Private Cloud ユーザーの場合は、次の API を使用します。
          curl -X GET "http://<management-host>:<port#>/v1/mint/organizations/{org}/suspended-developers/{developer-email}" -u orgadminEmail:password
          
  2. そのエラーコードを以下の理由コードと比較して、デベロッパーが停止されている理由を特定します。

http://docs.apigee.com/monetization/content/unsuspend-developers#suspend-reason-codes もご覧ください。

理由コード

原因

詳細

INSUFFICIENT_FUNDS

デベロッパー アカウントの残高が不足している

前払いデベロッパー アカウントの残高に、それ以降のトランザクションに十分な資金がない場合、そのデベロッパーは停止されます。

後払いデベロッパーの場合は、利用限度額を超えている場合や、使用している通貨で設定されている利用限度額が不足している場合に、このエラーが発生することがあります。

LIMIT_VIOLATED

デベロッパーはこれ以上のトランザクションを行うことができない

デベロッパーは、購入した料金プランに基づき、一定回数のトランザクションを行うことが許可されます。トランザクションの回数が超過している場合、デベロッパーは停止され、それ以降のトランザクションを完了させることができません。

RATE_PLAN_RATE_BAND_EXCEEDED

NO_CURRENT_PUBLISHABLE_ENTITY

デベロッパーは料金プランを購入していない

トランザクションを完了させるには、デベロッパーは料金プランを購入する必要があります。

解決策

エラー

解決の手順

INSUFFICIENT_FUNDS

デベロッパーは、それ以降のトランザクションを完了させるために、十分なアカウント残高や利用可能額を確保する必要があります。

LIMIT_VIOLATED

  1. 以下の API 呼び出しを行って、デベロッパーの料金プランとトランザクションの詳細をそれぞれ取得します。
  • 次の API 呼び出しを実行して、デベロッパーが購入した料金プランの開始日付と終了日付を取得します。

http://docs.apigee.com/monetize/apis/get/organizations/%7Borg_name%7D/developers/%7Bdeveloper_id%7D/developer-accepted-rateplans

  • 次の API 呼び出しを実行して、デベロッパーが行って成功したトランザクションの回数を取得します。

http://docs.apigee.com/monetize/apis/get/organizations/%7Borg_name%7D/transactions/developers/%7Bdeveloper_email_or_id%7D

  1. Edge UI で次のメニューを順に選択することで、デベロッパーに許可されている呼び出し回数を確認することもできます。

[Packages] -> [PackageName] -> [RatePlanName] -> [Rate Card]

たとえば、パッケージ名が「Pro Package」であり、それが無料プランである場合、そのメニューパスは次のようになります。

[Packages] -> [Pro Package] -> [Free Plan] -> [Rate Card]

RATE_PLAN_RATE_BAND_EXCEEDED

NO_CURRENT_PUBLISHABLE_ENTITY

API 呼び出しを行うには、デベロッパーは料金プランを購入する必要があります。


Monetization のセットアップでの問題

症状

Monetization のセットアップでの問題は、以下のようなさまざまな症状として現れることがあります。

  • webhook 機能が動作しない
  • webhook を作成できない
  • webhook 通知がトリガーされない
  • Monetization レポートにトランザクションがまったく示されない
  • たとえば、アナリティクス データで、そのデベロッパーが特定の期間中に多数のトランザクションを完了したことが示されているが、Monetization レポートにはそれに該当するトランザクションがまったくリストされていない。
  • トランザクションが記録されない

エラー メッセージ

エラー メッセージは表示されないこともありますが、上記の症状セクションで説明している問題が現れます。

考えられる原因

上記の症状セクションで説明している症状が現れた場合は、トランザクションが収益化されていない可能性が非常に高いと考えられます。

原因の診断

  1. 次のセクションで説明している管理 API 呼び出しを使用して、トランザクションが収益化されているかどうかを確認します。

    トランザクションのステータスの表示

  1. 指定した期間中に [SUCCESS] としてリストされているトランザクションがない場合、そのトランザクションは収益化されていません。

トランザクションが収益化されていない典型的な原因は次のとおりです。

原因

Monetization Limits Check ポリシーが API プロキシにアタッチされていない

API プロダクトが収益化されていない

Transaction Recording ポリシーの定義が間違っている

デベロッパーが料金プランを購入していない

以下のセクションでは、それぞれの問題の診断方法と解決方法について説明します。

Monetization Limits Check ポリシーが API プロキシにアタッチされていない

診断

  1. Monetization Limits Check ポリシーが API プロキシにアタッチされているかどうかを確認します。
  1. そのポリシーがアタッチされていない場合、そのことが、トランザクションが [FAILED] としてリストされている理由である可能性があります。

解決策

次のセクションでの説明に従って、必要な API プロキシに Monetization Limits Check ポリシーをアタッチします。

http://docs.apigee.com/monetization/content/enforce-monetization-limits-using-monetization-limits-check-policy

問題が解消されない場合は、API プロダクトが収益化されていないかどうかを確認します。

API プロダクトが収益化されていない

診断

  1. API プロダクトが収益化されているかどうかを確認します(トランザクションの下にリストされるのは収益化されている API プロダクトだけです)。収益化されているプロダクトには、使用可能なアクティブな料金プランが 1 つ以上あります。
  1. 次の API 呼び出しを使用して、収益化されている API プロダクトのリストを取得します。
    1. Public Cloud ユーザーの場合は、次の API を使用します。
          curl -v https://api.enterprise.apigee.com/v1/mint/organizations/{org_id}/products?monetized=true -u orgadminEmail:password
          
    2. Private Cloud ユーザーの場合は、次の API を使用します。
          curl -v http://<management-host>:<port#>/v1/mint/organizations/{org_id}/products?monetized=true -u orgadminEmail:password
      
          
  2. API プロキシと関連付けられている API プロダクトが収益化されていない場合、そのことが、トランザクションが収益化されていない理由である可能性があります。

解決策

API プロダクトを収益化するには、以下の手順に従います。

  1. 次のセクションでの説明に従って Transaction Recording ポリシーを作成します。

    http://docs.apigee.com/monetization/content/create-transaction-recording-policy

  1. API プロダクトにアクティブな料金プランがあることを確認します。

問題が解消されない場合は、Transaction Recording ポリシーの定義が間違っているかどうかを確認します。

Transaction Recording ポリシーの定義が間違っている

診断

  1. Monetization Limits Check ポリシーがアタッチされている API プロキシに対して UI トレースを有効にします。
  1. UI トレースから該当する API リクエストを選択します。
  1. アナリティクスの AX フローを選択し、次の収益化(mint)フロー変数に適切な値が設定されているかどうかを確認します。
        mint.tx.status - Should match the value set up for "success criteria" in the transaction recording policy for the API product being used. When tracing, the txProviderStatus in the transaction recording policy is stored in the variable 'mint.tx.status'.
        mint.tx.app_id - Application id of API product.
        mint.tx.prod_id - API product id.
    
        
  1. mint フロー変数が適切にセットアップされているサンプル UI トレースを次に示します。
  1. mint.tx.status 変数が間違っている場合、Transaction Recording ポリシーの定義が間違っていることを表しています。

解決策

  1. Transaction Recording ポリシーを作成するときに、次のセクションに記載されているすべての手順に正しく従っていたことを確認します。

http://docs.apigee.com/monetization/content/create-transaction-recording-policy

  1. Transaction Recording ポリシーで設定されている Key-Value は transaction success criteria です。

http://docs.apigee.com/monetization/content/create-transaction-recording-policy#success-criteria

デベロッパーが料金プランを購入していない

診断

  1. 次の管理 API 呼び出しを使用して、デベロッパーが購入している料金プランを確認します。
    1. Public Cloud ユーザーの場合は、次の API を使用します。
          curl -v https://api.enterprise.apigee.com/v1/mint/organizations/{org}/developers/{dev_email}/products/{prod}/developer-rateplans -u orgadminEmail:password
          
    2. Private Cloud ユーザーの場合は、次の API を使用します。
          curl -v http://<management-host>:<port#>/v1/mint/organizations/{org}/developers/{dev_email}/products/{prod}/developer-rateplans -u orgadminEmail:password
          
  2. 上記の呼び出しに対するレスポンスに基づいて、デベロッパーがトランザクションを完了した時点でアクティブだった料金プランを見つけます。

解決策

デベロッパーは、独自の要件に基づいて料金プランを購入してから、トランザクション / API を実行する必要があります。

問題が解消されない場合は、Apigee サポートにお問い合わせください。