Apps Kit SDK logoApps Kit SDK
Tài liệu · Cổng thông tin Apps Kit SDK

Paywall

Nhóm Paywall trên thanh bên (Sản phẩm, Nhóm sản phẩm, Mẫu paywall) là một khu vực tính năng độc lập để xây dựng và bán gói đăng ký cùng sản phẩm mua một lần trong ứng dụng mà không cần viết mã giao diện paywall. Ba thành phần này liên kết với nhau theo một quy trình cố định: Sản phẩm (Product) là một SKU riêng lẻ trên cửa hàng (gói cơ bản của gói đăng ký, ưu đãi hoặc sản phẩm mua một lần), được nhập từ Google Play, App Store, Amazon hoặc nhập thủ công; Nhóm sản phẩm (Offering) tập hợp nhiều Sản phẩm của một ứng dụng thành một nhóm có tên, với một sản phẩm được đánh dấu là lựa chọn mặc định; và Mẫu paywall (Paywall Template) là thiết kế màn hình thực tế — được tạo trực quan trong Portal — dùng để hiển thị các sản phẩm của một Offering và khởi chạy giao dịch mua. Sau khi xuất bản, mẫu được liên kết với các vị trí hiển thị thực tế trong ứng dụng tại Chi tiết ứng dụng → Paywall cho các placeholder của ứng dụng, như đã mô tả ở phần trước của hướng dẫn này.

Sản phẩm

Trang Sản phẩm (/paywall-products) hiển thị một bảng phẳng cho tất cả ứng dụng bạn quản lý, gồm: #, Tiêu đề, Ứng dụng (biểu tượng, tên và tên package), Cửa hàng (biểu tượng nền tảng — Google Play, Apple App Store hoặc Amazon Appstore — hoặc dấu gạch ngang màu xám nếu không xác định được cửa hàng của ứng dụng), Định danh trên cửa hàng (chuỗi mã sản phẩm/SKU trên cửa hàng, hiển thị bằng phông chữ đơn cách), Thời hạn, nhãn Trạng thái (Hoạt động/Không hoạt động), Ngày tạo và các thao tác trên từng hàng. Ô tìm kiếm đối chiếu theo tiêu đề, SKU, mô tả, tên ứng dụng hoặc tên package; các bộ lọc Ứng dụng, Trạng thái, Cửa hàng và Thời hạn giúp thu hẹp danh sách hơn nữa. Phần phân trang ở cuối bảng được dùng thống nhất trên các trang Paywall.

1789744318189-products-list.png

Nhấp Tạo sản phẩm (góc trên bên phải) để tạo sản phẩm mới, hoặc nhấp vào một hàng hiện có để chỉnh sửa. Cả hai cách đều đưa bạn đến trình chỉnh sửa gồm hai bảng: trước tiên, chọn Ứng dụng chứa sản phẩm (các mục khác chỉ được bật sau khi bạn chọn ứng dụng), rồi chọn Nhập từ cửa hàng của ứng dụng đó hoặc Thêm sản phẩm để tạo thủ công.

1789744336705-products-tree-grouped.png

Khi ứng dụng đã có sản phẩm, bảng bên trái nhóm chúng theo loại — Sản phẩm thủ công (được tạo trực tiếp trong Portal), Sản phẩm mua một lần và từng Gói đăng ký. Bạn có thể mở rộng mỗi gói đăng ký để xem các Gói cơ bản và Ưu đãi nằm trong từng gói cơ bản (gói cơ bản là đơn vị xác định chu kỳ thanh toán/giá của cửa hàng trong cùng một gói đăng ký — ví dụ, gói cơ bản "Pro hằng tuần" và "Pro hằng tháng" có thể cùng thuộc một gói đăng ký).

Nhập từ Google Play (Android). Với ứng dụng Google Play, Nhập → Kết nối Google Play sẽ hướng dẫn bạn thiết lập một lần qua hai phần, thay vì chỉ hiển thị một biểu mẫu:

