Zalo Mini App

Người chơi vào game ngay trong Zalo: đăng nhập bằng Zalo, cấp SĐT khi cần nhận quà, chia sẻ để nhận thêm lượt, theo dõi OA và nhận kết quả qua ZNS.

Mục tiêu

Mục tiêuChỉ số đoNgưỡng MVP
Vào chơi không cần đăng kýThời gian từ mở mini app đến bắt đầu phiên đầu ≤ 15 giây ở p90 trên 4G
Lấy được SĐT để trao quàTỉ lệ người trúng đồng ý cấp SĐT ≥ 80%
Lan toả qua ZaloNgười chơi mới đến từ link chia sẻ / tổng người chơi mớimục tiêu từ FCM
Tăng người theo dõi OA FPT TelecomSố follow OA mới từ mini appmục tiêu từ FCM
Không bị Zalo từ chối khi publishSố lần bị trả về khi kiểm duyệt ≤ 1 lần mỗi bản phát hành lớn

Ngoài phạm vi

Điểm vào

Điểm vàoVí dụMở tớiGắn nguồn
Menu OA FPT TelecomNút "Chơi game nhận quà" trên OATrang chủ mini app: danh sách campaign đang chạysrc=oa_menu
Tin nhắn / bài viết OABroadcast đầu campaignLanding campaignsrc=oa_post + mã campaign
Link chia sẻ của người chơiBạn bè gửi qua chat ZaloLanding campaignsrc=share + mã người mời
QR in tại booth, poster, tờ rơiMô hình A, C tại sự kiệnLanding campaign hoặc thẳng phòng chơisrc=qr + mã điểm activation
Tin ZNS"Bạn còn 1 lượt chơi hôm nay"Landing campaign / Quà của tôisrc=zns + mã mẫu tin
Tìm kiếm trong ZaloGõ "FPT"Trang chủ mini appsrc=search

Tham số nguồn đi theo người chơi đến phiên chơi và lead, phục vụ Báo cáo phễu. Đặt tên tham số chung với UTM ở Website & mobile .

Vai trò & quyền

Vai tròViệc trên kênh Zalo
Người chơiChơi, cấp/từ chối quyền SĐT, chia sẻ, follow OA, xem Quà của tôi
Quản lý campaignBật kênh Zalo cho campaign, chọn mẫu ZNS đã duyệt, đặt nội dung chia sẻ
Quản trị hệ thốngQuản lý tài khoản Zalo Developer, OA, gửi bản build đi kiểm duyệt, publish

User stories

MãLà…Tôi muốn…Để…Ưu tiên
US-ZMA-01Người chơichơi thử ngay khi mở mini app, chưa cần cấp SĐTbiết game có đáng chơi khôngMust
US-ZMA-02Người chơicấp SĐT bằng một chạm khi nhận quàkhông phải gõ số, không chờ OTPMust
US-ZMA-03Người chơichia sẻ game cho bạn trên Zalo để nhận thêm lượtchơi thêmMust
US-ZMA-04Người chơinhận mã quà qua tin Zalokhông mất mã khi đóng mini appMust
US-ZMA-05Người chơifollow OA FPT Telecom ngay trong gamenhận thêm lượt và tin khuyến mãiShould
US-ZMA-06Người chơimở mini app từ QR tại booth và vào thẳng phòng chơi trên TVkhông phải tìm gameMust
US-ZMA-07Quản lý campaignchọn mẫu ZNS đã được Zalo duyệt cho từng sự kiện (trúng quà, nhắc lượt)không phải nhờ ITShould
US-ZMA-08Quản trị hệ thốngđưa campaign mới lên mà không phải gửi Zalo duyệt lạikịp lịch marketingMust

Luồng chính

Đăng nhập và quyền SĐT

  1. Mở mini app → lấy Zalo ID (không cần người chơi xác nhận) → tạo/khớp hồ sơ người chơi ở trạng thái "chỉ có Zalo ID".
  2. Xin quyền thông tin cơ bản (tên, ảnh) để hiện trên bảng xếp hạng — người chơi từ chối thì dùng biệt danh tự sinh.
  3. Người chơi chơi được lượt đầu khi chưa có SĐT; kết quả trúng được giữ.
  4. Trước bước nhận quà (hoặc trước khi chơi nếu campaign bắt định danh): hiện lý do "Cần SĐT để trao quà và gửi mã" → gọi hộp thoại cấp SĐT của Zalo.
  5. Đồng ý: máy chủ đổi token lấy SĐT qua Zalo (Hệ thống ngoài) → liên kết Zalo ID ↔ SĐT theo Khách hàng. SĐT từ Zalo coi là đã xác thực, không cần OTP.
  6. Từ chối: cho nhập SĐT tay + OTP ; vẫn từ chối → lượt trúng giữ trong hạn nhận, nhắc lại ở lần mở sau.

