Automatisch erneuerbare Abonnementstufen in der iOS-App

Bild


Hallo, das ist Renat von Apphud . In diesem Artikel erfahren Sie, wie hoch die Anzahl der automatisch erneuerbaren Abonnements ist, wie sie richtig konfiguriert werden und in welchen Fällen dem Benutzer eine Rückerstattung für einen nicht genutzten bezahlten Zeitraum gewährt wird.


Was ist der Abonnement-Level?


Dies ist die Bezeichnung der Abonnementklasse, abhängig von der angebotenen Servicestufe. Das Abonnement der ersten Klasse bedeutet das höchste Serviceniveau, das Abonnement der zweiten Klasse - das niedrigere und so weiter. In der Tat, selten in welcher Anwendung finden Sie zwei Ebenen von Abonnements, ganz zu schweigen von drei oder mehr.



Zwei Abonnementstufen in der New York Times App.


Wie richte ich ein Abonnement ein?


Um Ihre Abonnementstufen zu konfigurieren, rufen Sie den App Store Connect auf , wählen Sie Ihre Anwendung aus und klicken Sie auf die Registerkarte Funktionen . Verschieben Sie Ihr Abonnement im Bereich In-App-Käufe eine Ebene nach oben oder unten. Wählen Sie dazu das gewünschte Abonnement aus, indem Sie das Drag & Drop-Symbol gedrückt halten und das Abonnement auf die gewünschte Ebene verschieben.



Ziehen Sie ein Abonnement auf eine höhere Ebene und legen Sie es dort ab.


Abonnement Nummer 1 sollte das höchste Serviceniveau bieten, z. B. Abonnement für alle Kategorien von Zeitschriften. Es besteht keine Abhängigkeit zwischen der Laufzeit des Abonnements und seiner Höhe. Das höchste Abonnement kann also ein Jahresabonnement sein und ein Abonnement auf einer Ebene, die unter einem Monat liegt.


Abo ändern


Der Benutzer kann das Abonnement in der App Store-Anwendung nach seiner Registrierung ändern. Es kann ein Level erhöhen (Upgrade), senken (Downgrade) oder ein Abonnement innerhalb eines Levels ändern (Cross-Grade).


Abo-Upgrade (Upgrade)


Wenn das aktuelle Abonnement des Benutzers aktiv ist, wechselt er sofort zu einem neuen Tarif, und der nicht verwendete Teil des bezahlten Zeitraums wird auf die Karte zurückgeschickt.



Benachrichtigung, dass ein Teil des Geldes beim Upgrade des Abonnements zurückerstattet wird.


Am Ende des Artikels werden wir uns ansehen, wie wir die Erhöhung des Abonnement-Levels erfassen und die Höhe der Rendite berechnen können.


Abo-Downgrade (Downgrade)


Durch Verringern des Levels wechselt der Benutzer am Ende der aktuellen bezahlten Periode zu einem neuen. Gelder werden nicht zurückerstattet und die Kosten eines neuen Abonnements werden bei Aktivierung abgebucht.


Abonnementwechsel auf gleichem Niveau (gradeübergreifend)


Dies ist eine häufige Situation, die in zwei Arten unterteilt ist: eine Abonnementänderung von einer Dauer und eine andere. Wenn Sie ein Abonnement mit einer anderen Laufzeit ändern, geschieht dasselbe wie bei einem Downgrade: Das Abonnement wird am Ende des aktuellen bezahlten Zeitraums angewendet.


Wenn die Dauer übereinstimmt, wird das aktuelle Abonnement gekündigt und ein neues Abonnement wird sofort gestartet. Das Geld wird für das neue Abonnement abgebucht, und der nicht verwendete Teil des alten Abonnements wird an den Benutzer zurückgegeben.


Wie erfahre ich, wie ich das Abonnement auf dem Server ändere?


Sie können die App Store-Überprüfung validieren oder Apple Server-Benachrichtigungen abhören .


