Einrichten von verbrauchbaren und nicht verbrauchbaren In-App-Käufen

Wenn Sie Mobil-Apps entwickeln, möchten Sie wahrscheinlich Umsätze mit Ihrer App generieren. Laut dem neuesten Bericht von Sensor Tower gehören konsumierbare und nicht konsumierbare In-App-Käufe zu den am häufigsten verwendeten Monetarisierungsmechanismen – vor allem bei Spielen mit Ad Removal (Werbeunterdrückung). Spiele mit dieser Methode der Monetarisierung machen 90% aller Spiele aus. In diesem Artikel nehmen wir die Funktionen von In-App-Käufen genauer unter die Lupe, was der Unterschied zwischen konsumierbaren und nicht konsumierbaren IAPs ist und wie Sie sie mit Qonversion einrichten.

Bericht zum Stand der Monetarisierung von Mobile Games

Arten von In-App-Käufen

IAPs können auf verschiedene Weise verwendet werden. Zum Beispiel, um Funktionen hinzuzufügen, Werbung zu entfernen oder Spielwährung zu kaufen. Aber welche Art von Kauf sollten Sie für welchen Zweck verwenden? 
Es gibt zwei Arten von In-App-Käufen, die für iOS- und Android-Mobil-Apps verwendet werden können:

  • Nicht verbrauchbare Gegenstände. Die Idee ist, dass sie nur einmal gekauft werden können. Sie sind dauerhaft mit dem Account des Benutzers im Shop verbunden. Beispiele dafür sind der Kauf von Levels, Rennstrecken und zusätzlichen Funktionen der App und – ja – die Entfernung von Werbung.
  • Verbrauchsartikel können mehrmals gekauft werden. Sie können während der Laufzeit der Anwendung aufgebraucht werden. Beispiele dafür sind die Spielwährung und Extras.

Unterschiede zwischen Google und Apple In-App-Käufen

Google macht bei der Erstellung eines Produkts keinen Unterschied zwischen nicht verbrauchbaren und verbrauchbaren In-App-Käufen. Apple verlangt jedoch von den Entwicklern, dass sie die Art des In-App-Kaufs in App Store Connect angeben:

Wie Sie verbrauchbare und nicht verbrauchbare In-App-Käufe einrichten

Nehmen wir an, wir entwickeln ein Rennspiel für iOS und Android. Unsere App ermöglicht es den Nutzern, Premium-Rennstrecken freizuschalten (nicht verbrauchbarer Gegenstand, sobald eine Strecke gekauft wurde, hat der Nutzer für immer Zugang zu ihr) und zusätzliche Gesundheit für ein Auto zu kaufen (verbrauchbarer Gegenstand, der Nutzer sollte jedes Mal, wenn er sie braucht, Gesundheit kaufen können). Qonversion ermöglicht die Handhabung aller Arten von In-App-Käufen, einschließlich nicht abonnierter Produkte.

Das folgende Beispiel beschreibt den Prozess der Integration von In-App-Käufen in Mobil-Apps mit Qonversion. 

Bevor wir mit der Erstellung von verbrauchbaren und nicht verbrauchbaren Einkäufen beginnen, stellen Sie sicher, dass Sie bereits einen Account bei Qonversion haben und Ihr Projekt erstellt und die App registriert haben.

Vorbereitung

  1. Angenommen, wir haben bereits In-App-Käufe in Google Play Console und App Store Connect mit den folgenden IDs gespeichert: android_premium_track, android_extra_health und ios_premium_track, ios_extra_health. Lassen Sie uns Produkte im Qonversion Dashboard erstellen:

2. Danach sollten wir eine Berechtigung erstellen und sie mit dem Produkt premium_track verknüpfen. Die Premium-Berechtigung schaltet den Zugriff auf den Track nach dessen Kauf frei.

3. Für das Produkt extra_health müssen wir keine Berechtigung erstellen. Lassen Sie uns außerdem ein Angebot erstellen, um die eingestellten Produkte aus der Ferne ändern zu können, ohne App-Updates zu veröffentlichen. Verknüpfen Sie die erstellten Produkte mit dem Angebot:

Wie man einen lebenslangen Zugang mit nicht verbrauchbaren In-App-Käufen anbietet

Produkte anzeigen

Zeigen Sie dem Benutzer Produkte zum Verkauf an:

iOS:

Qonversion.offerings { (offerings, error) in
  if (error != nil) {
    // Handle the error here
  }
  let offering = offerings?.offering(forIdentifier: "standard_offering")
  if let product = offering?.product(forIdentifier: "premium_track") {
    // Display the product for sale
  }
}