Chia sẻ nhận thêm lượt

  1. Người chơi bấm "Chia sẻ nhận thêm lượt" → mở hộp thoại chia sẻ của Zalo với ảnh, tiêu đề, link có mã người mời.
  2. Zalo trả kết quả "đã mở hộp chia sẻ" nhưng không xác nhận chắc đã gửi tới ai.
  3. Hệ thống ghi sự kiện chia sẻ; cộng lượt theo quy tắc nguồn lượt ở Khung game (vd. tính khi bấm, hay khi bạn mở link).
  4. Bạn mở link → ghi nhận "người được mời" gắn mã người mời — dữ liệu cho Chống gian lận và báo cáo lan toả.

Follow OA

  1. Hiện nút "Theo dõi FPT Telecom" ở màn kết quả hoặc màn hết lượt (không chặn chơi).
  2. Gọi API follow OA của Zalo → Zalo trả trạng thái đã follow.
  3. Cộng lượt (nếu campaign cấu hình) đúng 1 lần cho mỗi Zalo ID trong campaign; unfollow rồi follow lại không cộng thêm.

Gửi ZNS

Sự kiệnNội dungKhi gửiBắt buộc
Trúng quà digitalTên quà, mã, hạn dùng, link Quà của tôiKhi cấp phát "Đã cấp"✓
Trúng quà vật lýTên quà, nơi nhận, hạn nhận, link QR nhận quàKhi cấp phát "Đã cấp"✓
Mã gửi sau (nhà cung cấp chậm, trúng offline)Như trúng quà digitalKhi có mã✓
Nhắc lượt / nhắc quà sắp hết hạnSố lượt còn, hạnTheo lịch campaignTuỳ chọn, cần đồng ý nhận tin
OTP (khi người chơi tự nhập SĐT)Mã OTP theo Website & mobileKhi yêu cầu—

Mẫu ZNS phải được Zalo duyệt trước; ZNS gửi tới SĐT, không cần người chơi follow OA. Gửi lỗi → chuyển SMS theo Hệ thống ngoài.

Quy tắc nghiệp vụ

MãQuy tắcVí dụ
BR-ZMA-01Xin quyền (SĐT, vị trí, camera) đúng lúc cần, kèm một câu lý do; không xin khi vừa mở appXin SĐT ngay trước "Nhận quà"
BR-ZMA-02Người chơi từ chối quyền: không hỏi lại trong cùng phiên; lần mở sau hỏi lại tối đa 1 lần
BR-ZMA-03Một Zalo ID chỉ liên kết một SĐT. Zalo ID mới trùng SĐT đã có → gộp vào hồ sơ có sẵn theo Khách hàng
BR-ZMA-04Lượt trúng khi chưa có SĐT giữ trong hạn nhận; chỉ cấp mã sau khi có SĐT
BR-ZMA-05Checkbox đồng ý xử lý dữ liệu không tick sẵn, hiện cùng lúc xin SĐT; cấp quyền Zalo không thay cho đồng ý theo NĐ 13/2023 — xem Dữ liệu cá nhân
BR-ZMA-06Không đặt nút quan trọng ở góc phải trên (cụm nút "… / ×" của Zalo)
BR-ZMA-07Campaign mới chỉ là dữ liệu tải từ máy chủ; game mẫu mới hoặc đổi quyền xin dùng mới cần bản build mới và kiểm duyệtThêm campaign "Tết" không cần duyệt lại; thêm game mới thì cần
BR-ZMA-08Nội dung chia sẻ (ảnh, tiêu đề) cấu hình theo campaign; ảnh 1200×630, không ghi hứa hẹn quà không có trong cơ cấu giải
BR-ZMA-09Mã quà trong ZNS là mã đầy đủ (chỉ gửi người trúng); mọi nơi khác theo Kho quà BR-QUA-10
BR-ZMA-10Một Zalo ID chỉ có 1 phiên chơi đang chạy; mở trên máy thứ hai thì phiên cũ "Bỏ dở" theo Khung game

Giới hạn kỹ thuật Zalo

