Preisplan mit benutzerdefinierten Attributen konfigurieren

Sie sehen sich die Dokumentation zu Apigee Edge an.
Sehen Sie sich die Apigee X-Dokumentation an.
info

Einführung

In einigen Fällen müssen Transaktionszähler auf einer Variablen oder einem benutzerdefinierten Wert basieren. Sie müssen z. B. Folgendes tun:

  • Entwicklern einen variablen Betrag in Rechnung stellen, der auf einem Wert basiert, der in der Nachricht eines API-Aufrufs angegeben ist. Beispielsweise können Sie App-Entwicklern die Anzahl der in der API-Anfrage übertragenen Byte in Rechnung stellen.
  • Bündeln Sie mehrere API-Aufrufe in einer einzigen Transaktion.

Mit Preisplänen mit benutzerdefinierten Attributen können Sie in der Nachricht eines API-Aufrufs einen Wert als Zähler angeben, der zum Berechnen der Transaktionsanzahl und der Gebühren verwendet wird.

Die folgenden Preispläne mit benutzerdefinierten Attributen werden unterstützt:

  • Preisliste mit benutzerdefiniertem Attribut
  • Einstellbare Benachrichtigung mit benutzerdefiniertem Attribut

Pro Preisplan können maximal zehn benutzerdefinierte Attribute festgelegt werden.

Berechnungen für benutzerdefinierte Attribute

Wie der Wert des benutzerdefinierten Attributs in die Transaktionszahlen und Gebühren des Tarifpakets einfließt, hängt vom Abrechnungsmodell ab, wie in der folgenden Tabelle zusammengefasst.

Lademodell Berechnung benutzerdefinierter Attribute
Pauschalpreis und Preis nach Volumen für Bandverbrauch

custom attribute number * rate = charge to developer

Bei einem Pauschalpreis wird die Nummer des benutzerdefinierten Attributs zur Anzahl der Transaktionen, die mit dem Preis multipliziert werden. Bei der volumenbasierten Preisgestaltung wird die Anzahl der Transaktionen in einem Band um die Anzahl der benutzerdefinierten Attribute erhöht und dem Entwickler wird diese Anzahl in Rechnung gestellt. Wenn der Wert eines benutzerdefinierten Attributs in der Nachricht beispielsweise „10“ ist, werden dem Entwickler 10 Transaktionen in Rechnung gestellt und der aktuellen Bandanzahl werden 10 Transaktionen hinzugefügt. Wenn dem Entwickler nur noch 6 Transaktionen im aktuellen Preisbereich verbleiben, wird 6 mit dem Preis für diesen Bereich multipliziert. Die verbleibenden 4 gehen in das nächste Band ein und werden mit der Rate dieses Bandes multipliziert.

Wenn bei einem Volumentarif das letzte Volumenband ein Limit hat (nicht „unbegrenzt“) und eine Transaktion dieses Limit überschreitet, passiert Folgendes:

Pakete

Da Sets nach Gruppe und nicht nach Transaktion abgerechnet werden, erfolgt die folgende Berechnung:

custom attribute number = amount added to bundle count

Wenn die Nummer des benutzerdefinierten Attributs in der Nachricht beispielsweise 10 ist, wird der Anzahl der im Set verwendeten Transaktionen 10 hinzugefügt. Wenn der Entwickler nur sechs Transaktionen im aktuellen Bundle hat, wird dieses Bundle gefüllt und die nächste Bundle-Anzahl wird um 4 erhöht. Der Preis für das nächste Paket, falls zutreffend, wird in Rechnung gestellt.

Wenn das letzte Paket ein Limit hat (nicht „unbegrenzt“) und eine Transaktion dieses Limit überschreitet, passiert Folgendes:

Einstellbare Benachrichtigungen

Bei einer anpassbaren Benachrichtigung erfolgt die folgende Berechnung:

custom attribute number = amount added to transaction count

Wenn die Nummer des benutzerdefinierten Attributs in der Nachricht beispielsweise 10 lautet, wird der Gesamtzahl der Transaktionen 10 hinzugefügt.

Woher der Tarifplan den Wert des benutzerdefinierten Attributs bezieht

Die Richtlinie zur Transaktionsaufzeichnung (im API-Produktpaket) teilt der Monetarisierung mit, wo in der Nachricht nach dem Wert des benutzerdefinierten Attributs gesucht werden soll. Sie definieren das benutzerdefinierte Attribut im Abschnitt „Benutzerdefinierte Attribute“ der Richtlinie zur Transaktionsaufzeichnung für das API-Produktset.

