Усі статті
Deep dive9 хв читання

Ваші дані про споживання інформують рішення Apple про повернення, але не керують ним

Коли клієнт просить Apple про повернення коштів, ви маєте 12 годин, щоб надіслати дані про споживання. Власна документація Apple називає їх одним із багатьох чинників, а не вироком. Ось що ваші дані насправді змінюють, чому DECLINE все одно може завершитися поверненням і скільки цей поштовх вартий у доларах.

Рука кладе маленьку латунну гирю на терези, які вже тримають кілька інших, як образ даних про споживання як одного з чинників у рішенні Apple про повернення

Головне

  • Коли клієнт запитує повернення, Apple надсилає вашому серверу сповіщення CONSUMPTION_REQUEST і дає вам 12 годин, щоб відповісти даними про споживання через ендпоінт Send Consumption Information. Пропустите вікно, і Apple вирішить без вашого внеску.
  • Власними словами Apple, App Store використовує багато чинників, щоб вирішити щодо повернення, а інформація про споживання, яку ви надсилаєте, слугує для інформування цього рішення. Ваш refundPreference є одним із цих чинників, а не вироком.
  • Ви можете надіслати refundPreference зі значенням віддавати перевагу відмові, віддавати перевагу повному наданню або віддавати перевагу пропорційному наданню. Apple зважує його. Ось чому команди бачать, що покупка, яку вони позначили як віддавати перевагу відмові, все одно повертається, і це працює як задокументовано.
  • Apple відхиляє ваші дані про споживання, якщо customerConsented не має значення true. Якщо клієнт не погодився поділитися даними, настанова Apple полягає в тому, щоб взагалі не відповідати на сповіщення, і ви несете виключну відповідальність за отримання цієї згоди.
  • Від WWDC24 CONSUMPTION_REQUEST спрацьовує також для автоматично поновлюваних підписок, а не лише для витратних товарів, тож та сама відповідь протягом 12 годин тепер охоплює значно більше ваших повернень, ніж раніше.
  • Для автоматично поновлюваних підписок Apple обчислює споживання самостійно й забороняє пропорційну перевагу, тож ваш важіль впливу там слабший, ніж на витратному товарі, який ви можете описати як повністю спожитий.
  • Гроші, які ви вже витратили на обслуговування покупки, обчислення, виклики сторонніх API, сховище, зникли незалежно від того, надасть Apple повернення чи ні. Ваша відповідь про споживання змінює повернення, а не витрати, які ви вже сплатили за доставлення.

Клієнт торкається повернення, і за хвилину ваш сервер отримує CONSUMPTION_REQUEST від Apple. Ви маєте 12 годин, щоб відповісти даними про споживання, і спокусливо прочитати цю відповідь як вето: надіслати віддавати перевагу відмові, залишити гроші. Це не вето. Власна документація Apple каже, що App Store використовує багато чинників, щоб визначити, чи буде запит на повернення схвалено чи відхилено, і що надана вами інформація про споживання слугує для інформування його рішень про повернення. Інформування, а не вирішення. Ця стаття розглядає, що ваші дані про споживання насправді змінюють, чому покупка, яку ви позначили як віддавати перевагу відмові, все одно може бути повернута, і скільки вся ця робота вартує, коли ви порахуєте гроші, які вже витратили.

Що Apple насправді робить із вашими даними про споживання

Ендпоінт Send Consumption Information існує, щоб ви могли передати Apple контекст у момент, коли повернення під питанням. Він не передає вам рішення. Прочитати цей потік у правильному порядку, це різниця між встановленням розумних очікувань і поданням звіту про помилку проти поведінки, яка задокументована.

App Store вирішує, а ви рекомендуєте

Apple чітко висловлюється щодо розподілу. У довідці Send Consumption Information Apple пише, що App Store використовує багато чинників, щоб визначити, чи буде запит на повернення схвалено чи відхилено, і що він використовує надану вами інформацію про споживання, щоб інформувати свої рішення про повернення. Щодо самого поля refundPreference Apple зазначає, що ваша перевага повернення є одним із багатьох чинників, які App Store використовує, щоб інформувати свої рішення про повернення. Тож найсильніший сигнал, який ви можете надіслати, рішуче віддавати перевагу відмові, все одно є одним внеском у модель, яку ви не контролюєте. Історія клієнта, наведена ним причина, тип продукту і власні сигнали шахрайства Apple, усе це сидить у тій самій моделі поряд із вашою відповіддю.

