Configurer le plan tarifaire avec des attributs personnalisés

Vous consultez la documentation Apigee Edge.
Accédez à la documentation Apigee X.
info

Introduction

Dans certains cas, vous devrez peut-être baser les compteurs de transactions sur une variable ou une valeur personnalisée. Par exemple, vous devrez peut-être :

  • facturer aux développeurs un montant variable en fonction d'une valeur fournie dans le message d'un appel d'API call ; par exemple, vous pouvez facturer les développeurs d'applications en fonction du nombre d'octets transmis dans la requête API ;
  • regrouper plusieurs appels d'API en une seule transaction.

En utilisant des plans tarifaires avec des attributs personnalisés, vous pouvez identifier une valeur dans le message d'un appel d'API qui sert de compteur et qui est utilisée pour calculer le nombre de transactions et les frais.

Les plans tarifaires suivants avec des attributs personnalisés sont acceptés :

  • Carte tarifaire avec attribut personnalisé
  • Notification ajustable avec attribut personnalisé

Vous pouvez définir un maximum de dix attributs personnalisés par plan tarifaire.

Comprendre les calculs d'attributs personnalisés

La manière dont la valeur de l'attribut personnalisé est prise en compte dans le nombre de transactions et les frais du plan tarifaire dépend du modèle de facturation, comme indiqué dans le tableau suivant.

Modèle de facturation Calcul d'attribut personnalisé
Tarif forfaitaire et tarif par volume

custom attribute number * rate = charge to developer

Pour un tarif forfaitaire, le nombre d'attributs personnalisés devient le nombre de transactions qui sont multipliées par le tarif. Pour un tarif par volume, le nombre de transactions dans une bande est incrémenté par le nombre d'attributs personnalisés, et le développeur est facturé pour ce nombre de transactions. Par exemple, si la valeur d'un attribut personnalisé dans le message est 10, le développeur est facturé pour 10 transactions, et 10 transactions sont ajoutées au nombre de la bande actuelle. Si le développeur n'avait que 6 transactions restantes dans la bande actuelle, 6 est multiplié par le tarif de cette bande. Les 4 autres sont ajoutés à la bande suivante et multipliés par le tarif de cette bande.

