Preisplan mit benutzerdefinierten Attributen konfigurieren

Sie lesen gerade die Dokumentation zu Apigee Edge.
Zur Dokumentation zu Apigee X.
info

Einführung

In einigen Fällen müssen Transaktionszähler auf einer Variablen oder einem benutzerdefinierten Wert basieren. Beispielsweise müssen Sie möglicherweise:

  • 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 Gebühren basierend auf der Anzahl der Byte in Rechnung stellen, die in der API-Anfrage übertragen werden.
  • Mehrere API-Aufrufe in einer einzelnen Transaktion zusammenfassen.

Mit Tarifpaketen mit benutzerdefinierten Attributen können Sie einen Wert in der Nachricht eines API Aufrufs identifizieren, der als Zähler dient und zur Berechnung von Transaktionsanzahlen und Gebühren verwendet wird.

Die folgenden Tarifpakete mit benutzerdefinierten Attributen werden unterstützt:

  • Tarifkarte mit benutzerdefiniertem Attribut
  • Anpassbare Benachrichtigung mit benutzerdefiniertem Attribut

Sie können maximal zehn benutzerdefinierte Attribute pro Tarifpaket festlegen.

Berechnungen für benutzerdefinierte Attribute

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

Abrechnungsmodell Berechnung für benutzerdefinierte Attribute
Pauschalpreis und volumenabhängige Preisstaffelung

custom attribute number * rate = charge to developer

Bei einem Pauschalpreis wird die Anzahl des benutzerdefinierten Attributs zur Anzahl der Transaktionen, die mit dem Preis multipliziert werden. Bei der volumenabhängigen Preisstaffelung wird die Anzahl der Transaktionen in einem Band um die Anzahl des benutzerdefinierten Attributs erhöht und dem Entwickler für diese Anzahl von Transaktionen eine Gebühr in Rechnung gestellt. Wenn beispielsweise der Wert eines benutzerdefinierten Attributs in der Nachricht 10 ist, wird dem Entwickler eine Gebühr für 10 Transaktionen in Rechnung gestellt und der Anzahl des aktuellen Bands werden 10 Transaktionen hinzugefügt. Wenn der Entwickler nur noch 6 Transaktionen im aktuellen Band hat, wird 6 mit dem Preis für dieses Band multipliziert. Die restlichen 4 Transaktionen werden dem nächsten Band zugewiesen und mit dem Preis dieses Bands multipliziert.

Wenn bei einem volumenabhängigen Tarifpaket das letzte Volumenband ein Limit hat (nicht "unbegrenzt" ist) und eine Transaktion dieses Limit überschreitet, passieren zwei Dinge:

Sets

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

custom attribute number = amount added to bundle count

Wenn beispielsweise die Anzahl des benutzerdefinierten Attributs in der Nachricht 10 ist, wird der Anzahl der im Set verwendeten Transaktionen 10 hinzugefügt. Wenn der Entwickler nur noch 6 Transaktionen im aktuellen Set hat, wird dieses Set gefüllt und die Anzahl des nächsten Sets wird um 4 erhöht. Der Preis für dieses nächste Set wird gegebenenfalls in Rechnung gestellt.

Wenn das letzte Set ein Limit hat (nicht „unbegrenzt“ ist) und eine Transaktion dieses Limit überschreitet, passieren zwei Dinge:

Anpassbare Benachrichtigungen

Bei anpassbaren Benachrichtigungen erfolgt die folgende Berechnung:

custom attribute number = amount added to transaction count

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

Woher das Tarifpaket den Wert des benutzerdefinierten Attributs erhält

Die Richtlinie zur Transaktionserfassung (für das API-Produktset) gibt der Monetarisierung an, wo in der Nachricht nach dem Attributwert des benutzerdefinierten Attributs gesucht werden soll. Sie definieren das benutzerdefinierte Attribut im Bereich „Benutzerdefinierte Attribute“ der Richtlinie zur Transaktionserfassung für das API-Produktset.

Anschließend können Sie dieses benutzerdefinierte Attribut im Tarifpaket auswählen, nachdem Sie ein API Produktset erstellt haben, das die Richtlinie zur Transaktionserfassung mit dem benutzerdefinierten Attribut enthält.

Hier ist der allgemeine Ablauf:

  1. Definieren Sie die benutzerdefinierten Attribute, wenn Sie ein API-Produkt hinzufügen.
  2. Erstellen Sie ein API-Produktset, das das Produkt enthält.
    Fügen Sie in der Richtlinie zur Transaktionserfassung für das API-Produktset die benutzerdefinierten Attribute hinzu, die zum Definieren von Tarifpaketen verwendet werden.
  3. Erstellen Sie ein Tarifpaket vom Typ „Tarifkarte“ oder „Anpassbare Benachrichtigung“ für das API-Produktset und geben Sie einen benutzerdefinierten Abrechnungsparameter an.

