Wszystkie artykuły
Deep dive9 min czytania

Twoje dane o zużyciu informują decyzję Apple o zwrocie, nie sterują nią

Gdy klient prosi Apple o zwrot, masz 12 godzin na wysłanie danych o zużyciu. Własna dokumentacja Apple nazywa je jednym z wielu czynników, nie wyrokiem. Oto co Twoje dane rzeczywiście zmieniają, dlaczego DECLINE wciąż może zakończyć się zwrotem i ile ten sygnał jest wart w dolarach.

Dłoń kładąca mały mosiężny odważnik na szalce wagi, która już trzyma kilka innych, jako symbol danych o zużyciu jako jednego z czynników w decyzji Apple o zwrocie

Najważniejsze wnioski

  • Gdy klient żąda zwrotu, Apple wysyła Twojemu serwerowi powiadomienie CONSUMPTION_REQUEST i daje Ci 12 godzin na odpowiedź danymi o zużyciu przez endpoint Send Consumption Information. Przegap to okno, a Apple zdecyduje bez Twojego udziału.
  • Własnymi słowami Apple, App Store używa wielu czynników, aby zdecydować o zwrocie, a wysyłane przez Ciebie informacje o zużyciu służą do informowania tej decyzji. Twoje refundPreference to jeden z tych czynników, nie wyrok.
  • Możesz wysłać refundPreference o wartości preferuj odmowę, preferuj pełne przyznanie lub preferuj przyznanie proporcjonalne. Apple je waży. Dlatego zespoły widzą, że zakup oznaczony jako preferuj odmowę i tak zostaje zwrócony, a to działa zgodnie z dokumentacją.
  • Apple odrzuca Twoje dane o zużyciu, chyba że customerConsented ma wartość true. Jeśli klient nie wyraził zgody na udostępnienie danych, wytyczna Apple mówi, aby w ogóle nie odpowiadać na powiadomienie, a Ty ponosisz wyłączną odpowiedzialność za uzyskanie tej zgody.
  • Od WWDC24 CONSUMPTION_REQUEST uruchamia się również dla subskrypcji odnawialnych automatycznie, nie tylko dla dóbr konsumpcyjnych, więc ta sama odpowiedź w ciągu 12 godzin dociera teraz do znacznie większej części Twoich zwrotów niż wcześniej.
  • W przypadku subskrypcji odnawialnych automatycznie Apple samo oblicza zużycie i zabrania preferencji proporcjonalnej, więc Twój wpływ jest tam mniejszy niż przy dobru konsumpcyjnym, które możesz opisać jako w pełni zużyte.
  • Pieniądze, które już wydałeś na obsługę zakupu, moc obliczeniowa, wywołania API stron trzecich, pamięć, przepadły niezależnie od tego, czy Apple przyzna zwrot, czy nie. Twoja odpowiedź o zużyciu zmienia zwrot, nigdy koszt, który już zapłaciłeś za dostarczenie.

Klient dotyka zwrotu, a w ciągu minuty Twój serwer otrzymuje CONSUMPTION_REQUEST od Apple. Masz 12 godzin na odpowiedź danymi o zużyciu i kuszące jest odczytanie tej odpowiedzi jako weta: wyślij preferuj odmowę, zatrzymaj pieniądze. To nie jest weto. Własna dokumentacja Apple mówi, że App Store używa wielu czynników, aby ustalić, czy żądanie zwrotu zostanie zatwierdzone czy odrzucone, oraz że dostarczane przez Ciebie informacje o zużyciu służą do informowania jego decyzji o zwrotach. Informowania, nie decydowania. Ten wpis pokazuje, co Twoje dane o zużyciu rzeczywiście zmieniają, dlaczego zakup oznaczony przez Ciebie jako preferuj odmowę wciąż może zostać zwrócony i ile cała ta praca jest warta, gdy policzysz pieniądze, które już wydałeś.

Co Apple naprawdę robi z Twoimi danymi o zużyciu

Endpoint Send Consumption Information istnieje po to, abyś mógł przekazać Apple kontekst w chwili, gdy zwrot stoi pod znakiem zapytania. Nie przekazuje Ci decyzji. Odczytanie przepływu we właściwej kolejności to różnica między ustawieniem rozsądnych oczekiwań a zgłaszaniem błędu przeciwko zachowaniu, które jest udokumentowane.

App Store decyduje, a Ty rekomendujesz

