Estás viendo la documentación de Apigee Edge.
Ir a la
documentación de Apigee X. info
Introducción
En algunos casos, es posible que necesites que los contadores de transacciones se basen en una variable o un valor personalizado. Por ejemplo, es posible que necesites lo siguiente:
- Cobrar a los desarrolladores un importe variable según un valor proporcionado en el mensaje de una llamada a la API Por ejemplo, es posible que desees cobrar a los desarrolladores de apps según la cantidad de bytes transmitidos en la solicitud a la API.
- Agrupar varias llamadas a la API en una sola transacción.
Con los planes de tarifas con atributos personalizados, puedes identificar un valor en el mensaje de una llamada a la API que actúa como contador y que se usa para calcular las cantidades y los cargos de las transacciones.
Se admiten los siguientes planes de tarifas con atributos personalizados:
- Tarjeta de tarifas con atributo personalizado
- Notificación ajustable con atributo personalizado
Puedes establecer un máximo de diez atributos personalizados por plan de tarifas.
Información sobre los cálculos de atributos personalizados
La forma en que el valor del atributo personalizado se incluye en las cantidades y los cargos de las transacciones del plan de tarifas depende del modelo de carga, como se resume en la siguiente tabla.
| Modelo de carga | Cálculo de atributos personalizados |
|---|---|
| Tasa fija y por volumen |
En el caso de una tasa fija, el número de atributos personalizados se convierte en la cantidad de transacciones que se multiplican por la tasa. En el caso de la tasa por volumen, la cantidad de transacciones en una banda se incrementa según el número de atributos personalizados, y se le cobra al desarrollador por esa cantidad de transacciones. Por ejemplo, si el valor de un atributo personalizado en el mensaje es 10, se le cobra al desarrollador por 10 transacciones y se agregan 10 transacciones al recuento de la banda actual. Si al desarrollador solo le quedaban 6 transacciones en la banda actual, se multiplica 6 por la tasa de esa banda. Las 4 restantes pasan a la siguiente banda y se multiplican por la tasa de esa banda. En un plan por volumen, si la última banda de volumen tiene un límite (no es "ilimitada") y una transacción supera ese límite, suceden dos cosas:
|
| Paquetes |
Dado que los paquetes se cobran por grupo, no por transacción, se realiza el siguiente cálculo:
Por ejemplo, si el número de atributos personalizados en el mensaje es 10, se agrega 10 a la cantidad de transacciones que se usan en el paquete. Si al desarrollador solo le quedaban 6 transacciones en el paquete actual, ese paquete se completa y el recuento del siguiente paquete se incrementa en 4. Se cobra la tarifa de ese paquete siguiente, si corresponde. Si el último paquete tiene un límite (no es "ilimitado") y una transacción supera ese límite, suceden dos cosas:
|
| Notificaciones ajustables |
En el caso de las notificaciones ajustables, se realiza el siguiente cálculo:
Por ejemplo, si el número de atributos personalizados en el mensaje es 10, se agrega 10 a la cantidad total de transacciones. |
Dónde el plan de tarifas obtiene el valor del atributo personalizado
La política de registro de transacciones (en el paquete de productos de API) le indica a la monetización dónde buscar en el mensaje el valor del atributo personalizado. Defines el atributo personalizado en la sección Custom Attributes de la política de registro de transacciones para el paquete de productos de API.
Luego, puedes seleccionar ese atributo personalizado en el plan de tarifas después de crear un paquete de productos de API que contenga la política de registro de transacciones con el atributo personalizado definido.
Este es el flujo de alto nivel:
- Define los atributos personalizados cuando agregues un producto de API.
- Crea un paquete de productos de API que contenga el producto.
En la política de registro de transacciones para el paquete de productos de API, agrega los atributos personalizados que se usarán para definir los planes de tarifas. - Crea un plan de tarifas de tipo tarjeta de tarifas o notificación ajustable para el paquete de productos de API y especifica un parámetro de calificación personalizado.
En la siguiente figura, se muestra la relación entre el atributo personalizado definido en la política de registro de transacciones y la configuración del plan de tarjeta de tarifas. La relación del plan de tarifas de notificación ajustable con atributo personalizado es similar, aunque el valor por volumen no es aplicable.