Die folgende Abbildung zeigt die Beziehung zwischen dem in der Richtlinie zur Transaktionserfassung definierten benutzerdefinierten Attribut und der Konfiguration des Tarifkartenplans. Die Beziehung für das Tarifpaket „Anpassbare Benachrichtigung mit benutzerdefiniertem Attribut“ ist ähnlich, der Wert für die volumenabhängige Preisstaffelung ist jedoch nicht anwendbar.

So generieren Sie den Attributwert des benutzerdefinierten Attributs in der Nachricht

Die Richtlinie zur Transaktionserfassung kann an verschiedenen Stellen nach dem Attributwert des benutzerdefinierten Attributs suchen, z. B. im Antwortheader, im Antworttext oder in den vordefinierten Ablaufvariablen in der Antwort. (Die Anfrage ist nicht verfügbar, da eine Transaktion erst offiziell ist, wenn Sie eine erfolgreiche Antwort erhalten.) Im Folgenden finden Sie Beispiele, wie Sie der Nachricht einen Antwortheader mit seinem numerischen Wert hinzufügen. In beiden Fällen verwenden wir die Richtlinie „Assign Message“ in Verbindung mit Variablen.

Antwortheader die Größe der Anfragenutzlast hinzufügen

In jeder Nachrichtenanfragen gibt es eine client.received.content.length Variable, die die Anzahl der Byte in der Anfragenutzlast enthält. Wenn wir dem Proxy-Endpunkt eine Richtlinie „Assign Message“ anhängen, 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>

Header den Attributwert eines benutzerdefinierten Attributs der App hinzufügen

Auf ähnliche Weise können wir einen Header mit dem Wert eines benutzerdefinierten Attributs für eine App generieren. Wenn Sie beispielsweise jeder Entwickler App ein benutzerdefiniertes Attribut namens apprating hinzufügen, sieht das so aus:

Bei Verwendung der Richtlinie „Verify API Key“ (die für die Monetarisierung erforderlich ist) wird dieser Wert in einer Variablen namens verifyapikey.{policy_name}.apprating gespeichert. Mit der Richtlinie „Assign Message“, die an die Antwort des Proxy-Endpunkts angehängt ist, können Sie einen Header namens apprating generieren, der den Wert apprating der App 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>

Tarifpaket einrichten

Abgesehen von der oben beschriebenen Einrichtung des benutzerdefinierten Attributs wird das Tarifpaket auf dieselbe Weise eingerichtet wie normalerweise (für Tarifpakete ohne benutzerdefinierte Attribute), muss jedoch die folgenden Anforderungen erfüllen.

Tarifkartenplan mit benutzerdefiniertem Attribut über die Benutzeroberfläche konfigurieren

Konfigurieren Sie Tarifkartenplä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-Produktset, das das Produkt enthält. Weitere Informationen finden Sie unter API-Produktsets erstellen.
    Fügen Sie in der Richtlinie zur Transaktionserfassung für das API-Produktset 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 Transaktionserfassung erstellen.
  3. Erstellen Sie ein Tarifpaket für das API-Produktset und geben Sie einen benutzerdefinierten Abrechnungsparameter an.

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

Klassische Edge-Benutzeroberfläche (Private Cloud)

So erstellen Sie einen Tarifkartenplan mit benutzerdefiniertem Attribut über die klassische Edge-Benutzeroberfläche:

  1. Fügen Sie in der Richtlinie zur Transaktionserfassung 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 Transaktionserfassung erstellen. Führen Sie diesen Schritt für jedes API-Produkt aus, das Sie in das API-Paket aufnehmen möchten.
  2. Nachdem die API-Produkte und Richtlinien zur Transaktionserfassung genau so konfiguriert sind, wie Sie sie haben möchten, erstellen Sie ein API-Paket, das das Produkt enthält. Weitere Informationen finden Sie unter API-Pakete erstellen.
  3. Erstellen Sie ein Tarifpaket für das API-Paket und wählen Sie den Tarifpakettyp Tarifkarte mit benutzerdefiniertem Attribut aus.
  4. Klicken Sie auf den Link Tarifkarte. Dadurch wird das Fenster „Tarifkarte“ 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 Transaktionserfassung erstellt wurden. Dem Entwickler wird basierend auf dem Wert des ausgewählten benutzerdefinierten Attributs innerhalb jeder Transaktion eine Gebühr in Rechnung gestellt.
    (Attributwert * Preis = Gebühr für Entwickler)
  6. Optional können Sie ein Freemium-Tarifpaket einrichten, wie unter Details zum Tarifkartenplan angeben beschrieben.
  7. Richten Sie ein Abrechnungsmodell ein, wie unter Details zum Tarifkartenplan angeben beschrieben. Beachten Sie jedoch, dass das Abrechnungsmodell für den Tarifpakettyp „Tarifkarte 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 Byte, die in jeder Transaktion übertragen werden (nicht ein fester Preis für jede Transaktion). Weitere Informationen finden Sie unter Berechnungen.
  8. Klicken Sie auf Speichern Entwurf.
    Veröffentlichen Sie das Tarifpaket erst, wenn Sie sich absolut sicher sind, dass es endgültig ist. Informationen zum Festlegen des Veröffentlichungsdatums und zum Veröffentlichen des Tarifpakets finden Sie unter Tarifpakete veröffentlichen.

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

