Skip to content

Gaming Events

Gaming platforms generate some of the highest event volumes of any vertical. Every tap, level completion, currency transaction, and social interaction produces telemetry that drives engagement loops, monetisation optimisation, and churn prediction.

This page defines the canonical event taxonomy for games integrated with GrowthOS — covering player lifecycle, session tracking, gameplay progression, in-app purchases, virtual economy, social features, and operational signals.


Acquire — Player Registration and Tutorial

Section titled “Acquire — Player Registration and Tutorial”

Events that capture the first moments of a new player’s experience, from account creation through the tutorial flow.

Event NameKey PropertiesVolumeDescription
player.registeredplayer_id, platform, country, acquisition_source, device_typeLowA new player account is created. Maps to GA4 sign_up.
player.profile_createdplayer_id, display_name, avatar_id, classLowThe player completed profile setup (name, avatar, starting class).
tutorial.startedplayer_id, tutorial_id, tutorial_versionLowThe player entered the tutorial or onboarding flow. Maps to GA4 tutorial_begin.
tutorial.step_completedplayer_id, tutorial_id, step_index, step_name, duration_secMediumThe player completed a single step within the tutorial sequence.
tutorial.completedplayer_id, tutorial_id, total_duration_sec, steps_completedLowThe player finished the entire tutorial. Maps to GA4 tutorial_complete.
tutorial.skippedplayer_id, tutorial_id, skipped_at_stepLowThe player skipped the tutorial before completing it.

Events that mark meaningful early engagement — the player has launched the game, completed a session, and experienced core gameplay.

Event NameKey PropertiesVolumeDescription
session.startedplayer_id, session_id, platform, app_version, device_modelHighA gameplay session has begun. Maps to GA4 session_start.
session.endedplayer_id, session_id, duration_sec, events_count, end_reasonHighA gameplay session has ended (backgrounded, quit, or timed out).
first_game.completedplayer_id, game_mode, result, duration_secLowThe player completed their first real game or match after the tutorial.
daily_login.completedplayer_id, streak_count, reward_claimed, reward_idMediumThe player completed a daily login and claimed any streak reward.

Core gameplay events that track progression, achievements, item interactions, and competitive play. These events are the backbone of engagement analytics and churn prediction models.

Event NameKey PropertiesVolumeDescription
level.startedplayer_id, level_id, difficulty, attempt_numberHighThe player started a level or stage.
level.completedplayer_id, level_id, score, stars, duration_sec, attempt_numberHighThe player completed a level. Maps to GA4 level_end with success.
level.failedplayer_id, level_id, failure_reason, progress_pct, attempt_numberHighThe player failed a level. Track failure funnels for difficulty tuning.
level.upplayer_id, new_level, previous_level, xp_totalMediumThe player reached a new experience level. Maps to GA4 level_up.
achievement.unlockedplayer_id, achievement_id, achievement_name, categoryMediumThe player unlocked an achievement or trophy. Maps to GA4 unlock_achievement.
quest.startedplayer_id, quest_id, quest_type, difficultyMediumThe player accepted or started a quest or mission.
quest.completedplayer_id, quest_id, rewards[], duration_secMediumThe player completed a quest and received rewards.
quest.abandonedplayer_id, quest_id, progress_pct, abandon_reasonLowThe player abandoned a quest before completing it.
score.postedplayer_id, leaderboard_id, score, rankMediumThe player posted a score to a leaderboard. Maps to GA4 post_score.
item.collectedplayer_id, item_id, item_type, source, quantityHighThe player collected or looted an in-game item.
item.usedplayer_id, item_id, item_type, contextHighThe player consumed or used an item during gameplay.
item.craftedplayer_id, item_id, recipe_id, ingredients[]MediumThe player crafted a new item from components.
item.tradedplayer_id, trade_partner_id, items_given[], items_received[]LowThe player traded items with another player.
character.createdplayer_id, character_id, class, race, customisationLowThe player created a new character.
character.upgradedplayer_id, character_id, attribute, new_value, costMediumThe player upgraded a character attribute or skill.
battle.startedplayer_id, battle_id, opponent_id, game_mode, arenaMediumA battle or match started between players or against AI.
battle.completedplayer_id, battle_id, result, score, duration_sec, xp_earnedMediumA battle or match concluded with a result (win, loss, draw).
matchmaking.startedplayer_id, game_mode, skill_rating, queue_idMediumThe player entered the matchmaking queue.
matchmaking.completedplayer_id, match_id, wait_time_sec, players_matched, skill_spreadMediumMatchmaking found a match and the player was assigned to a game.

Monetise — Purchases and Virtual Economy

Section titled “Monetise — Purchases and Virtual Economy”

Events that track revenue generation through in-app purchases, subscriptions, ads, battle passes, and the virtual currency economy.

