Wszystkie artykuły
Deep dive9 min czytania

Każdy zwrot przy podwyższeniu subskrypcji to decyzja sklepu, nie Twoja, i schodzi wprost z Twoich przychodów

Gdy klient przechodzi na wyższy poziom, sklep wystawia zwrot przy podwyższeniu subskrypcji za niewykorzystane dni starego planu, co automatycznie obniża Twoje przychody. Oto jak działają zwroty przy podwyższeniu w App Store i Google Play oraz dlaczego Apple nie przekazuje tej kwoty na Twój serwer.

Mosiężna dźwignia przesunięta w górę na wyższe ustawienie, podczas gdy monety zsuwają się z krawędzi biurka w cień, jako ilustracja zwrotu przy podwyższeniu subskrypcji opuszczającego Twoje przychody

Najważniejsze wnioski

  • Zwrot przy podwyższeniu subskrypcji jest automatyczny. Gdy klient w środku cyklu przechodzi na wyższy poziom, sklep uznaje lub zwraca niewykorzystane dni starego planu bez pytania Ciebie, a pieniądze schodzą z przychodów, które już zaksięgowałeś.
  • W App Store podwyższenie działa natychmiast, a Apple zwraca proporcjonalną kwotę pierwotnej subskrypcji. Obniżenie czeka do następnej daty odnowienia i nie zwraca nic.
  • Apple nie wysyła kwoty zwrotu przy podwyższeniu na Twój serwer. Podwyższona transakcja jest oznaczona flagą isUpgraded, ale pole ceny wciąż pokazuje pełną cenę nowego poziomu, więc przychód, który liczysz z App Store Server Notifications, wychodzi zawyżony.
  • Raporty finansowe w App Store Connect to jedyne miejsce, gdzie proporcjonalny zwrot przy podwyższeniu jest ujęty. Pracownicy Apple mówią, że kwota nie jest dostępna przez App Store Server API, Notifications ani StoreKit.
  • Google Play przy podwyższeniu nie zwraca pieniędzy na kartę. Uznaje niewykorzystany czas albo pobiera różnicę w cenie, a które z tych dwóch nastąpi, zależy od trybu zastąpienia, który ustawisz. Domyślny to WITH_TIME_PRORATION.
  • Zwrot przy podwyższeniu to nie wniosek klienta o zwrot. Nie ma tu CONSUMPTION_REQUEST ani przeglądu obciążenia zwrotnego, więc nie ma okna 12 godzin ani 24 godzin i nie ma czego kwestionować. Uzgadniasz go, nie walczysz z nim.
  • Tryb zastąpienia to decyzja o przychodach. WITH_TIME_PRORATION daje klientowi dodatkowy opłacony czas, który dostarczasz po koszcie wyższego poziomu, podczas gdy CHARGE_PRORATED_PRICE nalicza różnicę od razu, więc zły tryb domyślny wypuszcza marżę, jedno podwyższenie po drugim.

Klient dotyka podwyższenia, przechodzi z Twojego poziomu za pięć dolarów na poziom za dziesięć dolarów, a Ty księgujesz większą sprzedaż. Sklep w tej samej chwili robi coś jeszcze, a Ty tego nigdy nie widzisz. Daje temu klientowi zwrot przy podwyższeniu subskrypcji za dni, które już opłacił w starym planie, i te pieniądze schodzą z Twoich przychodów. Nikt Cię nie pytał. W App Store nie znajdziesz tej kwoty nawet w zdarzeniach, które odbiera Twój serwer.

To nie jest zwrot, z którym możesz walczyć. To nie CONSUMPTION_REQUEST od Apple ani przegląd obciążenia zwrotnego od Google Play. To rozliczenie proporcjonalne, wbudowane w to, jak oba sklepy pozwalają ludziom zmieniać plany, i uruchamia się samo za każdym razem, gdy subskrybent wchodzi o poziom wyżej. Oto czym naprawdę jest zwrot przy podwyższeniu w każdym sklepie, dlaczego Apple nie przekazuje tej kwoty na Twój serwer i ile kosztuje Cię złe ustawienie w Google Play.

Czym naprawdę jest zwrot przy podwyższeniu subskrypcji