CONSUMPTION_REQUEST тепер охоплює підписки, а не лише витратні товари

Раніше це стосувалося витратних товарів. Від WWDC24 сповіщення CONSUMPTION_REQUEST спрацьовує, коли клієнт запитує повернення за витратну покупку в застосунку або автоматично поновлювану підписку. Це велике розширення охоплення. Та сама відповідь протягом 12 годин тепер стосується повернень за підписки, де ваш важіль впливу інший, бо Apple обчислює споживання для автоматично поновлюваних підписок самостійно й не прийме від вас пропорційну перевагу. Читайте тип продукту в кожному запиті, перш ніж вирішити, наскільки сильно ваша відповідь може тиснути.

П'ять вхідних значень, які вам дозволено надіслати

Тіло запиту V2, яке приймає Apple, невелике, п'ять полів виконують роботу, і три з них обов'язкові. Кожне є внеском, який Apple зважує, а не перемикачем, що примушує результат. Ось що ви можете вкласти у відповідь і що це повідомляє Apple.

ПолеОбов'язковеЩо воно повідомляє Apple
customerConsentedТакЧи погодився клієнт поділитися цими даними про повернення. Має бути true, інакше Apple відхиляє запит.
consumptionStatusНіСкільки було використано: не задекларовано, не спожито, частково спожито або повністю спожито.
deliveryStatusНіЧи ваш застосунок доставив робочу покупку, чи натрапив на проблему, яку ви хочете зафіксувати.
sampleContentProvidedНіЧи запропонували ви безкоштовний зразок, пробну версію або опис функції перед покупкою.
refundPreferenceНіВаш рекомендований результат: віддавати перевагу відмові, віддавати перевагу повному наданню або віддавати перевагу пропорційному наданню.

Вікно 12 годин і бар'єр згоди, який пропускає більшість команд

Два механізми вирішують, чи ваша відповідь узагалі зараховується. Один це годинник. Інший це прапорець згоди, який зупиняє чимало добре продуманих відповідей ще на порозі.

Відповідайте протягом 12 годин, інакше момент минає

Настанова Apple проста: відповідайте протягом 12 годин після отримання сповіщення CONSUMPTION_REQUEST. Це все вікно. Запит на повернення не чекає на ваш наступний робочий день, а відповідь про споживання, що надходить запізно, це відповідь, яку Apple ніколи не зважувала. Якщо ви відповідаєте на них вручну, годинник на 12 годин це частина, що тихо відмовляє першою, у вихідні, у свята та о 3 годині ночі у вашому часовому поясі. Відповідь має бути автоматизованою, щоб бути надійною, бо вікну байдуже, коли ваша команда не спить.

Аналоговий циферблат на столі поруч зі смартфоном, що лежить екраном донизу, як образ вікна 12 годин для відповіді на CONSUMPTION_REQUEST від Apple

Ви не можете надіслати дані, якщо клієнт не дав згоди

Ось бар'єр, об який спотикаються команди. Apple відхиляє запит Send Consumption Information, значення customerConsented якого відрізняється від true. Словами Apple: якщо клієнт надав згоду, відповідайте, викликаючи API та надсилаючи дані про споживання; якщо ні, не відповідайте на сповіщення CONSUMPTION_REQUEST. Apple також покладає відповідальність прямо на вас: ви маєте отримати дійсну згоду клієнта перед тим, як ділитися його персональними даними, і ви, розробник, несете за це виключну відповідальність. Тож перше питання за кожним запитом не в тому, скільки вони використали, а в тому, чи погодився цей клієнт, щоб ми повідомили Apple. Немає згоди, немає відповіді, і повернення вирішується на всьому, крім вашого боку історії.

Що насправді змінює рішення Apple про повернення

