IAA · quảng cáo có thưởng
Bắn khi nút đạo cụ hết lượt chuyển sang mời xem quảng cáo có thưởng. Sinh offer_id prefix bo_ để nối với event kết thúc.
Đóng vòng lời mời: ghi outcome (reward / fail), thời lượng từ lúc mời, mã lỗi hiển thị. Cùng offer_id với skl_ad_offer để tính tỷ lệ bấm và tỷ lệ hiện.
Đặc tả sẵn + wrapper pxSklAdExpire, chưa nối call site: MaxBridge chưa expose callback hết hạn quảng cáo / cache. Đúng ghi chú changelog "chờ xác minh callback SDK/cache".
Level · Adventure
Bắn khi hết chỗ đặt trong màn Adventure (chỉ mode adventure). Kèm điểm, số nước, thời lượng, số lần hồi sinh, số booster đã dùng tại thời điểm kẹt.
Đã wire sẵn cho cả classic và adventure qua pxTrackBoosterUse; source phân biệt infinite / inventory / rewarded_ad. Không cần sửa code.
pxActiveMs() tích lũy qua pause/resume và không reset khi hồi sinh, chỉ xóa round khi màn kết thúc. Nên level_end.duration đã gồm trọn thời gian qua các lần hồi sinh. Không cần sửa code.
Event · khởi động
RAM trống (MB) tại thời điểm khởi động, thêm riêng vào app_launch và app_ready (không gắn vào mọi mốc). macOS đo qua host_statistics64, Android qua sysinfo; desktop/web trả −1 nên bỏ qua.
Tutorial · đồng ý chính sách
Bắn khi popup đồng ý chính sách quyền riêng tư hiện lần đầu chạy. Ghi mốc thời gian để tính thời lượng tới khi người chơi quyết định.
Bắn khi người chơi chốt lựa chọn. Popup hiện tại chỉ có nút Đồng ý nên choice luôn là accepted; đặc tả giữ sẵn declined cho trường hợp thêm nút từ chối sau này.