Zwrot przy podwyższeniu to rozliczenie sklepu za czas, który klient opłacił, ale nie wykorzysta. Nie ma nic wspólnego ze skargą, sporem ani Twoją polityką zwrotów. Wyzwala go sama mechanika zmiany planu.

To rozliczenie proporcjonalne, nie skarga klienta

Gdy subskrybent w środku okresu rozliczeniowego przechodzi na wyższy poziom, ma już opłacone do końca tego okresu według starej ceny. Sklep rekompensuje mu niewykorzystaną część. Apple wystawia proporcjonalny zwrot pierwotnej subskrypcji. Google Play zalicza niewykorzystaną wartość na poczet nowego planu. Żadne z nich nie przechodzi przez proces, na który możesz zareagować, i żadne nie czeka na Twoją zgodę.

Wyzwala go tylko podwyższenie

Kierunek zmiany decyduje o pieniądzach. W App Store podwyższenie to przejście na produkt o wyższej randze w tej samej grupie subskrypcji, i tylko to przejście jest natychmiastowe i ze zwrotem. Obniżenie to przejście na niższą rangę, i staje się skuteczne przy następnym odnowieniu, bez zwrotu. Zmiana pozioma to przejście między produktami o tej samej randze, a jej termin zależy od zaangażowanych okresów. Ustaw rangi produktów źle w App Store Connect, a zmiana, którą uważasz za podwyższenie, zachowa się inaczej.

Zmiana w App StoreKiedy staje się skutecznaCo dzieje się z pieniędzmi
Podwyższenie na wyższy poziomNatychmiastApple zwraca proporcjonalną kwotę pierwotnej subskrypcji
Obniżenie na niższy poziomW następnej dacie odnowieniaBrak zwrotu, odnawia się po niższej cenie
Zmiana pozioma, ten sam okres opłacony z góryNatychmiastZaczyna się nowa subskrypcja, opłacona usługa trwa dalej
Zmiana pozioma, różne okresyW następnej dacie odnowieniaBrak zwrotu w środku cyklu

Dlaczego App Store ukrywa zwrot przy podwyższeniu przed Twoim serwerem

Oto część, która psuje raportowanie przychodów. Apple wystawia zwrot przy podwyższeniu, ale nigdy nie mówi Twojemu serwerowi, ile zwrócił.

isUpgraded to jedyny sygnał, a cena jest błędna

Nowa transakcja przychodzi z isUpgraded ustawionym na true, co mówi Ci, że nastąpiła zmiana planu. Pole ceny w tej transakcji wciąż pokazuje pełną cenę wyświetlaną nowego poziomu, a nie kwotę, którą Apple odzyskało ze starego. Żadna App Store Server Notification nie niesie kwoty zwrotu. Słowami samego Apple na forach deweloperskich, proporcjonalna kwota zwrotu nie jest dostępna przez App Store Server API, Notifications ani StoreKit, a raportowanie w App Store Connect jest Twoim źródłem do wszystkich celów księgowości finansowej.

Raport finansowy to jedyny uczciwy zapis

Raporty finansowe i sprzedażowe App Store Connect ujmują proporcjonalny zwrot przy podwyższeniu, ponieważ to one decydują o tym, ile Apple faktycznie Ci wypłaca. To czyni je źródłem prawdy dla każdego subskrybenta, który kiedykolwiek awansował. Buduj księgowość na raportach, a zdarzenia serwerowe traktuj jako sygnały uprawnień, nie przychód.

Dwie karty poziomów subskrypcji na biurku, gdy dłoń przesuwa znacznik w górę do wyższej karty, a monety są unoszone ze starej karty, jako ilustracja zwrotu przy podwyższeniu subskrypcji opuszczającego Twoje przychody

Ile Cię to kosztuje, w pieniądzach

Zwrot przy podwyższeniu to nie błąd zaokrąglenia. To realne przychody, a w Google Play dodatkowo wybierasz, ile z niewykorzystanego czasu oddajesz.

Zwrot to przychody, które już zaksięgowałeś

Weź subskrybenta na Twoim poziomie za 9.99 miesięcznie, który 20 dnia 30-dniowego cyklu podwyższa do 19.99. Mniej więcej jedna trzecia miesiąca jest niewykorzystana, więc Apple zwraca około 3.33 z pierwotnych 9.99. Nie tracisz całej sprzedaży. Oddajesz część, którą klient opłacił z góry i nie wykorzysta. Liczy się to, że oddanie jest automatyczne i ląduje na starej sprzedaży, więc przychody, które już policzyłeś, po fakcie się kurczą. Pomnóż to przez każdego subskrybenta, który awansuje w środku cyklu, a to pozycja, którą powinieneś widzieć, a nie luka, którą znajdujesz w wypłacie.

