Website & mobile

Game online trên trình duyệt desktop, trình duyệt điện thoại và webview trong app FPT (Hi FPT, FPT Play): đường dẫn campaign, đăng nhập, bố cục, chia sẻ và đo lường nguồn.

Mục tiêu

Mục tiêuChỉ số đoNgưỡng MVP
Vào game nhanh từ linkThời gian tải landing đến tương tác được (4G, điện thoại tầm trung) ≤ 3 giây ở p75
Đăng nhập không rơi rụngTỉ lệ người nhập SĐT hoàn tất OTP ≥ 85%
Không bắt đăng nhập lại trong app FPTNgười vào từ Hi FPT / FPT Play phải nhập SĐT0% khi app truyền token hợp lệ
Biết người chơi đến từ đâuPhiên chơi có nguồn (UTM / src)≥ 95%

Ngoài phạm vi

Ba bối cảnh chạy

Web desktopWeb mobileWebview app FPT
Kênhwebwebapp
Vào từLink quảng cáo, fanpage, email, website FPTNhư desktop + QR tại booth (mô hình A, C)Banner / mục "Ưu đãi" trong Hi FPT, FPT Play
Đăng nhậpSĐT + OTP / FPT IDSĐT + OTP / FPT IDToken từ app qua bridge
HeaderAppbar có logoAppbar có logoẨn; tiêu đề do app truyền
ThemeCamCamTheo app (Hi FPT → xanh)
Chia sẻCopy link, Facebook, ZaloWeb Share của hệ điều hànhGọi share của app ; không có thì copy link

Vai trò & quyền

Vai tròViệc trên kênh web / app
Người chơiXem landing, đăng nhập, chơi, chia sẻ, xem Quà của tôi
Quản lý campaignBật kênh web/app cho campaign, đặt đường dẫn, ảnh share, mô tả OG, tạo link có UTM
Quản trị hệ thốngCấu hình tên miền, danh sách app được phép gọi bridge, khoá tích hợp

User stories

MãLà…Tôi muốn…Để…Ưu tiên
US-WEB-01Người chơimở link campaign và xem thể lệ, quà trước khi đăng nhậpquyết định có chơi khôngMust
US-WEB-02Người chơiđăng nhập bằng SĐT + OTPkhông cần tạo tài khoảnMust
US-WEB-03Khách hàng FPTđăng nhập bằng FPT IDgắn với hợp đồng dịch vụ của tôiShould
US-WEB-04Người dùng Hi FPTmở game trong app mà không đăng nhập lạichơi ngayMust
US-WEB-05Người chơi desktopthấy game, thể lệ và bảng xếp hạng cùng lúckhông phải chuyển trangShould
US-WEB-06Người chơichia sẻ link có ảnh đẹp lên Facebook, Zalorủ bạn chơi, nhận thêm lượtMust
US-WEB-07Người chơi trong appbấm back để đóng popup chứ không thoát gamekhông mất phiên đang chơiMust
US-WEB-08Quản lý campaigntạo link có UTM cho từng kênh quảng cáoso hiệu quả kênh trong báo cáoMust

Đường dẫn & landing campaign

TrangĐường dẫn Có gìCần đăng nhập
Trang chủ/Campaign đang chạy trên kênh web—
Landing campaign/c/<slug>Banner, thời gian, quà nổi bật, thể lệ, nút "Chơi ngay", bảng xếp hạng—
Chơi/c/<slug>/choiKhung game✓
Phòng chơi (QR từ TV)/p/<mã phòng>Vào thẳng phòng theo Chế độ chơi✓
Quà của tôi/quaTheo Kho quà✓
Thể lệ, chính sách dữ liệu/c/<slug>/the-le, /chinh-sachVăn bản tĩnh—
Trạng thái campaignLanding hiện
Đã duyệt, chưa tới giờĐếm ngược, thể lệ; nút "Nhắc tôi"
Đang chạyBình thường
Tạm dừng"Chương trình tạm dừng, quay lại sau"; Quà của tôi vẫn xem được
Kết thúcKết quả, danh sách trúng (nếu thể lệ công bố); link campaign khác
Nháp, Chờ duyệt404 với người chơi; xem trước được khi đăng nhập quản trị

