Configura el plan de tarifas con atributos personalizados

Estás viendo la documentación de Apigee Edge.
Ve a la documentación de Apigee X.
info

Introducción

En algunos casos, es posible que debas que los contadores de transacciones se basen en una variable o un valor personalizado. Por ejemplo, es posible que debas hacer 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.
  • Combina 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 los cargos y los recuentos de transacciones.

Se admiten los siguientes planes de tarifas con atributos personalizados:

  • Hoja 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 los atributos personalizados

La forma en que el valor del atributo personalizado se tiene en cuenta en los recuentos y cargos de las transacciones del plan de tarifas depende del modelo de facturación, como se resume en la siguiente tabla.

Modelo de carga Cálculo de atributos personalizados
Tasa plana y volumen con bandas

custom attribute number * rate = charge to developer

En el caso de una tarifa plana, el número de atributo personalizado se convierte en la cantidad de transacciones que se multiplican por la tarifa. En el caso de la segmentación por volumen, la cantidad de transacciones en una banda se incrementa por 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 bandas actual. Si al desarrollador solo le quedan 6 transacciones en la banda actual, 6 se multiplica por la tarifa de esa banda. Las 4 restantes van a la siguiente banda y se multiplican por la tarifa de esa banda.

En un plan con bandas de volumen, si la última banda de volumen tiene un límite (no es “ilimitado”) 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:

custom attribute number = amount added to bundle count

Por ejemplo, si el número de atributo personalizado en el mensaje es 10, se agrega 10 a la cantidad de transacciones que se usan en el paquete. Si el desarrollador solo tiene 6 transacciones restantes en el paquete actual, ese paquete se completa y el recuento del siguiente paquete aumenta en 4. Se cobrará la tarifa de ese próximo paquete, 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:

custom attribute number = amount added to transaction count

Por ejemplo, si el número de atributo personalizado en el mensaje es 10, se agrega 10 a la cantidad total de transacciones.

Dónde obtiene el valor del atributo personalizado el plan de tarifas

La política de grabación de transacciones (en el paquete de productos de la API) le indica a la monetización dónde buscar en el mensaje el valor del atributo personalizado. Define el atributo personalizado en la sección Custom Attributes de la política de grabación de transacciones del paquete de productos de la 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:

  1. Define los atributos personalizados cuando agregas un producto de API.
  2. Crea un paquete de productos de API que contenga el producto.
    En la política de registro de transacciones del paquete de productos de la API, agrega los atributos personalizados que se usarán para definir los planes de tarifas.
  3. Crea un plan de tarifas de tipo tarjeta de tarifa o notificación ajustable para el paquete de productos de la API y especifica un parámetro de calificación personalizado.

En la siguiente imagen, 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 la tarjeta de tarifas. La notificación ajustable con la relación de plan de tarifas de atributos personalizados es similar, aunque el valor con banda de 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 la 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 recibes 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 Asignar mensaje junto con variables.

Agrega 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 de asignación de mensajes a la respuesta del extremo de proxy, podemos generar un encabezado de respuesta llamado messageSize que contiene 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>

Agrega un valor de atributo personalizado de la aplicación al encabezado

De manera similar, 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 del desarrollador, como se indica a continuación:

Cuando se usa la política Verificar clave de API (que es obligatoria para la monetización), este valor se almacena en una variable llamada verifyapikey.{policy_name}.apprating. Con la política AssignMessage adjunta a la respuesta del extremo de 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>

Configura el plan de tarifas

Aparte 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 un atributo personalizado con la IU

Configura planes de tarifas con atributos personalizados mediante la IU de Edge o la IU de Edge clásica, 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:

  1. Define los atributos personalizados cuando agregas un producto de API.
  2. 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 del paquete de productos de la API, agrega los atributos personalizados que se usarán para definir los planes de tarifas. Para obtener más información, consulta la introducción de este tema y Cómo crear una política de registro de transacciones.
  3. Crea un plan de tarifas para el paquete de productos de la API y especifica un parámetro de clasificación personalizado.

Para obtener más información, consulta Configura los detalles del plan de la hoja de tarifas con la IU.

Edge clásico (nube privada)

