none
Wie kann ich kostenpflichtige Levels in einem Spiel zum Kauf anbieten? RRS feed

  • Frage

  • Ich entwickle ein Spiel mit Visual Studio Community das unter anderem auch für iPhone/iPad erscheinen soll. Jedoch bin ich mir nicht sicher wie ich am besten einen Trial Modus mit weniger Umfang integrieren kann in dem der Benutzer nur Zugriff auf einen Teil der Levels hat. Wenn der Benutzer alle Levels spielen möchte muss er das Spiel kaufen. Außerdem werde ich auch neue Levels erstellen und im Spiel durch Updates hinzufügen nachdem das Spiel bereits im Apple App Store erschienen ist.

    Wie geht man da am besten vor? Soll man alle kostenpflichtigen Levels durch einen Kauf von Nicht-Verbrauchsartikeln (Non-Consumable in-app purchase) hinzufügen?

    Beispiel: Der Benutzer kauft einmal den Nicht-Verbrauchsartikel "Alle Levels freischalten" für 2,99 Euro. Dadurch hat der Benutzer Zugriff auf alle bereits verfügbaren Levels und alle zukünftigen Levels haben die irgendwann von mir in der App per Update veröffentlicht werden. Nur Benutzer die den Nicht-Verbrauchsartikel "Alle Levels freischalten" für 2,99 Euro kaufen können auch die neuen Levels spielen die erst zu einem späteren Zeitpunkt veröffentlicht werden.

    https://docs.microsoft.com/de-de/xamarin/ios/platform/in-app-purchasing/purchasing-non-consumable-products

    Ich habe folgenden Artikel gelesen, jedoch bin ich mir nicht sicher ob das in meinem Fall die beste Lösung ist. Gibt es auch noch eine andere(bessere?) Möglichkeit kostenpflichtige Levels in einer App zum Kauf anzubieten?

    Montag, 2. Juli 2018 15:14

Antworten

  • Ein kauf kann auch storniert werden deswegen wäre so ein vorgehen nicht wirklich praktikabel. 

    Meine letzte iOS App ist schon etwas her. So wie ich das in Erinnerung habe speichert der StoreKit die zustände. Bei start der App fragt man die zustände je ProduktId bei StoreKit ab. Ich denke das der StoreKit auf dem Gerät des Users läuft, somit ist es egal ober eine Internetverbindung da ist oder nicht. Ganz genau kann ich es dir aber leider nicht sagen. Du müsstest es entweder testen oder in einem anderen Forum fragen. In der Doku finde ich leider auch keine klare aussage dazu. In der Doku ist nur die rede davon das der StoreKit nicht immer den aktuellen zustand kennt. Sollte dann durch den User ein erneuter kauf getätigt werden, merkt der App Store das der Artikel schon gekauft wurde und aktualisiert nur den StoreKit. Der User muss also nicht 2 mal zahlen. 

    Beim Win Store ist es so das man bei jedem start der App je ProduktId den zustand anfragt, sollte mal keine Internetverbindung vorhanden sein, wird der interne Speicher gefragt. Du brauchst dich also nicht explizit darum kümmern. 


    Gruß Thomas
    13 Millionen Schweine landen jährlich im Müll
    Dev Apps von mir: UWP Segoe MDL2 Assets, UI Strings


    Dienstag, 3. Juli 2018 16:55

Alle Antworten

  • Hallo,

    die Nicht-Verbrauchsartikel sind für deine Anforderungen doch gut geeignet und decken deine Bedürfnisse ab. Was soll den noch besser werden?

    Beim start der App fragst Du den Store ob der User diesen Artikel gekauft hat, ist das der Fall, schaltest Du die zusätzlichen Level frei.


    Gruß Thomas
    13 Millionen Schweine landen jährlich im Müll
    Dev Apps von mir: UWP Segoe MDL2 Assets, UI Strings

    Montag, 2. Juli 2018 17:13
  • Muss ich bei jedem Neustart der App den Store fragen ob der Artikel gekauft wurde oder muss man den Store nur so lange abfragen bis der Artikel einmal gekauft wurde?

    Ich weiss nämlich nicht ob ich das Ergebnis(true oder false) dieser Abfrage auf dem Gerät(iPhone/iPad) des Benutzers abspeichern soll. Wenn das Ergebnis der Abfrage einmal true ist(der Benutzer hat den Artikel gekauft) dann bräuchte ich beim nächsten Neustart der App den Store ja nicht mehr zu fragen da das Ergebnis von nun an immer true sein wird, oder liege ich da falsch?

    Noch eine weitere Frage. Wenn der Benutzer nicht immer über eine Internetverbindung verfügt kann der Store ja nicht abgefragt werden, in diesem Fall wäre es ja sicher sinnvoll das Ergebnis aus einer abgespeicherten Datei auf dem Gerät des Benutzers auslesen zu können, sonst weiss ich ja nicht ob er den Artikel bereits gekauft hat oder nicht. Oder gibt es noch eine andere Möglichkeit um herauszufinden ob ein Artikel bereits gekauft wurde wenn keine Internetverbindung besteht?

    Montag, 2. Juli 2018 23:15
  • Ein kauf kann auch storniert werden deswegen wäre so ein vorgehen nicht wirklich praktikabel. 

    Meine letzte iOS App ist schon etwas her. So wie ich das in Erinnerung habe speichert der StoreKit die zustände. Bei start der App fragt man die zustände je ProduktId bei StoreKit ab. Ich denke das der StoreKit auf dem Gerät des Users läuft, somit ist es egal ober eine Internetverbindung da ist oder nicht. Ganz genau kann ich es dir aber leider nicht sagen. Du müsstest es entweder testen oder in einem anderen Forum fragen. In der Doku finde ich leider auch keine klare aussage dazu. In der Doku ist nur die rede davon das der StoreKit nicht immer den aktuellen zustand kennt. Sollte dann durch den User ein erneuter kauf getätigt werden, merkt der App Store das der Artikel schon gekauft wurde und aktualisiert nur den StoreKit. Der User muss also nicht 2 mal zahlen. 

    Beim Win Store ist es so das man bei jedem start der App je ProduktId den zustand anfragt, sollte mal keine Internetverbindung vorhanden sein, wird der interne Speicher gefragt. Du brauchst dich also nicht explizit darum kümmern. 


    Gruß Thomas
    13 Millionen Schweine landen jährlich im Müll
    Dev Apps von mir: UWP Segoe MDL2 Assets, UI Strings


    Dienstag, 3. Juli 2018 16:55
  • Danke. Dass der Zustand der ProduktID auch im internen Speicher des Geräts gespeichert ist wusste ich nicht. Wenn das bei iOS auch so ist dann brauche ich ja nur bei jedem Start der App StoreKit zu fragen. Ich dachte schon es würde nicht ohne Internetverbindung funktionieren oder ich müsste den Zustand der ProduktID selbst irgendwo auf dem Gerät abspeichern.
    Dienstag, 3. Juli 2018 22:12