1789744372767-products-import-google-play.png

  • 1. Google Cloud — tạo tài khoản dịch vụ trong Google Cloud Console, bật Google Play Android Developer API cho tài khoản đó và tải khóa JSON xuống.
  • 2. Play Console — mời địa chỉ email của tài khoản dịch vụ đó vào Play Console với quyền Xem thông tin ứng dụng và Quản lý sự hiện diện trên cửa hàng (hộp thoại hiển thị email để bạn sao chép và cung cấp liên kết trực tiếp đến cả hai console).

Tải lên khóa JSON của tài khoản dịch vụ đã tải xuống, tùy chọn đánh dấu Bao gồm các gói cơ bản và ưu đãi không hoạt động (mặc định tắt — chỉ nhập các mục đang hoạt động trong Play Console), rồi nhấp Lấy sản phẩm. Mỗi kết quả trở thành một sản phẩm nháp được điền sẵn tiêu đề, mô tả, bản xem trước giá, trạng thái và — riêng với Google — toàn bộ cây gói cơ bản/ưu đãi (ID gói đăng ký, ID gói cơ bản, cùng loại, giá, các giai đoạn và điều kiện áp dụng của từng ưu đãi). Chạy lại thao tác nhập sẽ làm mới các bản nháp chưa lưu từ Play Console mà không thay đổi bất kỳ mục nào bạn đã lưu.

Nhập từ Apple App Store (iOS). Với ứng dụng App Store, Nhập sản phẩm App Store yêu cầu Bundle ID của ứng dụng (được điền sẵn), Key ID, Issuer ID và tệp khóa In-App Purchase (.p8) tải lên — ba thông tin xác thực này đều lấy từ trang Users and Access → Integrations → In-App Purchase trong App Store Connect, được liên kết trực tiếp trong hộp thoại. Lấy sản phẩm chỉ được bật khi có đủ Key ID, Issuer ID và tệp .p8. Do cấu trúc phân cấp riêng của Apple (nhóm gói đăng ký → sản phẩm), sản phẩm được nhập không có cây gói cơ bản như của Google; trạng thái được xác định từ trạng thái xét duyệt thực tế của Apple, nên chỉ gói đăng ký thực sự ở trạng thái APPROVED mới được nhập với trạng thái Hoạt động — mọi mục còn đang xét duyệt, cần nhà phát triển xử lý hoặc bị từ chối đều được nhập với trạng thái Không hoạt động.

Nhập từ Amazon Appstore. Quy trình của Amazon sử dụng tệp thay vì thông tin xác thực: tải lên JSON danh mục sản phẩm (bản xuất sản phẩm từ Amazon App Tester) rồi nhấp Nhập sản phẩm. Các mục có loại SUBSCRIPTION trở thành sản phẩm đăng ký; các mục ENTITLED và CONSUMABLE trở thành sản phẩm mua một lần. Amazon không có khái niệm gói cơ bản, nên mỗi sản phẩm được nhập mang trực tiếp Amazon Product ID/SKU thay vì cây gói cơ bản.

Tạo sản phẩm thủ công. Nhấp Thêm sản phẩm để tạo bản nháp mà bạn tự nhập định danh trên cửa hàng thay vì nhập dữ liệu từ cửa hàng — hữu ích khi bạn chưa thiết lập sản phẩm trong console của cửa hàng hoặc muốn chuẩn bị sản phẩm trong Portal trước. Các trường định danh hiển thị tùy thuộc vào cửa hàng của ứng dụng: Google Play yêu cầu ID gói đăng ký, ID gói cơ bản và Chu kỳ thanh toán; App Store yêu cầu Nhóm gói đăng ký và ID sản phẩm; Amazon yêu cầu ID sản phẩm và loại sản phẩm. Bạn cũng có thể đánh dấu sản phẩm là mua một lần thay vì đăng ký định kỳ.

Khi một trường đã được điền qua lần nhập thành công, trường đó chuyển sang chỉ đọc với chú giải "Được nhập từ cửa hàng. Hãy chỉnh sửa trong Google Play / App Store / Amazon, rồi nhập lại" — bạn cần thay đổi trong console của cửa hàng tương ứng và chạy lại thao tác nhập, thay vì chỉnh sửa trực tiếp tại đây.

1789744448829-products-base-plan-offers.png