W Google Play tryb zastąpienia to prawdziwa dźwignia kosztów

Google Play przy podwyższeniu nie zwraca pieniędzy na kartę. Rozlicza niewykorzystany czas na jeden z kilku sposobów, a Ty wybierasz który, przekazując tryb zastąpienia przy uruchamianiu procesu zakupu. Wybór decyduje, czy dajesz klientowi opłacony czas, czy naliczasz mu różnicę. Google zaleca CHARGE_PRORATED_PRICE dla podwyższeń i DEFERRED dla obniżeń, ale domyślny tryb biblioteki to WITH_TIME_PRORATION, więc proces, którego nigdy nie skonfigurowałeś, po cichu zalicza czas.

Tryb zastąpienia w Google PlayKiedy staje się skutecznyCo dzieje się z niewykorzystanym czasem
WITH_TIME_PRORATION (domyślny)NatychmiastZaliczony jako dodatkowy czas w nowym planie, następna data rozliczenia przesunięta
CHARGE_PRORATED_PRICE (tylko podwyższenie)NatychmiastRóżnica w cenie za pozostały okres jest naliczana teraz, data rozliczenia bez zmian
WITHOUT_PRORATIONNatychmiastTeraz nic nie rozliczone, nowa cena zaczyna się przy następnym odnowieniu
CHARGE_FULL_PRICENatychmiastPełna cena nowego planu jest naliczana teraz, pozostała wartość przeniesiona lub rozliczona proporcjonalnie
DEFERREDPrzy następnym odnowieniuObecny plan trwa do wygaśnięcia, potem zaczyna się nowy plan

Jak sprawić, by zwroty przy podwyższeniu nie zaskakiwały Twoich ksiąg

Nie możesz wyłączyć rozliczenia proporcjonalnego i nie chciałbyś tego, bo to ono czyni zmianę planu uczciwą dla klienta. Możesz je jednak zobaczyć, wycenić i trzymać z dala od zwrotów, które naprawdę możesz kwestionować.

Uzgadniaj podwyższenia Apple z raportem finansowym

Ponieważ kwota zwrotu nigdy nie dociera na Twój serwer, raporty finansowe i sprzedażowe App Store Connect to jedyne miejsce, gdzie proporcjonalny zwrot przy podwyższeniu się pojawia. Uzgadniaj przychody z subskrybentów z tymi raportami w każdym okresie i nie licz przychodu z bieżącej sumy Server Notifications. Flaga isUpgraded mówi Ci, że nastąpiła zmiana. Raport mówi Ci, ile kosztowała.

Wybieraj tryb zastąpienia w Google Play świadomie

Przekazuj tryb zastąpienia dla każdej zmiany planu świadomie. Używaj CHARGE_PRORATED_PRICE, gdy chcesz teraz pobrać różnicę w cenie przy podwyższeniu. Zostaw WITH_TIME_PRORATION tylko wtedy, gdy zamierzasz dać klientowi pozostały czas. Używaj DEFERRED dla obniżeń, aby zachować obecny przychód do końca okresu. Tryb domyślny to decyzja, a zły tryb domyślny oddaje marżę, jedno podwyższenie po drugim.

Trzymaj zwroty przy podwyższeniu oddzielnie od zwrotów, które możesz kwestionować

Zwrot przy podwyższeniu jest z założenia automatyczny i ostateczny. To nie klient prosi o zwrot pieniędzy. Zwroty, na które naprawdę masz wpływ, to te inicjowane przez klienta, gdzie Apple wysyła CONSUMPTION_REQUEST i daje Ci 12 godzin na odpowiedź, i gdzie Google Play otwiera przegląd obciążenia zwrotnego przez orders.reviewrefund z oknem 24 godzin. Oznaczaj dane tak, aby te dwa nigdy się nie zlewały. Jedną pozycję uzgadniasz. Na drugą odpowiadasz, na czas.

Wersja skrócona

