Retention Messaging API ของ Apple วางข้อความของคุณไว้บนหน้ายกเลิก แต่คำขอคืนเงินไม่เคยผ่านหน้านั้นเลย
Retention Messaging API ของ Apple ให้คุณแสดงข้อความ ข้อเสนอให้เปลี่ยนแพ็กเกจ หรือข้อเสนอโปรโมชันเมื่อผู้สมัครสมาชิกแตะ Cancel บทความนี้อธิบายวิธีการทำงาน ต้นทุนในการใช้งาน และเหตุผลที่คำขอคืนเงินไปถึง Apple โดยไม่ผ่านหน้าจอนั้นเลย

ประเด็นสำคัญ
- Retention Messaging API ของ Apple ให้นักพัฒนาเลือกข้อความที่ผู้สมัครสมาชิกบน iPhone จะเห็นหลังแตะ Cancel Subscription โดยเลือกได้หนึ่งในสี่ประเภท ได้แก่ ข้อความ ข้อความพร้อมรูปภาพ ข้อเสนอให้เปลี่ยนแพ็กเกจ หรือข้อเสนอโปรโมชัน
- เอกสารของ Apple ยังระบุว่า Retention Messaging API เป็นรุ่นก่อนเปิดตัวที่นักพัฒนาต้องขอเข้าร่วม เวอร์ชัน 1.0 เปิดตัวเมื่อวันที่ 16 กรกฎาคม 2025 และเวอร์ชัน 1.5 ตามมาเมื่อวันที่ 27 เมษายน 2026
- ในโฟลว์แบบเรียลไทม์ Apple จะเรียก endpoint Get Retention Message ของนักพัฒนาเมื่อผู้สมัครสมาชิกที่ยังใช้งานอยู่เปิดดูหน้ารายละเอียดการสมัครสมาชิกที่มีปุ่ม Cancel และ endpoint ต้องตอบภายใน 700 ms บน production มิฉะนั้น Apple จะใช้ข้อความเริ่มต้นแทน
- ข้อความรักษาลูกค้ามีผลกับการต่ออายุครั้งถัดไปเท่านั้น คำขอคืนเงินไปถึง Apple ผ่าน reportaproblem.apple.com หรือหน้าต่างขอคืนเงินในแอป และหน้ายกเลิกที่ข้อความรักษาลูกค้าปรากฏไม่ได้อยู่บนเส้นทางนั้น
- เมื่อลูกค้าขอคืนเงินภายในแอปผ่าน API คำขอคืนเงินของ StoreKit ทาง Apple จะปิดการต่ออายุอัตโนมัติเอง และส่ง DID_CHANGE_RENEWAL_STATUS พร้อม subtype AUTO_RENEW_DISABLED ซึ่งเป็น type และ subtype เดียวกับการยกเลิกจากหน้าการตั้งค่า Subscriptions
- สิ่งเดียวที่นักพัฒนาส่งเข้าไปได้ในการคืนเงินของ Apple คือการตอบ CONSUMPTION_REQUEST ภายใน 12 ชั่วโมงด้วย Send Consumption Information และทำได้ก็ต่อเมื่อลูกค้ายินยอมให้แชร์ข้อมูลนั้นเท่านั้น
- Google Play ไม่มีฟีเจอร์ที่เทียบเท่าตามเอกสารสำหรับข้อความบนหน้ายกเลิกที่นักพัฒนาเลือกเอง นักพัฒนาจะได้รับการแจ้งเตือน SUBSCRIPTION_CANCELED ภายหลัง และฟิลด์ userInitiatedCancellation จะบอกเหตุผลที่ผู้สมัครสมาชิกออกไป
ตอนนี้ผู้สมัครสมาชิกที่แตะ Cancel บน iPhone จะเห็นข้อความที่คุณเลือก แพ็กเกจที่ถูกกว่า หรือส่วนลด ก่อนที่จะยืนยันได้ นั่นคือ Retention Messaging API ของ Apple และนี่เป็นครั้งแรกที่นักพัฒนามีสิทธิ์มีเสียงบนหน้ายกเลิกของ Apple เอง ฟีเจอร์นี้ยังเป็นรุ่นก่อนเปิดตัวที่ต้องขอเข้าร่วม และยังมีขอบเขตที่ชัดเจนซึ่งสำคัญมากหากคุณใส่ใจเรื่องการคืนเงิน: มันสื่อสารกับคนที่กำลังจะหยุดจ่ายเงิน ไม่ใช่กับคนที่ขอเงินคืน คำขอเหล่านั้นไปถึง Apple ผ่านอีกเส้นทางหนึ่ง
Retention Messaging API ของ Apple ทำอะไร
Retention Messaging API เป็นบริการแบบ server-to-server คุณอัปโหลดข้อความและรูปภาพไปให้ Apple ล่วงหน้า Apple ตรวจสอบ จากนั้นคุณเลือกว่าข้อความที่ผ่านการอนุมัติแล้วข้อความใดจะแสดงให้ผู้สมัครสมาชิกเห็นเมื่อเขากำลังจะยกเลิกการสมัครสมาชิกแบบต่ออายุอัตโนมัติ เอกสารของ Apple ระบุข้อความไว้สี่ประเภท:
- ข้อความตัวอักษร ซึ่งใส่หัวข้อย่อยได้
- ข้อความตัวอักษรพร้อมรูปภาพ
- ข้อความเปลี่ยนแพ็กเกจ ซึ่งแนะนำการสมัครสมาชิกอื่นในกลุ่มการสมัครสมาชิกเดียวกัน
- ข้อความข้อเสนอโปรโมชัน ซึ่งเสนอราคาลดในระดับเดียวกันหรือต่างระดับ โดยใช้ข้อเสนอโปรโมชันที่คุณตั้งค่าใน App Store Connect และลงนามบนเซิร์ฟเวอร์ของคุณ
ข้อความจะปรากฏหลังจากลูกค้าแตะ Cancel Subscription บนหน้ารายละเอียดการสมัครสมาชิก จากนั้น Apple จะแสดงหน้า Confirm Cancellation ลูกค้ายังยกเลิกได้ แตะ Keep Subscription ได้ หรือรับข้อเสนอหรือแพ็กเกจที่คุณแนะนำก็ได้ คุณซ่อนทางออกไม่ได้ และ Apple บอกนักพัฒนาว่าห้ามอัปโหลดเนื้อหาที่ชวนให้เข้าใจผิดหรือไม่ถูกต้อง
ข้อความเริ่มต้นและโฟลว์แบบเรียลไทม์
ใช้งานได้สองแบบ แบบง่ายคือข้อความเริ่มต้น: ข้อความตัวอักษร จะมีหรือไม่มีรูปภาพหรือหัวข้อย่อยก็ได้ กำหนดไว้สำหรับแต่ละผลิตภัณฑ์และแต่ละภาษา แบบที่ทำได้มากกว่าคือโฟลว์แบบเรียลไทม์ ซึ่ง Apple จะเรียก endpoint Get Retention Message บนเซิร์ฟเวอร์ของคุณ และคุณตอบกลับด้วย ID ของข้อความ มีเพียงโฟลว์แบบเรียลไทม์เท่านั้นที่แสดงข้อความเปลี่ยนแพ็กเกจและข้อเสนอโปรโมชันได้
ในทางปฏิบัติ ข้อความเริ่มต้นไม่ใช่ตัวเลือกเสริม Apple ใช้ข้อความเหล่านี้เป็นตัวสำรองทุกครั้งที่การเรียกแบบเรียลไทม์ล้มเหลว และจะไม่แสดงข้อความรักษาลูกค้าใดๆ เลยสำหรับผลิตภัณฑ์ในภาษาที่ไม่มีข้อความเริ่มต้น
| รายการ | สิ่งที่เอกสารของ Apple ระบุ |
|---|---|
| สถานะ | รุ่นก่อนเปิดตัว นักพัฒนาแจ้งความสนใจเพื่อขอเข้าร่วม |
| ผลิตภัณฑ์ | การสมัครสมาชิกแบบต่ออายุอัตโนมัติ |
| ประเภทข้อความ | ข้อความ ข้อความพร้อมรูปภาพ เปลี่ยนแพ็กเกจ ข้อเสนอโปรโมชัน |
| ขีดจำกัดเวลาตอบกลับแบบเรียลไทม์ | 700 ms บน production |
| สิทธิ์ใช้งาน production | ต้องผ่านการทดสอบประสิทธิภาพใน sandbox ก่อน ประมาณ 700 ms |
| ข้อความหัวเรื่องและหัวข้อย่อย | อย่างละ 66 ตัวอักษร หัวข้อย่อยสูงสุดห้าข้อ |
| ข้อความเนื้อหา | 144 ตัวอักษร |
| ข้อความ alt ของรูปภาพ | 150 ตัวอักษร |
| จำนวนข้อความต่อแอป | 2,000 |
| การตรวจสอบ | ข้อความใหม่เริ่มที่สถานะ PENDING และจะแสดงเมื่อเป็น APPROVED แล้วเท่านั้น |
| อุปกรณ์ | iOS 15.1, iPadOS 15.1, visionOS 1, macOS 14 ขึ้นไป |
สิ่งที่ Apple ส่งให้เซิร์ฟเวอร์ของคุณในการเรียกแบบเรียลไทม์
คำขอเป็น JWS ที่ App Store ลงนาม เมื่อถอดรหัสแล้วจะมี originalTransactionId, appAppleId, productId, userLocale, requestIdentifier ที่เป็น UUID, environment และ signedDate Apple ให้คุณตรวจสอบว่า appAppleId ตรงกับแอปของคุณ และห้ามตอบหากไม่ตรง ส่วนที่มีประโยชน์คือ originalTransactionId เพราะทำให้คุณค้นดูได้ว่าผู้สมัครสมาชิกคนนี้ทำอะไรในแอปของคุณจริงๆ ก่อนเลือกว่าจะพูดอะไร
ข้อความรักษาลูกค้าปรากฏที่ไหน และไม่ปรากฏที่ไหน
Apple วางข้อความไว้บนหน้าจอเดียว คือขั้นตอน Confirm Cancellation หลังลูกค้าแตะ Cancel Subscription เช่น จาก Apple Account > Subscriptions หรือจากหน้าของการสมัครสมาชิกบน App Store หน้าจอนั้นเกี่ยวกับว่าการต่ออายุครั้งถัดไปจะเกิดขึ้นหรือไม่ มันไม่แตะต้องเงินที่เก็บไปแล้ว
คำขอคืนเงินเป็นการกระทำแยกต่างหาก หน้าสนับสนุนของ Apple พาลูกค้าไปที่ reportaproblem.apple.com ซึ่งลูกค้าจะเลือก "Request a refund" (ขอคืนเงิน) เลือกเหตุผลและรายการ แล้วรอการอัปเดต 24 ถึง 48 ชั่วโมง ภายในแอปของคุณ beginRefundRequest ของ StoreKit จะเปิดหน้าต่างขอคืนเงินของ Apple และ Apple ระบุว่า App Store ใช้เวลาสูงสุด 48 ชั่วโมงในการอนุมัติหรือปฏิเสธ ไม่มีเส้นทางใดผ่านหน้าจอ Confirm Cancellation เลย
| ช่วงเวลา | เกิดขึ้นที่ไหน | สิ่งที่เป็นเดิมพัน | ใครตัดสิน | สิ่งที่คุณส่งเข้าไปได้ |
|---|---|---|---|---|
| ยกเลิก | หน้ารายละเอียดการสมัครสมาชิก แล้วต่อด้วย Confirm Cancellation | การต่ออายุครั้งถัดไป | ลูกค้า | ข้อความรักษาลูกค้าที่คุณเลือก ตอบภายใน 700 ms |
| คำขอคืนเงิน | reportaproblem.apple.com หรือหน้าต่างขอคืนเงินในแอปของคุณ | เงินที่จ่ายไปแล้ว | Apple | ข้อมูล CONSUMPTION_REQUEST ภายใน 12 ชั่วโมง หากลูกค้ายินยอม |
ข้อความรักษาลูกค้าหยุดคำขอคืนเงินได้หรือไม่
ไม่ได้ คำขอคืนเงินไม่เคยไปถึงหน้าจอที่ข้อความอยู่ มีรายละเอียดหนึ่งในเอกสารการแจ้งเตือนของ Apple ที่ทำให้เรื่องนี้ชัดเจน เมื่อลูกค้าขอคืนเงินผ่านแอปของคุณด้วย API คำขอคืนเงิน Apple จะปิดการต่ออายุอัตโนมัติเองและส่ง DID_CHANGE_RENEWAL_STATUS พร้อม subtype AUTO_RENEW_DISABLED ลูกค้าที่ยกเลิกจากหน้าการตั้งค่า Subscriptions ก็สร้าง type และ subtype เดียวกัน เซิร์ฟเวอร์ของคุณเห็นการแจ้งเตือนแบบเดียวกันสำหรับลูกค้าสองคนที่ต่างกันมาก และมีเพียงคนเดียวที่เห็นข้อความรักษาลูกค้าของคุณ
หากคำขอคืนเงินดำเนินต่อไป ช่องทางส่งหลักฐานคือ CONSUMPTION_REQUEST Apple ส่งสิ่งนี้สำหรับคำขอคืนเงินของผลิตภัณฑ์ทุกประเภท และคุณมีเวลา 12 ชั่วโมงในการตอบด้วย Send Consumption Information คุณตอบได้ก็ต่อเมื่อลูกค้าให้ความยินยอมเท่านั้น หลังจากนั้น คำตัดสินของ Apple จะมาในรูปการแจ้งเตือน REFUND หรือ REFUND_DECLINED หาก Apple ปฏิเสธการคืนเงินที่ลูกค้าเริ่มจากในแอปของคุณ
Google Play มี API สำหรับข้อความตอนยกเลิกหรือไม่
ไม่มีในเอกสารวงจรชีวิตการสมัครสมาชิกของ Google ผู้สมัครสมาชิก Google Play ยกเลิกจากศูนย์การสมัครสมาชิกของ Play ยังคงใช้งานได้จนสิ้นรอบการเรียกเก็บเงินปัจจุบัน และแตะ Resubscribe เพื่อย้อนกลับได้ก่อนถึงเวลานั้น ซึ่ง Google เรียกว่าการกู้คืน (restore) คุณจะรู้เรื่องนี้ภายหลังผ่านการแจ้งเตือน SUBSCRIPTION_CANCELED และฟิลด์ userInitiatedCancellation ใน resource ของการสมัครสมาชิกจะบอกเหตุผลที่ผู้ใช้ออกไป การหยุดชั่วคราว (pause) ซึ่ง Google ระบุว่าเปิดไว้เป็นค่าเริ่มต้นสำหรับการสมัครสมาชิกทั้งหมด คือวิธีหลักในตัวของ Google ในการลดการเลิกใช้งานโดยสมัครใจ
ในฝั่งการคืนเงิน Google Play มีช่องทางส่งหลักฐานของตัวเอง PendingRefundReviewNotification จะมาถึงเมื่อ chargeback ต้องให้นักพัฒนาตรวจสอบ และคุณมีเวลา 24 ชั่วโมงในการตอบผ่าน orders.reviewrefund สำหรับคำสั่งซื้อที่เกิดขึ้นหลังวันที่ 3 สิงหาคม 2026 เมื่อ chargeback สำเร็จ Google จะเรียกเก็บจากนักพัฒนาเป็นราคาซื้อหักค่าบริการของ Play บวกค่าธรรมเนียม chargeback ของธนาคาร
หน้ายกเลิกทำให้คุณเสียเงินเท่าไร
ข้อความรักษาลูกค้าดูเหมือนฟรี แต่ไม่ใช่ และค่าใช้จ่ายมาจากสามที่
ค่าประมวลผลในทุกการเปิดดูหน้า
Apple เรียก endpoint ของคุณเมื่อผู้สมัครสมาชิกที่ยังใช้งานอยู่เปิดดูหน้ารายละเอียดการสมัครสมาชิกที่มีปุ่ม Cancel ไม่ใช่เฉพาะตอนที่เขายกเลิก ทุกการเข้าชมคือคำขอที่เซิร์ฟเวอร์ของคุณต้องยืนยันตัวตน ค้นข้อมูล และตอบภายใน 700 ms มิฉะนั้น Apple จะใช้ข้อความเริ่มต้น นั่นตัดฟังก์ชันที่ต้อง cold start และบางครั้งใช้เวลาสองวินาทีออกไปเลย คุณต้องจ่ายค่าทรัพยากรที่พร้อมทำงานอยู่ตลอด บวกกับการอ่านฐานข้อมูลและการเรียก API ของบุคคลที่สามแบบเสียเงินที่ตรรกะการตัดสินใจของคุณใช้ในแต่ละคำขอ