Anschließend können Sie dieses benutzerdefinierte Attribut im Preisplan auswählen, nachdem Sie ein API-Produktpaket mit der Richtlinie zur Transaktionsaufzeichnung mit dem definierten benutzerdefinierten Attribut erstellt haben.

Hier ist der Ablauf im Überblick:

  1. Definieren Sie die benutzerdefinierten Attribute, wenn Sie ein API-Produkt hinzufügen.
  2. Erstellen Sie ein API-Produktbundle, das das Produkt enthält.
    Fügen Sie in der Richtlinie für die Transaktionsaufzeichnung für das API-Produktpaket die benutzerdefinierten Attribute hinzu, die zum Definieren von Preisplänen verwendet werden.
  3. Erstellen Sie einen Preisplan vom Typ „Preiskarte“ oder „Anpassbare Benachrichtigung“ für das API-Produktpaket und geben Sie einen benutzerdefinierten Altersfreigabeparameter an.

Die folgende Abbildung zeigt die Beziehung zwischen dem benutzerdefinierten Attribut, das in der Richtlinie zur Transaktionsaufzeichnung definiert ist, und der Konfiguration des Preislistenplans. Die anpassbare Benachrichtigung mit benutzerdefiniertem Attribut-Preisplan-Beziehungstyp ist ähnlich, der Wert für die Mengenrabattgruppe ist jedoch nicht anwendbar.

Benutzerdefinierten Attributwert in der Nachricht generieren

Die Richtlinie für die Transaktionsaufzeichnung kann an verschiedenen Stellen nach dem benutzerdefinierten Attributwert suchen, z. B. im Antwortheader, im Antworttext oder in den vordefinierten Flussvariablen in der Antwort. (Die Anfrage ist nicht verfügbar, da eine Transaktion erst dann offiziell ist, wenn Sie eine erfolgreiche Antwort erhalten.) Die folgenden Beispiele zeigen, wie Sie der Nachricht einen Antwortheader mit seinem numerischen Wert hinzufügen. In beiden Fällen verwenden wir die Richtlinie „Nachricht zuweisen“ in Verbindung mit Variablen.

Anfragenutzlastgröße in den Antwortheader einfügen

In jeder Nachrichtenanfrage gibt es eine client.received.content.length-Variable, die die Anzahl der Byte in der Anfragenutzlast enthält. Wenn Sie der Proxy-Endpunkt-Antwort eine Richtlinie zum Zuweisen einer Nachricht hinzufügen, können wir einen Antwortheader namens messageSize generieren, der den Längenwert enthält:

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

Dem Header einen Wert für ein benutzerdefiniertes App-Attribut hinzufügen

Ähnlich können wir einen Header mit dem Wert eines benutzerdefinierten Attributs für eine App generieren. Wenn Sie beispielsweise für jede Entwickler-App ein benutzerdefiniertes Attribut namens apprating angeben, sieht das so aus:

Wenn Sie die Richtlinie „API-Schlüssel bestätigen“ verwenden, die für die Monetarisierung erforderlich ist, wird dieser Wert in einer Variablen namens verifyapikey.{policy_name}.apprating gespeichert. Mithilfe der Richtlinie „Nachricht zuweisen“, die an die Antwort des Proxy-Endpunkts angehängt ist, können Sie einen Header namens apprating generieren, der den Wert apprating der Anwendung enthält:

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

Tarifplan einrichten

Abgesehen von der oben beschriebenen Einrichtung des benutzerdefinierten Attributs wird der Preisplan wie gewohnt eingerichtet (für Preispläne ohne benutzerdefinierte Attribute). Er muss jedoch den folgenden Anforderungen entsprechen.

Preislistenplan mit benutzerdefiniertem Attribut über die Benutzeroberfläche konfigurieren

Konfigurieren Sie Tarifpläne mit benutzerdefinierten Attributen über die Edge-Benutzeroberfläche oder die klassische Edge-Benutzeroberfläche, wie in den folgenden Abschnitten beschrieben.

Edge

So konfigurieren Sie einen Tarifkartenplan mit benutzerdefinierten Attributen über die Edge-Benutzeroberfläche:

  1. Definieren Sie die benutzerdefinierten Attribute, wenn Sie ein API-Produkt hinzufügen.
  2. Erstellen Sie ein API-Produktbundle, das das Produkt enthält. Weitere Informationen finden Sie unter API-Produktpakete erstellen.
    Fügen Sie in der Richtlinie zur Transaktionsaufzeichnung für das API-Produktpaket die benutzerdefinierten Attribute hinzu, die zum Definieren von Tarifpaketen verwendet werden. Weitere Informationen finden Sie in der Einführung in diesem Thema sowie unter Richtlinie zur Transaktionsaufzeichnung erstellen.
  3. Erstellen Sie einen Preisplan für das API-Produktpaket und geben Sie einen benutzerdefinierten Bewertungsparameter an.

