# Người dùng hủy dùng thử miễn phí ngay: lý do và cách xử lý

> Trên iOS, nhiều lượt dùng thử miễn phí bị hủy ngay trong phút đầu nhưng quyền truy cập vẫn còn đến hết hạn. Nguyên nhân và những gì Apple cho phép để giữ chân.

Trang gốc: [Người dùng hủy dùng thử miễn phí ngay: lý do và cách xử lý](https://devoria.fr/vi/blog/huy-dung-thu-mien-phi-ios-ly-do-cach-xu-ly)
Tác giả: [Mehdi Azizi](https://devoria.fr/vi/mehdi-azizi)
Ngày đăng: 2026-11-04
Lần sửa nội dung gần nhất: 2026-11-04


Trên iOS, một lượt dùng thử miễn phí bị hủy ngay trong phút đầu chưa phải là lượt dùng thử đã mất. **Hủy chỉ có nghĩa là tắt gia hạn tự động: người dùng vẫn giữ quyền truy cập đến hết thời gian dùng thử, và có thể bật lại.** Hủy sớm không khiến họ mất gì, và Apple còn khuyên họ hủy ít nhất 24 giờ trước khi hết hạn. Để giữ những lượt dùng thử này, bạn hãy cho người dùng thấy giá trị trước ngày kết thúc, giữ đúng mọi lời hứa ghi trên paywall, và chỉ dùng những đòn bẩy Apple cho phép.

Mình tự phát hành app iOS của mình, và bài này dựa trên số liệu của chính mình. Trên TradaZen, app giả lập giao dịch của mình, cứ ba lượt dùng thử gói năm bắt đầu từ ngày 20 đến 23 tháng 10 năm 2026 thì có hai lượt bị hủy. Trên Nolera, app thử đồ bằng AI của mình, toàn bộ lượt dùng thử bắt đầu trong một tháng đều bị hủy, từ 2 đến 42 phút sau khi bắt đầu. Các quy định được trích dẫn lấy từ các trang của Apple, mình đọc lại vào ngày 3 tháng 11 năm 2026.

## "Đã hủy" trên iOS nghĩa là gì

Khi ai đó chạm vào Cancel Subscription trong thời gian dùng thử, gói đăng ký không dừng lại. Phía máy chủ, Apple gửi một [thông báo thay đổi trạng thái gia hạn](https://developer.apple.com/documentation/appstoreservernotifications/notificationtype): `DID_CHANGE_RENEWAL_STATUS`, với kiểu phụ `AUTO_RENEW_DISABLED`. Việc hết hạn đến sau, trong một thông báo khác, `EXPIRED` với kiểu phụ `VOLUNTARY`: gói đăng ký đã hết hạn sau khi khách hàng tắt gia hạn.

Apple cũng nói rõ điều này với người dùng. Trên trang App Store [Giới thiệu về mua hàng trong ứng dụng](https://apps.apple.com/fr/story/id1436214772): nếu bạn hủy, gói đăng ký sẽ kết thúc vào cuối chu kỳ thanh toán hiện tại. Cho đến lúc đó, người dùng có thể quay lại và bật lại gia hạn.

Nếu bạn dùng RevenueCat, sự kiện này có tên `CANCELLATION`. [Tài liệu về sự kiện](https://www.revenuecat.com/docs/integrations/webhooks/event-types-and-fields) của họ ghi lý do trong `cancel_reason`. `UNSUBSCRIBE` nghĩa là người đăng ký tự hủy, tại thời điểm họ hủy, không phải lúc hết hạn. `BILLING_ERROR` nghĩa là cửa hàng không trừ tiền được từ phương thức thanh toán.

> Trên TradaZen, trong một tháng, hơn một phần tư số "hủy" thực ra là lỗi thanh toán, không phải người dùng tự hủy. Trước khi kết luận bất cứ điều gì, hãy tách hai loại này ra.

## Vì sao nhiều lượt dùng thử bị hủy ngay trong phút đầu

### Apple khuyên hủy sớm

[Trang hỗ trợ của Apple về việc hủy](https://support.apple.com/fr-fr/118428) viết: nếu bạn đăng ký dùng thử và không muốn gia hạn, hãy hủy ít nhất 24 giờ trước khi thời gian dùng thử kết thúc. Vì quyền truy cập vẫn còn đến cuối, hủy ngay không mất gì. **Một lượt hủy trong phút đầu có thể chỉ là cách phòng khi quên, chứ không phải đánh giá về app của bạn.**

Mình không tìm thấy trang nào của Apple hứa sẽ gửi email nhắc trước khi hết dùng thử. Đừng trông chờ vào điều đó, và đừng hứa thay Apple với người dùng của bạn.

### Bảng thanh toán gây bất ngờ

Giao dịch kết thúc trên bảng thanh toán của Apple, thứ mà app của bạn không kiểm soát. Nếu paywall của bạn làm nổi bật giá theo tuần, thì trên các app của mình, bảng thanh toán lại hiện số tiền cả năm sẽ bị trừ khi hết dùng thử. Sự chênh lệch đó gây bất ngờ. Apple cũng yêu cầu, trên [trang về gói đăng ký](https://developer.apple.com/app-store/subscriptions/), ghi rõ trong luồng mua thời gian dùng thử và giá sẽ tính sau đó.

Trên Nolera, paywall lúc đó làm nổi bật giá theo tuần. Từ ngày 12 đến 20 tháng 10 năm 2026, hơn bốn trên năm người đã chạm nút dùng thử rồi đóng bảng của Apple mà không xác nhận. Sau đó, tất cả các lượt dùng thử đã xác nhận đều bị hủy.

### Bắt đầu dùng thử "để xem", trước khi kịp thấy gì

Trên Nolera, các lượt hủy đến sớm, thường là trước khi app kịp giữ lời hứa. Một người rời app 40 giây sau khi bắt đầu dùng thử. Một người khác chụp 10 món đồ trong 5 phút mà không thấy bộ trang phục nào, rồi dừng ở màn hình yêu cầu ảnh toàn thân. Một người nữa rời đi 90 giây sau lần thử đồ đầu tiên. Một người khác ở 30 phút trên màn hình chính, nơi có hiển thị thẻ "Quản lý dùng thử". Không ai trong số những người đã hủy quay lại app.

### Không phải do thông báo

TradaZen không gửi thông báo nào trong thời gian dùng thử. Đây là quy tắc của app, đã kiểm tra trong code. Vậy mà các lượt hủy nhanh vẫn xảy ra: nghĩa là không phải thông báo của app đã gây ra chúng.

## Hai kiểu hủy không nên nhầm lẫn

Không phải lượt dùng thử bị hủy nào cũng kể cùng một câu chuyện. Trên TradaZen, một phần tư số lượt hủy xảy ra trong vòng chưa đến 10 phút, và ba phần tư còn lại xảy ra sau 5 đến 63 giờ sử dụng. Đây là bảng mình dùng để đọc chúng.

| Thời điểm hủy        | Cách mình hiểu                          | Đòn bẩy                                            |
| -------------------- | --------------------------------------- | -------------------------------------------------- |
| Trong phút đầu       | Thận trọng, hoặc bất ngờ về giá         | Giá rõ ràng, trạng thái dùng thử hiển thị          |
| Trong phiên đầu tiên | Lời hứa chưa được thực hiện             | Cho thấy kết quả trước khi đòi bất kỳ công sức nào |
| Sau nhiều phiên      | App được thích, nhưng giá khó chấp nhận | Một gói rẻ hơn, một thông điệp trung thực          |
| Một hai ngày sau     | Người dùng không bao giờ mở lại app     | Một lý do để quay lại, được phép và có báo trước   |

Trường hợp thứ ba làm mình bất ngờ. Trên TradaZen, những người hủy muộn cũng tích cực như những người đã trả tiền: số phiên như nhau, số bài học như nhau. **Mức sử dụng không phân biệt được họ. Gói đăng ký thì có.** Vài người còn tiếp tục chơi sau khi đã hủy. Họ thích app, nhưng không chịu mức giá.

Trường hợp thứ tư thì khác. Những người này có một phiên đầu rất dài, không bao giờ mở lại app, rồi hủy trong Settings một ngày rưỡi đến hai ngày sau. Không màn hình nào trong app giữ được họ, vì họ không nhìn thấy nó.

## Những gì Apple cho phép để giữ một lượt dùng thử

| Đòn bẩy                                        | Apple nói gì                                         |
| ---------------------------------------------- | ---------------------------------------------------- |
| Hiển thị thời gian dùng thử và giá tính sau đó | Bắt buộc trong luồng mua                             |
| Hiển thị trạng thái gói đăng ký trong app      | Được khuyến nghị, kèm cách quản lý đơn giản          |
| Mở trang quản lý gói đăng ký từ app            | `showManageSubscriptions(in:)` cho phép làm việc này |
| Đưa ưu đãi giữ chân cho người đã tắt gia hạn   | Được gợi ý khi gói đăng ký chưa hết hạn              |
| Đề xuất một cấp gói đăng ký khác               | Được gợi ý, nếu phù hợp hơn với người dùng           |
| Hỏi lý do hủy                                  | Bảng khảo sát được nêu làm ví dụ                     |
| Hiển thị thông điệp trên màn hình hủy          | Có thể làm với Retention Messaging                   |

Các dòng này lấy từ [trang về gói đăng ký của Apple](https://developer.apple.com/app-store/subscriptions/), trừ dòng cuối, lấy từ tài liệu của Retention Messaging API. Trang về gói đăng ký cũng yêu cầu luôn để người dùng dễ dàng vào màn hình hệ thống nơi họ hủy. **Giữ một lượt dùng thử là cho người dùng lý do để ở lại, không bao giờ là làm việc rời đi khó hơn.**

Có hai đòn bẩy cần nói rõ hơn.

**Lời nhắc trước khi hết dùng thử.** Một thông báo đòi hỏi người dùng đã cho phép. Nếu thông báo dùng để bán hàng, [guideline 4.5.4](https://developer.apple.com/app-store/review/guidelines/#4.5.4) yêu cầu sự đồng ý rõ ràng, hiển thị trong app của bạn, và một cách để hủy nhận. Chi tiết có trong bài hướng dẫn của mình về [thông báo đẩy](https://devoria.fr/vi/blog/guideline-4-5-4-apple-tu-choi-thong-bao-day).

**Thông điệp trên màn hình hủy.** [Retention Messaging API](https://developer.apple.com/documentation/retentionmessaging) của Apple hiển thị thông điệp của bạn khi người dùng chạm Cancel Subscription, trên một trang xác nhận (Confirm Cancellation). Nút hủy vẫn ở đó. Trong RevenueCat, quy tắc "Is in free trial" cho phép nhắm vào các lượt dùng thử, theo [tài liệu của họ về API này](https://www.revenuecat.com/docs/platform-resources/apple-platform-resources/apple-retention-messaging-api). Quyền truy cập API phải xin Apple: mình đã xin cho các app của mình ngày 25 tháng 10 năm 2026, và đến ngày 28 vẫn chưa có phản hồi. Định dạng, giới hạn và cách thiết lập có trong bài hướng dẫn của mình về [Retention Messaging API](https://devoria.fr/vi/blog/retention-messaging-api-apple-thong-diep-huy-goi).

Có một đòn bẩy không dùng được ở đây: ưu đãi kéo người dùng quay lại (win-back offer). Theo [trợ giúp của App Store Connect](https://developer.apple.com/help/app-store-connect/manage-subscriptions/set-up-win-back-offers), ưu đãi này nhắm vào người từng đăng ký dựa trên thời gian đăng ký trả phí tối thiểu, ít nhất một tháng. Vì vậy, một lượt dùng thử chưa từng trả tiền thì không đủ điều kiện.

## Những gì bị cấm

| Cách làm                                          | Quy định của Apple                                                                               |
| ------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
| Giấu thời gian dùng thử hoặc giá tính sau đó      | [3.1.2(c)](https://developer.apple.com/app-store/review/guidelines/#3.1.2), trang về gói đăng ký |
| Khiến người dùng đăng ký bằng lý do giả           | 3.1.2(a), bị gỡ khỏi App Store                                                                   |
| Đòi làm một việc để nhận thứ đã trả tiền          | 3.1.2(a): đăng bài, chia sẻ danh bạ                                                              |
| Gài bẫy, gây áp lực, dựng thêm rào cản            | [5.6](https://developer.apple.com/app-store/review/guidelines/#5.6), quy tắc ứng xử              |
| Hứa một lời nhắc mà không có cơ chế nào thực hiện | 5.6, theo cách mình hiểu: hành vi gây hiểu lầm                                                   |

Guideline 5.6 rất rộng. Nó cấm gài bẫy khách hàng để họ mua thứ không muốn, và mọi hành vi thao túng khác, trong app hay bên ngoài. Trên TradaZen, mình từng bị từ chối theo 5.6 vì một paywall có nút X mở ra một ưu đãi thay vì đóng màn hình. Apple không chỉ ra yếu tố nào có vấn đề: mình kể lại những gì đã sửa trong [guideline 5.6 và paywall](https://devoria.fr/vi/blog/guideline-5-6-paywall-app-store-bi-tu-choi). Các thông tin bắt buộc trên paywall có trong [guideline 3.1.2](https://devoria.fr/vi/blog/guideline-3-1-2-app-bi-tu-choi-goi-dang-ky).

## Những gì mình đã thay đổi trên Nolera

**Giữ đúng lời hứa đã viết.** Luồng của Nolera từng hứa "Mình sẽ báo bạn 24 giờ trước khi trừ tiền". Khi app ngừng gửi thông báo trong thời gian dùng thử, câu này không thể để đó mà không có gì đứng sau. Một thẻ dùng thử trên màn hình chính của app giữ lời hứa đó: ngày kết thúc, giá, và nút "Quản lý dùng thử". Thẻ này vẫn được giữ, dù nó khiến việc hủy dễ hơn.

**Cho thấy bộ trang phục trước khi đòi công sức.** Sau khi mua, có chín màn hình phải thao tác trước bộ trang phục đầu tiên: camera, quần áo, ảnh toàn thân, số đo, thử đồ. Một nửa số lượt hủy xảy ra trước hoặc ngay sau lần thử đồ đầu tiên. Ảnh toàn thân và số đo đã được bỏ khỏi luồng đầu tiên. Món đồ đầu tiên được đưa thẳng đi thử, trên một dáng người mẫu do app cung cấp. Giờ chỉ còn bảy màn hình thay vì chín.

Mình chưa có đủ lượt dùng thử trên phiên bản này để nói nó giữ chân tốt hơn hay không. Khi có đủ, mình sẽ đọc lại các lượt hủy theo từng màn hình.

## Danh sách kiểm tra để đọc các lượt hủy của chính bạn

- **Tách người tự hủy khỏi lỗi thanh toán.** Trong RevenueCat, đọc `cancel_reason` của từng `CANCELLATION`.
- **Đo khoảng thời gian** từ lúc bắt đầu dùng thử đến lúc hủy: trong phút đầu, trong phiên đầu tiên, những ngày sau đó.
- **Ghi lại màn hình cuối cùng được xem** trước khi hủy, theo từng phiên bản.
- **So sánh mức sử dụng** của người hủy muộn và người trả tiền. Nếu như nhau, thứ cần xem lại là gói đăng ký, không phải app.
- **Xem ai vẫn tiếp tục dùng app** sau khi hủy: đó là những ứng viên tốt nhất cho một gói khác.
- **Đọc lại paywall của bạn**: thời gian dùng thử và giá tính sau đó phải đọc được mà không cần tìm.
- **Kiểm tra từng lời hứa** trên paywall: nếu bạn hứa một lời nhắc, phải có thứ gì đó thực hiện nó.
- **Giữ liên kết quản lý** hiển thị trong app, dù nó làm bạn mất vài lượt hủy.

Những lỗi paywall khác khiến người dùng bỏ đi ngay cả trước khi dùng thử có trong [7 lỗi paywall iOS](https://devoria.fr/vi/blog/paywall-ios-7-loi-nguoi-moi). Cách tạo chính lượt dùng thử được trình bày chi tiết trong [ưu đãi giới thiệu trên App Store Connect](https://devoria.fr/vi/blog/introductory-offer-app-store-connect-free-trial-ios).

## Một paywall trung thực ngay từ đầu

[iOS & Android Kit](https://devoria.fr/vi/kits/ios) được xây từ code khởi đầu của các app của mình: onboarding, paywall và gói đăng ký đã được code sẵn. Lộ trình bốn bước đưa bạn đến tận App Store, theo nhịp độ của bạn. Toàn bộ chuỗi được mô tả trên trang [gói đăng ký trong app iOS](https://devoria.fr/vi/expertise/goi-dang-ky-trong-ung-dung-ios).

Nếu bạn đang chuẩn bị phát hành app đầu tiên, [hãy làm bài chẩn đoán miễn phí](https://devoria.fr/vi/diagnostic): nó cho bạn biết điều gì thực sự đang cản trở dự án của bạn và gửi bạn danh sách kiểm tra chống bị Apple từ chối của mình.

## Câu hỏi thường gặp

### Vì sao người dùng hủy dùng thử miễn phí ngay sau khi bắt đầu?

Hủy ngay không khiến họ mất gì: quyền truy cập vẫn còn đến ngày dự kiến, và Apple khuyên hủy ít nhất 24 giờ trước khi hết hạn. Việc bất ngờ về giá tính sau khi hết dùng thử, hoặc app chưa kịp cho thấy giá trị, cũng góp phần.

### Người dùng hủy dùng thử miễn phí có còn giữ quyền truy cập không?

Có, đến hết kỳ hiện tại. Việc hủy trước hết là tắt gia hạn tự động, sau đó gói đăng ký hết hạn vào ngày dự kiến. Trang App Store nói rõ: gói đăng ký đã hủy sẽ kết thúc vào cuối chu kỳ thanh toán hiện tại.

### Hủy dùng thử có phải là vĩnh viễn không?

Không. Chừng nào lượt dùng thử chưa hết hạn, người dùng có thể bật lại gia hạn từ phần quản lý gói đăng ký. Khi đó Apple gửi cho bạn thông báo `DID_CHANGE_RENEWAL_STATUS` với kiểu phụ `AUTO_RENEW_ENABLED`.

### Apple có gửi lời nhắc trước khi hết dùng thử miễn phí không?

Mình không tìm thấy trang nào của Apple hứa điều đó. Trang hỗ trợ của Apple chỉ khuyên người dùng hủy ít nhất 24 giờ trước khi hết hạn. Nếu paywall của bạn hứa một lời nhắc, app của bạn phải thực hiện nó.

### Có thể đưa ưu đãi cho người hủy dùng thử không?

Apple gợi ý một ưu đãi giữ chân trong app cho người đăng ký đã tắt gia hạn, khi gói đăng ký chưa hết hạn. Retention Messaging cũng hiển thị thông điệp trên màn hình hủy. Còn ưu đãi kéo người dùng quay lại thì đòi hỏi ít nhất một tháng đăng ký trả phí.

### Cố níu kéo người đang dùng thử có bị cấm không?

Níu kéo bằng áp lực thì có. Guideline 5.6 cấm gài bẫy hoặc thao túng khách hàng, và Apple yêu cầu để người dùng dễ dàng vào màn hình hủy. Một thông điệp trung thực về giá trị của app, hoặc một gói rẻ hơn, vẫn được phép.


## Dự án của bạn

[iOS & Android Kit](https://devoria.fr/vi/kits/ios): Tạo app iPhone và Android với Claude Code: code khởi đầu từ các app của mình, lộ trình đến tận store và tất cả các kit. 2.799.000 ₫.

[Chẩn đoán: điều gì ngăn bạn có app iPhone](https://devoria.fr/vi/diagnostic): 7 câu hỏi, 60 giây: bạn biết điều gì thật sự cản bạn đăng app iPhone, lộ trình 4 bước và kit phù hợp với bạn.