Sigue estos pasos para crear una tarjeta de tarifas con un plan de atributos personalizados con la IU de Classic Edge:

  1. 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 información, consulta la introducción de este tema y Cómo crear una política de registro de transacciones. Haz esto para cada producto de API que quieras incluir en el paquete de API.
  2. 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.
  3. Crea un plan de tarifas para el paquete de la API y selecciona el tipo de plan de tarifas Tarjeta de tarifas con atributo personalizado.
  4. Haz clic en el vínculo Hoja de tarifas. Se abrirá la ventana de la tarifa.

  5. Selecciona un atributo personalizado en el menú desplegable Atributo personalizado. El menú enumera los atributos personalizados creados para el producto en una política de registro de transacciones. Al desarrollador se le cobra según el valor del atributo personalizado seleccionado en cada transacción.
    (valor del atributo × tarifa = cargo al desarrollador)
  6. De manera opcional, configura un plan freemium como se describe en Especifica los detalles del plan de la tarjeta de tarifas.
  7. Configura un modelo de cargo como se describe en Especifica los detalles del plan de la hoja de tarifas. Sin embargo, ten en cuenta que, para el tipo de plan de tarifas de la hoja de tarifas con atributos personalizados, el modelo de cobro se basa en el atributo personalizado que selecciones. Por ejemplo, si eliges Tarifa plana como el modelo de cobro, se le cobrará al desarrollador una tarifa fija según el atributo personalizado, como la cantidad de bytes transmitidos en cada transacción (no una tarifa fija para cada transacción). Consulta Cálculos para obtener más información.
  8. Haz clic en Save Draft (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 configurar la fecha de publicación y publicar el plan.

Para obtener más información, consulta Cómo especificar los detalles del plan de la tarjeta de tarifas con la IU.

Cómo configurar un plan de notificaciones ajustable con atributos personalizados mediante la IU

Configura planes de notificaciones 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:

  1. Define los atributos personalizados cuando agregas un producto de API.
  2. 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 del paquete de productos de la API, agrega los atributos personalizados que se usarán para definir los planes de tarifas. Para obtener más información, consulta la introducción de este tema y Cómo crear una política de registro de transacciones.
  3. Crea un plan de tarifas para el paquete de productos de la API y especifica un parámetro de clasificación personalizado.

Para obtener más información, consulta Configura un plan de notificaciones ajustable con la IU.

Edge clásico (nube privada)

Para configurar un plan de hoja de tarifas con atributos personalizados usando la IU clásica de Edge, sigue estos pasos:

  1. 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 información, consulta la introducción a este tema y la sección Crea una política de registro de transacciones. Haz esto con cada producto de API que desees incluir en el paquete de API.
  2. Una vez que los productos de API y las políticas de registro de transacciones estén configurados exactamente como lo deseas, crea un paquete de API que contenga el producto. Consulta Crea paquetes de API.
  3. Crea un plan de tarifas para el paquete de la API y selecciona el tipo de plan de tarifas en Notificación ajustable con atributo personalizado.
  4. Haz clic en el vínculo Detalles. Se abrirá la ventana Notificación ajustable.

  5. Selecciona un atributo personalizado en el menú desplegable Atributo personalizado. En el menú, se enumeran los atributos personalizados creados para el producto en una política de grabación de transacciones. La cantidad total de transacciones del desarrollador se calcula según el valor del atributo personalizado seleccionado en cada transacción.
  6. Establece el Período 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.
  7. Haz clic en Aplicar y cerrar.
  8. 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 configurar la fecha de publicación y publicar el plan.

Para obtener más información, consulta Cómo especificar los detalles del plan de notificaciones ajustables con la IU.

Especifica los detalles de un plan de tarifas con atributos personalizados mediante la API

Sigue los siguientes pasos previos:

  1. 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 información, consulta la introducción de este tema y Cómo crear una política de registro de transacciones. Haz esto con cada producto de API que desees incluir en el paquete de API.
  2. 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.

A continuación, usa la API para crear el plan de tarifas.

Cuando lo creas, especificas los detalles de un plan de tarifas con atributos personalizados. 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 los parámetros de configuración de los detalles del plan de tarifas para obtener una lista completa de las opciones de detalles del plan de tarifas.

Por ejemplo, el siguiente comando crea una tarjeta de tarifas con un plan de atributos personalizados 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

El siguiente comando crea una notificación ajustable con un plan de tarifas de atributos personalizados 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