Event NameKey PropertiesVolumeDescription
virtual_currency.earnedplayer_id, currency_type, amount, source, balance_afterHighThe player earned virtual currency (coins, gems, etc.) through gameplay. Maps to GA4 earn_virtual_currency.
virtual_currency.spentplayer_id, currency_type, amount, item_id, context, balance_afterHighThe player spent virtual currency on an item or upgrade. Maps to GA4 spend_virtual_currency.
iap.initiatedplayer_id, product_id, price, currency, storeMediumThe player started an in-app purchase flow (tapped Buy).
iap.completedplayer_id, product_id, transaction_id, price, currency, storeLowThe in-app purchase was successfully completed. Maps to GA4 in_app_purchase.
iap.failedplayer_id, product_id, error_code, error_message, storeLowThe in-app purchase failed (payment declined, cancelled, or store error).
iap.restoredplayer_id, product_id, original_transaction_id, storeLowA previously purchased item was restored (e.g., after reinstall).
subscription.createdplayer_id, plan_id, price, currency, billing_periodLowThe player subscribed to a recurring plan (VIP, premium pass, etc.).
subscription.renewedplayer_id, plan_id, renewal_count, price, currencyLowAn existing subscription was successfully renewed.
subscription.cancelledplayer_id, plan_id, cancel_reason, effective_dateLowThe player cancelled their subscription.
ad.watchedplayer_id, ad_unit_id, ad_network, ad_type, reward_type, reward_amountHighThe player watched a rewarded or interstitial ad.
battle_pass.purchasedplayer_id, season_id, tier, price, currencyLowThe player purchased a battle pass or season pass.
battle_pass.tier_reachedplayer_id, season_id, tier, reward_id, is_premiumMediumThe player reached a new tier on the battle pass.
loot_box.openedplayer_id, box_type, items_received[], sourceMediumThe player opened a loot box, gacha, or randomised reward container.
offer.viewedplayer_id, offer_id, offer_type, price, currency, placementMediumA special offer or promotion was displayed to the player.
offer.purchasedplayer_id, offer_id, offer_type, price, currencyLowThe player purchased a special offer or limited-time bundle.

Events related to social features, guilds, gifting, and viral sharing that drive organic growth.

Event NameKey PropertiesVolumeDescription
friend.addedplayer_id, friend_id, sourceMediumThe player added another player as a friend.
friend.removedplayer_id, friend_idLowThe player removed a friend from their friends list.
guild.joinedplayer_id, guild_id, guild_name, member_countLowThe player joined a guild, clan, or alliance. Maps to GA4 join_group.
guild.leftplayer_id, guild_id, reasonLowThe player left a guild.
chat.message_sentplayer_id, channel_type, channel_id, message_lengthHighThe player sent a chat message (global, guild, whisper, or match chat).
invite.sentplayer_id, invite_channel, invite_type, recipient_idLowThe player sent a game invite to a friend or contact. Maps to GA4 invite.
content.sharedplayer_id, content_type, share_channel, content_idLowThe player shared game content (screenshot, replay, achievement) externally. Maps to GA4 share.
gift.sentplayer_id, recipient_id, gift_item_id, gift_typeMediumThe player sent an in-game gift to another player.

System-level events for app health monitoring, moderation, and retention signals.

Event NameKey PropertiesVolumeDescription
app.updatedplayer_id, previous_version, new_version, platformLowThe player updated the app to a new version.
error.occurredplayer_id, error_type, error_message, screen, stack_traceMediumA client-side or gameplay error was captured.
performance.fps_dropplayer_id, scene, avg_fps, min_fps, device_model, duration_secMediumA significant frame rate drop was detected during gameplay.
moderation.report_submittedplayer_id, reported_player_id, reason, contextLowA player submitted a moderation report against another player.
moderation.action_takenreported_player_id, action, duration, moderator_idLow (admin)A moderation action was taken (warning, mute, ban, etc.).
churn_risk.detectedplayer_id, risk_score, risk_factors[], last_activeLow (admin)The churn prediction model flagged a player as at-risk.
retention.day_n_returnedplayer_id, day_number, sessions_total, last_session_duration_secMediumThe player returned on day N after install (D1, D7, D14, D30). Used for retention cohort analysis.


If you are instrumenting a game for the first time, start with these critical events before expanding to the full taxonomy.

// Gaming — essential events to instrument first
// 1. Session start
growthOS.track('session.started', {
player_id: 'p_12345',
session_id: 'sess_abc',
platform: 'ios',
app_version: '2.4.1'
});
// 2. Tutorial completed
growthOS.track('tutorial.completed', {
player_id: 'p_12345',
tutorial_id: 'onboarding_v3',
total_duration_sec: 142,
steps_completed: 8
});
// 3. Level completed
growthOS.track('level.completed', {
player_id: 'p_12345',
level_id: 'forest_03',
score: 4500,
stars: 3,
duration_sec: 87,
attempt_number: 1
});
// 4. Virtual currency spent
growthOS.track('virtual_currency.spent', {
player_id: 'p_12345',
currency_type: 'gems',
amount: 50,
item_id: 'sword_legendary',
balance_after: 120
});
// 5. In-app purchase completed
growthOS.track('iap.completed', {
player_id: 'p_12345',
product_id: 'gem_pack_500',
transaction_id: 'txn_abc123',
price: 4.99,
currency: 'USD',
store: 'app_store'
});
// 6. Achievement unlocked
growthOS.track('achievement.unlocked', {
player_id: 'p_12345',
achievement_id: 'first_boss_kill',
achievement_name: 'Dragon Slayer',
category: 'combat'
});
// 7. Friend added
growthOS.track('friend.added', {
player_id: 'p_12345',
friend_id: 'p_67890',
source: 'post_match_screen'
});
// 8. Invite sent
growthOS.track('invite.sent', {
player_id: 'p_12345',
invite_channel: 'whatsapp',
invite_type: 'game_invite'
});
// 9. Day-N retention
growthOS.track('retention.day_n_returned', {
player_id: 'p_12345',
day_number: 7,
sessions_total: 14,
last_session_duration_sec: 620
});
// 10. Session ended
growthOS.track('session.ended', {
player_id: 'p_12345',
session_id: 'sess_abc',
duration_sec: 1240,
events_count: 87,
end_reason: 'user_quit'
});