Cómo generar el valor del atributo personalizado en el mensaje
La política de registro de transacciones puede buscar el valor del atributo personalizado en varios lugares, como el encabezado de respuesta, el cuerpo de respuesta o las variables de flujo predefinidas en la respuesta. (La solicitud no está disponible, ya que una transacción no es oficial hasta que obtienes una respuesta correcta ). A continuación, se muestran ejemplos que te muestran cómo agregar un encabezado de respuesta con su valor numérico al mensaje. En ambos casos, usaremos la política Assign Message junto con las variables.
Cómo agregar el tamaño de la carga útil de la solicitud al encabezado de respuesta
En cada solicitud de mensaje, hay una variable client.received.content.length que
contiene la cantidad de bytes en la carga útil de la solicitud. Si adjuntamos una política Assign Message a la
respuesta del extremo del proxy, podemos generar un encabezado de respuesta llamado messageSize que
contenga el valor de longitud:
<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Message-1"> <DisplayName>Assign Message 1</DisplayName> <Set> <Headers> <Header name="messageSize">{client.received.content.length}</Header> </Headers> </Set> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
Cómo agregar un valor de atributo personalizado de la app al encabezado
De la misma manera, podemos generar un encabezado con el valor de un atributo personalizado en una app.
Por ejemplo, si incluyes un atributo personalizado llamado apprating en cada app para desarrolladores, de la siguiente manera:

Cuando se usa la política Verify API Key (que es obligatoria para la monetización), este valor se
almacena en una variable llamada verifyapikey.{policy_name}.apprating. Con la política Assign
Message adjunta a la respuesta del extremo del proxy, puedes generar un encabezado llamado
apprating que contenga el valor apprating de la app:
<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Message-1"> <DisplayName>Assign Message 1</DisplayName> <Set> <Headers> <Header name="apprating">{verifyapikey.Verify-API-Key-1.apprating}</Header> </Headers> </Set> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
Cómo configurar el plan de tarifas
Además de la configuración de atributos personalizados que se describió anteriormente, el plan de tarifas se configura de la misma manera que lo harías normalmente (para planes de tarifas sin atributos personalizados), pero debe cumplir con los siguientes requisitos.
Cómo configurar un plan de tarjeta de tarifas con atributo personalizado mediante la IU
Configura los planes de tarjeta de tarifas con atributos personalizados mediante la IU de Edge o la IU de Classic Edge, como se describe en las siguientes secciones.
Edge
Para configurar un plan de tarjeta de tarifas con atributos personalizados mediante la IU de Edge, haz lo siguiente:
- Define los atributos personalizados cuando agregues un producto de API.
- Crea un paquete de productos de API que contenga el producto. Consulta Crea paquetes de productos de API.
En la política de registro de transacciones para el paquete de productos de API, agrega los atributos personalizados que se usarán para definir los planes de tarifas. Para obtener más detalles, consulta la introducción de este tema, así como Crea una política de registro de transacciones. - Crea un plan de tarifas para el paquete de productos de API y especifica un parámetro de calificación personalizado.
Para obtener más información, consulta Cómo configurar los detalles del plan de tarjeta de tarifas con la IU.
Classic Edge (nube privada)
Sigue los pasos a continuación para crear un plan de tarjeta de tarifas con atributo personalizado mediante la IU de Classic Edge:
- En la política de registro de transacciones de un producto de API, agrega los atributos personalizados que se usarán para definir los planes de tarifas. Para obtener más detalles, consulta la introducción de este tema, así como Crea una política de registro de transacciones. Haz esto para cada producto de API que desees incluir en el paquete de API.
- Una vez que los productos de API y las políticas de registro de transacciones estén configurados exactamente como deseas, crea un paquete de API que contenga el producto. Consulta Crea paquetes de API.
- Crea un plan de tarifas para el paquete de API y selecciona el tipo de plan de tarifas Tarjeta de tarifas con atributo personalizado.
-
Haz clic en el vínculo Tarjeta de tarifas. Se abrirá la ventana Tarjeta de tarifas.