Anpassbaren Benachrichtigungsplan mit benutzerdefinierten Attributen über die Benutzeroberfläche 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-Produktset, das das Produkt enthält. Weitere Informationen finden Sie unter API-Produktsets erstellen.
    Fügen Sie in der Richtlinie zur Transaktionserfassung für das API-Produktset 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 Transaktionserfassung erstellen.
  3. Erstellen Sie ein Tarifpaket für das API-Produktset und geben Sie einen benutzerdefinierten Abrechnungsparameter an.

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

Klassische Edge-Benutzeroberfläche (Private Cloud)

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

  1. Fügen Sie in der Richtlinie zur Transaktionserfassung 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 Transaktionserfassung erstellen. Führen Sie diesen Schritt für jedes API-Produkt aus, das Sie in das API-Paket aufnehmen möchten.
  2. Nachdem die API-Produkte und Richtlinien zur Transaktionserfassung genau so konfiguriert sind, wie Sie sie haben möchten, erstellen Sie ein API-Paket, das das Produkt enthält. Weitere Informationen finden Sie unter API-Pakete erstellen.
  3. Erstellen Sie ein Tarifpaket für das API-Paket und wählen Sie den Tarifpakettyp Anpassbare Benachrichtigung mit benutzerdefiniertem Attribut aus.
  4. Klicken Sie auf den Link Details. Dadurch wird das Fenster „Anpassbare Benachrichtigung“ 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 Transaktionserfassung erstellt wurden. Die Gesamtzahl der Transaktionen des Entwicklers wird anhand des Werts des ausgewählten benutzerdefinierten Attributs innerhalb jeder Transaktion berechnet.
  6. Legen Sie für Aggregation Basis 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 Anwenden und schließen.
  8. Klicken Sie auf Speichern Entwurf.
    Veröffentlichen Sie das Tarifpaket erst, wenn Sie sich absolut sicher sind, dass es endgültig ist. Informationen zum Festlegen des Veröffentlichungsdatums und zum Veröffentlichen des Tarifpakets finden Sie unter Tarifpakete veröffentlichen.

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

Details für ein Tarifpaket mit benutzerdefinierten Attributen über die API angeben

Führen Sie die folgenden Schritte aus:

  1. Fügen Sie in der Richtlinie zur Transaktionserfassung 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 Transaktionserfassung erstellen. Führen Sie diesen Schritt für jedes API-Produkt aus, das Sie in das API-Paket aufnehmen möchten.
  2. Nachdem die API-Produkte und Richtlinien zur Transaktionserfassung genau so konfiguriert sind, wie Sie sie haben möchten, erstellen Sie ein API-Paket, das das Produkt enthält. Weitere Informationen finden Sie unter API-Pakete erstellen.

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

Sie geben Details für ein Tarifpaket mit benutzerdefinierten Attributen an, wenn Sie das Tarifpaket erstellen. Sie geben die Details in der ratePlanDetails Eigenschaft im Anfragetext in einem Aufruf an /organizations/{org_name}/monetization-packages/{package_id}/rate-plans an. In den Details geben Sie einen Parameterwert an, der den Namen des benutzerdefinierten Attributs identifiziert. Sie können auch einen Parameterwert für die Bewertung angeben, der das benutzerdefinierte Attribut über ein bestimmtes Zeitintervall aggregiert.

Eine vollständige Liste der Optionen für Tarifpaketdetails finden Sie unter Konfigurationseinstellungen für Tarifpaketdetails.

Im folgenden Beispiel wird ein Tarifkartenplan mit benutzerdefiniertem Attribut basierend auf einem benutzerdefinierten Attribut namens messageSize erstellt (siehe fett gedruckte Elemente).

$ 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

Im folgenden Beispiel wird ein Tarifpaket „Anpassbare Benachrichtigung mit benutzerdefiniertem Attribut“ basierend auf einem benutzerdefinierten Attribut namens messageSize erstellt (siehe fett gedrucktes Element).

$ 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