ส่วนลดคือรายได้ที่คุณเลือกไม่เก็บ
ข้อเสนอโปรโมชันที่รักษาผู้สมัครสมาชิกไว้ได้คือเงินจริงที่เก็บไว้ได้ แต่ข้อเสนอที่ไปถึงคนที่ยังไงก็จะอยู่ต่ออยู่แล้วคือส่วนลดล้วนๆ นี่คือตัวอย่างประกอบ ไม่ใช่ตัวเลขมาตรฐาน แพ็กเกจรายเดือน $9.99 ที่เสนอลดครึ่งราคาเป็นเวลาสามเดือนจะเสียรายได้ $14.99 ต่อข้อเสนอที่ถูกรับ หากหนึ่งในสามของคนที่รับข้อเสนอจะอยู่ต่อในราคาเต็มอยู่แล้ว การรับข้อเสนอหนึ่งพันครั้งจะทำให้เสียส่วนลดประมาณ $5,000 ให้กับคนที่ไม่เคยต้องการมันเลย อีกฝั่งของบัญชีคือผู้สมัครสมาชิกที่กำลังจะออกไปจริงๆ
การคืนเงินที่ทางออกอันน่าหงุดหงิดชักนำมา
Apple ยังคงปุ่ม Cancel Subscription ไว้บนหน้า คุณจึงขังใครไว้ไม่ได้ แต่คุณยังทำให้คนรำคาญได้ ลูกค้าที่รู้สึกถูกกดดันมีอีกทางเลือกหนึ่ง คือขอให้ Apple คืนเงินค่าบริการครั้งล่าสุด เมื่อการคืนเงินเกิดขึ้นจริง เงินจะกลับไป ส่วนค่าประมวลผล พื้นที่จัดเก็บ การเรียก API และค่าคอมมิชชันพันธมิตรที่ผูกกับผู้สมัครสมาชิกคนนั้นก็ถูกใช้ไปแล้ว ต้นทุนเหล่านี้ไม่มีข้อความรักษาลูกค้าใดเรียกคืนได้
วิธีใช้ข้อความรักษาลูกค้าโดยไม่ทำให้อัตราการคืนเงินสูงขึ้น
ให้มองหน้ายกเลิกเป็นที่สำหรับความถูกต้อง ไม่ใช่ความแยบยล กฎไม่กี่ข้อต่อไปนี้ช่วยให้คุณอยู่ฝั่งที่ถูกต้องของเส้นแบ่งเรื่องการคืนเงิน:
- ตัดสินใจเป็นรายผู้สมัครสมาชิก ใช้ originalTransactionId ในคำขอของ Apple เพื่อดูการใช้งานล่าสุด เสนอส่วนลดหรือแพ็กเกจที่ถูกกว่าให้คนที่ใช้งานผลิตภัณฑ์อยู่ ส่งข้อความสั้นๆ ที่ตรงไปตรงมาให้คนที่ไม่ได้เปิดแอปมาหลายสัปดาห์
- ตอบให้เร็ว คำนวณการตัดสินใจไว้ล่วงหน้าเมื่อข้อมูลการใช้งานเปลี่ยน เพื่อให้คำขอเหลือเพียงการค้นหาครั้งเดียวซึ่งเสร็จได้สบายๆ ภายใน 700 ms
- เขียนข้อความเริ่มต้นสำหรับทุกผลิตภัณฑ์และทุกภาษา หากไม่มี การเรียกที่ล้มเหลวหมายความว่าจะไม่มีข้อความใดเลย
- จับตา AUTO_RENEW_DISABLED อย่างใกล้ชิด หาก CONSUMPTION_REQUEST ตามมาสำหรับ originalTransactionId เดียวกัน สิ่งที่คุณเห็นคือคำขอคืนเงิน ไม่ใช่การยกเลิก และนาฬิกา 12 ชั่วโมงได้เริ่มเดินแล้ว
- ตอบทุก CONSUMPTION_REQUEST ที่คุณได้รับอนุญาตให้ตอบ RefundHalt ส่งข้อมูลการใช้งานที่ถูกต้องให้ Apple ภายในกรอบเวลา 12 ชั่วโมง และตอบการตรวจสอบ chargeback ของ Google Play ภายใน 24 ชั่วโมง เพราะนี่เป็นเพียงสองช่วงเวลาที่ร้านค้าแต่ละแห่งขอฟังฝั่งของคุณ
คุ้มไหมที่จะขอสิทธิ์เข้าใช้งานจาก Apple
หากคุณขายการสมัครสมาชิกแบบต่ออายุอัตโนมัติและรองรับ App Store Server Notifications V2 อยู่แล้ว คำตอบน่าจะเป็นคุ้ม หน้ายกเลิกคือจุดสุดท้ายที่คุณจะเข้าถึงผู้สมัครสมาชิกได้ก่อนที่เขาจะจากไป และการเปลี่ยนแพ็กเกจทำให้คุณเสียน้อยกว่าการเสียเขาไปทั้งหมด เพียงแต่ต้องเผื่องบไว้สำหรับ endpoint ที่ต้องตอบทุกครั้งที่มีการเปิดดูหน้าการสมัครสมาชิก และวางแนวป้องกันการคืนเงินไว้ในจุดที่การคืนเงินเกิดขึ้นจริง
คำถามที่พบบ่อย
- Retention Messaging API ของ Apple คืออะไร
- เป็น API แบบ server-to-server ที่ให้นักพัฒนาเลือกข้อความที่ผู้สมัครสมาชิกจะเห็นหลังแตะ Cancel Subscription บนการสมัครสมาชิกแบบต่ออายุอัตโนมัติ Apple รองรับสี่ประเภท ได้แก่ ข้อความ ข้อความพร้อมรูปภาพ ข้อเสนอให้เปลี่ยนแพ็กเกจ และข้อเสนอโปรโมชัน เอกสารของ Apple ยังระบุว่าเป็นรุ่นก่อนเปิดตัวที่นักพัฒนาต้องขอเข้าร่วม
- endpoint Get Retention Message ของฉันต้องตอบเร็วแค่ไหน
- ภายใน 700 ms บน production หากเซิร์ฟเวอร์ของคุณช้ากว่านั้นหรือล้มเหลว Apple จะแสดงข้อความเริ่มต้นที่ตั้งค่าไว้สำหรับผลิตภัณฑ์และภาษานั้น และจะไม่แสดงอะไรเลยหากไม่มีข้อความเริ่มต้น คุณยังต้องผ่านการทดสอบประสิทธิภาพใน sandbox ที่ประมาณ 700 ms ก่อนที่ Apple จะยอมให้คุณตั้งค่า URL สำหรับ production
- ข้อความรักษาลูกค้าจะแสดงเมื่อลูกค้าขอคืนเงินหรือไม่
- ไม่ Apple แสดงข้อความรักษาลูกค้าบนหน้าจอ Confirm Cancellation หลังลูกค้าแตะ Cancel Subscription คำขอคืนเงินผ่าน reportaproblem.apple.com หรือหน้าต่างขอคืนเงินในแอปที่เปิดด้วย beginRefundRequest และสิ่งเดียวที่นักพัฒนาส่งเข้าไปได้คือการตอบ CONSUMPTION_REQUEST ภายใน 12 ชั่วโมง หากลูกค้ายินยอม
- จะแยกคำขอคืนเงินออกจากการยกเลิกใน App Store Server Notifications ได้อย่างไร
- ดูจากการแจ้งเตือนเรื่องการต่ออายุอย่างเดียวไม่ได้ การยกเลิกจากหน้าการตั้งค่า Subscriptions และคำขอคืนเงินที่ทำผ่านแอปของคุณต่างก็สร้าง DID_CHANGE_RENEWAL_STATUS พร้อม subtype AUTO_RENEW_DISABLED เหมือนกัน CONSUMPTION_REQUEST สำหรับธุรกรรมเดียวกัน และการแจ้งเตือน REFUND หรือ REFUND_DECLINED ที่ตามมาภายหลัง คือสัญญาณว่ามีคำขอคืนเงินเกิดขึ้น
- Google Play ให้นักพัฒนาแสดงข้อความเมื่อผู้ใช้ยกเลิกได้หรือไม่
- เอกสารวงจรชีวิตการสมัครสมาชิกของ Google ไม่ได้อธิบายฟีเจอร์แบบนั้น นักพัฒนาจะได้รับการแจ้งเตือน SUBSCRIPTION_CANCELED หลังเกิดเหตุ และอ่านฟิลด์ userInitiatedCancellation เพื่อดูเหตุผลที่ผู้ใช้ยกเลิกได้ การหยุดชั่วคราว (pause) ซึ่งเปิดไว้เป็นค่าเริ่มต้นสำหรับการสมัครสมาชิกทั้งหมด คือเครื่องมือหลักในตัวของ Google Play ในการรับมือกับการเลิกใช้งานโดยสมัครใจ
แหล่งข้อมูลและเนื้อหาเพิ่มเติม
- Apple Developer Documentation: Retention Messaging API
- Apple Developer Documentation: Setting up your Get Retention Message endpoint
- Apple Developer Documentation: Upload Message
- Apple Developer Documentation: Retention Messaging API changelog
- Apple Developer Documentation: notificationType
- Apple Developer Documentation: Send Consumption Information
- Apple Support: Request a refund for apps or content that you bought from Apple
- Google Play Billing: Subscription lifecycle
- Google Play Billing: Real-time developer notifications reference
- Google Play Console Help: Updates to refund protection and chargeback cost responsibility
RefundHalt
ระบบอัตโนมัติสำหรับการคืนเงินบน App Store และ Google Play
อ่านต่อ
ค่าธรรมเนียม alternative billing ของ Google Play ในสหรัฐฯ เริ่มแล้วตั้งแต่ 1 ตุลาคม ส่วนการคืนเงินของยอดขายเหล่านั้นยังเป็นหน้าที่ของคุณ
ตั้งแต่วันที่ 1 ตุลาคม 2026 Google Play เก็บค่าธรรมเนียมบริการจากการซื้อในสหรัฐฯ ที่ทำผ่าน alternative billing หรือ external content links แต่ Google ยังไม่ดูแลการคืนเงินเลยแม้แต่รายการเดียว บทความนี้สรุปตารางค่าธรรมเนียม วิธีรายงานการคืนเงินกลับไปยัง Google และต้นทุนของการคืนเงินแต่ละครั้ง
DeviceCheck ของ Apple จดจำโทรศัพท์ของผู้ที่ใช้การคืนเงินในทางมิชอบ แม้เขาจะสมัครบัญชีใหม่แล้วก็ตาม
การแบนบัญชีและตัวระบุการซื้อใช้ไม่ได้ผลทันทีที่ผู้ใช้การคืนเงินในทางมิชอบสร้างบัญชีใหม่ DeviceCheck ของ Apple และ device recall ของ Google Play เก็บข้อมูลไม่กี่บิตต่ออุปกรณ์ไว้บนเซิร์ฟเวอร์ของสโตร์ บทความนี้อธิบายว่าเก็บอะไร ควรตั้งค่าเมื่อใด และช่วยคุณประหยัดอะไรได้บ้าง