Gdy klient podwyższa subskrypcję, sklep rozlicza za niego niewykorzystany czas automatycznie. Apple zwraca proporcjonalną kwotę starego planu natychmiast i nigdy nie wysyła tej liczby na Twój serwer, więc raporty finansowe App Store Connect to jedyny dokładny zapis. Google Play zalicza czas albo nalicza różnicę w zależności od trybu zastąpienia, który ustawisz, a domyślny daje klientowi opłacony czas, który dostarczasz po koszcie. Nic z tego nie przechodzi przez CONSUMPTION_REQUEST ani przegląd obciążenia zwrotnego, więc nie ma czego kwestionować. Uzgadniaj zwrot przy podwyższeniu, ustawiaj tryb Google Play świadomie i trzymaj go z dala od zwrotów, z którymi wciąż możesz walczyć.

Często zadawane pytania

Czy zwrot przy podwyższeniu subskrypcji pyta o moją zgodę?
Nie. Zwrot przy podwyższeniu subskrypcji jest automatyczny. Gdy klient w środku cyklu przechodzi na wyższy poziom, sklep sam rozlicza niewykorzystany czas starego planu, bez zapytania do Ciebie i bez okna na odpowiedź. Apple zwraca proporcjonalną kwotę pierwotnej subskrypcji, a Google Play zalicza niewykorzystany czas albo nalicza różnicę w cenie w zależności od trybu zastąpienia, który ustawisz.
Dlaczego mój przychód z App Store nie zgadza się z wypłatą po podwyższeniach?
Ponieważ Apple nie wysyła kwoty zwrotu przy podwyższeniu na Twój serwer. Podwyższona transakcja niesie isUpgraded ustawione na true, ale pole ceny wciąż pokazuje pełną cenę nowego poziomu, a żadna App Store Server Notification nie zawiera zwrotu. Przychód liczony ze zdarzeń serwerowych liczy nową sprzedaż i pomija zwrot na starym planie, więc wychodzi zawyżony, dopóki nie uzgodnisz go z raportami finansowymi App Store Connect.
Czy Google Play zwraca pieniądze na kartę, gdy klient podwyższa?
Nie. Google Play traktuje niewykorzystany czas jako uznanie, nie jako zwrot gotówki. W zależności od trybu zastąpienia albo zalicza pozostały czas na poczet nowego planu i przesuwa następną datę rozliczenia, albo nalicza różnicę w cenie za pozostały okres. Tryb domyślny to WITH_TIME_PRORATION, który zalicza czas.
Czy mogę zakwestionować zwrot przy podwyższeniu subskrypcji?
Nie. Zwrot przy podwyższeniu to nie wniosek klienta o zwrot. Nie ma CONSUMPTION_REQUEST od Apple ani przeglądu obciążenia zwrotnego od Google Play, więc nie ma okna 12 godzin ani 24 godzin i nie ma czego wysłać. Zwrot przy podwyższeniu uzgadniasz. Kwestionujesz tylko zwroty i obciążenia zwrotne inicjowane przez klienta.
Czy obniżenie daje klientowi zwrot?
Nie. W App Store obniżenie staje się skuteczne w następnej dacie odnowienia i nie zwraca nic, ponieważ klient zachowuje wyższy poziom do końca opłaconego okresu. W Google Play zalecanym sposobem obsługi obniżenia jest tryb zastąpienia DEFERRED, który zachowuje obecny plan do wygaśnięcia, a potem uruchamia niższy.
Którego trybu zastąpienia w Google Play użyć przy podwyższeniu?
Google zaleca CHARGE_PRORATED_PRICE przy podwyższeniach, który nalicza różnicę w cenie za pozostały okres natychmiast i pozostawia datę rozliczenia bez zmian. Domyślny WITH_TIME_PRORATION zamiast tego zalicza niewykorzystany czas jako dodatkową usługę na wyższym poziomie, więc używaj go tylko wtedy, gdy zamierzasz ten czas oddać.

Źródła i materiały dodatkowe

RefundHalt

Autopilot zwrotów dla App Store i Google Play

Czytaj dalej

Kolejny wniosek o zwrot jest już w drodze.

Skonfiguruj RefundHalt w czasie potrzebnym na przeczytanie kolejnej wiadomości od pomocy technicznej o zwrocie, którego nie udało Ci się zakwestionować.