📺 Quảng cáo trong app
Hướng dẫn cho Marketing / BA / Tester — quảng cáo có những loại nào, hiện ở đâu, khi nào, và bao lâu mới hiện lại. Không cần đọc code.
Nguồn quảng cáo: Google AdMob (Google Mobile Ads). Trước khi hiện quảng cáo, app luôn xin đồng ý riêng tư (popup Consent của Google — bắt buộc ở châu Âu). Mọi công tắc bật/tắt và thời gian giãn cách đều chỉnh được từ xa qua server (Firebase Remote Config) — không cần cập nhật app.
1 Có 3 loại quảng cáo
Toàn màn hình
Che kín màn hình, phải đóng (X / Skip) mới đi tiếp. Gồm Interstitial và App Open.
Mở app — lúc khởi động (splash).
Mở mini-app — Đồng hồ, Thời tiết, Máy tính, Thư viện ảnh, Control Center, Hình nền.
Quay lại app — thoát ra rồi mở lại ("Welcome back").
Vài thao tác — vào Cài đặt, đóng mini-app, đổi hình nền, đổi tên/icon app…
Chèn trong màn
Ô quảng cáo (Native) nằm trong nội dung, không che, vẫn dùng app bình thường.
Có ở rất nhiều màn: Intro, chọn ngôn ngữ, các màn Cài đặt, DailyOpen, App Library, tìm kiếm, Tối ưu app, Thư viện ảnh, Thời tiết, Theme Store…
Lúc đang tải thấy ô xám nhấp nháy (shimmer); tải xong mới hiện. Lỗi mạng thì ô tự ẩn (không để ô trống mãi).
Xem để nhận thưởng
Quảng cáo có thưởng (Rewarded). Người dùng tự bấm xem để đổi lấy quyền lợi — không tự bật lên.
Chat AI — hết lượt chat, xem 1 quảng cáo → +1 lượt.
Theme Store — theme / bộ icon / hình nền bị khoá, xem 1 quảng cáo → mở khoá món đó.
Món đã mở khoá thì lần sau không hỏi lại — vào thẳng, không hiện quảng cáo nữa.
2 Khi nào KHÔNG có quảng cáo
3 trường hợp này tắt toàn bộ quảng cáo. Tester gặp là đúng, không phải bug.
- User Premium (đã mua / nâng cấp) → sạch quảng cáo ở mọi màn.
- Tắt từ server (công tắc tổng
ads_enabled) → cả app không có quảng cáo nào.
- Chưa đồng ý Consent (popup riêng tư lúc đầu) → không hiện cho tới khi người dùng đồng ý.
Ngoại lệ — quảng cáo có thưởng (Rewarded): vì người dùng tự bấm xem để đổi lấy lượt chat / mở theme, nút "Xem quảng cáo" vẫn hoạt động kể cả khi công tắc quảng cáo tổng đang tắt. Chỉ Premium mới không còn nhu cầu này (Premium có sẵn lượt / theme).
Ngoài 3 cái trên, từng vị trí còn có công tắc riêng trên server — có thể bật/tắt từng chỗ mà không ảnh hưởng chỗ khác (xem mục 7).
3 Quảng cáo toàn màn — kịch bản chi tiết
🚀
A · Mở app (splash)
Chỉ ở lần khởi động — màn logo lúc đầu
Người dùng
Bấm icon app từ ngoài, app hiện màn splash.
Sẽ thấy
Quảng cáo toàn màn (mặc định kiểu App Open; server đổi sang Interstitial được) khi splash đang chờ.
Quy tắc thời gian
Splash giữ tối thiểu 3 giây · chờ quảng cáo tối đa 15 giây · trần cứng cả splash 20 giây. Hết giờ là vào app dù quảng cáo chưa kịp hiện.
Giãn cách
KHÔNG áp giãn cách — quảng cáo splash luôn được phép hiện.
Sau đó
Đóng quảng cáo → vào màn Intro (hoặc Chọn ngôn ngữ).
📲
B · Mở mini-app
Đồng hồ · Thời tiết · Máy tính · Thư viện ảnh · Control Center · Hình nền
Người dùng
Bấm icon một mini-app trên màn hình.
Sẽ thấy
Màn "đang tải" hiện ~3 giây trước, RỒI mới đến quảng cáo toàn màn (mặc định kiểu Interstitial).
Giãn cách
Interstitial cách nhau tối thiểu 12 giây (xem mục 5).
Sau đó
Lần đầu mở app đó → màn giới thiệu (có 1 ô Native ở dưới). Lần sau → vào thẳng nội dung.
Lưu ý
Phải thấy màn "đang tải" trước quảng cáo. Nếu quảng cáo che ngay lập tức → là bug.
🔄
C · Quay lại app ("Welcome back")
Thoát ra ngoài (Home / đa nhiệm) rồi mở app lại
Người dùng
Đang ở trong app, thoát ra, lát sau quay lại.
Sẽ thấy
Overlay "Welcome back" hiện, kèm quảng cáo toàn màn (App Open).
Giãn cách
App Open khi quay lại cách nhau tối thiểu 25 giây.
KHÔNG hiện khi
Đang ở màn hình chính (Home) và app đang là launcher mặc định — cố tình không hiện để khỏi phiền mỗi lần bấm nút Home. Cũng không hiện ở màn Splash / Intro / Ngôn ngữ / Premium / Onboarding / Tối ưu app.
Riêng mini-app & Cài đặt
Quay lại đúng màn mini-app hoặc Cài đặt → hiện Interstitial (giãn cách 12s) thay vì App Open.
🚪
D · Đóng mini-app bằng nút trên màn
Bấm nút back / Done / Đặt hình nền TRONG app — KHÔNG phải nút back của hệ thống
Khi nào
Đóng Thời tiết / Thư viện ảnh / Đồng hồ / Máy tính bằng nút back trên header; bấm Đặt làm hình nền / Done ở màn chọn hình nền.
Sẽ thấy
Quảng cáo toàn màn (Interstitial) hiện trước, đóng xong thao tác mới hoàn tất.
Giãn cách
12 giây. Bấm nút back của hệ thống thì không hiện quảng cáo.
Lưu ý
Đóng quảng cáo là thao tác luôn hoàn tất (hình nền vẫn đổi, app vẫn đóng). Không bao giờ kẹt. Control Center đóng thì không có quảng cáo.
⚙️
E · Điều hướng trong Cài đặt
Mở Cài đặt · vào màn con · quay lại · đổi tên/icon app · Tối ưu app
Khi nào
Mở Cài đặt từ bất kỳ đâu; bấm vào một mục trong Cài đặt; back từ màn con; mở Đổi tên / Đổi icon app; đóng màn Tối ưu app.
Sẽ thấy
Quảng cáo toàn màn (Interstitial) hiện trước, xong mới sang màn tiếp theo.
Giãn cách
12 giây — dùng chung 1 đồng hồ với tất cả Interstitial. Bấm liên tục trong 12s thì chỉ hiện 1 lần.
4 Quảng cáo có thưởng — người dùng tự chọn xem
Không tự bật. Chỉ hiện khi người dùng chủ động bấm nút "Xem quảng cáo" để đổi lấy quyền lợi.
💬
Chat AI — hết lượt chat
Màn Chat AI
Khi nào
Người dùng dùng hết lượt chat miễn phí (mặc định 5 lượt/ngày). Hộp thoại "Hết lượt" hiện lên.
Người dùng chọn
Bấm "Xem quảng cáo" (hoặc chọn nâng cấp Premium).
Phần thưởng
Xem xong → +1 lượt chat. Muốn thêm nữa thì xem tiếp.
Giãn cách
KHÔNG có — xem bao nhiêu lần cũng được (vì người dùng tự chọn).
🎨
Theme Store — mở khoá theme / bộ icon / hình nền
Cửa hàng theme · bộ icon · hình nền
Khi nào
Người dùng bấm Áp dụng một theme, bộ icon hoặc hình nền đang bị khoá. Hộp thoại mở khoá hiện lên (cùng 1 mẫu hộp thoại, chỉ đổi chữ theo loại).
Người dùng chọn
Bấm "Xem quảng cáo" để mở khoá (hoặc nâng cấp Premium để mở hết mọi thứ).
Phần thưởng
Xem xong → đúng món đó được mở khoá và áp dụng luôn.
Nhớ mở khoá
Món đã mở khoá được ghi nhớ vĩnh viễn — lần sau áp dụng lại không hiện hộp thoại / không xem quảng cáo nữa. Mỗi món khoá riêng: mở theme A không mở sẵn theme B.
5 Quy tắc giãn cách (chống spam)
"Giãn cách" = khoảng thời gian tối thiểu giữa 2 lần hiện quảng cáo cùng loại. Tất cả con số đều chỉnh được từ server.
⏱️ Điểm quan trọng cho BA
- Không có giới hạn theo ngày và theo phiên. Chỉ có giãn cách theo giây ở trên. Đồng hồ giãn cách reset khi tắt/mở lại app.
- Vừa xem 1 Interstitial xong, trong 12s làm thao tác khác cần Interstitial → không hiện thêm, đi tiếp luôn.
Hai quảng cáo toàn màn không bao giờ chồng nhau. Đang có 1 quảng cáo toàn màn (Interstitial / App Open / Rewarded) trên màn hình thì cái thứ 2 bị bỏ, không đè lên. Thấy 2 quảng cáo chồng nhau → là bug.
6 Màn nào có quảng cáo gì
Tra nhanh khi test / khi giải thích cho khách. Toàn màn Chèn Thưởng
7 Công tắc điều khiển từ xa (server)
Toàn bộ quảng cáo bật/tắt được qua Firebase Remote Config — không cần cập nhật app, không cần lên store. BA dùng bảng này để yêu cầu bật/tắt hoặc chỉnh tần suất.
8 Checklist test nhanh
- Premium: mua/bật Premium → kiểm mọi màn ở mục 6, phải không còn quảng cáo nào (kể cả nút Rewarded ẩn / không cần).
- Công tắc tổng: tắt
ads_enabled từ server → cả app sạch quảng cáo, nhưng nút "Xem quảng cáo" ở Chat AI / Theme Store vẫn chạy được.
- Splash: mở app → thấy quảng cáo toàn màn, đóng xong vào được app; mạng yếu thì chờ tối đa ~20s vẫn vào được (không treo).
- Mini-app: bấm icon → thấy "đang tải" trước, rồi mới quảng cáo (không che ngay).
- Lần đầu vs lần sau: mini-app lần đầu có màn giới thiệu, lần sau vào thẳng.
- Giãn cách 12s: xem 1 Interstitial, trong 12 giây làm thao tác khác → không hiện thêm.
- Giãn cách 25s: quay lại app 2 lần cách nhau <25s → chỉ "Welcome back" 1 lần.
- Không chồng: không bao giờ thấy 2 quảng cáo toàn màn đè lên nhau.
- Home không phiền: ở Home (app là launcher mặc định) thoát ra vào lại → KHÔNG có quảng cáo toàn màn.
- Nút back hệ thống: đóng mini-app bằng back hệ thống → không quảng cáo; đóng bằng nút trên màn → có quảng cáo.
- Không kẹt: đóng quảng cáo ở thao tác (đổi hình nền…) → thao tác vẫn hoàn tất bình thường.
- Rewarded Chat AI: xài hết lượt → hộp thoại → xem quảng cáo → +1 lượt, chat tiếp được.
- Rewarded Theme Store: áp dụng theme / bộ icon / hình nền đang khoá → xem quảng cáo → mở khoá + áp dụng ngay.
- Nhớ mở khoá: món vừa mở khoá → áp dụng lại lần sau KHÔNG hiện hộp thoại / quảng cáo nữa; món khác vẫn khoá.
- Ô Native: các màn có ô chèn → thấy shimmer xám lúc tải, tải xong ra quảng cáo (hoặc ô tự ẩn nếu lỗi mạng, không crash).
- Consent: lần đầu cài → hiện popup đồng ý riêng tư trước; chưa đồng ý thì chưa có quảng cáo.