Đăng nhập

SĐT + OTP

  1. Bấm "Chơi ngay" → nhập SĐT + checkbox đồng ý xử lý dữ liệu (không tick sẵn).
  2. Gửi OTP 6 số qua ZNS, lỗi thì SMS; hết hạn sau 5 phút.
  3. Nhập đúng → tạo/khớp hồ sơ theo Khách hàng; phiên đăng nhập giữ 30 ngày trên trình duyệt đó.

FPT ID

  1. Bấm "Đăng nhập FPT ID" → chuyển trang đăng nhập FPT ID → quay về đúng trang đang đứng.
  2. Nhận SĐT đã xác thực + mã khách hàng FPT (nếu có) → hợp nhất hồ sơ theo Khách hàng.

Token từ app qua bridge

  1. App mở webview với tham số kênh + campaign; game gọi bridge xin token người dùng.
  2. Máy chủ minigame đổi token với hệ thống của app lấy SĐT / FPT ID (Hệ thống ngoài).
  3. Thành công → vào thẳng; người chơi chưa đồng ý dữ liệu cho minigame thì hiện bước đồng ý một lần.
  4. Không có token / token hết hạn → gọi bridge xin làm mới 1 lần; vẫn lỗi → rơi về SĐT + OTP.
MãQuy tắcVí dụ
BR-WEB-01Xem landing, thể lệ, bảng xếp hạng không cần đăng nhập; chỉ đăng nhập khi bắt đầu chơi
BR-WEB-02Gửi lại OTP sau 60 giây; số lần gửi, sai OTP tối đa theo Chống gian lận
BR-WEB-03Chỉ nhận token bridge từ app trong danh sách cho phép; token dùng 1 lần ở máy chủ, không lưu trên trình duyệt
BR-WEB-04Ba cách đăng nhập cùng SĐT → cùng một người chơi; lượt chơi, quà dùng chungChơi 2 lượt trên Hi FPT + 1 lượt trên web = 3 lượt của cùng SĐT
BR-WEB-05Đăng nhập xong quay về đúng trang trước đó, kể cả /p/<mã phòng>

Bố cục & hành vi

MãQuy tắcVí dụ
BR-WEB-06Desktop (≥ 1024px): game trong khung 9:16 giữa màn; trái là thể lệ + quà, phải là bảng xếp hạng. Mobile: game toàn màn, thể lệ và bảng xếp hạng là tab / trang riêng
BR-WEB-07Game không bao giờ kéo giãn khỏi 9:16; màn ngang trên điện thoại hiện "Xoay dọc để chơi"
BR-WEB-08Webview: back phần cứng / cử chỉ back đóng modal trước; đang trong phiên chơi → hỏi "Thoát? Lượt này sẽ tính là đã chơi" ; ở landing → trả về app
BR-WEB-09Webview: ẩn appbar, ẩn nút đăng xuất; theme theo app truyền vàoHi FPT → data-theme="blue"
BR-WEB-10Rời tab / khoá màn khi đang chơi: tạm dừng game nếu game cho phép, xử lý phiên theo Khung game
BR-WEB-11Một SĐT mở game ở 2 tab / 2 thiết bị: chỉ một phiên chạy theo Khung game; tab còn lại báo "Bạn đang chơi ở nơi khác"

Bố cục chi tiết: Kênh triển khai (UI), Mẫu màn hình game.

Chia sẻ & OG

TrườngKiểuBắt buộcRàng buộcGhi chú
Tiêu đề OGChuỗi✓ ≤ 60 ký tựMặc định = tên campaign
Mô tả OGChuỗi✓ ≤ 150 ký tự
Ảnh OGẢnh✓1200×630, ≤ 300 KBMặc định: gradient cam + cụm bit + logo âm bản
Link chia sẻURL✓Landing + mã người mời + utm_source=shareTự sinh theo người chơi
Ảnh kết quả cá nhânẢnh sinh tự động—Không chứa SĐT Đợt 2

Lượt nhận thêm khi chia sẻ: quy tắc ở Khung game. Web không biết chắc người chơi đã đăng bài; chỉ ghi nhận được khi có người mở link.

Trình duyệt hỗ trợ

