Block Club · analytics · 1.0.4

Event tracking 1.0.4

Sáu event bổ sung trong bản tracking 1.0.4, đã gắn vào game qua game_beacon::trackEvent. Nguồn: tracking-plan.yaml + CSV. Build desktop xanh, test tracking xanh.

6
event gắn vào game
5
đã nối call site (wired)
1
chờ callback SDK

IAA · quảng cáo có thưởng

skl_ad_offer mới wired

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.

offer_idlocationround_id
→ BoardPropRack.cpp · pxShowAd (trước khi show rewarded)
skl_ad_offer_end mới wired

Đó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.

offer_idlocationoutcomedurationerr_coderound_id
→ BoardPropRack.cpp · callback rewarded (reward/fail)
skl_ad_expire mới chờ SDK

Đặ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".

ad_formatlocationad_request_idround_id
→ AnalyticsTrack.cpp · pending_sdk_callback

Level · Adventure

level_stuck mới wired

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.

game_moderound_idlevellevel_idattemptsno_space_indexscoremoves_countdurationrevive_countboosters_used
→ AnalyticsTrack.cpp · pxNoSpaceLeft
use_booster đã có · xác nhận cả 2 mode

Đã 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.

round_idlevel_idbooster_typesourceremaining_count
→ BoardPropRack.cpp · pxUseBooster
level_end.duration đúng sẵn qua hồi sinh

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.

→ AnalyticsTrack.cpp · pxAdventureLevelEnd (pxActiveMs/1000)

Event · khởi động

free_ram param mới wired

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.

app_launch + free_ramapp_ready + free_ram
→ AnalyticsTrack.cpp · pxFreeRamMb · setCommonContext / pxAppReady

Tutorial · đồng ý chính sách

consent_show mới wired

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.

consent_type
→ FirstRunScreens.cpp · pxMakePolicyView (bỏ qua khi QA)
consent_end mới wired

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.

consent_typechoiceduration
→ FirstRunScreens.cpp · nút Đồng ý (trước pxSetAgreedPrivacy)