Custom Events
Create domain‑specific events to analyze more precise user behaviors.
If a user action matters to your business or product KPIs, make it a tracked event:
// Recipe site example
AdStage.events.track('recipe_bookmarked', {
recipe_id: 'chicken_curry_123',
recipe_name: 'Chicken Curry',
difficulty: 'medium',
cooking_time: 30
});
// E‑commerce example
AdStage.events.track('wishlist_added', {
product_id: 'PROD_456',
product_name: 'Wireless Earbuds',
price: 89000,
category: 'Electronics'
});
No strict required schema, but use clear, action‑oriented names:
// Easy to distinguish during analysis
AdStage.events.track('video_play_started', { video_id: '123' });
AdStage.events.track('video_play_completed', { video_id: '123' });
// Use consistent patterns for similar flows
AdStage.events.track('course_lesson_started', { course_id: 'js101', lesson_id: 'variables' });
AdStage.events.track('course_lesson_completed', { course_id: 'js101', lesson_id: 'variables' });
Track behavior patterns to understand intent & friction:
// Quick preview interaction
AdStage.events.track('product_quick_preview', {
product_id: 'PROD_123',
product_name: 'Wireless Earbuds',
price: 89000,
from_section: 'Recommended'
});
// Added to wishlist
AdStage.events.track('added_to_wishlist', {
product_id: 'PROD_123',
current_wishlist_count: 5,
product_price: 89000
});
// Restock alert request (helps forecast demand)
AdStage.events.track('restock_alert_requested', {
product_id: 'PROD_456',
product_name: 'Sold Out Product',
user_email_domain: 'gmail.com' // Generalized; avoid raw PII
});
// Review created
AdStage.events.track('review_written', {
product_id: 'PROD_123',
rating: 5,
review_has_photo: true
});
Identify learning quality & engagement drivers:
// Lesson watching (helps find difficult segments)
AdStage.events.track('lesson_watched', {
course_name: 'JavaScript Basics',
lesson_title: 'Variables & Types',
watch_percentage: 75,
watch_time_minutes: 8,
rewound_count: 2 // Rewind count signals difficulty
});
// Quiz result
AdStage.events.track('quiz_finished', {
quiz_name: 'JS Basic Quiz',
score: 85,
total_score: 100,
attempt_number: 1,
passed: true
});
// Course completion
AdStage.events.track('course_completed', {
course_name: 'JavaScript Basics',
completion_days: 14,
final_score: 92
});
Understand progression, economy, and retention drivers:
// Session start
AdStage.events.track('game_started', {
game_mode: 'Survival',
difficulty: 'hard',
character_level: 15,
playtime_today_minutes: 45
});
// Level up (balance tuning)
AdStage.events.track('level_up', {
new_level: 15,
time_to_levelup_minutes: 45,
main_activity: 'monster_hunting'
});
// Item obtained
AdStage.events.track('item_obtained', {
item_name: 'Legendary Sword',
item_grade: 'legendary',
how_obtained: 'boss_drop',
player_level: 15
});
// IAP purchase
AdStage.events.track('item_purchased', {
item_type: 'in_game_currency',
amount: 1000,
real_price: 9900, // KRW
reason: 'insufficient_balance'
});
Discover what content engages and converts readers:
// Finished reading article
AdStage.events.track('article_finished_reading', {
article_title: '2024 Tech Trends',
category: 'Technology',
read_time_minutes: 4,
scroll_percentage: 100,
word_count: 1200
});
// Comment added
AdStage.events.track('comment_added', {
article_title: 'Interesting Article',
comment_length: 85,
is_reply: false,
user_type: 'regular_reader'
});
// Newsletter signup
AdStage.events.track('newsletter_signed_up', {
newsletter_type: 'Weekly Digest',
signup_location: 'article_bottom_cta',
reader_visits_this_month: 5
});
// Article shared
AdStage.events.track('article_shared', {
article_title: 'Popular Article',
share_platform: 'twitter',
share_location: 'header_button'
});
Always ask: “What decision will this event enable later?”
// Exit intent tracking (understand churn triggers)
AdStage.events.track('page_exit_attempt', {
page_name: 'product_detail',
time_on_page_seconds: 30,
scroll_depth: 25,
exit_trigger: 'back_button'
});
// Feature usage adoption
AdStage.events.track('feature_used', {
feature_name: 'price_comparison',
user_type: 'premium',
usage_count_today: 3
});
By defining the right events, you can power precise Segments and Funnels within the AdStage dashboard.