Bất kể cửa hàng nào, mỗi sản phẩm đều có Tiêu đề (100 ký tự), Mô tả bắt buộc (500 ký tự), các thẻ Tính năng / Lợi ích tùy chọn, Tham số tùy chỉnh dạng khóa/giá trị và Trạng thái (Hoạt động/Không hoạt động) mà bạn có thể chuyển đổi ngay cả với sản phẩm được nhập. Thời hạn có thể là hằng tuần, hằng tháng, 3 tháng, 6 tháng, hằng năm, trọn đời hoặc Thời hạn tùy chỉnh nhập dưới dạng văn bản tự do. Các sản phẩm đã lưu sẽ được gắn vào một Offering ở bước tiếp theo.

Khi xóa một sản phẩm vẫn đang được Offering hoặc Mẫu paywall tham chiếu, Portal không âm thầm báo lỗi — hệ thống hiển thị bước xác nhận thứ hai, nêu rõ sản phẩm vẫn đang được gắn ở đâu, đồng thời yêu cầu bạn chủ động đánh dấu ô xác nhận rằng sản phẩm cũng sẽ bị gỡ khỏi những nơi đó trước khi cho phép xóa.

Nhóm sản phẩm (Offering)

Một Offering tập hợp nhiều Sản phẩm của cùng một ứng dụng thành một nhóm có tên để Mẫu paywall hiển thị — đây là lớp quyết định paywall được phép bán những sản phẩm nào và sản phẩm nào được chọn sẵn.

1789744472318-offerings-list.png

Trang Nhóm sản phẩm (/paywall-offerings) liệt kê #, Tên Offering, Ứng dụng, số lượng Sản phẩm, Trạng thái, Ngày tạo và các thao tác, với cơ chế tìm kiếm kết hợp bộ lọc Ứng dụng/Trạng thái giống trang Sản phẩm. Nhấp Tạo Offering để bắt đầu.

1789744566510-offerings-edit-products.png

Mỗi Offering thuộc về đúng một Ứng dụng — hãy chọn ứng dụng trước, vì lựa chọn này quyết định những sản phẩm nào có thể được chọn (đổi Ứng dụng sau đó sẽ đặt lại các lựa chọn đang thực hiện). Điền Tên (100 ký tự) và Mô tả tùy chọn (500 ký tự), rồi dùng danh sách đánh dấu Sản phẩm trong Offering để chọn những sản phẩm của ứng dụng đó (bao gồm từng biến thể gói cơ bản) thuộc Offering này — có sẵn thao tác nhanh Chọn tất cả và ô tìm kiếm riêng. Mỗi sản phẩm được đánh dấu đều có nút Mặc định riêng; nhấp nút này để đặt sản phẩm đó làm gói mặc định/được chọn sẵn của Offering, đồng thời tự động bỏ đánh dấu sản phẩm mặc định trước đó, bảo đảm mỗi Offering luôn có đúng một sản phẩm mặc định. Bạn phải chọn ít nhất một sản phẩm mới có thể lưu.

Một Mẫu paywall được liên kết với đúng một Offering (thiết lập trong hộp thoại Cấu hình ứng dụng của mẫu, được mô tả ở phần tiếp theo) — mỗi thẻ giá bạn đặt trên vùng thiết kế của mẫu sẽ được liên kết với một sản phẩm cụ thể lấy từ Offering đã liên kết. Chính liên kết này quyết định những sản phẩm và mức giá mà paywall có thể hiển thị.

Mẫu paywall

Mẫu paywall là nơi bạn thiết kế trực quan màn hình paywall thực tế — không cần viết mã giao diện native. Mẫu được tạo một lần, liên kết với một ứng dụng và một Offering, đồng thời có thể được dịch sang nhiều ngôn ngữ; sau khi xuất bản, mẫu có thể được gắn vào các vị trí hiển thị thực tế trong Chi tiết ứng dụng.

1789744608353-paywall-templates-list.png

Danh sách mẫu

Trang Mẫu paywall (/paywall-templates) liệt kê mọi paywall bạn đã tạo: #, Tên mẫu, Trạng thái (Đã xuất bản/Bản nháp), các Ứng dụng được gán, Ngày cập nhật và các thao tác. Bộ lọc Trạng thái và Ứng dụng giúp thu hẹp danh sách, còn ô tìm kiếm đối chiếu theo tên.