Android:

Qonversion.offerings(object : QonversionOfferingsCallback {
    override fun onSuccess(offerings: QOfferings) {
        val offering = offerings.offeringForID("standard_offering")
        offering?.productForID("premium_track")?.let { product ->
            // Display the product for sale
        }

    }

    override fun onError(error: QonversionError) {
        // Handle the error here
    }
}

Einkäufe tätigen

Wenn der Benutzer bereit ist, das Produkt zu kaufen, starten man den Kaufvorgang mit der folgenden Methode:

iOS:

Qonversion.purchaseProduct(product) { (permissions, error, isCancelled) in
  if let premium: Qonversion.Permission = permissions["premium"], premium.isActive {
    // Successful purchase
    // Unlock premium content
  }
}

Android:

Qonversion.purchase(context, product, callback = object: QonversionPermissionsCallback {
    override fun onSuccess(permissions: Map<String, QPermission>) {
        val premiumPermission = permissions["premium"]
        if (premiumPermission != null && premiumPermission.isActive()) {
            // Successful purchase
            // Unlock premium content
        }
    }

    override fun onError(error: QonversionError) {
        // Handle the error here
    }
})

Jedes Mal, wenn Sie wissen möchten, ob der Benutzer Zugriff auf den Premium-Inhalt hat, sollten Sie die Methode checkPermissions() aufrufen. Sobald das Produkt erfolgreich gekauft wurde und die Berechtigung aktiv geworden ist, sollten Sie dem Benutzer nicht erlauben, das Produkt erneut zu kaufen: Der Benutzer hat von nun an lebenslangen Zugriff.

Bieten Sie einen Zugang mit verbrauchbaren In-App-Käufen

Produkte anzeigen

Zeigen Sie dem Benutzer Produkte zum Verkauf an:

iOS:

Qonversion.offerings { (offerings, error) in
  if (error != nil) {
    // Handle the error here
  }
  let offering = offerings?.offering(forIdentifier: "standard_offering")
  if let product = offering?.product(forIdentifier: "extra_health") {
    // Display the product for sale
  }
}

Android:

Qonversion.offerings(object: QonversionOfferingsCallback {
   override fun onSuccess(offerings: QOfferings) {
       val offering = offerings.offeringForID("standard_offering")
       offering?.productForID("extra_health")?.let { product-&gt;
           // Display the product for sale
       }
      
   }
   override fun onError(error: QonversionError) {
       // Handle the error here
   }
})

Einkäufe tätigen

Wenn der Benutzer bereit ist, das Produkt zu kaufen, startet man einen Kaufvorgang mit der folgenden Methode:

iOS:

Qonversion.purchaseProduct(product) { (permissions, error, isCancelled) in
      if(!error){
         // Successful purchase
         // Unlock premium content
      }
}

Android:

Qonversion.purchase(context, product, callback = object : QonversionPermissionsCallback {
    override fun onSuccess(permissions: Map<String, QPermission>) {
        // Successful purchase
        // Unlock content
    }

    override fun onError(error: QonversionError) {
        // Handle the error here
    }
})

Um Inhalte freizuschalten, müssen Sie keine Berechtigungen prüfen. Stattdessen sollten Sie sich auf ein erfolgreiches Ergebnis verlassen, d.h. wenn kein Fehler auftritt. Hinweis: Die App muss sich den Status des gekauften Produkts merken, d.h. wie viele Einheiten gekauft wurden, und den Zugriff entsprechend freischalten. Wenn der Benutzer z.B. 50 Einheiten extra_health gekauft und dann 20 verbraucht hat, sollten Sie dies einkalkulieren und in Ihrer App den aktuellen Status von 30 Gesundheitseinheiten anzeigen. Es sind also nur noch 30 Einheiten übrig, die der Benutzer kaufen kann.

Fazit

In diesem Artikel haben wir uns genauer angesehen, wie Sie verbrauchbare und nicht verbrauchbare Einkäufe einrichten. Wie Sie sehen können, ist der Prozess ziemlich einfach. Sobald Sie In-App-Käufe implementiert haben, sollten Sie nicht vergessen, mit Hilfe von Analysetools zu messen, wie viel Umsatz jedes Ihrer Produkte einbringt. Wenn Sie mehr darüber erfahren möchten, wie Sie In-App-Käufe und Abonnements einrichten und analysieren können, lesen Sie bitte unsere Dokumentation oder schreiben Sie mir in unserem Slack-Kanal.