Adopture Docs
Tracking

Events

Understanding event types in Adopture: track, screen, and revenue.

Events are the foundation of Adopture analytics. Every interaction, screen view, and transaction in your app is captured as an event. Adopture supports three event types, each designed for a specific purpose.

Event Types

Track Events

Track events capture custom user actions like button taps, form submissions, feature usage, or any other interaction you want to measure.

Adopture.track('add_to_cart', {'product_id': '123', 'price': '9.99'});

Use track events for anything that represents a meaningful user action in your app.

Screen Events

Screen events record page or screen views. They can be tracked manually or automatically using navigation observers.

Adopture.screen('product_detail', {'product_id': '123'});

For automatic screen tracking, see Screen Views.

Revenue Events

Revenue events track financial transactions. Use the dedicated trackPurchase method to record purchases, or connect a RevenueCat webhook for automatic revenue tracking.

Adopture.trackPurchase(
  productId: 'pro_monthly',
  price: 9.99,
  currency: 'USD',
);

For more on revenue tracking, see Revenue.

Automatic Context

Every event sent by the SDK automatically includes contextual data. You don't need to attach any of this manually:

  • Session ID — A unique identifier for the current session
  • Hashed user identifiers — SHA256-hashed identifiers for anonymous user tracking
  • Device context — Operating system, app version, locale, and screen size
  • Timestamp — The exact time the event occurred

Event Queuing and Batching

Events are not sent individually. The SDK queues events locally on the device and sends them in batches to reduce network overhead and battery usage. The batch interval and size are configurable during SDK initialization.

If the device is offline, events are persisted locally and sent when connectivity is restored.

Limits

  • 50 custom properties per event
  • Property values can be up to 500 characters long
  • Both property keys and values are strings

On this page