Weitere Informationen finden Sie unter Details zum Preislistenplan über die Benutzeroberfläche konfigurieren.

Classic Edge (Private Cloud)

So erstellen Sie mit der klassischen Edge-Benutzeroberfläche eine Preisliste mit einem Plan für benutzerdefinierte Attribute:

  1. Fügen Sie in der Richtlinie zur Transaktionsaufzeichnung eines API-Produkts die benutzerdefinierten Attribute hinzu, die zum Definieren von Tarifpaketen verwendet werden. Weitere Informationen finden Sie in der Einführung in diesem Thema sowie unter Richtlinie zur Transaktionsaufzeichnung erstellen. Wiederholen Sie diese Schritte für jedes API-Produkt, das Sie im API-Paket enthalten möchten.
  2. Sobald die API-Produkte und Richtlinien für die Transaktionsaufzeichnung genau wie gewünscht konfiguriert sind, erstellen Sie ein API-Paket, das das Produkt enthält. Weitere Informationen finden Sie unter API-Pakete erstellen.
  3. Erstellen Sie einen Preisplan für das API-Paket und wählen Sie als Preisplantyp Preisliste mit benutzerdefiniertem Attribut aus.
  4. Klicken Sie auf den Link Preisliste. Daraufhin wird das Fenster „Preisliste“ geöffnet.

  5. Wählen Sie im Drop-down-Menü „Benutzerdefiniertes Attribut“ ein benutzerdefiniertes Attribut aus. Im Menü werden benutzerdefinierte Attribute aufgeführt, die für das Produkt in einer Richtlinie zur Transaktionsaufzeichnung erstellt wurden. Dem Entwickler wird der Wert des ausgewählten benutzerdefinierten Attributs in jeder Transaktion in Rechnung gestellt.
    (Attributwert * Preis = in Rechnung gestellte Kosten für Entwickler)
  6. Optional kannst du einen Freemium-Tarif einrichten, wie unter Details zum Tarifkartenplan angeben beschrieben.
  7. Richten Sie ein Abrechnungsmodell ein, wie unter Tarifkartenplandetails angeben beschrieben. Beachten Sie jedoch, dass das Abrechnungsmodell für den Tarifplantyp „Preisliste mit benutzerdefiniertem Attribut“ auf dem von Ihnen ausgewählten benutzerdefinierten Attribut basiert. Wenn Sie beispielsweise „Pauschalpreis“ als Abrechnungsmodell auswählen, wird dem Entwickler ein fester Preis basierend auf dem benutzerdefinierten Attribut in Rechnung gestellt, z. B. die Anzahl der bei jeder Transaktion übertragenen Byte (kein fester Preis für jede Transaktion). Weitere Informationen finden Sie unter Berechnungen.
  8. Klicken Sie auf Entwurf speichern.
    Veröffentlichen Sie den Plan nur, wenn Sie absolut sicher sind, dass er endgültig ist. Informationen zum Festlegen des Veröffentlichungsdatums und zum Veröffentlichen des Tarifs finden Sie unter Preispläne veröffentlichen.

Weitere Informationen finden Sie unter Details zu Preislistenplänen über die Benutzeroberfläche angeben.

Über die Benutzeroberfläche einen anpassbaren Benachrichtigungsplan mit benutzerdefinierten Attributen konfigurieren

Konfigurieren Sie anpassbare Benachrichtigungspläne mit benutzerdefinierten Attributen, wie unten beschrieben.

Edge

So konfigurieren Sie einen Tarifkartenplan mit benutzerdefinierten Attributen über die Edge-Benutzeroberfläche:

  1. Definieren Sie die benutzerdefinierten Attribute, wenn Sie ein API-Produkt hinzufügen.
  2. Erstellen Sie ein API-Produktbundle, das das Produkt enthält. Siehe API-Produktsets erstellen.
    Fügen Sie in der Richtlinie zur Transaktionsaufzeichnung für das API-Produktpaket die benutzerdefinierten Attribute hinzu, die zum Definieren von Preisplänen verwendet werden. Weitere Informationen finden Sie in der Einführung in diesem Thema sowie unter Richtlinie zur Transaktionsaufzeichnung erstellen.
  3. Erstellen Sie einen Preisplan für das API-Produktpaket und geben Sie einen benutzerdefinierten Bewertungsparameter an.

Weitere Informationen finden Sie unter Anpassbaren Benachrichtigungsplan über die Benutzeroberfläche konfigurieren.