Tạo paywall mới

Nhấp Tạo paywall sẽ cung cấp hai cách bắt đầu: Tạo từ đầu ("Mở một màn hình điện thoại trống và thêm các stack, văn bản, gói sản phẩm, nút và liên kết pháp lý của riêng bạn") hoặc Dùng mẫu ("Chọn một paywall có sẵn và tạo bản nháp mới với cùng vùng thiết kế và các thành phần").

1789744746399-paywall-create-picker.png

Dùng mẫu mở thư viện gồm Mẫu mặc định — một số thiết kế khởi đầu tích hợp sẵn (mỗi thiết kế có tên và mô tả riêng) mà bạn có thể sử dụng làm nền và tùy chỉnh hoàn toàn — cùng Mẫu của bạn, là các mẫu đã lưu trước đó trong tài khoản. Chọn một thẻ bất kỳ sẽ sao chép vùng thiết kế và các thành phần của mẫu đó thành bản nháp mới; do các liên kết sản phẩm không được sao chép theo, bạn cần ánh xạ lại từng thẻ giá đến Offering của mình sau đó. Ngược lại, Tạo từ đầu mở một vùng thiết kế hoàn toàn trống.

1789744771801-paywall-use-template-gallery.png

Thiết kế paywall (vùng thiết kế)

Mở một mẫu — mới hoặc có sẵn — sẽ đưa bạn vào trình thiết kế.

1789744792287-paywall-builder-overview.png

Thanh đầu trang (tiêu đề, biểu tượng bút chì ngay bên cạnh để đổi tên, Cấu hình ứng dụng, nút chuyển Bản nháp / Đang phát hành, bộ chọn ngôn ngữ và Xóa trắng / Hủy bản nháp / Lưu bản nháp / Xuất bản) nằm trên một hàng phía trên không gian làm việc. Bảng bên trái chuyển đổi giữa Lớp — cây gồm mọi phần tử hiện có trên vùng thiết kế, kèm các nút sao chép/dán stack — và Thêm thành phần — bảng các khối để chèn, xuất hiện khi bạn nhấp + trên một stack bất kỳ. Bảng ở giữa là bản xem trước trực tiếp trong khung điện thoại theo kích thước thực tế; bảng bên phải là Bảng thuộc tính của phần tử đang được chọn, chia thành Nội dung, Bố cục, Thứ tự lớp, Giao diện và Hành động.

1789744812066-paywall-add-components.png

Bảng thành phần được nhóm theo mục đích: các khối Cơ bản (Văn bản, Hình ảnh, GIF, Nút đóng, Video và các vùng chứa Stack — dọc, ngang hoặc xếp lớp — cùng một khối Đầu trang tổng hợp và một vùng chứa Tùy chỉnh trống); các khối Paywall (Gói sản phẩm — thẻ giá có thể nhấp với bảy biến thể: Đơn giản, Nổi bật, Nhỏ gọn, Dùng thử miễn phí, Giảm giá theo phần trăm, Giảm giá cố định và Giá ưu đãi ban đầu — cùng Nút mua, Nút mua một lần và các nút Thanh toán nhanh); các khối Tương tác (Tab, để chuyển giữa các nhóm gói như Hằng tháng/Hằng năm; Công tắc; Nút; Băng chuyền); và các khối Nội dung (Trích dẫn đánh giá từ người dùng, Danh sách tính năng, Huy hiệu, Huy hiệu "Giải thưởng"/ưu đãi tốt nhất và Liên kết pháp lý đến Điều khoản/Quyền riêng tư).

Liên kết dữ liệu giá

1789744829200-paywall-package-product-data.png