Nền tảngHỗ trợ đầy đủ Ghi chú
iOSSafari iOS 15+; webview Hi FPT, FPT Play, Zalo, FacebookMicro/camera trong webview có thể bị chặn — kiểm thử game 8 riêng
AndroidChrome 2 bản mới nhất, Android 9+; Samsung Internet, Cốc CốcMáy RAM 2 GB: tắt hiệu ứng nặng
DesktopChrome, Edge, Cốc Cốc, Safari, Firefox — 2 bản mới nhấtCốc Cốc phổ biến ở Việt Nam
Không hỗ trợIE, trình duyệt không chạy WebGL / CanvasHiện trang "Mở bằng Chrome / Safari để chơi"
Mở từ Facebook / MessengerTrình duyệt trong app Facebook có thể chặn cửa sổ đăng nhập FPT ID và mất phiên khi chuyển trang. Ưu tiên SĐT + OTP trong bối cảnh này và gợi ý "Mở bằng trình duyệt".

Theo dõi & nguồn

MãQuy tắcVí dụ
BR-WEB-12Đọc utm_source, utm_medium, utm_campaign, utm_content và src ở lần vào đầu; lưu theo phiên trình duyệt và gắn vào phiên chơi, lead?utm_source=facebook&utm_medium=cpc&utm_campaign=tet2027
BR-WEB-13Gán nguồn theo lần chạm đầu trong 7 ngày; vào lại bằng nguồn khác trong 7 ngày không ghi đè
BR-WEB-14Webview: nguồn = tên app + vị trí banner do app truyền (vd. src=hifpt_banner_home)
BR-WEB-15Sự kiện tối thiểu: xem landing, bấm chơi, gửi OTP, đăng nhập xong, bắt đầu phiên, kết thúc phiên, trúng, chia sẻ, mở Quà của tôiDùng cho phễu ở Báo cáo
BR-WEB-16Không gửi SĐT, mã quà vào công cụ analytics bên thứ ba; cookie quảng cáo chỉ bật khi người dùng đồng ý theo Dữ liệu cá nhân

Công cụ analytics dùng: GA4 / công cụ nội bộ FTEL — IT xác nhận.

Ngoại lệ & lỗi

Tình huốngHệ thống xử lýThông báo hiển thị
OTP không tớiSau 60 giây cho gửi lại; lần 2 chuyển kênh ZNS ↔ SMS"Chưa nhận được mã? Gửi lại qua SMS"
Nhập sai OTPĐếm số lần sai theo Chống gian lận"Mã chưa đúng, còn 2 lần thử"
FPT ID lỗi / người dùng huỷQuay về landing, giữ trang đích"Chưa đăng nhập được, thử bằng SĐT"
Token bridge lỗiLàm mới 1 lần; lỗi → SĐT + OTP"Xác nhận SĐT để tiếp tục"
Mất mạng giữa phiênTheo Khung game"Mất kết nối. Kết quả của bạn vẫn được lưu"
Link campaign sai / không tồn tại404 có link về trang chủ"Không tìm thấy chương trình"
Campaign không bật kênh nàyKhông cho chơi"Chương trình chỉ chơi trên Zalo / tại booth" + link đúng kênh
Trình duyệt không hỗ trợChặn ở landing"Mở bằng Chrome / Safari để chơi"

Tiêu chí nghiệm thu

Câu hỏi mở

#Câu hỏiHỏi aiHạnTrả lời
Q-WEB-01Tên miền chạy game: subdomain fpt.vn hay tên miền riêng?IT / Truyền thông
Q-WEB-02Hi FPT, FPT Play đã có bridge truyền token cho webview bên thứ ba chưa? Đội nào làm phía app?Đội app Hi FPT / FPT Play
Q-WEB-03FPT ID có trong MVP không, hay chỉ SĐT + OTP?PM / IT
Q-WEB-04OTP gửi ZNS trước hay SMS trước? Ngân sách mỗi tin (chạm Hệ thống ngoài)FCM / IT
Q-WEB-05Thoát giữa phiên trong webview có tính là đã dùng lượt? (quyết ở Khung game)FCM
Q-WEB-06Công cụ analytics và quy định cookie của FTELIT / Pháp chế

Lịch sử thay đổi

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