Android - Hiển thị paywall mới với Paywall Builder
Nếu bạn đã tùy chỉnh paywall bằng Paywall Builder, bạn không cần lo lắng về việc render nó trong code ứng dụng để hiển thị cho người dùng. Paywall đó đã bao gồm cả nội dung cần hiển thị lẫn cách hiển thị.
Hướng dẫn này chỉ dành cho paywall Paywall Builder mới yêu cầu SDK v3.0. Quy trình hiển thị paywall khác nhau tùy theo phiên bản Paywall Builder được sử dụng, paywall remote config, và chế độ Observer.
- Để hiển thị paywall Remote config, xem Render paywall được thiết kế bằng remote config.
- Để hiển thị paywall ở chế độ Observer, xem Android - Hiển thị paywall Paywall Builder trong chế độ Observer
Để lấy đối tượng viewConfiguration được dùng bên dưới, xem Fetch paywall Paywall Builder và cấu hình của chúng.
Các tham số yêu cầu:
| Tham số | Bắt buộc | Mô tả |
|---|---|---|
| viewConfiguration | bắt buộc | Cung cấp đối tượng AdaptyUI.LocalizedViewConfiguration chứa thông tin trực quan của paywall. Dùng phương thức Adapty.getViewConfiguration(paywall) để tải nó. Tham khảo chủ đề Fetch cấu hình trực quan của paywall để biết thêm chi tiết. |
| products | tùy chọn | Cung cấp mảng AdaptyPaywallProduct để tối ưu thời điểm hiển thị sản phẩm trên màn hình. Nếu truyền null, AdaptyUI sẽ tự động fetch các sản phẩm cần thiết. |
| eventListener | tùy chọn | Cung cấp AdaptyUiEventListener để theo dõi các sự kiện paywall. Nên extend AdaptyUiDefaultEventListener để dễ sử dụng hơn. Tham khảo chủ đề Xử lý sự kiện paywall để biết thêm chi tiết. |
| insets | tùy chọn | Insets là các khoảng cách xung quanh paywall để ngăn các phần tử tương tác bị ẩn sau thanh hệ thống. Mặc định: Nếu paywall của bạn không phải edge-to-edge, bạn có thể muốn đặt insets tùy chỉnh. Cách thực hiện được mô tả trong phần Thay đổi insets paywall bên dưới. |
| personalizedOfferResolver | tùy chọn | Để chỉ định giá cá nhân hóa (đọc thêm), hãy implement AdaptyUiPersonalizedOfferResolver và truyền logic của bạn để ánh xạ AdaptyPaywallProduct thành true nếu giá sản phẩm được cá nhân hóa, ngược lại là false. |
| tagResolver | tùy chọn | Dùng AdaptyUiTagResolver để resolve các custom tag trong văn bản paywall. Resolver này nhận tham số tag và resolve thành chuỗi tương ứng. Tham khảo chủ đề Custom tags trong Paywall Builder để biết thêm chi tiết. |
| timerResolver | tùy chọn | Truyền resolver vào đây nếu bạn sử dụng chức năng timer tùy chỉnh. |
Muốn xem ví dụ thực tế về cách tích hợp Adapty SDK vào ứng dụng di động? Hãy xem ứng dụng mẫu của chúng tôi, nơi minh họa toàn bộ quá trình thiết lập, bao gồm hiển thị paywall, thực hiện mua hàng và các chức năng cơ bản khác.
Thay đổi insets paywall
Insets là các khoảng cách xung quanh paywall để ngăn các phần tử tương tác bị ẩn sau thanh hệ thống. Mặc định, Adapty sẽ tự động điều chỉnh insets, phù hợp với paywall edge-to-edge.
Nếu paywall của bạn không phải edge-to-edge, bạn có thể muốn đặt insets tùy chỉnh:
- Nếu cả thanh trạng thái lẫn thanh điều hướng đều không che
AdaptyPaywallView, dùngAdaptyPaywallInsets.NONE. - Với các cấu hình tùy chỉnh hơn, ví dụ nếu paywall của bạn chồng lên thanh trạng thái trên cùng nhưng không chồng lên phần dưới, bạn có thể chỉ đặt
bottomInsetthành0như ví dụ bên dưới:
Sử dụng timer do lập trình viên định nghĩa
Để sử dụng timer tùy chỉnh trong ứng dụng, hãy tạo đối tượng timerResolver—một dictionary hoặc map ánh xạ các timer tùy chỉnh với giá trị chuỗi sẽ thay thế chúng khi paywall được render. Ví dụ:
Trong ví dụ này, CUSTOM_TIMER_NY là Timer ID của timer do lập trình viên định nghĩa mà bạn đã thiết lập trong Adapty dashboard. timerResolver đảm bảo ứng dụng của bạn cập nhật động timer với giá trị chính xác—ví dụ như 13d 09h 03m 34s (được tính bằng thời điểm kết thúc timer, chẳng hạn Ngày Đầu Năm Mới, trừ đi thời gian hiện tại).
Sử dụng custom tag
Để sử dụng custom tag trong ứng dụng, hãy tạo đối tượng tagResolver—một dictionary hoặc map ánh xạ các custom tag với giá trị chuỗi sẽ thay thế chúng khi paywall được render. Ví dụ:
Trong ví dụ này, USERNAME là custom tag bạn đã nhập trong Adapty dashboard dưới dạng <USERNAME/>. tagResolver đảm bảo ứng dụng của bạn tự động thay thế custom tag này bằng giá trị được chỉ định—ví dụ như John.
Chúng tôi khuyến nghị tạo và điền vào tagResolver ngay trước khi hiển thị paywall. Khi đã sẵn sàng, truyền nó vào phương thức AdaptyUI mà bạn dùng để hiển thị paywall.
Thay đổi màu loading indicator của paywall
Bạn có thể ghi đè màu mặc định của loading indicator theo cách sau:
<style name="AppTheme" parent="android:Theme.Material.Light.NoActionBar">
<item name="adapty_progressIndicatorColor">@color/yourColor</item>
</style>