Mỗi thẻ Gói sản phẩm có danh sách thả xuống Gói trong Offering trong phần Nội dung, chỉ chứa các sản phẩm từ Offering được đặt trong Cấu hình ứng dụng (Gói đăng ký → Gói cơ bản → Ưu đãi ưu tiên, theo thứ tự đó) — chọn một mục sẽ liên kết thẻ với đúng sản phẩm đó. Bảng thuộc tính sau đó hiển thị bản xem trước Dữ liệu sản phẩm chỉ đọc, cập nhật trực tiếp (tiêu đề, mô tả, bản xem trước giá và tính năng) lấy từ chính sản phẩm đó, kèm gợi ý rằng bạn cũng có thể tham chiếu dữ liệu này ở nơi khác trên vùng thiết kế bằng các token giá như {planKey.price}. Nếu bố cục hiển thị của thẻ không khớp với yêu cầu thực tế của gói đã chọn (ví dụ: thẻ giá thông thường được liên kết với sản phẩm có cấu hình dùng thử miễn phí), Bảng thuộc tính sẽ cảnh báo và cung cấp thao tác nhanh Áp dụng bố cục [x] để giữ hai phần nhất quán. Nút mua và thẻ giá cũng có thể được giới hạn bằng Hiển thị trong tab, để thẻ chỉ xuất hiện khi tùy chọn Tab tương ứng được chọn.

Cấu hình ứng dụng là nơi xác định ứng dụng và Offering cung cấp sản phẩm cho mẫu:

1789744847559-paywall-configure-app.png

Chọn một Ứng dụng ở bên trái, rồi chọn một Offering của ứng dụng đó ở bên phải (mỗi tùy chọn hiển thị trước khóa của Offering và tối đa năm khóa gói sản phẩm thuộc Offering đó) — tại mỗi thời điểm, một mẫu chỉ áp dụng cho đúng một ứng dụng và một Offering.

Ngôn ngữ và bản dịch

1789744871233-paywall-language-dropdown.png

Danh sách thả xuống ngôn ngữ trên thanh đầu trang liệt kê ngôn ngữ mặc định cùng mọi ngôn ngữ bạn đã thêm, mỗi ngôn ngữ được gắn nhãn Mặc định, Đã dịch, Cần cập nhật hoặc Bản nháp. Quản lý ngôn ngữ cho phép thêm hoặc xóa ngôn ngữ (số lượng tối đa tùy theo gói dịch vụ); Dịch bằng AI dịch máy các ngôn ngữ đã chọn (cũng bị giới hạn tần suất theo gói dịch vụ, theo giờ/ngày). Bản dịch không phải là một bản sao bố cục riêng biệt — đó là lớp văn bản thay thế phủ lên thiết kế duy nhất bằng ngôn ngữ mặc định. Vì vậy, khi chọn ngôn ngữ không phải mặc định, vùng thiết kế chuyển sang chế độ "Có thể chỉnh sửa văn bản dịch, khóa kiểu hiển thị": bạn không thể thêm, di chuyển, đổi kích thước hoặc đổi kiểu hiển thị của bất kỳ phần tử nào trong khi dịch, nhưng Bảng thuộc tính của mỗi trường văn bản sẽ chuyển sang chế độ nhập bản dịch, và nội dung bạn nhập tại đó chỉ được lưu cho ngôn ngữ tương ứng.

Bản nháp, bản đang phát hành và xuất bản

Nút chuyển Bản nháp / Đang phát hành thay đổi phiên bản mẫu bạn đang xem — bản Đang phát hành chỉ cho phép đọc, nên bạn cần chuyển sang Bản nháp trước khi chỉnh sửa. Xóa trắng xóa toàn bộ nội dung vùng thiết kế ở phía máy khách (không có gì bị xóa trên máy chủ cho đến khi bạn lưu). Hủy bản nháp xóa vĩnh viễn bản nháp chưa lưu và tải lại phiên bản đã xuất bản gần nhất. Lưu bản nháp lưu trạng thái hiện tại của vùng thiết kế thành bản nháp mà không ảnh hưởng đến bản đang phát hành. Xuất bản chỉ được bật khi đã cấu hình đúng một ứng dụng và một Offering, đồng thời mọi thẻ Gói sản phẩm đều đã được liên kết với sản phẩm thực; khi các điều kiện này được đáp ứng, thao tác này đưa bản nháp hiện tại thành phiên bản đã xuất bản/đang phát hành mới — nhờ đó, mẫu có thể được gán cho một placeholder của ứng dụng tại Chi tiết ứng dụng → Paywall cho các placeholder của ứng dụng.