Klassisches Edge (Private Cloud)

So konfigurieren Sie einen Preislistenplan mit benutzerdefinierten Attributen über die Classic Edge-Benutzeroberfläche:

  1. Fügen Sie der Transaktionsaufzeichnungsrichtlinie eines API-Produkts die benutzerdefinierten Attribute hinzu, die zum Definieren von Preisplänen verwendet werden. Weitere Informationen finden Sie in der Einführung in diesem Thema sowie unter Richtlinie zur Transaktionsaufzeichnung erstellen. Wiederholen Sie diesen Vorgang für jedes API-Produkt, das Sie in das API-Paket aufnehmen möchten.
  2. Sobald die API-Produkte und Richtlinien für die Transaktionsaufzeichnung genau wie gewünscht konfiguriert sind, erstellen Sie ein API-Paket, das das Produkt enthält. Siehe API-Pakete erstellen.
  3. Erstellen Sie einen Preisplan für das API-Paket und wählen Sie als Preisplantyp Anpassbare Benachrichtigung mit benutzerdefiniertem Attribut aus.
  4. Klicken Sie auf den Link Details. Daraufhin wird das Fenster „Anpassbare Benachrichtigungen“ geöffnet.

  5. Wählen Sie im Drop-down-Menü Benutzerdefiniertes Attribut ein benutzerdefiniertes Attribut aus. Das Menü enthält benutzerdefinierte Attribute, die für das Produkt in einer Richtlinie zur Transaktionsaufzeichnung erstellt wurden. Die Gesamtzahl der Transaktionen des Entwicklers wird anhand des Werts des ausgewählten benutzerdefinierten Attributs in jeder Transaktion berechnet.
  6. Legen Sie als Aggregationsbasis den Zeitraum fest, über den das Transaktionsvolumen aggregiert wird. Wählen Sie eine Zahl zwischen 1 und 24 Monaten aus. Der Standardwert ist 1 Monat.
  7. Klicken Sie auf Übernehmen und schließen.
  8. Klicken Sie auf Entwurf speichern.
    Veröffentlichen Sie den Plan nur, wenn Sie absolut sicher sind, dass er endgültig ist. Informationen zum Festlegen des Veröffentlichungsdatums und zum Veröffentlichen des Tarifplans finden Sie unter Tarifpakete veröffentlichen.

Weitere Informationen finden Sie unter Anpassbare Details zum Benachrichtigungsplan über die Benutzeroberfläche angeben.

Mit der API Details für einen Preisplan mit benutzerdefinierten Attributen angeben

Führen Sie die folgenden Schritte aus:

  1. Fügen Sie in der Richtlinie zur Transaktionsaufzeichnung eines API-Produkts die benutzerdefinierten Attribute hinzu, die zum Definieren von Tarifpaketen verwendet werden. Weitere Informationen finden Sie in der Einführung in diesem Thema sowie unter Richtlinie zur Transaktionsaufzeichnung erstellen. Führen Sie diesen Schritt für jedes API-Produkt aus, das Sie im API-Paket enthalten möchten.
  2. Sobald die API-Produkte und Richtlinien für die Transaktionsaufzeichnung genau wie gewünscht konfiguriert sind, erstellen Sie ein API-Paket, das das Produkt enthält. Siehe API-Pakete erstellen.

Als Nächstes erstellen Sie mit der API das Preismodell.

Details für einen Preisplan geben Sie mit benutzerdefinierten Attributen an, wenn Sie den Preisplan erstellen. Geben Sie die Details im Attribut ratePlanDetails im Anfragetext in einem Aufruf von /organizations/{org_name}/monetization-packages/{package_id}/rate-plans an. Geben Sie in den Details einen Wert für den Bewertungsparameter an, der den Namen des benutzerdefinierten Attributs angibt. Sie können auch einen Bewertungsparameterwert angeben, der das benutzerdefinierte Attribut über ein bestimmtes Zeitintervall aggregiert.

Eine vollständige Liste der Optionen für die Details des Preisplans finden Sie unter Konfigurationseinstellungen für Preisplandetails.

Im folgenden Beispiel wird beispielsweise eine Preisliste mit einem Plan für benutzerdefinierte Attribute basierend auf einem benutzerdefinierten Attribut namens messageSize erstellt (siehe Elemente in fett).

$ 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

Mit der folgenden Anleitung wird eine anpassbare Benachrichtigung mit einem Preisplan mit benutzerdefiniertem Attribut erstellt, der auf einem benutzerdefinierten Attribut namens messageSize basiert (siehe Punkt fett).

$ 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