Dans un plan tarifaire par volume, si la dernière bande de volume a une limite (n'est pas "illimitée") et qu'une transaction dépasse cette limite, deux choses se produisent :

Groupes

Étant donné que les groupes sont facturés par groupe et non par transaction, le calcul suivant est effectué :

custom attribute number = amount added to bundle count

Par exemple, si le nombre d'attributs personnalisés dans le message est 10, 10 est ajouté au le nombre de transactions utilisées dans le groupe. Si le développeur n'avait que 6 transactions restantes dans le groupe actuel, ce groupe est rempli et le nombre du groupe suivant est incrémenté de 4. Le tarif de ce groupe suivant, le cas échéant, est facturé.

Si le dernier groupe a une limite (n'est pas "illimité") et qu'une transaction dépasse cette limite, deux choses se produisent :

Notifications ajustables

Pour les notifications ajustables, le calcul suivant est effectué :

custom attribute number = amount added to transaction count

Par exemple, si le nombre d'attributs personnalisés dans le message est 10, 10 est ajouté au nombre total de transactions.

Où le plan tarifaire obtient-il la valeur de l'attribut personnalisé ?

La règle d'enregistrement des transactions (sur le groupe de produits d'API) indique à la monétisation où rechercher la valeur de l'attribut personnalisé dans le message. Vous définissez l'attribut personnalisé dans la section "Attributs personnalisés" de la règle d'enregistrement des transactions pour le groupe de produits d'API.

Vous pouvez ensuite sélectionner cet attribut personnalisé dans le plan tarifaire, une fois que vous avez créé un groupe de produits d'API contenant la règle d'enregistrement des transactions avec l' attribut personnalisé défini.

Voici le flux de haut niveau :

  1. Définissez les attributs personnalisés lorsque vous ajoutez un produit d'API.
  2. Créez un groupe de produits d'API contenant le produit.
    Dans la règle d'enregistrement des transactions pour le groupe de produits d'API, ajoutez les attributs personnalisés qui seront utilisés pour définir les plans tarifaires.
  3. Créez un plan tarifaire de type carte tarifaire ou notification ajustable pour le groupe de produits d'API et spécifiez un paramètre de tarification personnalisé.

La figure suivante montre la relation entre l'attribut personnalisé défini dans la règle d'enregistrement des transactions et la configuration du plan de carte tarifaire. La relation entre le plan tarifaire de notification ajustable et l'attribut personnalisé est similaire, bien que la valeur par volume ne soit pas applicable.

Comment générer la valeur de l'attribut personnalisé dans le message ?

La règle d'enregistrement des transactions peut rechercher la valeur de l'attribut personnalisé à plusieurs endroits, tels que l'en-tête de réponse, le corps de la réponse ou les variables de flux prédéfinies dans la réponse. (La requête n'est pas disponible, car une transaction n'est officielle que lorsque vous recevez une réponse positive.) Vous trouverez ci-dessous des exemples qui vous montrent comment ajouter un en-tête de réponse avec sa valeur numérique au message. Dans les deux cas, nous utiliserons la règle d'attribution de messages conjointement avec des variables.

Ajouter la taille de la charge utile de la requête à l'en-tête de réponse

Dans chaque requête de message, il existe une variable client.received.content.length qui contient le nombre d'octets dans la charge utile de la requête. En associant une règle d'attribution de messages à la réponse du point de terminaison du proxy, nous pouvons générer un en-tête de réponse appelé messageSize qui contient la valeur de la longueur :

<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>

Ajouter une valeur d'attribut personnalisé d'application à l'en-tête

De la même manière, nous pouvons générer un en-tête avec la valeur d'un attribut personnalisé sur une application. Par exemple, si vous incluez un attribut personnalisé appelé apprating sur chaque application de développeur comme suit :

Lorsque vous utilisez la règle de validation de la clé API (obligatoire pour la monétisation), cette valeur est stockée dans une variable appelée verifyapikey.{policy_name}.apprating. À l'aide de la règle d'attribution de messages associée à la réponse du point de terminaison du proxy, vous pouvez générer un en-tête appelé apprating qui contient la valeur apprating de l'application :

<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>

Configurer le plan tarifaire

Outre la configuration d'attributs personnalisés décrite ci-dessus, le plan tarifaire est configuré de la même manière que d'habitude (pour les plans tarifaires sans attributs personnalisés), mais doit respecter les exigences suivantes.

Configurer un plan de carte tarifaire avec un attribut personnalisé à l'aide de l'UI

Configurez des plans de carte tarifaire avec des attributs personnalisés à l'aide de l'UI Edge ou de l'UI Edge classique, comme décrit dans les sections suivantes.

Edge

Pour configurer un plan de carte tarifaire avec des attributs personnalisés à l'aide de l'UI Edge :

  1. Définissez les attributs personnalisés lorsque vous ajoutez un produit d'API.
  2. Créez un groupe de produits d'API contenant le produit. Consultez Créer des groupes de produits d'API.
    Dans la règle d'enregistrement des transactions pour le groupe de produits d'API, ajoutez les attributs personnalisés qui seront utilisés pour définir les plans tarifaires. Pour en savoir plus, consultez l'introduction de cette section, ainsi que Créer une règle d'enregistrement des transactions.
  3. Créez un plan tarifaire pour le groupe de produits d'API et spécifiez un paramètre de tarification personnalisé.

Pour en savoir plus, consultez Configurer les détails d'un plan de carte tarifaire à l'aide de l'UI.

Edge classique (Private Cloud)

Pour créer un plan de carte tarifaire avec un attribut personnalisé à l'aide de l'UI Edge classique :

  1. Dans la règle d'enregistrement des transactions d'un produit d'API, ajoutez les attributs personnalisés qui seront utilisés pour définir les plans tarifaires. Pour en savoir plus, consultez l'introduction de cette section, ainsi que Créer une règle d'enregistrement des transactions. Procédez ainsi pour chaque produit d'API que vous souhaitez inclure dans le package d'API.
  2. Une fois que les produits d'API et les règles d'enregistrement des transactions sont configurés exactement comme vous le souhaitez, créez un package d'API contenant le produit. Consultez Créer des packages d'API.
  3. Créez un plan tarifaire pour le package d'API, en sélectionnant le type de plan tarifaire Carte tarifaire avec attribut personnalisé.
  4. Cliquez sur le lien Carte tarifaire. La fenêtre "Carte tarifaire" s'ouvre.

  5. Sélectionnez un attribut personnalisé dans le menu déroulant "Attribut personnalisé". Le menu répertorie les attributs personnalisés créés pour le produit dans une règle d'enregistrement des transactions. Le développeur est facturé en fonction de la valeur de l'attribut personnalisé sélectionné dans chaque transaction.
    (Valeur de l'attribut * tarif = frais facturés au développeur)
  6. (Facultatif) Configurez un plan freemium comme décrit dans Spécifier les détails d'un plan de carte tarifaire.
  7. Configurez un modèle de facturation comme décrit dans Spécifier les détails d'un plan de carte tarifaire. Notez toutefois que pour le type de plan tarifaire "Carte tarifaire avec attribut personnalisé", le modèle de facturation est basé sur l'attribut personnalisé que vous sélectionnez. Par exemple, si vous choisissez "Tarif forfaitaire" comme modèle de facturation, le développeur est facturé à un tarif fixe en fonction de l'attribut personnalisé, tel que le nombre d'octets transmis dans chaque transaction (et non à un tarif fixe pour chaque transaction). Pour en savoir plus, consultez la section Calculs.
  8. Cliquez sur Enregistrer le brouillon.
    Ne publiez le plan que lorsque vous êtes absolument sûr qu'il est définitif. Pour savoir comment définir la date de publication et publier le plan, consultez Publier des plans tarifaires.

Pour en savoir plus, consultez Spécifier les détails d'un plan de carte tarifaire à l'aide de l'UI.

Configurer un plan de notification ajustable avec des attributs personnalisés à l'aide de l'UI

Configurez des plans de notification ajustables avec des attributs personnalisés, comme décrit ci-dessous.

Edge

Pour configurer un plan de carte tarifaire avec des attributs personnalisés à l'aide de l'UI Edge :

  1. Définissez les attributs personnalisés lorsque vous ajoutez un produit d'API.
  2. Créez un groupe de produits d'API contenant le produit. Consultez Créer des groupes de produits d'API.
    Dans la règle d'enregistrement des transactions pour le groupe de produits d'API, ajoutez les attributs personnalisés qui seront utilisés pour définir les plans tarifaires. Pour en savoir plus, consultez l'introduction de cette section, ainsi que Créer une règle d'enregistrement des transactions.
  3. Créez un plan tarifaire pour le groupe de produits d'API et spécifiez un paramètre de tarification personnalisé.

Pour en savoir plus, consultez Configurer un plan de notification ajustable à l'aide de l'UI.

Edge classique (Private Cloud)

Pour configurer un plan de carte tarifaire avec des attributs personnalisés à l'aide de l'UI Edge classique :

  1. Dans la règle d'enregistrement des transactions d'un produit d'API, ajoutez les attributs personnalisés qui seront utilisés pour définir les plans tarifaires. Pour en savoir plus, consultez l'introduction de cette section, ainsi que Créer une règle d'enregistrement des transactions. Procédez ainsi pour chaque produit d'API que vous souhaitez inclure dans le package d'API.
  2. Une fois que les produits d'API et les règles d'enregistrement des transactions sont configurés exactement comme vous le souhaitez, créez un package d'API contenant le produit. Consultez Créer des packages d'API.
  3. Créez un plan tarifaire pour le package d'API, en sélectionnant le type de plan tarifaire Notification ajustable avec attribut personnalisé.
  4. Cliquez sur le lien Détails. La fenêtre "Notification ajustable" s'ouvre.

  5. Sélectionnez un attribut personnalisé dans le menu déroulant Attribut personnalisé. Le menu répertorie les attributs personnalisés créés pour le produit dans une règle d'enregistrement des transactions. Le nombre total de transactions du développeur est calculé en fonction de la valeur de l'attribut personnalisé sélectionné dans chaque transaction.
  6. Définissez la base d'agrégation sur la période pendant laquelle le volume de transactions est agrégé. Sélectionnez un nombre compris entre 1 et 24 mois. La valeur par défaut est de 1 mois.
  7. Cliquez sur Appliquer et fermer.
  8. Cliquez sur Enregistrer le brouillon.
    Ne publiez le plan que lorsque vous êtes absolument sûr qu'il est définitif. Pour savoir comment définir la date de publication et publier le plan, consultez Publier des plans tarifaires.

Pour en savoir plus, consultez Spécifier les détails d'un plan de notification ajustable à l'aide de l'UI.

Spécifier les détails d'un plan tarifaire avec des attributs personnalisés à l'aide de l'API

Effectuez les étapes préalables suivantes :

  1. Dans la règle d'enregistrement des transactions d'un produit d'API, ajoutez les attributs personnalisés qui seront utilisés pour définir les plans tarifaires. Pour en savoir plus, consultez l'introduction de cette section, ainsi que Créer une règle d'enregistrement des transactions. Procédez ainsi pour chaque produit d'API que vous souhaitez inclure dans le package d'API.
  2. Une fois que les produits d'API et les règles d'enregistrement des transactions sont configurés exactement comme vous le souhaitez, créez un package d'API contenant le produit. Consultez Créer des packages d'API.

Ensuite, utilisez l'API pour créer le plan tarifaire.

Vous spécifiez les détails d'un plan tarifaire avec des attributs personnalisés lorsque vous créez le plan tarifaire. Vous spécifiez les détails dans la propriété ratePlanDetails du corps de la requête dans un appel à /organizations/{org_name}/monetization-packages/{package_id}/rate-plans. Dans les détails, vous spécifiez une valeur de paramètre de tarification qui identifie le nom de l'attribut personnalisé. Vous pouvez également spécifier une valeur de paramètre de tarification qui agrège l'attribut personnalisé sur un intervalle de temps spécifié.

Pour obtenir la liste complète des options de détail du plan tarifaire, consultez Paramètres de configuration des détails du plan tarifaire.

Par exemple, le code suivant crée un plan de carte tarifaire avec un attribut personnalisé basé sur un attribut personnalisé nommé messageSize (voir les éléments en gras).

$ 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

Le code suivant crée un plan tarifaire de notification ajustable avec un attribut personnalisé basé sur un attribut personnalisé nommé messageSize (voir l'élément en gras).

$ 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