Files
2025-11-29 18:32:40 +08:00

10 KiB

Engagement Events Reference

This reference covers recommended events for user engagement tracking beyond ecommerce transactions.


Authentication Events

login

Purpose: Track user login/authentication

Parameters:

  • method (required) - Authentication method used

Authentication Methods:

  • email - Email and password
  • phone - Phone number verification
  • social - Social network login
  • google - Google Sign-in
  • facebook - Facebook Login
  • apple - Apple Sign-in
  • microsoft - Microsoft/Office 365
  • saml - SAML enterprise login
  • fingerprint - Biometric authentication
  • password - Password-only
  • sso - Single sign-on

Implementation:

gtag('event', 'login', {
  'method': 'google'
});

Different Authentication Methods:

// Social login
gtag('event', 'login', {
  'method': 'facebook'
});

// Enterprise SSO
gtag('event', 'login', {
  'method': 'saml'
});

// Biometric
gtag('event', 'login', {
  'method': 'fingerprint'
});

Reporting Use:

  • User authentication tracking
  • Auth method effectiveness
  • Login success/failure analysis
  • Funnel starting point

sign_up

Purpose: Track new account creation

Parameters:

  • method (required) - Registration method

Registration Methods:

  • email - Email registration
  • phone - Phone registration
  • social - Social signup
  • google - Google signup
  • facebook - Facebook signup
  • apple - Apple ID signup
  • in_app - Mobile app signup
  • api - Programmatic signup

Implementation:

gtag('event', 'sign_up', {
  'method': 'email'
});

Alternative Signup Methods:

// Social network signup
gtag('event', 'sign_up', {
  'method': 'apple'
});

// In-app registration
gtag('event', 'sign_up', {
  'method': 'in_app'
});

Reporting Use:

  • New user acquisition
  • Registration method performance
  • Signup funnel analysis
  • Revenue attribution from signups

Content Engagement Events

Purpose: Track site/app search functionality

Parameters:

  • search_term (required) - What user searched for

Implementation:

document.getElementById('search-form').addEventListener('submit', function(e) {
  e.preventDefault();
  var searchTerm = document.getElementById('search-input').value;

  gtag('event', 'search', {
    'search_term': searchTerm
  });

  // Perform search
  performSearch(searchTerm);
});

Advanced Implementation:

// Track search with result count
gtag('event', 'search', {
  'search_term': 'blue shoes',
  'search_results_count': 42  // Custom parameter
});

Reporting Use:

  • Popular search terms
  • Search-to-purchase analysis
  • Search effectiveness
  • Missing products (failed searches)

Best Practices:

  • Send before results load (immediate)
  • Don't include user input errors
  • Standardize term formatting (lowercase)

view_item

Purpose: User views product/content detail

Parameters:

  • items (required) - Array with item_id and item_name
  • value (recommended) - Item price
  • currency (recommended) - Currency code

See "items-array-reference.md" for complete details


view_item_list

Purpose: User views collection/search results/category

Parameters:

  • items (required) - Array of products
  • item_list_id (recommended) - List identifier
  • item_list_name (recommended) - List name

Implementation:

// On category page load
gtag('event', 'view_item_list', {
  'items': [
    {
      'item_id': 'SKU_001',
      'item_name': 'Product A',
      'item_category': 'Electronics'
    },
    {
      'item_id': 'SKU_002',
      'item_name': 'Product B',
      'item_category': 'Electronics'
    }
  ],
  'item_list_id': 'category_electronics',
  'item_list_name': 'Electronics Category'
});

List Types:

  • Category browse
  • Search results
  • Featured/homepage
  • Recommendations
  • Related products
  • Best sellers
  • New arrivals

select_item

Purpose: User selects item from list

Parameters:

  • items (required) - Selected item(s)
  • item_list_id (optional) - List identifier
  • item_list_name (optional) - List name

Implementation:

document.querySelectorAll('.product-link').forEach(function(link) {
  link.addEventListener('click', function() {
    var itemId = this.getAttribute('data-item-id');
    var itemName = this.getAttribute('data-item-name');

    gtag('event', 'select_item', {
      'items': [{
        'item_id': itemId,
        'item_name': itemName,
        'item_list_name': 'Search Results'
      }]
    });
  });
});

Reporting Use:

  • Click-through rate from lists
  • Product popularity
  • List effectiveness
  • Search result performance

Promotion Events

view_promotion

Purpose: Promotional banner/offer displayed

Parameters:

  • promotion_id (recommended) - Promotion identifier
  • promotion_name (recommended) - Promotion name

Implementation:

// On promotion banner visible
gtag('event', 'view_promotion', {
  'promotion_id': 'SUMMER_SALE_2024',
  'promotion_name': '50% Off Summer Sale'
});

Reporting Use:

  • Promotion impressions
  • Banner effectiveness
  • Which promotions drive traffic

select_promotion

Purpose: User clicks promotion

