Mục lục trang
1 Remote Config hoạt động thế nào
Hiểu đúng phần này để không kỳ vọng sai: đổi trên server không phải lúc nào cũng thấy ngay trên máy.
1 · Đổi trên Firebase Console
2 · App tải về
3 · Áp dụng
- Mở app từ đầu (cold start) — luôn thử tải bản mới nhất ngay, bỏ qua giới hạn chờ 1 tiếng. Nếu mạng chậm, tối đa đợi khoảng 8 giây rồi vào app luôn với giá trị cũ/mặc định — màn khởi động không bao giờ bị treo vì chờ tải.
- Quay lại app từ nền (bấm Home rồi mở lại) — tự tải, nhưng tối đa 1 lần mỗi tiếng để đỡ tốn tài nguyên.
- Tự làm mới định kỳ mỗi 6 tiếng — dành cho máy đặt app này làm Màn hình chính và không tắt app trong nhiều giờ liền (đổi chu kỳ được ở khoá
remote_config_refresh_hours, mục 3). - Đẩy trực tiếp khi bấm Publish trên Firebase Console — app đang mở nhận tín hiệu gần như ngay, nhưng cố tình chờ thêm một khoảng rồi mới thật sự áp dụng (mặc định 30 phút, khoá
force_update_delay_minutes) — tránh đổi hành vi giữa lúc người dùng đang thao tác dở.
✅ Muốn thấy ngay lúc test
📶 Không có mạng
2 Công tắc bật / tắt
Nhóm bật/tắt nhanh — dùng khi cần dừng một loại ads mà không sửa app.
| Công tắc | Mặc định | Điều khiển gì |
|---|---|---|
ads_enabled |
Bật |
|
inter_ad_on_off |
Bật |
|
native_ad_on_off |
Bật |
|
open_ad_on_off |
Bật |
|
isShowAOAResume |
Bật |
|
reward_ad_on_off |
Bật |
|
3 Tần suất & thời gian chờ
Nhóm con số: capping giữa 2 ads, timeout khi load ad, thời gian giữ màn logo.
| Công tắc | Đơn vị | Mặc định | Đổi thì ảnh hưởng gì |
|---|---|---|---|
inter_ad_capping_time |
giây | 20 |
|
open_ad_capping_time |
giây | 25 |
|
native_loading_min_show |
giây | 4 |
|
native_tab_idle_seconds |
giây | 180 |
|
native_home_page_idle_seconds |
giây | 10 |
|
timeOutAOASplash |
giây | 15 |
|
timeMinDelaySplash |
giây | 3 |
|
timeOutSplash |
giây | 20 |
|
inhouse_timeOutAOA |
giây | 15 |
|
inhouse_timeMinDelay |
giây | 3 |
|
inhouse_timeOutAOAResume |
giây | 6 |
|
remote_config_refresh_hours |
giờ | 6 |
|
force_update_delay_minutes |
phút | 30 |
|
4 Bật/tắt native ads theo từng màn
Ngoài công tắc theo loại, còn công tắc riêng cho từng vị trí — tắt một chỗ mà không ảnh hưởng chỗ khác.
| Màn hình / vị trí | Công tắc | Mặc định |
|---|---|---|
| Màn chọn ngôn ngữ (cả step 1 và step 2, dùng chung 1 công tắc) | native_isShowLanguage |
Bật |
| Màn giới thiệu lần đầu sau khi cài app (Intro) | intro_isShowNative |
Bật |
| Màn giới thiệu khi mở một ứng dụng con lần đầu | inhouse_isShowNativeIntro |
Bật |
| Mọi màn "đang tải" dùng chung (khởi động, mở ứng dụng con, chờ full-screen ads, tải Theme Store / phần thưởng) — trừ overlay "Chào mừng trở lại" hiện quá nhanh | native_isShowLoading |
Bật |
| Trang chủ Cài đặt + màn Danh sách tính năng | native_isShowSettingHeader |
Bật |
| Cài đặt > Thư viện ứng dụng | native_isShowAppLibrarySettings |
Bật |
| Cài đặt > Đổi icon ứng dụng (màn chính) | native_isShowChangeIcon |
Bật |
| Cài đặt > Đổi tên ứng dụng (màn chính) | native_isShowChangeName |
Bật |
| Màn Tối ưu ứng dụng (App Optimize) | native_isShowOptimize |
Bật |
| 8 màn con trong Cài đặt dùng CHUNG 1 công tắc: Cài đặt chung, Hiệu ứng chuyển màn, Trung tâm điều khiển (+ màn Vị trí), Thông báo huy hiệu, màn chọn icon, màn chọn tên, Ứng dụng ẩn | native_isShowSettingSub |
Bật |
| Không còn tác dụng — trước dùng để bật/tắt việc giữ sẵn ad cho màn "đang tải". Cơ chế giữ sẵn đã bị bỏ, giờ mọi ô native ads đều request mới mỗi lần vào màn. Đổi công tắc này không đổi gì cả — xem cách app load ads. | native_isCacheLoading |
Bật (vô nghĩa) |
5 Giới hạn tính năng
Không phải công tắc ads, nhưng cùng điều khiển từ xa: số lượt miễn phí, nội dung mở khoá…
Chat AI & Theme Store
| Công tắc | Mặc định | Điều khiển gì |
|---|---|---|
chat_daily_free |
5 lượt/ngày |
|
coin_default_balance |
5 xu |
|
theme_store_new_days |
7 ngày |
|
Bắt buộc cập nhật ứng dụng
| Công tắc | Mặc định | Điều khiển gì |
|---|---|---|
force_update_version |
Tắt |
|
app_version |
(rỗng) |
|
6 Bảng đầy đủ
Toàn bộ công tắc trong một bảng, có ô tìm nhanh. Đây là bảng dùng khi gửi yêu cầu chỉnh cấu hình.
| Công tắc | Kiểu | Mặc định | Điều khiển gì | Đổi thì ảnh hưởng đâu |
|---|---|---|---|---|
ads_enabled |
Bật/tắt | Bật | Công tắc tổng toàn bộ ads | Toàn app (mọi loại ads) |
inter_ad_on_off |
Bật/tắt | Bật | Inter ads | Mọi chỗ hiện inter ads |
native_ad_on_off |
Bật/tắt | Bật | Native ads (ô ads trong nội dung) | Mọi màn có native ads — xem mục 4 |
open_ad_on_off |
Bật/tắt | Bật | AOA (App Open Ads) nói chung | Màn khởi động + lúc quay lại app |
isShowAOAResume |
Bật/tắt | Bật | Riêng AOA lúc quay lại app (không phải mở lần đầu) | Lúc chuyển từ app khác về lại launcher |
reward_ad_on_off |
Bật/tắt | Bật | Reward ads | Nút "Xem quảng cáo" (reward ads) ở Chat AI & Theme Store |
inter_ad_capping_time |
Số giây | 20 | Capping tối thiểu giữa 2 lần show inter ads | Toàn app |
open_ad_capping_time |
Số giây | 25 | Capping tối thiểu giữa 2 lần show AOA | Toàn app |
native_loading_min_show |
Số giây | 4 | Thời gian tối thiểu giữ native ads ở màn "đang tải" trước khi cho full-screen ads che lên | Mọi màn đang tải |
native_tab_idle_seconds |
Số giây | 180 | Rời tab bao lâu thì nhả native ads của tab đó (0 = nhả ngay, tab nào quay lại cũng request ad mới) |
Theme Store (5 tab), Thư viện ảnh (Library/Albums), Cài đặt (Chính/Tính năng) — xem cách app load ads |
native_home_page_idle_seconds |
Số giây | 10 | Như native_tab_idle_seconds nhưng riêng cho trang Home ngoài/Spotlight — mặc định thấp hơn vì vuốt trang nhanh hơn đổi tab |
DailyOpen, Thư viện ứng dụng (outer Home pager), Spotlight |
timeOutAOASplash |
Số giây | 15 | Timeout màn khởi động chờ AOA | Màn khởi động (splash) |
timeMinDelaySplash |
Số giây | 3 | Thời gian tối thiểu giữ màn khởi động | Màn khởi động (splash) |
timeOutSplash |
Số giây | 20 | Timeout cho toàn bộ chuỗi màn khởi động | Màn khởi động (splash) |
isShowAdsSplash |
Bật/tắt | Bật | Công tắc tổng ads trên màn khởi động (splash) — tắt thì bỏ qua cả 2 nhánh inter/AOA bên dưới | Màn khởi động (splash) |
showInterOrAOASplash |
Bật/tắt | Tắt | Loại ads show trên màn khởi động: Bật = inter ads, Tắt = AOA (App Open Ads) | Màn khởi động (splash) |
isShowAOASplash |
Bật/tắt | Bật | Có show AOA trên màn khởi động không — chỉ có tác dụng khi showInterOrAOASplash đang Tắt (nhánh AOA) |
Màn khởi động (splash) |
inhouse_timeOutAOA |
Số giây | 15 | Timeout chờ AOA khi mở ứng dụng con lần đầu | Weather/Clock/Calculator/Gallery/Chat AI |
inhouse_timeMinDelay |
Số giây | 3 | Thời gian tối thiểu giữ màn tải khi mở ứng dụng con | như trên |
inhouse_timeOutAOAResume |
Số giây | 6 | Timeout chờ AOA khi quay lại ứng dụng con từ nền | như trên |
inhouse_isShowAds |
Bật/tắt | Bật | Công tắc tổng ads (inter/AOA) khi mở ứng dụng con lần đầu — tắt thì bỏ qua nhánh ads ở cổng mở app con | Weather/Clock/Calculator/Gallery/Chat AI |
inhouse_showInterOrAOA |
Bật/tắt | Bật | Loại ads khi mở ứng dụng con lần đầu: Bật = inter ads, Tắt = AOA | như trên |
inhouse_isShowAdsResume |
Bật/tắt | Bật | Có show AOA khi quay lại ứng dụng con từ nền không | như trên |
remote_config_refresh_hours |
Số giờ | 6 | Chu kỳ tự làm mới cấu hình khi app luôn chạy nền không tắt | Toàn app (không cần mở lại) |
force_update_delay_minutes |
Số phút | 30 | Sau khi bấm Publish trên Firebase Console, app đang mở chờ bao lâu mới áp dụng cấu hình mới | Toàn app |
native_isShowLanguage |
Bật/tắt | Bật | Native ở màn chọn ngôn ngữ (cả 2 step) | Onboarding |
intro_isShowNative |
Bật/tắt | Bật | Native ở màn giới thiệu lần đầu (Intro) | Onboarding |
intro_isShowAds |
Bật/tắt | Bật | Công tắc tổng ads trên màn giới thiệu (Intro) | Onboarding |
intro_isSkip |
Bật/tắt | Tắt | Bỏ qua hẳn màn giới thiệu (Intro), vào thẳng màn chọn ngôn ngữ | Onboarding |
inhouse_isShowNativeIntro |
Bật/tắt | Bật | Native ở màn giới thiệu khi mở ứng dụng con lần đầu | mọi ứng dụng con |
native_isShowLoading |
Bật/tắt | Bật | Native ở mọi màn "đang tải" dùng chung | splash / mở app con / chờ inter / tải Theme Store, thưởng |
native_isCacheLoading |
Bật/tắt | Bật | Không còn tác dụng — cơ chế giữ sẵn ad cho màn "đang tải" đã bị bỏ | cách app load ads |
native_isShowSettingHeader |
Bật/tắt | Bật | Native ở Trang chủ Cài đặt + Danh sách tính năng | 2 màn đó |
native_isShowAppLibrarySettings |
Bật/tắt | Bật | Native ở Cài đặt > Thư viện ứng dụng | màn đó |
native_isShowChangeIcon |
Bật/tắt | Bật | Native ở Cài đặt > Đổi icon ứng dụng (màn chính) | màn đó |
native_isShowChangeName |
Bật/tắt | Bật | Native ở Cài đặt > Đổi tên ứng dụng (màn chính) | màn đó |
native_isShowOptimize |
Bật/tắt | Bật | Native ở màn Tối ưu ứng dụng | màn đó |
native_isShowSettingSub |
Bật/tắt | Bật | Native dùng chung cho 8 màn con trong Cài đặt | Cài đặt chung, Hiệu ứng chuyển màn, Trung tâm điều khiển (+ Vị trí), Thông báo huy hiệu, chọn icon, chọn tên, Ứng dụng ẩn |
native_banner_button |
Số lần lặp | 0 | Luân phiên đưa nút hành động của thẻ native dọc lên phía trên; 0 = nút luôn ở dưới, N>0 = N lần dưới rồi 1 lần trên rồi lặp lại |
Native ads dạng dọc |
native_full_button |
Cấu hình nhiều phần | Tính năng đang TẮT | Có hiện thêm 1 native full ads ngay sau khi đóng inter ads không, và đếm ngược bao lâu trước khi cho thoát | Mọi chỗ đóng inter ads — đổi cần phối hợp với dev vì nhiều phần đi cùng nhau |
chat_daily_free |
Số lượt/ngày | 5 | Số lượt chat AI miễn phí mỗi ngày (tự giữ tối thiểu 5, đặt thấp hơn không có tác dụng) | Chat AI |
coin_default_balance |
Số xu | 5 | Số xu tặng một lần cho người dùng mới | Theme Store (ví xu) |
theme_store_new_days |
Số ngày | 7 | Số ngày một mục còn gắn nhãn "Mới" | Theme Store |
force_update_version |
Bật/tắt | Tắt | Công tắc tổng bắt buộc cập nhật (chỉ chặn khi bản đang chạy cũ hơn app_version) |
Toàn app (màn chặn cập nhật) |
app_version |
Chuỗi (số phiên bản) | (rỗng) | Phiên bản thấp nhất được phép dùng, dạng "1.2.3"; để trống = không chặn ai | như trên |
open_ad_id · native_ad_id · native_loading_id · native_full_id · inter_ad_id · reward_id
|
Mã kỹ thuật (chuỗi) | đã có sẵn ID thật | Xác định đúng ad unit nào trên hệ thống AdMob hiển thị nội dung nào — không phải công tắc bật/tắt | Chỉ đổi khi đổi tài khoản/ad unit AdMob, cần dev xác nhận. Để trống native_loading_id/native_full_id thì tự dùng lại native_ad_id |
openai_key_enc · openai_key_salt · theme_key_enc · theme_key_salt · theme_url_enc · theme_url_salt
|
Chuỗi mã hoá | (rỗng) | Khoá API để Chat AI gọi mô hình AI và để Theme Store tải nội dung — không phải công tắc, chỉ dev cấu hình | Chat AI / Theme Store |
notify_scenario_config (cấu hình nhiều lớp, nhiều phần phối hợp) điều khiển lịch đẩy thông báo nhắc mở lại app — đây là tính năng thông báo, không phải ads hay giới hạn tính năng, nên không liệt kê chi tiết ở trang này. Cần đổi thì hỏi dev trực tiếp.
7 Muốn đổi giá trị thì làm gì
Các step làm trên Firebase Console và những chỗ dễ hiểu sai khi kiểm tra kết quả.
- Đổi ở đâu: Firebase Console → Remote Config → tìm đúng tên khoá ở bảng đầy đủ → sửa giá trị → Publish changes.
- Ghi tên khoá y nguyên — phân biệt chữ hoa chữ thường. Sai một ký tự thì app không thấy khoá đó và âm thầm dùng giá trị mặc định, không báo lỗi gì.
- Đổi cho một nhóm người dùng: dùng Conditions của Firebase (theo quốc gia, phiên bản app, phần trăm người dùng ngẫu nhiên) thay vì đổi cho tất cả.
- Bao lâu có tác dụng: người đang mở app không thấy đổi ngay — xem mục 1 để biết app lấy cấu hình mới vào lúc nào.
- Kiểm tra thật: tắt hẳn app rồi mở lại trên bản phát hành. Đừng kiểm bằng bản nội bộ của dev — bản đó khoá cứng một số công tắc, đổi trên Console không có tác dụng.
- Trả lại như cũ: Firebase Console lưu lịch sử từng lần phát hành — vào Change history → chọn bản trước → Roll back. Không cần cập nhật app.