Apple jest jednoznaczne co do podziału. W dokumentacji Send Consumption Information Apple pisze, że App Store używa wielu czynników, aby ustalić, czy żądanie zwrotu zostanie zatwierdzone czy odrzucone, oraz że wykorzystuje dostarczane przez Ciebie informacje o zużyciu, aby informować swoje decyzje o zwrotach. Odnośnie samego pola refundPreference Apple stwierdza, że Twoja preferencja zwrotu to jeden z wielu czynników, których App Store używa, aby informować swoje decyzje o zwrotach. Zatem najsilniejszy sygnał, jaki możesz wysłać, zdecydowane preferuj odmowę, to wciąż jeden wkład do modelu, którego nie kontrolujesz. Historia klienta, podany przez niego powód, typ produktu i własne sygnały oszustwa Apple, wszystkie tkwią w tym samym modelu obok Twojej odpowiedzi.

CONSUMPTION_REQUEST obejmuje teraz subskrypcje, nie tylko dobra konsumpcyjne

Kiedyś dotyczyło to dóbr konsumpcyjnych. Od WWDC24 powiadomienie CONSUMPTION_REQUEST uruchamia się, gdy klient żąda zwrotu za konsumpcyjny zakup w aplikacji lub subskrypcję odnawialną automatycznie. To duże rozszerzenie zakresu. Ta sama odpowiedź w ciągu 12 godzin dotyczy teraz zwrotów za subskrypcje, gdzie Twój wpływ jest inny, ponieważ Apple samo oblicza zużycie dla subskrypcji odnawialnych automatycznie i nie przyjmie od Ciebie preferencji proporcjonalnej. Odczytuj typ produktu przy każdym żądaniu, zanim zdecydujesz, jak mocno Twoja odpowiedź może naciskać.

Pięć wartości wejściowych, które wolno Ci wysłać

Treść żądania V2, którą Apple przyjmuje, jest niewielka, pięć pól wykonuje pracę, a trzy z nich są wymagane. Każde to wkład, który Apple waży, a nie przełącznik wymuszający wynik. Oto co możesz umieścić w odpowiedzi i co to mówi Apple.

PoleWymaganeCo mówi Apple
customerConsentedTakCzy klient zgodził się udostępnić te dane o zwrocie. Musi być true, inaczej Apple odrzuca żądanie.
consumptionStatusNieIle zostało zużyte: niezadeklarowane, niezużyte, częściowo zużyte lub w pełni zużyte.
deliveryStatusNieCzy Twoja aplikacja dostarczyła działający zakup, czy napotkała problem, który chcesz odnotować.
sampleContentProvidedNieCzy zaoferowałeś darmową próbkę, wersję próbną lub opis funkcji przed zakupem.
refundPreferenceNieTwój rekomendowany wynik: preferuj odmowę, preferuj pełne przyznanie lub preferuj przyznanie proporcjonalne.

Okno 12 godzin i bariera zgody, którą większość zespołów pomija

Dwa mechanizmy decydują, czy Twoja odpowiedź w ogóle się liczy. Jeden to zegar. Drugi to flaga zgody, która zatrzymuje wiele dobrze pomyślanych odpowiedzi już u progu.

Odpowiedz w ciągu 12 godzin, inaczej chwila mija

Instrukcja Apple jest prosta: odpowiedz w ciągu 12 godzin od otrzymania powiadomienia CONSUMPTION_REQUEST. To całe okno. Żądanie zwrotu nie czeka na Twój kolejny dzień roboczy, a odpowiedź o zużyciu, która dociera za późno, to odpowiedź, której Apple nigdy nie zważyło. Jeśli odpowiadasz na nie ręcznie, zegar 12 godzin to część, która po cichu zawodzi jako pierwsza, w weekendy, w święta i o 3 nad ranem w Twojej strefie czasowej. Odpowiedź musi być zautomatyzowana, aby była niezawodna, bo okno nie dba o to, kiedy Twój zespół jest przytomny.

Analogowa tarcza zegara na biurku obok smartfona leżącego ekranem w dół, jako symbol okna 12 godzin na odpowiedź na CONSUMPTION_REQUEST od Apple

Nie możesz wysłać danych, chyba że klient wyraził zgodę