Parameters:

  • promotion_id (recommended) - Promotion identifier
  • promotion_name (recommended) - Promotion name

Implementation:

document.querySelector('.promotion-banner').addEventListener('click', function() {
  gtag('event', 'select_promotion', {
    'promotion_id': 'SUMMER_SALE_2024',
    'promotion_name': '50% Off Summer Sale'
  });

  // Navigate to sale
  window.location.href = '/sale';
});

Reporting Use:

  • Promotion click rates
  • Promotion-to-purchase funnel
  • CTR by promotion type

Sharing and Social Events

share

Purpose: User shares content

Parameters:

  • method (optional) - Share method
  • content_type (optional) - Type of content
  • item_id (optional) - Content identifier

Share Methods:

  • email
  • facebook
  • twitter
  • whatsapp
  • sms
  • copy_link
  • print
  • native (iOS share sheet)

Implementation:

// Email share
document.getElementById('email-share-btn').addEventListener('click', function() {
  gtag('event', 'share', {
    'method': 'email',
    'content_type': 'product',
    'item_id': 'SKU_123'
  });
});

// Social share
document.getElementById('facebook-share-btn').addEventListener('click', function() {
  gtag('event', 'share', {
    'method': 'facebook',
    'content_type': 'article',
    'item_id': 'article_456'
  });
});

Reporting Use:

  • Content virality
  • Share method preferences
  • Shared content performance

join_group

Purpose: User joins group/team/community

Parameters:

  • group_id (optional) - Group identifier

Implementation:

gtag('event', 'join_group', {
  'group_id': 'premium_members'
});

Interaction Events

select_content

Purpose: User selects specific content

Parameters:

  • content_type (optional) - Content type
  • item_id (optional) - Content identifier

Content Types:

  • product
  • article
  • video
  • audio
  • image
  • document
  • app
  • game
  • course
  • lesson

Implementation:

// Video selection
gtag('event', 'select_content', {
  'content_type': 'video',
  'item_id': 'video_123'
});

// Article selection
gtag('event', 'select_content', {
  'content_type': 'article',
  'item_id': 'article_456'
});

// Course lesson
gtag('event', 'select_content', {
  'content_type': 'lesson',
  'item_id': 'lesson_789'
});

Reporting Use:

  • Content popularity
  • Content engagement patterns
  • Most viewed content

Lead Generation Events

generate_lead

Purpose: Track lead generation (form submission, quote request, etc.)

Parameters:

  • value (optional) - Estimated lead value
  • currency (optional) - Currency code

Implementation:

// Contact form submission
document.getElementById('contact-form').addEventListener('submit', function() {
  gtag('event', 'generate_lead', {
    'value': 0,  // No monetary value
    'currency': 'USD'
  });
});

// Demo request (estimate value)
gtag('event', 'generate_lead', {
  'value': 500.00,  // Estimated annual value
  'currency': 'USD'
});

// Enterprise trial (higher value)
gtag('event', 'generate_lead', {
  'value': 5000.00,
  'currency': 'USD'
});

Lead Types:

  • Contact form
  • Demo request
  • Consultation booking
  • Newsletter signup
  • Free trial
  • Quote request
  • Job application
  • Event registration

Reporting Use:

  • Lead generation funnel
  • Lead value attribution
  • Form effectiveness
  • Lead source comparison

Measurement Guidelines

When to Send Events

Immediate Trigger:

  • User action completes (click, form submit)
  • Content becomes visible (on page load)
  • User selects item

Don't Wait For:

  • Backend confirmation
  • Page navigation
  • API response (unless critical)

Implementation Pattern:

// ❌ WRONG: Wait for confirmation
function handleAction() {
  performAction().then(function() {
    gtag('event', 'some_event');  // Too late
  });
}

// ✅ CORRECT: Fire immediately
function handleAction() {
  gtag('event', 'some_event');    // Fire now
  performAction();                 // Then execute
}

Event Parameter Summary

Event Required Params Recommended Params Optional
login method - -
sign_up method - -
search search_term - -
view_item items value, currency -
view_item_list items item_list_id, item_list_name -
select_item items item_list_id, item_list_name -
view_promotion - promotion_id, promotion_name -
select_promotion - promotion_id, promotion_name -
share - method, content_type, item_id -
generate_lead - value, currency -
select_content - content_type, item_id -

Testing Engagement Events

Use DebugView to Verify:

  1. Login Event

    • Check method parameter populated
    • Verify on successful authentication
  2. Search Event

    • Confirm search_term is present
    • Check on form submission
  3. View Item

    • Verify items array structure
    • Check price and currency
  4. Content Selection

    • Ensure item_id or content_type present
    • Verify on user click

Debug Checklist:

✓ Event fires at correct time
✓ Parameters match specifications
✓ Parameter values are accurate
✓ Event name spelled correctly
✓ No duplicate events
✓ Values are appropriate data type