Während Sie jede neue Transaktion überprüfen, müssen Sie nachsehen, ob sich product_id geändert hat. Das Ändern von product_id bedeutet, dass der Benutzer sein Abonnement in den App Store-Einstellungen geändert hat.


Darüber hinaus können Sie den Wert von auto_renew_product_id in pending_renewal_info . Sie erhalten Informationen zu einer Änderung an product_id, bevor ein neues Abonnement wirksam wird.


Wenn Sie Serverbenachrichtigungen konfiguriert haben, lauschen Sie der DID_CHANGE_RENEWAL_PREF- Benachrichtigung, die aufgerufen wird, wenn ein Produkt geändert wird . Sie können sich auf diese Benachrichtigung beschränken und die neue product_id aus den Anforderungsparametern abrufen oder die App Store-Quittung erneut überprüfen. Im letzteren Fall dienen Apple Server-Benachrichtigungen nur als Auslöser für eine außerplanmäßige Überprüfung.


Wie berechnet man die Rendite für Upgrades?


Um zu verstehen, ob ein Upgrade durchgeführt wurde, müssen Sie den Wert des is_upgraded überprüfen. Der Wert true bedeutet, dass die nächste Transaktion bereits im neuen Abonnement enthalten ist.


Beachten Sie, dass is_upgraded auch dann is_upgraded ist, wenn Sie ein Abonnement mit derselben Dauer innerhalb derselben Stufe ändern. Das heißt, is_upgraded = true bedeutet keine is_upgraded = true , sondern die Tatsache, dass eine Abonnementänderung mit einer Rückerstattung vorgenommen wurde.


Zusätzlich zum Feld is_upgraded wird in dieser Transaktion das Feld is_upgraded angezeigt, das den Zeitpunkt der Stornierung angibt. Sie entspricht dem Startdatum der nächsten Transaktion oder stimmt fast mit diesem überein.


Es stellt sich heraus, dass das Feld cancel_date nicht nur bei der Rückgabe des Abonnements angezeigt wird , sondern auch beim Upgrade.


Beachten Sie, dass beim Upgrade von Sandbox-Abonnements das Feld cancel_date fehlt . Daher müssen Sie beim Testen in Sandbox das purchase_date nächsten Transaktion anstelle des cancellation_date . Weitere Informationen zum Kündigungsdatum finden Sie in der Apple-Dokumentation .


Um den Betrag zu berechnen, der an den Benutzer zurückgegeben werden soll, müssen Sie den nicht verwendeten Zeitraum durch den vollen Zeitraum des vorherigen Abonnements dividieren und mit dessen Kosten multiplizieren:


 # upgrade_date is `cancellation_date` in prodiction or `purchase_date` of new transaction in sandbox # to_f converts date to float timestamp value prorate_amount = price * (upgrade_date.to_f - cancellation_date.to_f) / (expires_date.to_f - purchase_date.to_f) 

Wie ist dies in Apphud implementiert?


Apphud verfolgt automatisch Änderungen in Abonnements und berechnet die Rückgabe nicht verwendeter Teile.



Ein Beispiel für eine Zeichnungsänderung auf gleicher Höhe mit der Rückgabe eines Teils der Fonds in Apphud.


Ein iOS-Entwickler muss diese Situationen nicht selbst behandeln. Sie müssen nur das SDK integrieren, der Rest wird von Apphud erledigt.


Fazit


Es stellt sich heraus, dass product_id nicht ausreicht, nur den Wert von product_id aktualisieren: Sie müssen auch die Rückerstattung für Upgrades in Betracht ziehen. Für die Arbeit mit Abonnements sind viele Grenzsituationen erforderlich. Wir machen Apphud - ein Service, der die Arbeit mit Abonnements erheblich vereinfacht. Sie können es kostenlos nutzen. Anmeldung - unter diesem Link .

Source: https://habr.com/ru/post/de475758/


All Articles