Oto bariera, o którą potykają się zespoły. Apple odrzuca żądanie Send Consumption Information, którego wartość customerConsented jest inna niż true. Słowami Apple: jeśli klient wyraził zgodę, odpowiedz, wywołując API i wysyłając dane o zużyciu; jeśli nie, nie odpowiadaj na powiadomienie CONSUMPTION_REQUEST. Apple składa też odpowiedzialność wprost na Ciebie: musisz uzyskać ważną zgodę klienta przed udostępnieniem jego danych osobowych, a Ty, deweloper, ponosisz za to wyłączną odpowiedzialność. Pierwsze pytanie przy każdym żądaniu to więc nie ile zużyli, lecz czy ten klient zgodził się, byśmy powiedzieli Apple. Brak zgody, brak odpowiedzi, a zwrot rozstrzyga się na wszystkim oprócz Twojej strony historii.

Co naprawdę zmienia decyzję Apple o zwrocie

Jeśli odpowiedź jest rekomendacją, uczciwe pytanie brzmi, ile rekomenduje. Odpowiedź jest taka, że Twoje dane liczą się najbardziej dokładnie tam, gdzie człowiek by się zawahał, a najmniej tam, gdzie wynik nigdy naprawdę nie był wątpliwy.

Dlaczego możesz wysłać preferuj odmowę i wciąż zobaczyć zwrot

Deweloperzy zgłaszają, że wysyłają preferuj odmowę przy zakupie, który klient w pełni zużył, i patrzą, jak Apple i tak go zwraca. To nie jest zepsute API. Apple powiedziało Ci, że waży wiele czynników, a przy danym żądaniu niektóre z nich mogą przeważyć w pełni zużyte dobro konsumpcyjne: klient z czystą historią, podany powód, który Apple traktuje jako mocny, mała kwota w dolarach, pierwsze żądanie. Twoja odpowiedź naciskała przeciw zwrotowi. Inne wkłady naciskały mocniej. Nauka nie polega na tym, by przestać odpowiadać, lecz by przestać oczekiwać, że czyste dobro konsumpcyjne zawsze przetrwa. Tam, gdzie sygnał jest naprawdę mieszany, status częściowo zużyte, udokumentowany problem z dostawą i uczciwa preferencja to wkłady, które mogą przechylić graniczny przypadek na Twoją korzyść.

Ile rekomendacja jest warta w dolarach

Zwrot to nie cena sprzedaży. To cena sprzedaży plus wszystko, co już wydałeś na dostarczenie, a odpowiedź o zużyciu dotyka tylko tej pierwszej części.

Pieniądze są już wydane, zanim dotrze żądanie

Zanim Apple zapyta, czy zwrócić, klient już użył rzeczy. Przy dobru konsumpcyjnym oznacza to, że moc obliczeniowa zadziałała, wywołania API stron trzecich zostały naliczone, obrazy, tokeny lub generacje zostały wytworzone, a pamięć została zapisana. To koszty zapłacone po Twojej stronie i nie wracają, jeśli Apple odmówi zwrotu, a są stracone podwójnie, jeśli Apple go przyzna. Twoja odpowiedź o zużyciu może odzyskać cenę sprzedaży w granicznym przypadku. Nie może odzyskać kosztu towarów, które już przekazałeś. To prawdziwy powód, dla którego w pełni zużyty zakup jest tym drogim do zwrotu, i nie ma to nic wspólnego z tym, jak dawno został kupiony.

  • Cena sprzedaży: Twój przychód netto po prowizji Apple, cofnięty, jeśli zwrot zostanie przyznany. To jedyna część, na którą Twoja odpowiedź może wpłynąć.
  • Koszt dostawy: moc obliczeniowa, wywołania API, pamięć i każda wypłata, którą już wykonałeś w związku z zakupem. Przepadły niezależnie od decyzji.
  • Czas personelu: każdy zwrot obsłużony ręcznie to minuty z dnia człowieka, a okno 12 godzin oznacza, że te minuty wypadają o niedogodnych porach.
  • Wzorzec, który przeoczysz: klient, który żąda zwrotu raz za razem, to koszt, który zobaczysz tylko wtedy, gdy śledzisz zużycie i historię między żądaniami, zamiast traktować każde jako jednorazowe.

Jak Google Play obsługuje to samo pytanie

Apple nie jest jedynym sklepem, który prosi Cię o opinię, a potem sam decyduje. Google Play prowadzi równoległy przepływ dla obciążeń zwrotnych w banku, a kształt jest taki sam: wysyłasz dowody, sklep decyduje. Różnice tkwią w zegarze i w tym, co wolno Ci wysłać.