Якщо відповідь це рекомендація, чесне питання полягає в тому, наскільки вона рекомендує. Відповідь така, що ваші дані важать найбільше саме там, де людина б завагалася, і найменше там, де результат ніколи насправді не був під сумнівом.

Чому ви можете надіслати віддавати перевагу відмові й усе одно побачити повернення

Розробники повідомляють, що надсилають віддавати перевагу відмові за покупку, яку клієнт повністю спожив, і спостерігають, як Apple усе одно її повертає. Це не зламаний API. Apple сказала вам, що зважує багато чинників, і за будь-яким запитом деякі з цих чинників можуть переважити повністю спожитий витратний товар: клієнт із чистою історією, наведена причина, яку Apple вважає вагомою, невелика сума в доларах, перший запит. Ваша відповідь тиснула проти повернення. Інші внески тиснули сильніше. Урок не в тому, щоб перестати відповідати, а в тому, щоб перестати очікувати, що чистий витратний товар завжди виживе. Там, де сигнал справді змішаний, статус частково спожито, задокументована проблема з доставленням і чесна перевага це внески, що можуть схилити межовий випадок на вашу користь.

Скільки рекомендація вартує в доларах

Повернення це не ціна продажу. Це ціна продажу плюс усе, що ви вже витратили на його доставлення, а відповідь про споживання торкається лише першої частини.

Гроші вже витрачено на момент, коли надходить запит

На той час, коли Apple запитує, чи повертати, клієнт уже використав річ. На витратному товарі це означає, що обчислення відбулися, виклики сторонніх API були нараховані, зображення, токени чи генерації були вироблені, а сховище було записане. Це сплачені витрати з вашого боку, і вони не повертаються, якщо Apple відмовляє в поверненні, і вони втрачені двічі, якщо Apple його надає. Ваша відповідь про споживання може відіграти ціну продажу в межовому випадку. Вона не може відіграти вартість товарів, які ви вже передали. Це справжня причина, чому повністю спожита покупка є дорогою для повернення, і це не має нічого спільного з тим, як давно її придбали.

  • Ціна продажу: ваш чистий дохід після комісії Apple, скасований, якщо повернення надано. Це єдина частина, на яку ваша відповідь може вплинути.
  • Вартість доставлення: обчислення, виклики API, сховище і будь-яка виплата, яку ви вже здійснили щодо покупки. Зникли незалежно від рішення.
  • Час персоналу: кожне повернення, оброблене вручну, це хвилини з дня людини, а вікно 12 годин означає, що ці хвилини випадають у незручні години.
  • Закономірність, яку ви пропускаєте: клієнт, який повертає знову і знову, це витрата, яку ви бачите лише тоді, коли відстежуєте споживання та історію між запитами, а не ставитеся до кожного як до одноразового.

Як Google Play обробляє те саме питання

Apple не єдиний магазин, який просить вас висловитися, а потім вирішує сам. Google Play веде паралельний потік для банківських зворотних платежів, і форма та сама: ви надсилаєте докази, магазин вирішує. Відмінності в годиннику і в тому, що вам дозволено надіслати.

ПитанняApp StoreGoogle Play
Тригерсповіщення CONSUMPTION_REQUESTPendingRefundReviewNotification для зворотного платежу
Ваше вікно12 годин24 години
Як ви відповідаєтеSend Consumption Informationorders.reviewrefund
Ваша рекомендаціяrefundPreference: відмовити, надати повне, надати пропорційнеrefundPreference: APPROVE, DECLINE або NEUTRAL
Хто вирішуєApp StoreGoogle Play, або банк при зворотному платежі

Висновок для обох магазинів однаковий. Ваше завдання, відповісти у межах вікна точними доказами про споживання і чесною перевагою. Завдання магазину, вирішити. Плутати ці два, це те, як команда зрештою або ігнорує вікно, бо відповідь лише рекомендація, або довіряє відповіді як вето і отримує несподіванку, коли повернення все одно надходить. Жодне з цього не є правильним. Відповідайте щоразу, відповідайте точно і ставтеся до результату як до рішення, яке ви поінформували, а не того, яке ви ухвалили.