- Selecciona un atributo personalizado en el menú desplegable Atributo personalizado. En el menú, se muestran los atributos personalizados
creados para el producto en una política de registro de transacciones. Se le cobra al desarrollador
según el valor del atributo personalizado seleccionado en cada transacción.
(Valor del atributo * tarifa = cargo al desarrollador) - De manera opcional, configura un plan freemium como se describe en Especifica los detalles del plan de tarjeta de tarifas.
- Configura un modelo de carga como se describe en Especifica los detalles del plan de tarjeta de tarifas. Sin embargo, ten en cuenta que, para el tipo de plan de tarifas Tarjeta de tarifas con atributo personalizado, el modelo de carga se basa en el atributo personalizado que selecciones. Por ejemplo, si eliges Tasa fija como modelo de carga, se le cobra al desarrollador una tasa fija según el atributo personalizado, como la cantidad de bytes transmitidos en cada transacción (no una tasa fija por cada transacción). Consulta Cálculos para obtener más información.
-
Haz clic en Guardar
borrador.
Publica el plan solo cuando estés absolutamente seguro de que es definitivo. Consulta Publica planes de tarifas para obtener información sobre cómo establecer la fecha de publicación y publicar el plan.
Para obtener más información, consulta Cómo especificar los detalles del plan de tarjeta de tarifas con la IU.
Cómo configurar un plan de notificación ajustable con atributos personalizados mediante la IU
Configura los planes de notificación ajustables con atributos personalizados, como se describe a continuación.Edge
Para configurar un plan de tarjeta de tarifas con atributos personalizados mediante la IU de Edge, haz lo siguiente:
- Define los atributos personalizados cuando agregues un producto de API.
- Crea un paquete de productos de API que contenga el producto. Consulta Crea paquetes de productos de API.
En la política de registro de transacciones para el paquete de productos de API, agrega los atributos personalizados que se usarán para definir los planes de tarifas. Para obtener más detalles, consulta la introducción de este tema, así como Crea una política de registro de transacciones. - Crea un plan de tarifas para el paquete de productos de API y especifica un parámetro de calificación personalizado.
Para obtener más información, consulta Cómo configurar un plan de notificación ajustable con la IU.
Classic Edge (nube privada)
Para configurar un plan de tarjeta de tarifas con atributos personalizados mediante la IU de Classic Edge, haz lo siguiente:
- En la política de registro de transacciones de un producto de API, agrega los atributos personalizados que se usarán para definir los planes de tarifas. Para obtener más detalles, consulta la introducción de este tema, así como Crea una política de registro de transacciones. Haz esto para cada producto de API que desees incluir en el paquete de API.
- Una vez que los productos de API y las políticas de registro de transacciones estén configurados exactamente como deseas, crea un paquete de API que contenga el producto. Consulta Crea paquetes de API.
- Crea un plan de tarifas para el paquete de API y selecciona el tipo de plan de tarifas Adjustable Notificación ajustable con atributo personalizado.
-
Haz clic en el vínculo Detalles. Se abrirá la ventana Notificación ajustable.