PytanieApp StoreGoogle Play
Wyzwalaczpowiadomienie CONSUMPTION_REQUESTPendingRefundReviewNotification przy obciążeniu zwrotnym
Twoje okno12 godzin24 godziny
Jak odpowiadaszSend Consumption Informationorders.reviewrefund
Twoja rekomendacjarefundPreference: odmów, przyznaj pełne, przyznaj proporcjonalnerefundPreference: APPROVE, DECLINE lub NEUTRAL
Kto decydujeApp StoreGoogle Play lub bank przy obciążeniu zwrotnym

Wniosek dla obu sklepów jest identyczny. Twoim zadaniem jest odpowiedzieć w oknie dokładnymi dowodami o zużyciu i uczciwą preferencją. Zadaniem sklepu jest zdecydować. Mylenie tych dwóch to sposób, w jaki zespół kończy albo ignorując okno, bo odpowiedź to tylko rekomendacja, albo ufając odpowiedzi jak wetu i będąc zaskoczonym, gdy zwrot i tak nadchodzi. Żadne z tego nie jest słuszne. Odpowiadaj za każdym razem, odpowiadaj dokładnie i traktuj wynik jako decyzję, którą poinformowałeś, a nie tę, którą podjąłeś.

RefundHalt przechwytuje CONSUMPTION_REQUEST w chwili, gdy Apple je wysyła, sprawdza zgodę, kompletuje status zużycia, status dostawy i opartą na dowodach preferencję zwrotu, i odpowiada w oknie 12 godzin, bez patrzenia na zegar przez kogokolwiek z Twojego zespołu. Robi to samo dla przeglądu obciążeń zwrotnych Google Play w jego oknie 24 godzin. Nie zmusisz Apple do decyzji po Twojej myśli. Możesz zadbać o to, by Apple nigdy nie decydowało bez Twojej strony historii, przy każdym zwrocie, na czas.

Często zadawane pytania

Czy wysłanie danych o zużyciu do Apple zatrzymuje zwrot?
Nie samo w sobie. Dokumentacja Apple mówi, że App Store używa wielu czynników, aby zdecydować o zwrocie, oraz że Twoje dane o zużyciu służą do informowania tej decyzji. Twoja odpowiedź, w tym refundPreference o wartości preferuj odmowę, to jeden wkład, który Apple waży, więc może poruszyć graniczny przypadek, ale nie zagwarantuje odmowy, zwłaszcza przy zakupie, który klient w pełni zużył.
Ile czasu mam na odpowiedź na CONSUMPTION_REQUEST?
12 godzin. Apple mówi, aby odpowiedzieć w ciągu 12 godzin od otrzymania powiadomienia CONSUMPTION_REQUEST przez endpoint Send Consumption Information. Odpowiedź, która dociera po oknie, to odpowiedź, której Apple nigdy nie zważyło, dlatego odpowiedź musi być zautomatyzowana, a nie obsługiwana przez osobę, która może spać.
Dlaczego Apple zwróciło zakup po tym, jak wysłałem preferuj odmowę?
Ponieważ preferuj odmowę to rekomendacja, nie polecenie. Apple stwierdza, że Twoja preferencja zwrotu to jeden z wielu czynników, których używa, aby informować swoją decyzję. Przy danym żądaniu historia klienta, podany powód, kwota w dolarach i własne sygnały oszustwa Apple mogą przeważyć Twoją preferencję, więc zwrot po preferuj odmowę to przepływ działający zgodnie z dokumentacją.
Czy potrzebuję zgody klienta, aby wysłać dane o zużyciu?
Tak. Apple odrzuca żądanie Send Consumption Information, chyba że customerConsented ma wartość true, a jego wytyczna mówi, że jeśli klient nie wyraził zgody, w ogóle nie powinieneś odpowiadać na CONSUMPTION_REQUEST. Apple stwierdza też, że Ty, deweloper, ponosisz wyłączną odpowiedzialność za uzyskanie ważnej zgody przed udostępnieniem danych klienta.
Czy przepływ zużycia działa dla subskrypcji, czy tylko dla dóbr konsumpcyjnych?
Dla obu, od WWDC24. CONSUMPTION_REQUEST uruchamia się teraz dla konsumpcyjnego zakupu w aplikacji lub subskrypcji odnawialnej automatycznie. W przypadku subskrypcji odnawialnych automatycznie Apple samo oblicza zużycie i nie przyjmuje preferencji proporcjonalnej, więc Twój wpływ jest węższy niż przy dobru konsumpcyjnym, którego zużycie możesz opisać bezpośrednio.

Ź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ć.