RefundHalt перехоплює CONSUMPTION_REQUEST у момент, коли Apple його надсилає, перевіряє згоду, збирає статус споживання, статус доставлення і засновану на доказах перевагу повернення, і відповідає в межах вікна 12 годин, без того, щоб хтось із вашої команди стежив за годинником. Він робить те саме для перевірки зворотних платежів Google Play в межах її вікна 24 годин. Ви не можете змусити Apple вирішити на вашу користь. Ви можете подбати про те, щоб Apple ніколи не вирішувала без вашого боку історії, за кожним поверненням, вчасно.

Поширені запитання

Чи зупиняє надсилання даних про споживання до Apple повернення?
Не саме собою. Документація Apple каже, що App Store використовує багато чинників, щоб вирішити щодо повернення, і що ваші дані про споживання слугують для інформування цього рішення. Ваша відповідь, включно з refundPreference зі значенням віддавати перевагу відмові, це один внесок, який Apple зважує, тож вона може зрушити межовий випадок, але не гарантує відмови, особливо на покупці, яку клієнт повністю спожив.
Скільки часу я маю на відповідь на CONSUMPTION_REQUEST?
12 годин. Apple каже відповідати протягом 12 годин після отримання сповіщення CONSUMPTION_REQUEST через ендпоінт Send Consumption Information. Відповідь, що надходить після вікна, це відповідь, яку Apple ніколи не зважувала, тому відповідь має бути автоматизованою, а не оброблятися людиною, яка може спати.
Чому Apple повернула покупку після того, як я надіслав віддавати перевагу відмові?
Бо віддавати перевагу відмові це рекомендація, а не команда. Apple зазначає, що ваша перевага повернення це один із багатьох чинників, які вона використовує, щоб інформувати своє рішення. За певним запитом історія клієнта, наведена причина, сума в доларах і власні сигнали шахрайства Apple можуть переважити вашу перевагу, тож повернення після віддавати перевагу відмові це потік, що працює як задокументовано.
Чи потрібна мені згода клієнта, щоб надіслати дані про споживання?
Так. Apple відхиляє запит Send Consumption Information, якщо customerConsented не має значення true, а її настанова полягає в тому, що якщо клієнт не дав згоди, вам взагалі не слід відповідати на CONSUMPTION_REQUEST. Apple також зазначає, що ви, розробник, несете виключну відповідальність за отримання дійсної згоди перед тим, як ділитися даними клієнта.
Чи працює потік споживання для підписок, чи лише для витратних товарів?
Для обох, від WWDC24. CONSUMPTION_REQUEST тепер спрацьовує для витратної покупки в застосунку або автоматично поновлюваної підписки. Для автоматично поновлюваних підписок Apple обчислює споживання самостійно й не приймає пропорційну перевагу, тож ваш важіль впливу вужчий, ніж на витратному товарі, споживання якого ви можете описати безпосередньо.

Джерела та додаткове читання

RefundHalt

Автопілот повернень для App Store і Google Play

Читайте далі

Playbook8 хв читання

Позначайте кожну покупку в Google Play заплутаним ідентифікатором облікового запису, інакше зворотний платіж прийде без жодного способу його відстежити

Google Play дозволяє відбити на кожній покупці стабільний, хешований ідентифікатор і зчитує його назад, коли надходить спір. Установіть його, і перегляд зворотного платежу прив'яжеться до саме того користувача, чиє споживання ви маєте звітувати. Пропустіть його, і ви зіставлятимете голий номер замовлення з здогадками під годинником на 24 години.

Deep dive8 хв читання

Невпізнане списання у банківській виписці перетворюється на зворотний платіж, а зворотний платіж коштує вам більше, ніж повернення коштів

Коли клієнт не може зрозуміти, за що ваш застосунок його списав, він телефонує банку, а не вам, і ця суперечка стає зворотним платежем. Apple показує все як apple.com/bill і не дозволяє нічого змінити. Google Play дозволяє задати назву у виписці. Ось скільки коштує кожен варіант і що ви контролюєте.

Наступний запит на повернення вже в дорозі.

Налаштуйте RefundHalt за час, потрібний, щоб прочитати черговий лист у підтримку про повернення, яке ви не встигли оскаржити.