- Selecciona un atributo personalizado en el menú desplegable Atributo personalizado. En el menú , se muestran los atributos personalizados creados para el producto en una política de registro de transacciones. La cantidad total de transacciones del desarrollador se calcula según el valor del atributo personalizado seleccionado en cada transacción.
- Establece la Base de agregación en el período durante el cual se agrega el volumen de transacciones. Selecciona un número entre 1 y 24 meses. El valor predeterminado es 1 mes.
- Haz clic en Aplicar y cerrar.
-
Haz clic en Guardar
borrador.
Publica el plan solo cuando estés absolutamente seguro de que es definitivo. Consulta Publica planes de tarifas para obtener información sobre cómo establecer la fecha de publicación y publicar el plan.
Para obtener más información, consulta Cómo especificar los detalles del plan de notificación ajustable con la IU.
Cómo especificar detalles para un plan de tarifas con atributos personalizados mediante la API
Realiza los siguientes pasos de requisitos previos:
- En la política de registro de transacciones de un producto de API, agrega los atributos personalizados que se usarán para definir los planes de tarifas. Para obtener más detalles, consulta la introducción de este tema, así como Crea una política de registro de transacciones. Haz esto para cada producto de API que desees incluir en el paquete de API.
- Una vez que los productos de API y las políticas de registro de transacciones estén configurados exactamente como deseas, crea un paquete de API que contenga el producto. Consulta Crea paquetes de API.
Luego, usa la API para crear el plan de tarifas.
Especificas los detalles de un plan de tarifas con atributos personalizados cuando creas el plan de tarifas. Especificas los detalles en la propiedad ratePlanDetails dentro del cuerpo de la solicitud en una llamada a /organizations/{org_name}/monetization-packages/{package_id}/rate-plans. En
los detalles, especificas un valor de parámetro de calificación que identifica el nombre del atributo personalizado. También puedes especificar un valor de parámetro de calificación que agregue el atributo personalizado
durante un intervalo de tiempo especificado.
Consulta Configuración de detalles del plan de tarifas para obtener una lista completa de las opciones de detalles del plan de tarifas.
Por ejemplo, lo siguiente crea un plan de tarjeta de tarifas con atributo personalizado basado en un atributo personalizado
llamado messageSize (consulta los elementos en negrita).
$ curl -H "Content-Type:application/json" -X POST -d \
'{
"name": "Custom attribute-based rate card plan",
"developer":null,
"developerCategory":null,
"currency": {
"id" : "usd"
},
"description": "Custom attribute-based rate card plan",
"displayName" : "Custom attribute-based rate card plan",
"frequencyDuration": "1",
"frequencyDurationType": "MONTH",
"earlyTerminationFee": "10",
"monetizationPackage": {
"id": "location"
},
"organization": {
"id": "{org_name}"
},
"paymentDueDays": "30",
"prorate": "false",
"published": "false",
"ratePlanDetails":[
{
"currency":{
"id":"usd"
},
"duration":1,
"durationType":"MONTH",
"meteringType":"VOLUME",
"paymentDueDays":"30",
"ratingParameter":"messageSize",
"ratingParameterUnit":"MB",
"organization":{
"id":"{org_name}"
},
"ratePlanRates":[
{
"rate":0.15,
"startUnit":0,
"type":"RATECARD",
"endUnit":1000
},
{
"rate":0.1,
"startUnit":1000,
"type":"RATECARD",
"endUnit":null
}
],
"freemiumUnit":0,
"freemiumDuration":0,
"freemiumDurationType":"MONTH",
"type":"RATECARD",
"customPaymentTerm":false
}
],
"freemiumUnit":0,
"freemiumDuration":0,
"freemiumDurationType":"MONTH",
"contractDuration":"1",
"contractDurationType":"YEAR",
"recurringStartUnit": 1,
"recurringType": "CALENDAR",
"recurringFee": "10",
"setUpFee": "10",
"startDate": "2013-09-15 00:00:00",
"type": "STANDARD"
}' \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/monetization-packages/location/rate-plans" \
-u email:password
Lo siguiente crea un plan de tarifas de notificación ajustable con atributo personalizado basado en un
atributo personalizado llamado messageSize (consulta el elemento en negrita).
$ curl -H "Content-Type:application/json" -X POST -d \
'{
"name": "AdjustableNotification",
"displayName": "Custom attribute-based adjustable notification plan",
"description": "Custom attribute-based adjustable notification plan",
"published": "true",
"organization": {
"id": "myorg"
},
"startDate": "2016-04-15 00:00:00",
"type": "STANDARD",
"monetizationPackage": {
"id": "p1",
"name": "test"
},
"currency": {
"id" : "usd",
"name" : "USD"
},
"ratePlanDetails": [
{
"type": "USAGE_TARGET",
"meteringType": "DEV_SPECIFIC",
"duration": 1,
"durationType": "MONTH",
"ratingParameter": "messageSize",
"ratingParameterUnit": "MB",
"organization": {
"id": "myorg"
},
"currency": {
"id": "usd",
"name": "USD"
}
}
]
}' \
"https://api.enterprise.apigee.com/v1/mint/organizations/myorg/monetization-packages/p1/rate-plans" \
-u email:password