Giới hạnẢnh hưởngCách xử lý
Dung lượng gói mini app có trần số MB hiện hành theo tài liệu ZaloKhông nhúng được mọi asset của 10 game mẫuGói chỉ chứa khung + font subset; asset game, skin campaign tải từ CDN khi vào game, ảnh WebP, không video nền
Header Zalo cố định + cụm nút "… / ×"Mất vùng trên cùngHUD đặt dưới header; theo Kênh triển khai (UI)
Zalo ID có thể khác nhau giữa các mini app / OA Không dùng Zalo ID để khớp với dữ liệu Zalo ở hệ khácKhớp người chơi bằng SĐT
Lấy SĐT trả token, phải đổi ở máy chủ, token có hạnKhông lấy SĐT được khi mất mạngĐổi ngay khi nhận; lỗi → cho nhập tay + OTP
API chia sẻ không xác nhận người nhậnDễ bấm chia sẻ "khống" lấy lượtQuy tắc cộng lượt ở Khung game; giới hạn ở Chống gian lận
ZNS chỉ gửi theo mẫu đã duyệt, có phí mỗi tin, có hạn mức gửiKhông gửi nội dung tự doDuyệt mẫu trước campaign ≥ 5 ngày làm việc
iOS có thể chặn micro / camera trong webview ZaloGame 8 (giọng nói), game có cameraKiểm thử từng nền tảng trước khi bật game cho kênh Zalo
Phiên bản Zalo cũ thiếu APILỗi khi gọi chia sẻ / followKiểm tra API có sẵn; không có thì ẩn nút. Bản Zalo tối thiểu IT xác định

Chi tiết API, mã lỗi, hạn mức: Hệ thống ngoài.

Kiểm duyệt, publish & phiên bản

  1. Build bản mới → đưa lên môi trường thử của Zalo (bản phát triển / bản thử nghiệm), QA kiểm theo mục Tiêu chí nghiệm thu.
  2. Kiểm tra trước khi gửi: link thể lệ, điều khoản, chính sách dữ liệu hiện rõ ở trang chủ và màn xin SĐT; mô tả quyền xin dùng khớp tính năng.
  3. Quản trị hệ thống gửi Zalo kiểm duyệt. Thời gian duyệt 1–3 ngày làm việc — lịch phát hành phải trừ khoảng này.
  4. Được duyệt → publish. Bị trả về → sửa theo lý do, gửi lại; ghi lý do vào nhật ký phát hành.
  5. Giữ bản đang chạy cho đến khi bản mới publish; campaign đang chạy không bị gián đoạn.
Thay đổiCần build + duyệt?
Campaign mới, đổi thể lệ, cơ cấu giải, skin, nội dung chia sẻKhông — dữ liệu từ máy chủ
Phiên bản game mới đã có trong gói tải từ CDNKhông , nếu không đổi quyền / API dùng
Thêm quyền xin dùng (vị trí, camera, micro), đổi luồng đăng nhậpCó
Sửa lỗi khung, đổi giao diện chungCó
Tải game từ CDN và kiểm duyệtZalo có thể không chấp nhận mini app tải mã chạy từ ngoài gói. Cần IT xác nhận với chính sách Zalo hiện hành trước khi chốt kiến trúc — xem Q-ZMA-02.

Ngoại lệ & lỗi

Tình huốngHệ thống xử lýThông báo hiển thị
Từ chối cấp SĐT khi đã trúngGiữ lượt trúng; cho nhập tay + OTP"Bạn cần SĐT để nhận quà. Nhập số khác?"
Đổi token SĐT lỗiThử lại 2 lần; vẫn lỗi → nhập tay + OTP"Chưa lấy được SĐT từ Zalo, vui lòng nhập"
SĐT Zalo đã gắn Zalo ID khácKhông ghép; ghi nhận để xem xét"SĐT này đã dùng ở tài khoản Zalo khác"
Gửi ZNS lỗi / SĐT không dùng ZaloChuyển SMS; mã vẫn ở Quà của tôi—
Mở link chia sẻ của campaign đã kết thúcMở trang chủ mini app"Chương trình đã kết thúc. Xem chương trình khác"
Phiên bản Zalo không hỗ trợ APIẨn nút tương ứng"Cập nhật Zalo để dùng tính năng này"
Asset game tải lỗiThử lại; không trừ lượt khi chưa vào phiên"Mạng yếu, đang tải lại game"

Tiêu chí nghiệm thu

Câu hỏi mở

#Câu hỏiHỏi aiHạnTrả lời
Q-ZMA-01Dùng OA nào: OA FPT Telecom chung hay OA riêng cho game? Ai sở hữu tài khoản Zalo Developer?FCM / Truyền thông
Q-ZMA-02Zalo có cho tải mã game từ CDN ngoài gói không? Nếu không, mỗi game mẫu mới phải qua kiểm duyệtIT
Q-ZMA-03Cho chơi lượt đầu khi chưa có SĐT, hay bắt cấp SĐT ngay từ đầu? (chạm Khung game)FCM
Q-ZMA-04Lượt chia sẻ tính khi bấm chia sẻ hay khi bạn mở link? (quyết ở Khung game)FCM / PM
Q-ZMA-05Ngân sách ZNS mỗi campaign; nhắc lượt có được gửi không?FCM
Q-ZMA-06Mã người mời có thưởng cho người mời (referral) hay chỉ đo lường?FCM

Lịch sử thay đổi

BảnNgàyNgười sửaNội dung
0.12026-11-11PMNháp khởi tạo