Apigee uses the monetization variables for rating, calculating revenue share, and analytics. If
you want your Apigee analytics to show the monetization information. By using the monetization
variables, you can enhance the monetization capabilities of your transactions.
Monetization variables
The monetization variable names are predefined, and you can't create, edit,
or delete the variables. You can assign either request or response variables to the
monetization variables.
This table describes the monetization variables available in Apigee:
Monetization variable
Data type
Description
currency
String
Specifies the currency for calculating the revenue from a transaction.
perUnitPriceMultiplier
Float
Specifies the factor (multiplier) by which the per-transaction cost is multiplied.
The per-transaction cost is specified in the rate plan's
Consumption-based fees pricing.
The multiplication is performed for a transaction only if the transaction is
monetizable. A transaction is monetizable if any one of the following condition
is satisfied:
If the transactionSuccess variable is true.
If the transactionSuccess variable is NULL and
the message.status.code is 2xx (success).
revShareGrossPrice
Float
Specifies the revenue of the transaction for calculating the developer's share. Apigee calculates
the developer's share only if you have enabled revenue sharing in your rate plan.
transactionSuccess
boolean
Specifies if the transaction should be monetized.
If the variable is set to true, the transaction is monetized.
If the variable is set to false, the transaction is not monetized.
If you don't specify this variable, the transactions are monetization based on the
value of the HTTP status code available in the message.status.code variable.
If the HTTP status code of the response is NULL or >=300, a
transaction is not monetized; for all other status codes, the transaction is monetized.
Value assignment examples
The following examples show how to assign values to the monetization variables:
currency
The following example assigns the value of the booking[0].currency JSON element
in the response to the currency variable:
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-26 UTC."],[[["\u003cp\u003eThis documentation covers monetization variables for Apigee and Apigee hybrid, which are used for rating, calculating revenue share, and analytics within the platform.\u003c/p\u003e\n"],["\u003cp\u003eMonetization variable names are predefined and cannot be created, edited, or deleted, but you can assign either request or response variables to them, and override them via the DataCapture policy.\u003c/p\u003e\n"],["\u003cp\u003eThere are four main monetization variables: \u003ccode\u003ecurrency\u003c/code\u003e, \u003ccode\u003eperUnitPriceMultiplier\u003c/code\u003e, \u003ccode\u003erevShareGrossPrice\u003c/code\u003e, and \u003ccode\u003etransactionSuccess\u003c/code\u003e, each with specific data types and purposes related to transaction monetization and revenue sharing.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003etransactionSuccess\u003c/code\u003e variable determines if a transaction should be monetized, based on its boolean value or, if not set, on the HTTP status code.\u003c/p\u003e\n"],["\u003cp\u003eExamples are provided, demonstrating how to assign values to each of the monetization variables using the DataCapture policy, pulling data from JSON payloads and response headers.\u003c/p\u003e\n"]]],[],null,["# Capturing monetization data\n\n*This page\napplies to **Apigee** and **Apigee hybrid**.*\n\n\n*View [Apigee Edge](https://docs.apigee.com/api-platform/get-started/what-apigee-edge) documentation.*\n\n\nApigee uses the monetization variables for rating, calculating revenue share, and analytics. If\nyou want your Apigee analytics to show the monetization information. By using the monetization\nvariables, you can enhance the monetization capabilities of your transactions.\n\nMonetization variables\n----------------------\n\n\nThe monetization variable names are predefined, and you can't create, edit,\nor delete the variables. You can assign either request or response variables to the\nmonetization variables.\n| If you want to override monetization variables, you can do so by capturing them using the [DataCapture policy](/apigee/docs/api-platform/reference/policies/data-capture-policy).\n\nThis table describes the monetization variables available in Apigee:\n\n| **Note** :\n|\n| - The monetization variables are not visible in the Apigee's `Admin \u003e Data Collectors` page.\n| - The monetization variables are case sensitive.\n| - Apart from the variable names listed in the table, you cannot provide any other names for the monetization variables.\n| - The monetization variables are not listed in the [organizations.datacollectors.list](/apigee/docs/reference/apis/apigee/rest/v1/organizations.datacollectors/list) API.\n\nValue assignment examples\n-------------------------\n\nThe following examples show how to assign values to the monetization variables: \n\n### currency\n\nThe following example assigns the value of the `booking[0].currency` JSON element\nin the response to the `currency` variable: \n\n```gdscript\n\u003cCapture\u003e\n \u003cCollect\u003e\n \u003cSource\u003eresponse\u003c/Source\u003e\n \u003cJSONPayload\u003e\n \u003cJSONPath\u003ebooking[0].currency\u003c/JSONPath\u003e\n \u003c/JSONPayload\u003e\n \u003c/Collect\u003e\n \u003cDataCollector scope=\"monetization\"\u003ecurrency\u003c/DataCollector\u003e\n\u003c/Capture\u003e\n \n```\n\n### perUnitPriceMultiplier\n\nThe following example assigns the value of the `booking[0].factor` JSON element in the response to the `perUnitPriceMultiplier` variable: \n\n```gdscript\n\u003cCapture\u003e\n \u003cCollect\u003e\n \u003cSource\u003eresponse\u003c/Source\u003e\n \u003cJSONPayload\u003e\n \u003cJSONPath\u003ebooking[0].factor\u003c/JSONPath\u003e\n \u003c/JSONPayload\u003e\n \u003c/Collect\u003e\n \u003cDataCollector scope=\"monetization\"\u003eperUnitPriceMultiplier\u003c/DataCollector\u003e\n\u003c/Capture\u003e\n \n```\n\n### revShareGrossPrice\n\nThe following example assigns the value of the `minPrice` variable in the response header to the `revShareGrossPrice` variable: \n\n```smarty\n\u003cCapture\u003e\n \u003cCollect\u003e\n \u003cSource\u003eresponse\u003c/Source\u003e\n \u003cHeader name=\"minPrice\"\u003e\n \u003cPattern ignoreCase=\"true\"\u003e{$}\u003c/Pattern\u003e\n \u003c/Header\u003e\n \u003c/Collect\u003e\n \u003cDataCollector scope=\"monetization\"\u003erevShareGrossPrice\u003c/DataCollector\u003e\n\u003c/Capture\u003e\n \n```\n\n### transactionSuccess\n\nThe following example assigns the value of the `bookingStatus` variable in the response header to the `transactionSuccess` variable: \n\n```smarty\n\u003cCapture\u003e\n \u003cCollect\u003e\n \u003cSource\u003eresponse\u003c/Source\u003e\n \u003cHeader name=\"bookingStatus\"\u003e\n \u003cPattern ignoreCase=\"true\"\u003e{$}\u003c/Pattern\u003e\n \u003c/Header\u003e\n \u003c/Collect\u003e\n \u003cDataCollector scope=\"monetization\"\u003etransactionSuccess\u003c/DataCollector\u003e\n\u003c/Capture\u003e\n```"]]